Skip to main content

mirrorstr

Tool for mirroring Nostr posts on Twitter, and Twitter posts on Nostr

Mirrorstr is a tool for mirroring Nostr and Twitter posts. The application will monitor a user's account on the two platforms and reflect posts from one into the other. Mirrorstr will help users save time and make sure all audiences get access to a their posts.

Under early development.

Pronunciation: MIR-ror-str (first syllable is accented)

Disclaimer: With the recent post-Elon restrictions imposed on the free Twitter API, the app needed a Twitter scraper to be plugged in to monitor Twitter posts, instead of relying on the API. A way to authenticate and post to the Twitter handle without relying on the Twitter API will be implemented as well as well. The Twitter API is mostly unsupported as of now in the free tier, and relying on what will be of the API in the future is a sure source of frustration.

The app is intended to be run locally from the command line.

Libraries: https://github.com/jeffthibault/python-nostr (and its dependencies) https://github.com/JustAnotherArchivist/snscrape (and its dependencies)

Dev version of snscrape

This project depends on the dev version of snscrape, an excellent twitter scraping library. The dev version is available on PyPI, and an additional command is needed to install it.

Install Mirrorstr

pip install mirrorstr && pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
  • Not compatible with arm macs

TODO & Timeline

The first functionality to develop will be Twitter => Nostr. It will take less time to develop and I think has higher demand at the moment.

On the other hand, I believe that the Nostr => Twitter functionality is the end-goal for the application. The goal is for users to be on Nostr primarily and to use the application as a time-saver so their Nostr posts get mirrored on Twitter while the migration happens.

1 - Twitter => Nostr functionality

[x] Twitter scraper - using the excellent tool by JustAnotherArchivist, snscrape (https://github.com/JustAnotherArchivist/snscrape)
[x] Parse twitter content after scraping
[x] Nostr posting [ ] Detect and import full threads

2 - Mirrorstr config file for Twitter => Nostr

[ ] Select relays to post to
[ ] Add private key directly to config file, or always ask during initialization
[ ] Select monitored Twitter handle

3 - Nostr => Twitter

[x] Monitoring Nostr notes from a specific npub
  [ ] More granular Nostr note filtration to avoid replies, download images/videos, and more
[ ] Twitter authentication (free API seems to be restricting this functionality as well)
[ ] Post to Twitter

4 - Mirrorstr config file for Nostr => Twitter

[ ] Add npub(s) to monitor
[ ] Select monitored relays
[ ] Authenticate Twitter account

npub1ljraxpufmzjnfdvsw0tq9kwnypctwxus8n9w388uhkd8h73pzzlqgmdzfy / @pleblira

Metadata

Release files for Mirrorstr 0.0.81

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Mirrorstr 0.0.81
File Size Uploaded
Mirrorstr-0.0.81.tar.gz 6.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Mirrorstr 0.0.81
File Interpreter ABI Platform
Mirrorstr-0.0.81-py3-none-any.whl Python 3 none any Details

Total release size: 14.2 kB

Release files / Mirrorstr-0.0.81.tar.gz

Download URL Mirrorstr-0.0.81.tar.gz
Size 6.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0644809749cee0cde4556d3cab35d97433122d4b347148635714a53219f9b83e
BLAKE2b-256 checksum
How to use checksums
5d7d4f8cd3593977301c8854565f6bb3fcc4e6e03f6b40c60eb59eaa4c9b7387
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.1

Release files / Mirrorstr-0.0.81-py3-none-any.whl

Download URL Mirrorstr-0.0.81-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8dd53633975d696d6753f19b83afc69e349fb866f35f91e1ac5ed06bd1f6339f
BLAKE2b-256 checksum
How to use checksums
52947ed3ce37d0d8e77eaa2805dd5534ed45495644be6a405cc319ff946d3721
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.1

Release history Release notifications | RSS feed

This release

0.0.81 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page