Skip to content

blowdart/idunno.Bluesky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

794 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

The Bluesky butterfly logo, except in purpleidunno.Bluesky - .NET SDK for Bluesky.

A .NET 8, 9 and 10 library and SDK for Bluesky and the AT Protocol

GitHub License Last Commit GitHub Tag NuGet Version NuGet Downloads

OpenSSF Scorecard OpenSSF Best Practices

Getting Started

Add the idunno.Bluesky package to your project, and then

BlueskyAgent agent = new ();

var loginResult = await agent.Login(username, password);
if (loginResult.Succeeded)
{
    var response = await agent.Post("Hello World");
    if (response.Succeeded)
    {
    }
}

Please see the documentation for much more useful documentation and samples.

The API status page shows what APIs are currently implemented.

Key Features

  • Creating and deleting posts
    • Posting with mentions, links and hashtags
    • Posting images and video, with alt text support.
    • Setting a post's language
    • Gating threads and posts
    • Liking, quoting, and reposting posts
  • Viewing a user's timeline and notifications
  • Viewing feeds
  • Viewing threads
  • Viewing notifications
  • Viewing and setting preferences for
    • Subscribing to user activities
    • Viewing user profiles
    • Notifications
  • Following and unfollowing users
  • Muting and blocking users
  • Sending, receiving, and deleting direct messages
  • Create, deleting and listing a user's bookmarks
  • Handle / password and OAuth authentication
  • Jetstream support for simple firehose consumption
  • Automatic session management with background token refreshes

Trimming is supported for applications targeting .NET 9.0 or later.

Current Build Status

Build Status CodeQL Scan Dependency Review

License

idunno.Bluesky, idunno.AtProto, idunno.AtProto.OAuthCallBack and idunno.AtProto.Types are available under the MIT license, see the LICENSE file for more information.

Tipping / Sponsoring

If you find this library useful please consider donating to

If you want to give me the warm fuzzies, you can tag me on Bluesky at @blowdart.me to let me know.

Release History

The releases page provides details of each release and what was added, changed or removed. The changelog also contains this information, as well as information on upcoming releases.

Code Signing and Verification

The project uses an Authenticode certificate to sign assemblies contained in the NuGet packages and to also author sign the nupkg package itself. NuGet verifies the signatures during the publication process and during package installation on Windows and Linux.

Instructions for validating signatures of my .NET assemblies, NuGet packages and Windows executables can be found in the Code Signing Information page on my GitHub profile.

Pre-releases

Prerelease Version

If you want to test pre-releases you can find them in the myget feed.

You can add this as a Package Source in Visual Studio or through the command line, or by using the sample nuget.config file shown below:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="blowdart.myget.org" value="https://www.myget.org/F/blowdart/api/v3/index.json" />
  </packageSources>

  <packageSourceMapping>
    <packageSource key="blowdart.myget.org">
      <package pattern="idunno.AtProto" />
      <package pattern="idunno.AtProto.*" />
      <package pattern="idunno.Bluesky" />
    </packageSource>
    <packageSource key="nuget.org">
      <package pattern="*" />
    </packageSource>
  </packageSourceMapping>
</configuration>

The package source URI is https://www.myget.org/F/blowdart/api/v3/index.json

To match a pre-release for a specific commit, if a build was produced for that commit

  1. Check the version value in version.json,
  2. Check if there was a Pre-release publish runs for the commit you are interested in,
  3. The pre-release package will have the first 10 digits of the commit sha, prefixed with a g as the build number.

For example, commit 190d63e produced a nightly build and packages. The package build number is be 1.1.0-prerelease.g190d63e20d

Please note that nightly builds are signed with Trusted Signing, the signing certificate chain will not match the signing chain of a release build. The subject name remains the same.

Planned work

Major

  • Logging in idunno.Bluesky
  • GIF attaching
  • Wider test coverage
  • More deserialization tests with captured responses

Awaiting external

  • Automatic Open Graph card generation when link facets detected.

Dependencies

The .NET 8.0 version of idunno.AtProto takes a dependency on System.Text.Json v9 to support deserializing derived types where the $type property is not the first property in the JSON object.

External dependencies

External analyzers used during builds

External build & testing tools

Other .NET Bluesky libraries and projects

About

A .NET class library for the Bluesky social network.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages