mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-22 19:28:09 -06:00
Mastodon: Added user aliases
This commit is contained in:
parent
00a5ad9e59
commit
10e23b039b
@ -8,6 +8,7 @@ During the development of the current TWBlue version, Twitter has cut out access
|
|||||||
* Mastodon:
|
* Mastodon:
|
||||||
* it is possible to add descriptions for all media available on Mastodon (audio, photos, video and Givs). ([#516](https://github.com/MCV-Software/TWBlue/issues/516))
|
* it is possible to add descriptions for all media available on Mastodon (audio, photos, video and Givs). ([#516](https://github.com/MCV-Software/TWBlue/issues/516))
|
||||||
* TWBlue can now perform OCR in attached images.
|
* TWBlue can now perform OCR in attached images.
|
||||||
|
* It is possible to add aliases to mastodon users. Also, the "manage user aliases" setting, located on the application menu within the menu bar can be used to add, edit or remove aliases.
|
||||||
* Implemented "Hide emojis on usernames" in both GUI and invisible interface.
|
* Implemented "Hide emojis on usernames" in both GUI and invisible interface.
|
||||||
* Added an experimental feature to recover from connection errors. When making a post, if the post cannot be published due to any kind of error, TWBlue will bring up the dialog where the post was composed, so you can give the post a second chance or save the post's text. This feature should work for threads, posts with attachments, polls and replies. ([#527,](https://github.com/MCV-Software/TWBlue/issues/527) [#526,](https://github.com/MCV-Software/TWBlue/issues/526) [#377,](https://github.com/MCV-Software/TWBlue/issues/377) [#137,](https://github.com/MCV-Software/TWBlue/issues/137) [#108](https://github.com/MCV-Software/TWBlue/issues/108))
|
* Added an experimental feature to recover from connection errors. When making a post, if the post cannot be published due to any kind of error, TWBlue will bring up the dialog where the post was composed, so you can give the post a second chance or save the post's text. This feature should work for threads, posts with attachments, polls and replies. ([#527,](https://github.com/MCV-Software/TWBlue/issues/527) [#526,](https://github.com/MCV-Software/TWBlue/issues/526) [#377,](https://github.com/MCV-Software/TWBlue/issues/377) [#137,](https://github.com/MCV-Software/TWBlue/issues/137) [#108](https://github.com/MCV-Software/TWBlue/issues/108))
|
||||||
* When playing media items, TWBlue will prefer remote URL streams and fall back to instance cached stream URL'S.
|
* When playing media items, TWBlue will prefer remote URL streams and fall back to instance cached stream URL'S.
|
||||||
|
@ -157,9 +157,9 @@ class Controller(object):
|
|||||||
widgetUtils.connect_event(self.view.nb, widgetUtils.NOTEBOOK_PAGE_CHANGED, self.buffer_changed)
|
widgetUtils.connect_event(self.view.nb, widgetUtils.NOTEBOOK_PAGE_CHANGED, self.buffer_changed)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_documentation, self.view.doc)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_documentation, self.view.doc)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_changelog, self.view.changelog)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_changelog, self.view.changelog)
|
||||||
# widgetUtils.connect_event(self.view, widgetUtils.MENU, self.add_alias, self.view.addAlias)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.add_alias, self.view.addAlias)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.update_buffer, self.view.update_buffer)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.update_buffer, self.view.update_buffer)
|
||||||
# widgetUtils.connect_event(self.view, widgetUtils.MENU, self.manage_aliases, self.view.manageAliases)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.manage_aliases, self.view.manageAliases)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.report_error, self.view.reportError)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.report_error, self.view.reportError)
|
||||||
|
|
||||||
def set_systray_icon(self):
|
def set_systray_icon(self):
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import wx
|
import wx
|
||||||
import logging
|
import logging
|
||||||
|
import output
|
||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
from mysc import restart
|
from mysc import restart
|
||||||
from wxUI.dialogs.mastodon import search as search_dialogs
|
from wxUI.dialogs.mastodon import search as search_dialogs
|
||||||
from wxUI.dialogs.mastodon import dialogs
|
from wxUI.dialogs.mastodon import dialogs
|
||||||
|
from wxUI.dialogs import userAliasDialogs
|
||||||
from wxUI import commonMessageDialogs
|
from wxUI import commonMessageDialogs
|
||||||
from . import userActions, settings
|
from . import userActions, settings
|
||||||
|
|
||||||
@ -21,7 +23,7 @@ class Handler(object):
|
|||||||
updateProfile=None,
|
updateProfile=None,
|
||||||
menuitem_search=_("&Search"),
|
menuitem_search=_("&Search"),
|
||||||
lists=None,
|
lists=None,
|
||||||
manageAliases=None,
|
manageAliases=_("Manage user aliases"),
|
||||||
# In item menu.
|
# In item menu.
|
||||||
compose=_("&Post"),
|
compose=_("&Post"),
|
||||||
reply=_("Re&ply"),
|
reply=_("Re&ply"),
|
||||||
@ -36,7 +38,7 @@ class Handler(object):
|
|||||||
follow=_("&Actions..."),
|
follow=_("&Actions..."),
|
||||||
timeline=_("&View timeline..."),
|
timeline=_("&View timeline..."),
|
||||||
dm=_("Direct me&ssage"),
|
dm=_("Direct me&ssage"),
|
||||||
addAlias=None,
|
addAlias=_("Add a&lias"),
|
||||||
addToList=None,
|
addToList=None,
|
||||||
removeFromList=None,
|
removeFromList=None,
|
||||||
details=None,
|
details=None,
|
||||||
@ -223,3 +225,33 @@ class Handler(object):
|
|||||||
buffer.session.settings.write()
|
buffer.session.settings.write()
|
||||||
buffer.session.save_persistent_data()
|
buffer.session.save_persistent_data()
|
||||||
restart.restart_program()
|
restart.restart_program()
|
||||||
|
|
||||||
|
def add_alias(self, buffer):
|
||||||
|
if not hasattr(buffer, "get_item"):
|
||||||
|
return
|
||||||
|
item = buffer.get_item()
|
||||||
|
if buffer.type == "user":
|
||||||
|
users = [item.acct]
|
||||||
|
elif buffer.type == "baseBuffer":
|
||||||
|
if item.reblog != None:
|
||||||
|
users = [user.acct for user in item.reblog.mentions if user.id != buffer.session.db["user_id"]]
|
||||||
|
if item.reblog.account.acct not in users and item.account.id != buffer.session.db["user_id"]:
|
||||||
|
users.insert(0, item.reblog.account.acct)
|
||||||
|
else:
|
||||||
|
users = [user.acct for user in item.mentions if user.id != buffer.session.db["user_id"]]
|
||||||
|
if item.account.acct not in users:
|
||||||
|
users.insert(0, item.account.acct)
|
||||||
|
dlg = userAliasDialogs.addAliasDialog(_("Add an user alias"), users)
|
||||||
|
if dlg.get_response() == wx.ID_OK:
|
||||||
|
user, alias = dlg.get_user()
|
||||||
|
if user == "" or alias == "":
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
full_user = buffer.session.api.account_lookup(user)
|
||||||
|
except Exception as e:
|
||||||
|
log.exception("Error adding alias to user {}.".format(user))
|
||||||
|
return
|
||||||
|
buffer.session.settings["user-aliases"][str(full_user.id)] = alias
|
||||||
|
buffer.session.settings.write()
|
||||||
|
output.speak(_("Alias has been set correctly for {}.").format(user))
|
||||||
|
pub.sendMessage("alias-added")
|
@ -53,5 +53,5 @@ actions = {
|
|||||||
"audio": _(u"Try to play a media file"),
|
"audio": _(u"Try to play a media file"),
|
||||||
"update_buffer": _(u"Updates the buffer and retrieves possible lost items there."),
|
"update_buffer": _(u"Updates the buffer and retrieves possible lost items there."),
|
||||||
"ocr_image": _(u"Extracts the text from a picture and displays the result in a dialog."),
|
"ocr_image": _(u"Extracts the text from a picture and displays the result in a dialog."),
|
||||||
# "add_alias": _("Adds an alias to an user"),
|
"add_alias": _("Adds an alias to an user"),
|
||||||
}
|
}
|
@ -79,7 +79,7 @@ def get_user_alias(user, settings):
|
|||||||
aliases = settings.get("user-aliases")
|
aliases = settings.get("user-aliases")
|
||||||
if aliases == None:
|
if aliases == None:
|
||||||
return demoji_user(display_name, settings)
|
return demoji_user(display_name, settings)
|
||||||
user_alias = aliases.get(user.id)
|
user_alias = aliases.get(str(user.id))
|
||||||
if user_alias != None:
|
if user_alias != None:
|
||||||
return user_alias
|
return user_alias
|
||||||
return demoji_user(display_name, settings)
|
return demoji_user(display_name, settings)
|
||||||
|
@ -21,7 +21,6 @@ class mainFrame(wx.Frame):
|
|||||||
self.lists = self.menubar_application.Append(wx.ID_ANY, _(u"&Lists manager"))
|
self.lists = self.menubar_application.Append(wx.ID_ANY, _(u"&Lists manager"))
|
||||||
self.lists.Enable(False)
|
self.lists.Enable(False)
|
||||||
self.manageAliases = self.menubar_application.Append(wx.ID_ANY, _("Manage user aliases"))
|
self.manageAliases = self.menubar_application.Append(wx.ID_ANY, _("Manage user aliases"))
|
||||||
self.manageAliases.Enable(False)
|
|
||||||
self.keystroke_editor = self.menubar_application.Append(wx.ID_ANY, _(u"&Edit keystrokes"))
|
self.keystroke_editor = self.menubar_application.Append(wx.ID_ANY, _(u"&Edit keystrokes"))
|
||||||
self.account_settings = self.menubar_application.Append(wx.ID_ANY, _(u"Account se&ttings"))
|
self.account_settings = self.menubar_application.Append(wx.ID_ANY, _(u"Account se&ttings"))
|
||||||
self.prefs = self.menubar_application.Append(wx.ID_PREFERENCES, _(u"&Global settings"))
|
self.prefs = self.menubar_application.Append(wx.ID_PREFERENCES, _(u"&Global settings"))
|
||||||
@ -46,7 +45,6 @@ class mainFrame(wx.Frame):
|
|||||||
self.timeline = self.menubar_user.Append(wx.ID_ANY, _(u"&View timeline..."))
|
self.timeline = self.menubar_user.Append(wx.ID_ANY, _(u"&View timeline..."))
|
||||||
self.dm = self.menubar_user.Append(wx.ID_ANY, _(u"Direct me&ssage"))
|
self.dm = self.menubar_user.Append(wx.ID_ANY, _(u"Direct me&ssage"))
|
||||||
self.addAlias = self.menubar_user.Append(wx.ID_ANY, _("Add a&lias"))
|
self.addAlias = self.menubar_user.Append(wx.ID_ANY, _("Add a&lias"))
|
||||||
self.addAlias.Enable(False)
|
|
||||||
self.addToList = self.menubar_user.Append(wx.ID_ANY, _(u"&Add to list"))
|
self.addToList = self.menubar_user.Append(wx.ID_ANY, _(u"&Add to list"))
|
||||||
self.removeFromList = self.menubar_user.Append(wx.ID_ANY, _(u"R&emove from list"))
|
self.removeFromList = self.menubar_user.Append(wx.ID_ANY, _(u"R&emove from list"))
|
||||||
self.details = self.menubar_user.Append(wx.ID_ANY, _(u"Show user &profile"))
|
self.details = self.menubar_user.Append(wx.ID_ANY, _(u"Show user &profile"))
|
||||||
|
Loading…
Reference in New Issue
Block a user