Releases: robertoszek/pleroma-bot
Releases · robertoszek/pleroma-bot
[1.2.0] 02-01-2023
New year, new release! 🎉
Fixed
- Bug: Handle exception when media attachments are geoblocked (403 Unauthorized).
- Regression: Take into account new structure of Twitter's archive (tweet.js changed to tweets.js)
- Bug: Handle special media types that don't include link to media in some cases. Thanks @tewhalen!
- Bug: Align max_tweets minimum value (10) with the warning message and actual value. Thanks @nemobis!
- Bug: Multiple video attachments cause HTTP 422 on Mastodon when posting.
- Bug: Exception when post was manually pinned on the Fedi account and later one was pinned on the Twitter account. Thanks @selyod-ka!
Enhancements
- Archive offline support, you no longer need a Twitter developer account or access to their API to process an archive.
- Mastodon limits, make URLs count as 23 characters (or the instance configured value) when determining if truncating is necessary.
- Added progress bars when gathering, processing and posting tweets
- Pleroma and Mastodon rate limits, handle HTTP 429 more gracefully (wait until they reset and continue)
- Added fallback for unknown software on target instance.
Added
- RSS support, you can now use an RSS feed as a source of tweets to post. Take a look at the docs for more info.
- Thread support, now mirrored users should be able to reply to their own posts and create reply threads.
- Native retweet support, now users in your config should be able to reblog their own and each other's posts if they are on the same instance.
bot
config mapping, for setting the bot flag on the target account.--lockerfile
argument, for specifying the path of the locker file that prevents collisions between multiple concurrent bot executions.guest
mapping, for enabling the use of Guest Tokens (so you don't need a Twitter Developer account). If notwitter_token
is present in your config it will default totrue
proxy_pool
mapping, list of proxies to use when being rate limited with Guest Tokensproxy
mapping, for enabling or disabling the use of proxies when using guest tokens- Caching IDs of posts published and skip mirroring tweet if associated published post is found to avoid duplicates. You can change this with the
avoid_duplicates
mapping. application_name
mapping, for specifying the Fediverse application name to use as a filter when getting the date of the latest published post by the bot. Thanks @reorx!- Configuration wizard, which generates a minimal config if none is found
content_warnings
, for specifying keywords that if found will add a content warning to the Fediverse postcustom_replacements
for replacing any text (Twitter handles that differ from the Fedi handle, for example) Thanks @selyod-ka!software
config mapping, for sidestepping the automatic detection of the type of software (mastodon, pleroma, misskey) running on the target instance and forcing a specific value. If your target is a fork of another project, for example, you would be able to force the bot to use whichever software (mastodon, pleroma, misskey) is the closest match for their API.
[1.1.0] 06-06-2022
Fixed
- Bug: Tweet media getting dropped if one of the attachments returned 404 Not Found
- Regression:
visibility
's value not being honored when defined as a global mapping in the config - Bug: Handle exception when the tweet is empty (no attachments, polls or body) due to dropping malformed attachments
- Bug: Handle exception when expanded URL is unreachable or returns any code other than 200
- Regression: Not asking for date when passing a specific Twitter username with
--forceDate
- Bug: Trying to find previously pinned post on empty Fediverse account resulted in an unhandled exception
- Bug: Truncating when exceeding post max length resulted in signature links being broken if original date was enabled
- Bug: Videos not being mirrored in some cases with extended tweets
Enhancements
- Target instance's character limits when posting are taken into account and posts text are truncated if necessary
- The rest of the users of the config are processed, even if another one fails (errors will be logged accordingly and pleroma-bot will exit with non-zero exit code)
- Recover from hitting rate limits for Twitter's API (HTTP 429 Too Many Requests)
- Twitter bio links are now expanded by default if the Fedi instance bio's maximum length is not exceeded
- Maximum number of attachments allowed per post are now taken into account depending on the instance type (Mastodon, Pleroma or Misskey)
- Alt text/Image descriptions are now mirrored on the Fediverse post image description/comment
Added
include_quotes
config mapping, for including or excluding quoted tweetsrandom_user_order
global config mapping, for randomizing the order in which users are processed. Thanks @nemobis!{{ website }}
can be used on the metadata fields config and will be replaced with the website listed on the Twitter's account profileno_profile
config mapping, for skipping profile update (picture, banner, display name and bio) on a per-user basis
[1.0.2] 21-02-2022
Added
- Support for Misskey instances! 🎉
Fixed
- Logger standard output for systems not using UTF-8 encoding
- Profile update: Regression when Twitter account does not have a profile image or banner
- Media attachments being added to the Fediverse post in the wrong order in some cases
Enhancements
- RTs text no longer gets truncated
- Info message when media upload returns 422 (Unprocessable Entity) due to Paperclip/file identifying the wrong mimetype
[1.0.1] 10-02-2022
Fixed
- Locale issue on Mac if the LANG environment variables were not set
- RTs media attachments being duplicated if the referenced tweet was nested too deep
- Pinned tweets being posted twice if they were part of the more recent batch of retrieved tweets
Added
pleroma-bot
can be run as a daemon now by using the flag--daemon
. (more info on the docs)- A systemd service is automatically installed with the AUR package (and can be found in the repo as
pleroma-bot.service
)
[1.0.0] 16-01-2022
v1.0.0 is out! 🎉
Fixed
max_tweets
not accepting values higher than 100- Video: Not getting the best bitrate version of video attachments in some cases
- Polls: not being retrieved for accounts with protected tweets
- RTs: not getting original tweet media attachments
Added
twitter_username
value can be a list now, for having multiple Twitter accounts as sources for one target Fediverse account.- A Twitter archive can be provided with
--archive
(more info in the docs) - Links to Twitter attachments (video, images) are no longer explicitly included on the post's body text by default. You can choose to keep adding them with
keep_media_links
. This option does not affect the upload of attachments. - Youtube links can be replaced with
invidious
andinvidious_base_url
Enhancements
bio_text
is no longer a mandatory mapping on the config- Hugely improved performance (around 4x) when processing tweets
- Implemented safety measures for avoiding collision with multiple instances of the bot running at the same time
[0.8.9] - 2021-12-05
Added
original_date
andoriginal_date_format
for adding the original tweet's creation date to the post body
Fixed
- URL expansion when regex match doesn't include protocol (http, https)
[0.8.8] - 2021-05-15
Added
twitter_bio
mapping for allowing the user to choose if they want to retrieve and append the Twitter bio to their Fediverse user or not.
[0.8.7] - 2021-05-01
Added
delay_post
mapping, for setting how long to wait (in seconds) between each post request to avoid hitting rate limits of the target Fediverse instancehashtags
mapping (list), for filtering out tweets which don't match any of themtweet_ids
mapping, for listing specific tweets to retrieve and post on the Fediverse account
Enhancements
- Provide a more meaningful exception message when an HTTP error code 422 is returned when updating the Fediverse profile
- Referenced more directly in the documentation the need to use an account ID instead of a username when targeting a Mastodon instance
[0.8.6] - 2021-02-27
Fixed
- Log file handler not being attached when running as a module
[0.8.5] - 2021-02-23
Added
- Argument
--config
, the user can specify a custom path for the config.yml file to be parsed - Argument
--log
, the user can specify a custom path for the error.log to create during execution - Support for localization
Enhancements
- Created a package in the Arch User Repository: python-pleroma-bot
- Added es_ES translation
- Created documentation site