Files
scootaloo/README.md
2020-03-02 14:07:23 +01:00

76 lines
2.3 KiB
Markdown

A Twitter to Mastodon copy bot written in Rust
It:
* copies the content (text) of the original Tweet
* dereferences the links
* gets every attach media (photo, video or gif)
If any of the last steps failed, the Toot gets published with the exact same text as the Tweet.
# Usage
First up, create a configuration file (default path is `/usr/local/etc/scootaloo.toml`). It will look like this:
```
[scootaloo]
last_tweet_path="/usr/local/etc/last_tweet" ## file containing the last tweet id received, must be writable
cache_path="/tmp/scootaloo" ## a dir where the temporary files will be download, must be writeable
[twitter]
username="NintendojoFR" ## User Timeline to copy
## Consumer/Access key for Twitter (can be generated at https://developer.twitter.com/en/apps)
consumer_key="MYCONSUMERKEY"
consumer_secret="MYCONSUMERSECRET"
access_key="MYACCESSKEY"
access_secret="MYACCESSSECRET"
```
Then run the command with the `register` subcommand:
```
scootaloo register --host https://m.nintendojo.fr
```
This will give you the end of the TOML file. It will look like this:
```
[mastodon]
base = "https://m.nintendojo.fr"
client_id = "MYCLIENTID"
client_secret = "MYCLIENTSECRET"
redirect = "urn:ietf:wg:oauth:2.0:oob"
token = "MYTOKEN"
```
You can then run the application via `cron` for example. Here is the generic usage:
```
USAGE:
scootaloo [OPTIONS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-c, --config <CONFIG_FILE> TOML config file for scootaloo (default /usr/local/etc/scootaloo.toml)
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
register Command to register to a Mastodon Instance
```
# Quirks
Scootaloo does not respect the spam limits imposed by Mastodon: it will make a 429 error if too much Tweets are converted to Toots in a short amount of time (and it will not recover from it). By default, it gets the last 200 tweets from the user timeline (which is a lot!). It is recommended to put a Tweet number into the `last_tweet` file before copying an old account.
You can do that with a command like:
```
echo -n '8189881949849' > last_tweet
```
**This file should only contain the last tweet ID without any other char (no EOL or new line).**
Oh and everything is sync (and not async) so this does not run at a blazing speed…