summaryrefslogtreecommitdiff
path: root/poezio
AgeCommit message (Collapse)Author
2020-02-17plugins: Allow entry_points to be registeredMaxime “pep” Buquet
It's currently impractical to use out-of-tree plugins that want to be distributed via distribution channels. Poezio now looks for every entry point registered in the `poezio_plugins` entry group, and will use the first matching module with the specified name. This also helps specifically for the OMEMO plugin that has a conflicting name (omemo / omemo) with the backend library. Thanks jonas for pointing this out. Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-02-07mam: disco before query only if groupchatMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-02-04load, unload: prevent Traceback when not enough parameters are specifiedMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-12Disco#info barejid instead of domain only on carbonsMaxime “pep” Buquet
There is no apparent reason why a disco#info should be done on the domain Jid rather than the bare Jid. MUCs advertize their MUC-y-ness on the bare Jid. This will also fix cases like chat@dino.im which is a MUC component itself (whereas dino.im is a user host), and biboumi components that serves a mic of MUCs and (IRC) users. Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-12is_known_muc_pm: search into more than MucTabMaxime “pep” Buquet
Use new `by_jid` API to search for any tab containing the barejid, and then look at the type of Tab. Move the Tab search at the top of the checks so that we stop searching if we already have done all this work for previous stanzas. Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-12Some more typing for is_known_muc_pmMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-12Prevent Traceback when receiving MUC-PM carbons under some conditionsMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-11plugin_e2ee: Remove debug logging of encrypted messagesMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-11plugin_e2ee: prevent empty JID from being passed to pluginMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-01BasePlugin: Remove debug loggingMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-01E2EE MUC supportMaxime “pep” Buquet
This change transmits the original JID of the sender (in decrypt) or receiver(s) (in encrypt). Handling of MUC is not complete. It is possible that some participants have access to realjids while others don't (e.g., moderators in semi-anon MUCs). The code currently doesn't handle this and this will cause at least two issues: - Sending an encrypted message in a semi-anon MUC would reveal the sender's identity (public key) - Recipients wouldn't be able to decrypt this message as they don't have access to the sender's realjid. Unless they already have the bundle available and then they could associate the public key with a jid (another privacy issue/defeating the point of semi-anon rooms). TODO: Fix this ^ Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-31Allow encryption in normal messagesMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-31E2EEPlugin: Mute some lint warnings because of metaclassMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-31Tabs: add by_jid search method for tabs who have a jid attrMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-30Add TODO in plugin_e2ee _decryptMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-28Disable a pylint error on a line (due to __getattr__ override)mathieui
2019-12-27omemo: remove unnecessary newline in docstringMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27omemo: prevent traceback when no JID is specified in non-supported tabMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27omemo: use dedicated method to check if encryption is enabledMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27omemo: use jid property instead of name on chat tabMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27omemo: fix show_fingerprints (JID instead of str)mathieui
2019-12-27omemo: add an api in plugin_e2ee to get the fingerprint(s) of a jidmathieui
2019-12-27omemo: fix an indent error and make mypy happymathieui
2019-12-27omemo: fix some errors / feedback in trust settingmathieui
2019-12-27omemo: fix the type of the supported tab tyoesmathieui
2019-12-27omemo: add supported_tab_types and trust_states plugin attributesmathieui
- supported tab types is a list of tabs this plugin should be active in (only chattabs) - trust_states is a dict[str → set] containing only two keys: accepted and rejected, whose values are the internal plugin states that should allow encryption and the ones that should not
2019-12-27omemo: add a wrapper around _encrypt() to handle user feedbackmathieui
(yes, another one)
2019-12-27omemo: fix indentation of one linemathieui
2019-12-27omemo: add missing typing importmathieui
2019-12-27Fix potential race condition when encryptingmathieui
(do not try to rely on the current tab)
2019-12-27Add a "passthrough" parameter for calls through the safetymetaclassmathieui
So errors don’t get caught
2019-12-27omemo: ensure whitelist includes encryption tag in the correct formatMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27omemo: handle async encryption methodsMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27omemo: handle StaticConversationTab as wellMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27omemo: adapt to new E2EE APIMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27Expand the status command, make decryption work, put a hack into the core so ↵lumi
I can handle messages without bodies.
2019-12-27Plugins: use import_module for module in poezio_pluginsmathieui
And do not rely on the "module name" to index the plugins, use the intended plugin name instead.
2019-12-22WIP: Allow blocking commands in ConversationTabMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-11-21core/commands: Move import order to please linterMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-11-21Remove safeJID call in destroy_roomMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-27Fix syntax warnings (thanks python 3.8)mathieui
2019-10-27Disable pylint on lines dedicated to mypymathieui
Pylint doesn’t read the typeshed.
2019-10-27Type curses windowsmathieui
2019-10-27Make global objects not Optionalmathieui
This reflects reality, despite the default values of the code. We still need a better solution (singleton?).
2019-10-26Fix missing typing importmathieui
2019-10-26Fix a bug when removing an event handlermathieui
2019-10-26Fix #3511 (fix traceback on first bookmark added)mathieui
2019-10-26Bookmark: Change jid property to getter/setter to ensure it stays a JIDMaxime “pep” Buquet
It's not like static-type checking was a thing in Python nowadays.. (mypy I'm looking at you) Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-26BookmarksTab: Remove safeJID callMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-26bookmarks: Bookmark.name should be an strMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>