Commit graph

292 commits

Author SHA1 Message Date
mathieui
5ef524d3b1 Don't override "id" and "type" builtins 2017-02-13 19:50:02 +01:00
mathieui
747529845e Remove a useless lambda 2017-02-13 19:45:28 +01:00
mathieui
5e40b63031 Don't require parameters for the ignored args wrapper 2017-02-13 19:21:16 +01:00
mathieui
66f3cf630c Prepare for next version 2017-01-31 00:22:19 +01:00
mathieui
49b785d5be Poezio 0.11 release 2017-01-31 00:17:32 +01:00
mathieui
806485dbe0 Fix a crash when using XEP-0380
(which nobody uses yet)
2017-01-08 12:58:34 +01:00
mathieui
fdb61cda27 Add missing message types (fix #3271)
Which were being filtered by the information popup filter
2016-12-26 16:01:35 +01:00
Emmanuel Gil Peyrot
efc2ebe2c4 XHTML-IM: Check for the existence of elements manually.
This fixes part of #3186, slixmpp was previously adding a new XHTML-IM
payload whenever we just wanted to check for its presence.  Also makes
the code abort faster in the common case where no XHTML-IM element is
present.
2016-11-26 17:57:51 +00:00
Emmanuel Gil Peyrot
76445a6867 Add support for XEP-0380: Explicit Message Encryption
Both for displaying incoming messages, and sending OTR and legacy
OpenPGP.
2016-11-26 16:34:58 +00:00
mathieui
474966c5f7 Merge branch 'popup_filters' of https://github.com/LukeMarlin/poezio 2016-11-06 18:54:45 +01:00
Emmanuel Gil Peyrot
0556f85870 Optimise /win a bit, and make sure we always keep the previous tab. 2016-11-01 02:36:30 +00:00
Luke Marlin
3c894ea558 Added information_popup_type_filter that allow to
filter an entire type of messages such as 'roster'
'error' 'information' or 'debug'
2016-10-23 16:25:44 +02:00
mathieui
8549da0348 IOError == OSError since python 3.3 2016-10-21 01:52:41 +02:00
mathieui
0bb67982b0 pyflake fixes
unused variables, imports, name shadowing
2016-10-21 00:20:41 +02:00
mathieui
ab84756b45 Fill __all__ for tabs/ and windows/ 2016-10-21 00:12:55 +02:00
louiz’
abb41d5750 Rename /reset to /filter_reset in XML tab, for consistency 2016-10-14 11:01:43 +02:00
mathieui
b026bb190d Update sources for the next version 2016-10-09 18:23:10 +02:00
Emmanuel Gil Peyrot
f8d5fa9b1c Remove the resource option from the configuration.
It’s considered bad practice nowadays to force a specific resource, it
can lead to presence leaks or reconnection loops so should be avoided.

Moreover this was already possible in the jid option, by setting it to
user@domain/resource, setting it would append it a second time in that
case.
2016-10-09 17:06:33 +02:00
mathieui
3a608c191f Add a raw parameter to all data form windows
Otherwise it will obviously traceback when calling it with that
parameter
2016-10-08 23:06:40 +02:00
Emmanuel Gil Peyrot
1252f21e10 Replace sendPresence() with send_presence(), fix adding a contact. 2016-10-07 01:14:01 +01:00
mathieui
3c9eac5dc9 Add monkeypatching hack on the event loop
Previously inside slixmpp, it’s cleaner to do it only in poezio.
2016-10-05 20:20:46 +02:00
mathieui
eacc5a6fb1 Fix #3100 (Allow pasting in a data form) 2016-10-05 19:37:34 +02:00
mathieui
9dd5f0b4de "information" is already plural, fix wording 2016-10-04 00:54:57 +02:00
Emmanuel Gil Peyrot
c5e80b9688 Don’t put the cursor at the top-left if a move() failed. 2016-10-02 16:14:52 +01:00
mathieui
8f9e14dcb6 Display status changes in one to one chats
Make hide_status_change work there as well, with per-jid configuration
2016-09-29 23:47:54 +02:00
mathieui
b035d9f2cf Make enable_xhtml_im tab-specific 2016-09-29 01:01:34 +02:00
Emmanuel Gil Peyrot
91ced4d391 Normalise the user-facing name of MUC from chatroom to room everywhere. 2016-09-25 07:37:58 +02:00
Emmanuel Gil Peyrot
0ed8923459 Fix wrong quit char color when someone leaves a MUC. 2016-09-25 07:36:47 +02:00
Emmanuel Gil Peyrot
661ee90ea2 MUC: Fix a traceback on room configuration. 2016-09-21 23:45:03 +09:00
mathieui
5a55552b67 Next version is 0.10 2016-09-20 20:46:27 +02:00
Emmanuel Gil Peyrot
77d0a7a46d multiuserchat: Use newer MUC plugin from slixmpp. 2016-09-21 01:29:30 +09:00
Eijebong
3199e05e33 Add a PgUp/PgDown keybind to /bookmarks.
Fixes #3231
2016-09-20 16:58:42 +09:00
Emmanuel Gil Peyrot
5a5c1fe992 Stop using deprecated aliases from slixmpp. 2016-09-20 16:52:11 +09:00
mathieui
f252f66b50 Fix a possible traceback in /win with some tabs open 2016-09-13 20:03:51 +02:00
mathieui
2886d10ea9 Fix a traceback in the kick/ban handler 2016-09-13 19:40:29 +02:00
mathieui
859dc90d51 Fix coloring of messages in the privatetab 2016-08-29 20:36:36 +02:00
Emmanuel Gil Peyrot
8eb7daad3a Remove an except block targetting Python 3.1. 2016-08-29 09:21:49 +01:00
Emmanuel Gil Peyrot
680a3e8d44 daemon: Remove outdated mention of Python 3.3. 2016-08-29 09:18:08 +01:00
mathieui
29b95f1820 Really fix that traceback 2016-08-28 20:58:22 +02:00
mathieui
a9fa0ee377 Fix a traceback introduced in the last commit 2016-08-28 20:44:19 +02:00
mathieui
2252f2779c Fix some type inconsistencies
(pylint)
2016-08-28 16:51:24 +02:00
mathieui
50d6edc30b Fix a traceback on malformed logs 2016-08-28 16:17:51 +02:00
mathieui
50610a0684 Remove useless debug from the /rawxml command 2016-08-27 16:40:52 +02:00
mathieui
b83c113575 Fix #3194 (don’t highlight on embedded XHTML image)
Remove the link, which wasn’t really useful anyway
2016-08-26 22:44:07 +02:00
mathieui
8495492c75 Fix #3193 (report PM errors in PM tab) 2016-08-26 22:34:32 +02:00
mathieui
a6c4db6c2f decorators: fix the case where there is no argument
can’t believe we didn’t hit that before
2016-08-26 21:56:30 +02:00
mathieui
ad7b724690 Fix #3179 (/join completion broken) 2016-08-26 19:26:14 +02:00
mathieui
d36ecbd7b4 Remove walls of text from the main body of core.handlers
It’s not pleasant to read
2016-08-26 19:12:49 +02:00
mathieui
b7c23313b6 Fix #3217 (allow /groupadd "group" with selected row in the roster) 2016-08-25 20:22:01 +02:00
mathieui
e8aa89687f Fix #3223 (close privatetab logfiles properly)
It wasn’t applying the transformation jid→filename used in log_message
2016-08-25 20:11:12 +02:00
mathieui
4f942bd48f Make log parsing a little better
Separate log items in two different classes instead of just trying the
length of a tuple
2016-08-24 23:14:34 +02:00
mathieui
ec04070611 Don’t traceback in theming if called without poezio installed
If we just want to see the color list, we shouldn’t need to be able to
import poezio.config
2016-08-24 23:13:21 +02:00
mathieui
3ed31ed282 Don’t use camelcase for accessing data forms
(except with getXML that will need more work)
2016-08-22 20:23:27 +02:00
mathieui
ca682cf23d Muctab: Only search for matching colors on user join
this call is actually quite expensive, so it will help in specific cases
where we receive a lot of presence stanzas (e.g. a netsplit in an irc
gateway, or a +vvvvvvvvvvvvvvvvvvvvvvvvv, etc) that are not joins
2016-08-22 19:55:17 +02:00
mathieui
84e59b05ff Don’t call input completion() functions inside completion methods
Use a placeholder object that can run it afterwards, so that we don’t
have side effects inside those functions.
2016-08-21 15:39:30 +02:00
mathieui
11b193fb36 Fix #3219, Fix #3220 (no connection loops on some stream errors)
Do not reconnect if the stream error is a conflict or an host-unknown;
also add a sleep(1) in order to not DoS the server if it loops on other
conditions.
2016-08-20 13:13:23 +02:00
mathieui
04939cc6c3 Fix a typo in the httpauth dialog 2016-08-20 00:56:40 +02:00
mathieui
9cd8788400 Implement XEP-0070 using the confirmtab 2016-08-20 00:12:59 +02:00
mathieui
9230126a89 Remove unused leftover imports 2016-08-19 01:15:32 +02:00
mathieui
0c21af12b0 Use the confirmtab for TLS cert validation
And wipe the YesNoInput from the codebase
2016-08-19 01:04:43 +02:00
mathieui
82d00d495b Add a "confirm" tab type
This tab will be used when an external events prompts a boolean choice
to a user, like a new ssl cert, or a XEP (e.g. 0070) that needs an
answer, and for which a command-line interface with an info message
would be a pain.
2016-08-19 01:00:06 +02:00
Eijebong
c94df86b2c Use conversation.get_nick() instead of conversation.nick when adding a
message to a conversation tab.

When you rename one of your contact and have a conversation opened, the
nickname wasn't updated when you received new messages.
2016-08-18 21:21:08 +02:00
Luke Marlin
ec077496ba fixes #3147 (/message auto-complete misses offline users) by adding every jids to the completion list 2016-08-13 19:40:49 +02:00
mathieui
d7ffaa44a2 Fix /help 2016-08-11 22:38:00 +02:00
Emmanuel Gil Peyrot
ae51999a6f Disable unused logging levels, makes logging.debug about 25 times faster. 2016-07-30 12:59:58 +01:00
Emmanuel Gil Peyrot
aed82a0e3b Advertise us as a console client, not as a pc one. 2016-07-29 23:18:06 +01:00
louiz’
15bef8d752 Make sure the color values are integers, in xhtml.py 2016-07-26 11:12:37 +02:00
mathieui
8634b5ea66 Fix a bug with the _close_tab shortcut
on_close wasn’t used correctly everywhere.
Also make the "close" commands for each tab specific to themselves,
rather than taking the current tab for closure.
2016-07-22 19:56:07 +02:00
mathieui
89194356ee Fix /list 2016-07-22 19:44:25 +02:00
mathieui
0a3738fd66 Improve the topic display
More colors, show an indicator if we changed it
2016-07-14 14:33:27 +02:00
mathieui
4b3dde2a27 Improve /topic display 2016-07-14 12:29:42 +02:00
mathieui
275a67864d Fix a bug in multiline colored text
if the first, attribute color was negative, the color wasn’t passed on
to the next line.
2016-07-14 12:26:31 +02:00
Eijebong
c702fb147b Fix daemon.py shebang. 2016-07-13 18:51:08 +02:00
mathieui
a548e2ff6d Improve refresh performance in big rooms
going through a list with more than 1000 elements, one at a time, can be
a bit tedious. Especially if you go through it every time you receive
one of those elements.
2016-07-12 21:05:46 +02:00
Emmanuel Gil Peyrot
d19f53c3e9 Remove unused SizeManager argument, and simplify its import. 2016-07-07 21:34:10 +01:00
mathieui
968ed665f6 Fix the configure and bookmark tab 2016-07-07 20:09:37 +02:00
mathieui
dae641412e Fix a circular import introduced in 409b1513
It breaks python 3.4 which is touchy about them, https://bugs.python.org/issue17636
2016-07-07 19:51:53 +02:00
louiz’
3dcb04992d Don't use a list (that we modify) as a default argument 2016-07-06 10:08:23 +02:00
louiz’
96a9fb699f Refactor a little thing in /version code 2016-07-06 10:01:07 +02:00
louiz’
059799bb2d Remove some unused things 2016-07-06 09:52:19 +02:00
louiz’
e397f38b47 Merge remote-tracking branch 'linkmauve/big-performances-improvement' 2016-07-06 09:26:03 +02:00
Emmanuel Gil Peyrot
69b4480e9e Make UserList.refresh_if_possible not hyper dumb.
This function was actually calling refresh for every single item that
was different from the cached version.
2016-07-06 04:32:23 +01:00
Emmanuel Gil Peyrot
a47e18e873 Cache results in poezio.theming.to_curses_attr.
This increases performances a *lot* compared to the previous uncached
version.
2016-07-06 04:32:15 +01:00
Emmanuel Gil Peyrot
409b1513ce Move Win._tab_win into poezio.windows.TAB_WIN. 2016-07-06 00:25:13 +01:00
Emmanuel Gil Peyrot
4ffe32ac64 Always use the same argument name in Input.do_command. 2016-07-06 00:25:12 +01:00
Emmanuel Gil Peyrot
14aec23206 Rename a private method with an underscore. 2016-07-06 00:25:12 +01:00
Emmanuel Gil Peyrot
84ee9c7afb Add missing return values in boolean functions. 2016-07-06 00:25:12 +01:00
Emmanuel Gil Peyrot
521159c599 Always import Win from base_wins. 2016-07-06 00:25:12 +01:00
mathieui
43d7b029f8 Refactor the /join command
Fix subtle bugs hopefully without introducing new ones
2016-07-04 22:03:37 +02:00
louiz’
64647e3fe8 Correctly set the MucListTab name to a string and not a JID
Fix a traceback on /w, and many other places, when a MucListTab is open
2016-07-04 14:16:39 +02:00
mathieui
d039da7b2c RIP gmail.com
If by change a user manages to connect to gmail, they won’t be able to
join another server that has MUCs, so that code is useless.
2016-07-03 02:27:21 +02:00
mathieui
7607140b71 Fix plugin loading when installed 2016-07-03 02:22:55 +02:00
mathieui
2e988af4d8 Fix launch.sh
We want to be able to run "python -m poezio" AND have a poezio entry
point.
2016-07-03 02:13:24 +02:00
mathieui
401048aba1 Make the entry point a function
otherwise it breaks the generated entry point loader, which will work
but display a traceback on exit
2016-07-03 01:59:05 +02:00
Emmanuel Gil Peyrot
b685df501a Remove every now-useless usage of the Singleton function. 2016-06-30 23:29:51 +01:00
mathieui
d636d57df4 Fix dynamic/static conversation tab 2016-07-01 00:24:15 +02:00
mathieui
3e2839f74e Only import "Command" instead of "core" when possible 2016-06-30 23:58:42 +02:00
mathieui
8383f77341 Use a "core" parameter for each tab object instead of a singleton
fixes the circular import issue
2016-06-30 23:57:12 +02:00
mathieui
8f7be37a70 Absolute imports everywhere 2016-06-30 23:36:25 +02:00
mathieui
ab86e79918 Use absolute imports instead of relative ones
All this crap is very brittle due to circular deps and python handling
them badly. This appears to be fixing some stuff, at the very least.

This is sed, so cleanup of imports (which can now be grouped together)
is not done yet.
2016-06-30 22:56:24 +02:00
mathieui
5680d1584c Fix /nick 2016-06-28 21:01:04 +02:00
Emmanuel Gil Peyrot
15cb47d18c Simplify Tab.core to remove class variables. 2016-06-28 00:48:42 +01:00
Emmanuel Gil Peyrot
29ac9ec597 Import Singleton instead of its module, and remove unused imports. 2016-06-28 00:25:01 +01:00
Emmanuel Gil Peyrot
36377f78ba Add missing import in __main__ module. 2016-06-28 00:21:59 +01:00
Emmanuel Gil Peyrot
a210303b01 Fix a typo. 2016-06-27 23:55:51 +01:00
Emmanuel Gil Peyrot
6a1bd5f9b9 Make all relative imports explicit. 2016-06-27 23:54:50 +01:00
Emmanuel Gil Peyrot
7e51947f47 Launch poezio as a module package. 2016-06-27 23:54:50 +01:00
mathieui
0447188eac Limit 0184 receipts to one-to-one tabs
Instead of chat tabs, which include MUC which doesn’t implement that.
2016-06-24 21:17:29 +02:00
mathieui
158bb8c3f3 Fix #3198 (no highlight in corrections)
broken since bc6ee8d due to using timestamps
2016-06-24 20:20:36 +02:00
mathieui
3c90ac838f Always send a presence-unavailable on command /part
(even if we thought we were already disconnected)
2016-06-24 19:41:59 +02:00
mathieui
76a890acc7 Fix #3203 (indent contact and resources in the roster) 2016-06-24 19:34:23 +02:00
mathieui
db47dbbc46 Fix a traceback on adhoc 2016-06-22 01:16:03 +02:00
mathieui
ce915a86c1 Increase ping timeout delays (now that the ping actually works) 2016-06-12 21:46:46 +02:00
mathieui
aa79acb7d9 Disable smacks by default 2016-06-12 21:45:04 +02:00
mathieui
3de3dbd7fc Add back the entrypoint
It’s needed for proper installation
2016-06-12 17:00:54 +02:00
Emmanuel Gil Peyrot
ed5f7b18bd Remove the global Win._win_core, instead pass core to the two *GlobalInfoBar. 2016-06-12 15:31:15 +01:00
Emmanuel Gil Peyrot
b08688c701 Remove unused properties in SizeManager. 2016-06-12 15:31:15 +01:00
Emmanuel Gil Peyrot
367d4599c8 Small xml_tab fix. 2016-06-12 15:31:15 +01:00
Emmanuel Gil Peyrot
fba820e879 Convert some genexprs into regular list comprehension. 2016-06-12 15:31:15 +01:00
Emmanuel Gil Peyrot
293d2637d1 Improve core typability. 2016-06-12 14:34:44 +01:00
Emmanuel Gil Peyrot
6d2bb1eab8 Fix core handlers, broken in the previous commit. 2016-06-12 14:34:44 +01:00
Emmanuel Gil Peyrot
34d110e643 Split core handlers into its own (broken) class. 2016-06-12 14:33:39 +01:00
Emmanuel Gil Peyrot
c1be52847b Fix core commands, broken in the previous commit. 2016-06-12 14:33:39 +01:00
Emmanuel Gil Peyrot
37cd7d1924 Split core commands into its own (broken) class. 2016-06-12 14:33:37 +01:00
Emmanuel Gil Peyrot
815cd46be9 Fix core completion, broken in the previous commit. 2016-06-12 13:25:45 +01:00
Emmanuel Gil Peyrot
86794bb0fd Split core completion into its own class.
This commit is non-functional, it only changes indentation to make
other changes more apparent, I’m sorry if you come from the future and
are bisecting, it was the only way to make it look proper. :(
2016-06-11 21:47:35 +01:00
Emmanuel Gil Peyrot
8fc8446e8a Make poezio.logger more Cython-friendly.
Also don’t handle logger fds outside of Logger, and mark private
objects and methods.
2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
fb4ceb232c Remove unused imports in poezio.timed_events. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
08baecfc5a Make poezio.events more Cython-friendly. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
840ad7433f Make poezio.common more Cython-friendly.
Also remove support for OLD_PYTHON (before 3.3), some unused constants,
mark private functions with a leading underscore, and clean up some
pep8 violations.
2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
bfb02d64a8 Make poezio.core.struct more Cython-friendly.
Status and Command are now slotted classes instead of namedtuples,
which led to a few changes to access them with their named parameters
instead of as a tuple.

“short” being a C type, I renamed Command.short into
Command.short_desc, which is more explicit anyway.

I also renamed possible_show into POSSIBLE_SHOW, as it is a
module-level constant dict.
2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
721756c5c1 Make poezio.windows.funcs more Cython-friendly. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
140065b580 Make poezio.poezio_shlex more Cython-friendly. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
d0df65ba7b Make poezio.text_buffer more Cython-friendly. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
0f066ab1ff add_message_to_text_buffer was never used with its time and history arguments. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
bfe7a3100e Move Line where it should be. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
275128963b Remove some unused globals. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
739793e9bc Prefer '\0' to None or an empty string for single characters. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
58d66ad03b Replace the namedtuple Message with a slotted class and merge TextBuffer.make_message in it. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
41f6604ee4 Replace Line namedtuple with a slotted class.
This will be useful to give Cython a way to optimise the storage in
that class.
2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
d4003d1d26 Replace two lists of characters with strings. 2016-06-11 20:49:46 +01:00
Emmanuel Gil Peyrot
332a5c2553 Move the src directory to poezio, for better cython compatibility. 2016-06-11 20:49:43 +01:00