From 731781069ac7715ef4f2b1df6b562b91e4656a1c Mon Sep 17 00:00:00 2001 From: n Date: Sat, 6 Feb 2021 15:27:52 +0100 Subject: [PATCH] add pleroma's content_type support --- docs/source/configure.rst | 9 +++++++++ feed2toot/tootpost.py | 13 ++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/source/configure.rst b/docs/source/configure.rst index a16fd82..bd0be7e 100644 --- a/docs/source/configure.rst +++ b/docs/source/configure.rst @@ -68,6 +68,11 @@ In order to configure Feed2toot, you need to create a feed2toot.ini file (or any [media] custom=/var/lib/feed2toot/media/logo.png + ; Optional, if you wish to post to a Pleroma instance + [pleroma] + ; Specify content_type to set the content type of your post on Pleroma. + content_type=text/plain + For the [mastodon] section: - instance_url: the url of your Mastodon instance @@ -115,6 +120,10 @@ For the [media] section: - custom: the path to a media (should be supported by Mastodon) to be posted with every Mastodon post. +For the [pleroma] section: + +- content_type: Specify content_type to set the content type of your post on Pleroma. It accepts ‘text/plain’ (default), ‘text/markdown’, ‘text/html’ and ‘text/bbcode'. This parameter is not supported on Mastodon servers, but will be safely ignored if set. Use proper syntax in toot parameter of [rss] section. + Example of the list of hash tags ================================ The list of hash tags is a simple text file with one hash tag composed by several words on a single line:: diff --git a/feed2toot/tootpost.py b/feed2toot/tootpost.py index 43eae3f..fed10c9 100644 --- a/feed2toot/tootpost.py +++ b/feed2toot/tootpost.py @@ -31,17 +31,24 @@ class TootPost: def main(self): '''Main of the TweetPost class''' + mastodon_feature_set = 'mainline' + toot_content_type = None + if 'pleroma' in self.config.sections(): + mastodon_feature_set='pleroma' + if self.config.has_option('pleroma', 'content_type'): + toot_content_type=self.config.get('pleroma', 'content_type', fallback='text/plain') mastodon = Mastodon( client_id=self.config.get('mastodon', 'client_credentials'), access_token=self.config.get('mastodon', 'user_credentials'), - api_base_url=self.config.get('mastodon', 'instance_url') + api_base_url=self.config.get('mastodon', 'instance_url'), + feature_set=mastodon_feature_set ) toot_visibility = self.config.get('mastodon', 'toot_visibility', fallback='public') if 'custom' in self.options['media']: mediaid = mastodon.media_post(self.config['media']['custom']) - mastodon.status_post(self.toot, media_ids=[mediaid], visibility=toot_visibility) + mastodon.status_post(self.toot, media_ids=[mediaid], visibility=toot_visibility, content_type=toot_content_type) else: - mastodon.status_post(self.toot, visibility=toot_visibility) + mastodon.status_post(self.toot, visibility=toot_visibility, content_type=toot_content_type) def storeit(self): '''Indicate if the tweet should be stored or not'''