Merge branch 'type-bookmarks' into 'master'

Type bookmarks

See merge request poezio/poezio!138
This commit is contained in:
Maxime Buquet 2020-05-31 01:35:26 +02:00
commit ce9d59f19e
3 changed files with 9 additions and 7 deletions

View file

@ -30,7 +30,7 @@ Adding a remote bookmark:
import functools import functools
import logging import logging
from typing import Optional, List, Union from typing import Optional, List, Literal, Union
from slixmpp import InvalidJID, JID from slixmpp import InvalidJID, JID
from slixmpp.plugins.xep_0048 import Bookmarks, Conference, URL from slixmpp.plugins.xep_0048 import Bookmarks, Conference, URL
@ -39,6 +39,8 @@ from poezio.config import config
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
Method = Union[Literal['local'], Literal['remote']]
class Bookmark: class Bookmark:
def __init__(self, def __init__(self,
jid: Union[JID, str], jid: Union[JID, str],
@ -46,7 +48,7 @@ class Bookmark:
autojoin=False, autojoin=False,
nick: Optional[str] = None, nick: Optional[str] = None,
password: Optional[str] = None, password: Optional[str] = None,
method='local') -> None: method: Method = 'local') -> None:
try: try:
if isinstance(jid, JID): if isinstance(jid, JID):
self._jid = jid self._jid = jid
@ -82,7 +84,7 @@ class Bookmark:
return self._method return self._method
@method.setter @method.setter
def method(self, value: str): def method(self, value: Method):
if value not in ('local', 'remote'): if value not in ('local', 'remote'):
log.debug('Could not set bookmark storing method: %s', value) log.debug('Could not set bookmark storing method: %s', value)
return return

View file

@ -18,7 +18,7 @@ from poezio import common
from poezio import pep from poezio import pep
from poezio import tabs from poezio import tabs
from poezio import multiuserchat as muc from poezio import multiuserchat as muc
from poezio.bookmarks import Bookmark from poezio.bookmarks import Bookmark, Method as BookmarkMethod
from poezio.common import safeJID from poezio.common import safeJID
from poezio.config import config, DEFAULT_CONFIG, options as config_opts from poezio.config import config, DEFAULT_CONFIG, options as config_opts
from poezio.contact import Contact, Resource from poezio.contact import Contact, Resource
@ -444,7 +444,7 @@ class CommandCore:
self._add_bookmark(jid, autojoin, password, 'remote') self._add_bookmark(jid, autojoin, password, 'remote')
def _add_bookmark(self, jid, autojoin, password, method): def _add_bookmark(self, jid: str, autojoin: bool, password: str, method: BookmarkMethod) -> None:
nick = None nick = None
if not jid: if not jid:
tab = self.core.tabs.current_tab tab = self.core.tabs.current_tab
@ -478,7 +478,7 @@ class CommandCore:
self.core.bookmarks.save_remote(self.core.xmpp, self.core.bookmarks.save_remote(self.core.xmpp,
self.core.handler.on_bookmark_result) self.core.handler.on_bookmark_result)
def _add_wildcard_bookmarks(self, method): def _add_wildcard_bookmarks(self, method: BookmarkMethod):
new_bookmarks = [] new_bookmarks = []
for tab in self.core.get_tabs(tabs.MucTab): for tab in self.core.get_tabs(tabs.MucTab):
bookmark = self.core.bookmarks[tab.jid.bare] bookmark = self.core.bookmarks[tab.jid.bare]

View file

@ -95,7 +95,7 @@ class BookmarksTab(Tab):
def send_cb(success): def send_cb(success):
if success: if success:
self.core.information('Bookmarks saved.', 'Info') self.core.information('Bookmarks saved', 'Info')
else: else:
self.core.information('Remote bookmarks not saved.', 'Error') self.core.information('Remote bookmarks not saved.', 'Error')