Improve conversation replies

This commit is contained in:
Manuel Cortez 2022-11-16 10:31:17 -06:00
parent f5e52c6387
commit 7c80c9d842
No known key found for this signature in database
GPG Key ID: 9E0735CA15EFE790

View File

@ -4,7 +4,9 @@ import logging
import wx import wx
import widgetUtils import widgetUtils
import output import output
from controller.mastodon import messages
from controller.buffers.mastodon.base import BaseBuffer from controller.buffers.mastodon.base import BaseBuffer
from mysc.thread_utils import call_threaded
from sessions.mastodon import utils, templates from sessions.mastodon import utils, templates
from wxUI import buffers, commonMessageDialogs from wxUI import buffers, commonMessageDialogs
log = logging.getLogger("controller.buffers.mastodon.conversations") log = logging.getLogger("controller.buffers.mastodon.conversations")
@ -19,14 +21,14 @@ class ConversationListBuffer(BaseBuffer):
if index > -1 and self.session.db.get(self.name) != None and len(self.session.db[self.name]) > index: if index > -1 and self.session.db.get(self.name) != None and len(self.session.db[self.name]) > index:
return self.session.db[self.name][index]["last_status"] return self.session.db[self.name][index]["last_status"]
def get_formatted_message(self):
return self.compose_function(self.get_conversation(), self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])[1]
def get_conversation(self): def get_conversation(self):
index = self.buffer.list.get_selected() index = self.buffer.list.get_selected()
if index > -1 and self.session.db.get(self.name) != None: if index > -1 and self.session.db.get(self.name) != None:
return self.session.db[self.name][index] return self.session.db[self.name][index]
def get_formatted_message(self):
return self.compose_function(self.get_conversation(), self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])[1]
def get_message(self): def get_message(self):
conversation = self.get_conversation() conversation = self.get_conversation()
if conversation == None: if conversation == None:
@ -167,6 +169,24 @@ class ConversationListBuffer(BaseBuffer):
def destroy_status(self): def destroy_status(self):
pass pass
def reply(self, *args):
item = self.get_item()
conversation = self.get_conversation()
visibility = item.visibility
title = _("Conversation with {}").format(conversation.accounts[0].username)
caption = _("Write your message here")
users = ["@{} ".format(user.acct) for user in conversation.accounts]
users_str = "".join(users)
toot = messages.toot(session=self.session, title=title, caption=caption, text=users_str)
visibility_settings = dict(public=0, unlisted=1, private=2, direct=3)
toot.message.visibility.SetSelection(visibility_settings.get(visibility))
response = toot.message.ShowModal()
if response == wx.ID_OK:
toot_data = toot.get_data()
call_threaded(self.session.send_toot, reply_to=item.id, toots=toot_data, visibility=visibility)
if hasattr(toot.message, "destroy"):
toot.message.destroy()
class ConversationBuffer(BaseBuffer): class ConversationBuffer(BaseBuffer):
def __init__(self, toot, *args, **kwargs): def __init__(self, toot, *args, **kwargs):