Skip to content

Simple C++ interface for interacting with BlueSky #atproto

License

Notifications You must be signed in to change notification settings

lmangani/atproto-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

atproto-cpp

CMake Builder

The BlueSky atproto-cpp library provides a C++ interface for interacting with the BlueSky social networking service. This library includes functions to handle user authentication, post creation, feed retrieval, and more.

Features

  • User authentication and session management
  • Post creation and feed retrieval
  • Helper functions for JSON manipulation and URL encoding

Installation

To use the BlueSky HPP library, include the header files in your project and link against the required dependencies.

#include "bluesky_client.hpp"

Usage

Initialization

To initialize the BlueskyClient, provide the server address:

BlueskyClient client("bsky.social");

Authentication

To log in to the BlueSky service, use the login function:

bool success = client.login("your_identifier", "your_password");
if (success) {
    std::cout << "Logged in successfully!" << std::endl;
} else {
    std::cerr << "Login failed!" << std::endl;
}

Creating a Post

To create a new post, use the createPost function:

BlueskyClient::Error error = client.createPost("Hello, BlueSky!");
if (error == BlueskyClient::Error_None) {
    std::cout << "Post created successfully!" << std::endl;
} else {
    std::cerr << "Failed to create post!" << std::endl;
}

Retrieving Feed Posts

To retrieve posts from a feed, use the getFeedPosts function:

BlueskyClient::PostsResult result = client.getFeedPosts("feed_uri", 10);
if (result.error == BlueskyClient::Error_None) {
    for (const auto& post : result.posts) {
        std::cout << "Post: " << post.text << std::endl;
    }
} else {
    std::cerr << "Failed to retrieve feed posts!" << std::endl;
}

Retrieving Author Posts

To retrieve posts from a specific author, use the getAuthorPosts function:

BlueskyClient::PostsResult result = client.getAuthorPosts("author_id", 10);
if (result.error == BlueskyClient::Error_None) {
    for (const auto& post : result.posts) {
        std::cout << "Author Post: " << post.text << std::endl;
    }
} else {
    std::cerr << "Failed to retrieve author posts!" << std::endl;
}

Additional Functions

  • getUnreadCount(): Retrieves the count of unread notifications.
  • filterText(const std::string& str): Filters special characters from a text string.
  • splitIntoWords(const std::string& str): Splits a string into individual words.
  • urlEncode(const std::string& str): Encodes a string for use in URLs.
  • createJsonString(const std::map<std::string, std::string>& data): Creates a JSON string from a map of key-value pairs.

Status

  • Prototype, Untested

Credits

Contains portions of bluesky_esphom and postbluesky

About

Simple C++ interface for interacting with BlueSky #atproto

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Contributors 2

  •  
  •