From: Simon Tatham Date: Sat, 9 Dec 2023 17:41:09 +0000 (+0000) Subject: Allow tagging posts with a content warning. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=ce3c9cbe7ec451ebff4ae027a9992e149a2f6a33;p=mastodonochrome.git Allow tagging posts with a content warning. --- diff --git a/cursesclient.py b/cursesclient.py index 3f49109..1768d34 100644 --- a/cursesclient.py +++ b/cursesclient.py @@ -1042,6 +1042,7 @@ class Composer(Activity, EditorCommon): self.url_cost = 23 self.language = "en" # FIXME: find a better default from somewhere + self.content_warning = "" def render(self): y = 0 @@ -1174,6 +1175,9 @@ class Composer(Activity, EditorCommon): } if self.reply_id is not None: params["in_reply_to_id"] = self.reply_id + if self.content_warning != "": + params["sensitive"] = True + params["spoiler_text"] = self.content_warning if self.cc.readonly: print("post", file=sys.stderr) for key, value in params.items(): @@ -1198,6 +1202,10 @@ class PostMenu(Menu): self.items.append(text.MenuKeypressLine( 'A', text.ColouredString("Re-edit post"))) self.items.append(text.BlankLine()) + cw = ('none' if self.composer.content_warning == '' + else f"'{self.composer.content_warning}'") + self.items.append(text.MenuKeypressLine( + 'W', text.ColouredString("Content warning: " + cw))) self.items.append(text.MenuKeypressLine( 'L', text.ColouredString(f"Language: '{self.composer.language}'"))) self.renormalise() @@ -1206,6 +1214,10 @@ class PostMenu(Menu): self.composer.language = lang self.refresh_items() + def set_content_warning(self, cw): + self.composer.content_warning = cw + self.refresh_items() + def handle_key(self, ch): if ch in {'q', 'Q'}: self.cc.composer = None @@ -1216,6 +1228,10 @@ class PostMenu(Menu): self.push_to(BottomLinePrompt( self.cc, self.set_language, "Language tag for post: ", self.composer.language)) + elif ch in {'w', 'W'}: + self.push_to(BottomLinePrompt( + self.cc, self.set_content_warning, "Content warning: ", + self.composer.content_warning)) elif ch in {' '}: self.composer.post() self.cc.composer = None