Fetch info about Bluesky links in your IRC conversations using Sopel.
Project description
sopel-bsky
Fetch info about Bluesky links in your IRC conversations using Sopel.
Installing
Releases are hosted on PyPI, so after installing Sopel, all you need is pip:
$ pip install sopel-bsky
Please note that the atproto package maintains a strict Python version policy,
so installation might not be possible on a given Python release even if Sopel
itself is compatible with it. Drop by GitHub and open a PR or
issue if you notice that the dependencies are outdated.
Configuring
The easiest way to configure sopel-bsky is via Sopel's configuration
wizard—simply run sopel-plugins configure bsky and enter the values for which
it prompts you.
Account login
At present, you need to give the plugin a Bluesky account for which you don't
mind storing the handle & password in Sopel's config file in plain text.
It's recommended to create a new account specifically for your bot, instead of
using your real account's credentials (if you have one).
Output behavior
These settings control how sopel-bsky displays skeet contents.
newline_replacement
Default value: "⏎"
Runs of one or more newlines in a skeet's text will be replaced with this
string, wrapped in spaces. For example, the default value
of ⏎ is used like this:
<Sopel> [skeet] Wil Wheaton (@wilwheaton.net) | 6 hours, 28 minutes ago |
Ranking Star Wars movies is a thing? ⏎ Okay, I'll get in on this. ⏎ 1.
Empire Strikes Back ⏎ 2. Star Wars 1977 theatrical release ⏎ 3. Rogue
One ⏎ 4. Return of the Jedi (because I was 11) ⏎ Everything else is
somewhere between "meh" and "why. why. y u do dis?" [sad kitten dot jpg]
The special value off will disable newline substitution. Note that leading &
trailing spaces in the value you enter will be ignored; this is a limitation of
Sopel's config format and parser.
Maintenance Note
This plugin as it exists now is mostly a proof of concept, just to have some minimal level of parity with the Sopel ecosystem's support for Twitter (it is not called X!) and Mastodon.
Showing details for links to Bluesky users and posts was tested and confirmed working as of the last release's publish date. The plugin is published in the hope that it will be useful; in case of breakage or needed improvements, pull requests are always welcome.
Changelog
0.2.0
Added:
- Configurable replacement character for newlines in skeet text (#11, #12)
Fixed:
- Fix handling of skeet links using DID instead of handle (#10)
General:
- Updated
atprotolibrary version for Python 3.9+ (#6) - Require newer, faster-to-start
pydanticon supported Python versions (#6) - Lazy-load
atprotoat plugin startup (#7)
0.1.2
- Bumped
atprotolibrary version - Fixed parsing ISO-format timestamps without milliseconds
- Meta-updates (package metadata, workflows)
Note: This release doesn't support Python 3.14 (which became stable earlier
in October 2025), because atproto doesn't support it yet.
0.1.1
Bumped atproto library version. Skeets with video (a recently added feature)
no longer cause exceptions.
0.1.0
First release of sopel-bsky.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sopel_bsky-0.2.0.tar.gz.
File metadata
- Download URL: sopel_bsky-0.2.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf2b89cbd1b8f71214e44623106eb086ccd0327a0d2f253d3b1b3c853c53cbff
|
|
| MD5 |
6256e9364c9ab48965b33e2ce8bc263d
|
|
| BLAKE2b-256 |
eea1e334385c953b4dd25cf976b516c314c55368305a7e31109c8b17578f9be8
|
Provenance
The following attestation bundles were made for sopel_bsky-0.2.0.tar.gz:
Publisher:
pypi.yml on dgw/sopel-bsky
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sopel_bsky-0.2.0.tar.gz -
Subject digest:
bf2b89cbd1b8f71214e44623106eb086ccd0327a0d2f253d3b1b3c853c53cbff - Sigstore transparency entry: 731936845
- Sigstore integration time:
-
Permalink:
dgw/sopel-bsky@c0727bb4485d99e67c94cc9cd9474db06c2c9c6e -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/dgw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@c0727bb4485d99e67c94cc9cd9474db06c2c9c6e -
Trigger Event:
release
-
Statement type:
File details
Details for the file sopel_bsky-0.2.0-py3-none-any.whl.
File metadata
- Download URL: sopel_bsky-0.2.0-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e154313fbcdeb7f74343e3cf461a2013d2745fd56146d9f55d5dd9672062649
|
|
| MD5 |
16911e68806ae972668acc032537b77e
|
|
| BLAKE2b-256 |
f4f397a8a4731fd96713dc9e97ca06750e65b7f8b3f3be8240adfdc99eb2f626
|
Provenance
The following attestation bundles were made for sopel_bsky-0.2.0-py3-none-any.whl:
Publisher:
pypi.yml on dgw/sopel-bsky
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sopel_bsky-0.2.0-py3-none-any.whl -
Subject digest:
6e154313fbcdeb7f74343e3cf461a2013d2745fd56146d9f55d5dd9672062649 - Sigstore transparency entry: 731936846
- Sigstore integration time:
-
Permalink:
dgw/sopel-bsky@c0727bb4485d99e67c94cc9cd9474db06c2c9c6e -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/dgw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@c0727bb4485d99e67c94cc9cd9474db06c2c9c6e -
Trigger Event:
release
-
Statement type: