diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | data/io.poez.Poezio.appdata.xml | 51 | ||||
-rw-r--r-- | poezio/core/core.py | 6 | ||||
-rw-r--r-- | poezio/mam.py | 19 | ||||
-rwxr-xr-x | poezio/theming.py | 2 |
5 files changed, 66 insertions, 13 deletions
@@ -10,6 +10,7 @@ https://dev.louiz.org/projects/poezio/roadmap - Contacts won’t be seen playing games or music when they actually stop doing so. +- /leave now toggles off the autojoin flag instead of removing the bookmark. # Forgotten additions diff --git a/data/io.poez.Poezio.appdata.xml b/data/io.poez.Poezio.appdata.xml index ce0d1a86..2ab4f79c 100644 --- a/data/io.poez.Poezio.appdata.xml +++ b/data/io.poez.Poezio.appdata.xml @@ -1,17 +1,51 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright 2018 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> --> +<!-- Copyright 2018-2020 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> --> <component type="console-application"> <id>io.poez.Poezio</id> <name>Poezio</name> <summary>Poezio is a free console XMPP client</summary> <project_license>Zlib</project_license> <metadata_license>CC0-1.0</metadata_license> + <developer_name>Poezio Team</developer_name> + <icon type="remote">https://poez.io/img/logo.svg</icon> <url type="homepage">https://poez.io</url> - <url type="bugtracker">https://dev.louiz.org/projects/poezio/issues</url> - <url type="help">https://doc.poez.io/</url> + <url type="bugtracker">https://lab.louiz.org/poezio/poezio/-/issues</url> + <url type="help">https://doc.poez.io</url> + + <description> + <p> + Poezio is a free console XMPP client (the protocol on which the Jabber IM + network is built). + </p> + <p> + Its goal is to let you connect very easily (no account creation needed) + to the network and join various chatrooms, immediately. It tries to look + like the most famous IRC clients (weechat, irssi, etc). Many commands are + identical and you won’t be lost if you already know these clients. + Configuration can be made in a configuration file or directly from the + client. + </p> + <p> + You’ll find the light, fast, geeky and anonymous spirit of IRC while + using a powerful, standard and open protocol. + </p> + + <p>Features</p> + + <ul> + <li>Encryption: TLS, OTR, always chat with encryption.</li> + <li>Chatrooms: Discuss on your favorite topics with your friends or strangers.</li> + <li>Carbon copies: Switch devices while staying in the same conversations without losing messages.</li> + <li>Plugins: Add the features you want through official or other plugins.</li> + + <li>Corrections: Fix your last sent messages.</li> + <li>Rich text: Send and receive messages with colors and formatting.</li> + <li>Chat state notifications: See the writing status of your contacts.</li> + <li>Anonymous: Use XMPP without an account.</li> + </ul> + </description> - <icon width="80" height="80">data/poezio_80.png</icon> <screenshots> <screenshot type="default"> <image>https://poez.io/img/screenshot.png</image> @@ -24,11 +58,18 @@ <category>InstantMessaging</category> <category>Network</category> </categories> + + <content_rating type="oars-1.1"> + <content_attribute id="social-chat">intense</content_attribute> + </content_rating> + <provides> <binary>poezio</binary> </provides> - <developer_name>Poezio Team</developer_name> + <releases> + <release version="0.13" date="2020-05-24"/> + <release version="0.12.1" date="2018-09-12"/> <release version="0.12" date="2018-08-13"/> <release version="0.11" date="2017-01-31"/> <release version="0.10" date="2016-10-09"/> diff --git a/poezio/core/core.py b/poezio/core/core.py index 973c9103..3ad15719 100644 --- a/poezio/core/core.py +++ b/poezio/core/core.py @@ -543,6 +543,12 @@ class Core: default_tab.on_gain_focus() self.tabs.append(default_tab) self.information('Welcome to poezio!', 'Info') + if curses.COLORS < 256: + self.information( + 'Your terminal does not appear to support 256 colors, the UI' + ' colors will probably be ugly', + 'Error', + ) if firstrun: self.information( 'It seems that it is the first time you start poezio.\n' diff --git a/poezio/mam.py b/poezio/mam.py index 371b34dd..31ca2f0c 100644 --- a/poezio/mam.py +++ b/poezio/mam.py @@ -46,8 +46,9 @@ def make_line( tab: tabs.ChatTab, text: str, time: datetime, - nick: str, + jid: JID, identifier: str = '', + deterministic: bool = True, ) -> Message: """Adds a textual entry in the TextBuffer""" @@ -55,9 +56,8 @@ def make_line( time = time.replace(tzinfo=timezone.utc).astimezone(tz=None) time = time.replace(tzinfo=None) - deterministic = config.get_by_tabname('deterministic_nick_colors', tab.jid.bare) if isinstance(tab, tabs.MucTab): - nick = nick.split('/')[1] + nick = jid.resource user = tab.get_user_by_name(nick) if deterministic: if user: @@ -76,11 +76,12 @@ def make_line( color = xhtml.colors.get(color) color = (color, -1) else: - if nick.split('/')[0] == tab.core.xmpp.boundjid.bare: + if jid.bare == tab.core.xmpp.boundjid.bare: + nick = tab.core.own_nick color = get_theme().COLOR_OWN_NICK else: color = get_theme().COLOR_REMOTE_USER - nick = tab.get_nick() + nick = tab.get_nick() return Message( txt=text, identifier=identifier, @@ -133,7 +134,7 @@ def _parse_message(msg: SMessage) -> Dict: message = forwarded['stanza'] return { 'time': forwarded['delay']['stamp'], - 'nick': str(message['from']), + 'jid': message['from'], 'text': message['body'], 'identifier': message['origin-id'] } @@ -147,13 +148,17 @@ async def retrieve_messages(tab: tabs.ChatTab, msg_count = 0 msgs = [] to_add = [] + deterministic = config.get_by_tabname( + 'deterministic_nick_colors', + tab.jid.bare + ) try: async for rsm in results: for msg in rsm['mam']['results']: if msg['mam_result']['forwarded']['stanza'] \ .xml.find('{%s}%s' % ('jabber:client', 'body')) is not None: args = _parse_message(msg) - msgs.append(make_line(tab, **args)) + msgs.append(make_line(tab, deterministic=deterministic, **args)) for msg in reversed(msgs): to_add.append(msg) msg_count += 1 diff --git a/poezio/theming.py b/poezio/theming.py index fc34ae39..6f1d8226 100755 --- a/poezio/theming.py +++ b/poezio/theming.py @@ -448,7 +448,7 @@ def to_curses_attr( colors = color_tuple bold = False - if curses.COLORS != 256: + if curses.COLORS < 256: # We are not in a term supporting 256 colors, so we convert # colors to numbers between -1 and 8 colors = (color_256_to_16(colors[0]), color_256_to_16(colors[1])) |