Commit graph

2040 commits

Author SHA1 Message Date
mathieui
26025511cf
Fix a traceback in /role 2014-12-19 22:22:39 +01:00
mathieui
d932921be3
Fix /last_activity (8/78) 2014-12-19 22:22:05 +01:00
mathieui
db60b72cf1
Fix /destroy_room (7/78) 2014-12-19 22:11:21 +01:00
mathieui
98102b34bb
Fix /toggle (6/78) 2014-12-19 22:08:59 +01:00
mathieui
5217111ab9
Add a missing import of the XEP-0048 URL element 2014-12-19 22:07:24 +01:00
mathieui
d7e2a46070
Remove an useless input method which was needed with threads 2014-12-19 22:06:11 +01:00
mathieui
f0dac14e32
Fix #2861 (fix /ignore and /unignore (5/78)) 2014-12-19 19:20:18 +01:00
mathieui
b720a3f8ca
Fix a hidden traceback in /set completion 2014-12-18 23:36:31 +01:00
mathieui
631f5dd42a
Allow -1 as a value for optional arguments in the args parser to collect an unspecified number of items 2014-12-18 22:22:27 +01:00
mathieui
ea7d86ed51
Update CHANGELOG and versions 2014-12-17 21:31:15 +01:00
mathieui
596f269621
Fix scrolling inside the input when the text is small enough to fit
(e.g. during a completion, the input might scroll due to the length of
the completed item, and not go back to its original state without this
change)
2014-12-17 21:22:21 +01:00
mathieui
92265678dc
Add completions for /cert_add and /cert_fetch 2014-12-17 21:21:57 +01:00
mathieui
2bb4f45ed4
Fix the file (/import & /export) completion on the roster tab 2014-12-17 21:20:55 +01:00
mathieui
64ef02d586
Explicitly disconnect when refusing to acknowledge a certificate change 2014-12-17 19:07:54 +01:00
mathieui
c76279c345
Handle invalid certificate chains (with the ca_cert_path option) 2014-12-17 19:07:15 +01:00
mathieui
00396c158a
Fix #2847 (SASL External support)
- Add two new options, keyfile and certfile, which must be both set for
  the auth to work.
- if both are set, then poezio doesn’t force-prompt a password if there
  is none specified
- add /cert_add, /cert_fetch, /cert_disable, /cert_revoke and /certs
  commands.
- add a page of documentation on the process
2014-12-11 22:28:44 +01:00
mathieui
003c28e953
Allow the plugins to use a default configuration too
through overloading the class variable default_config.
also fix a bug that would add meaningless sections to plugin
configurations.
2014-12-10 23:12:17 +01:00
mathieui
4c7a470dc8
Do not list __init__.py in /theme completion 2014-12-10 22:26:19 +01:00
Florent Le Coz
9667013304 Fix command_name’s arguments 2014-12-10 18:54:12 +01:00
mathieui
bbc79e089d
Fix #2842 (complete all existing options with /set-completion) 2014-12-09 16:56:43 +01:00
Florent Le Coz
2e25595aec Introduce the go_to_previous_tab_on_alt_number option
fix #2841
2014-12-09 16:43:23 +01:00
mathieui
ed7fe693b4
Fix #2802 (add a /closeall command, with a new plugin) 2014-12-09 01:13:14 +01:00
mathieui
7b3265c636
Fix #2754 (make /xhtml send a message with receipts, chatstates and display it properly)
(also make the message appear in PrivateTabs)
2014-12-08 23:50:16 +01:00
mathieui
122edc539e
Fix #2804 (handle privatetabs in /message) 2014-12-08 23:15:34 +01:00
mathieui
99b9b1d81b
Fix #2691 (don’t glitch on failed /configure) 2014-12-08 22:49:58 +01:00
mathieui
d6ec189776
Add a visual “feature check” for chat states too 2014-12-08 20:43:38 +01:00
Florent Le Coz
b852f7279b Remove a print statement that causes screen garbage when exec_remote is false 2014-12-08 18:22:52 +01:00
mathieui
82a5a69f6f
Fix /filter_xmlmask 2014-12-08 17:16:17 +01:00
mathieui
e273a32ec7
Improve the xhtml_to_poezio_colors sanitization
add some tests, and remove the test_datetime_tuple because
of python time module misbehavior with timezones set manually.
(potentially due to http://bugs.python.org/issue6478)
2014-12-08 17:01:44 +01:00
mathieui
4b8749ca88
Sanitize the XHTML output by removing useless formatting chars 2014-12-08 03:09:21 +01:00
mathieui
5826623228
Fix the autojoin of bookmarks with passwords 2014-12-07 23:37:58 +01:00
mathieui
2e46a93215
Don’t put newlines between xml stanzas in the xml tab 2014-12-07 22:59:50 +01:00
mathieui
148451c774
Fix the xml tab when pygments isn’t present 2014-12-07 22:44:56 +01:00
mathieui
1cd0b4d6ea
Fix #2570 (add /filter_jid to XMLTab, and syntax highlighting)
Also add /filter_from and /filter_to, and allow chaining filters.
2014-12-07 20:50:24 +01:00
mathieui
93f05f04d7
Fix the rawxml command (3/78) 2014-12-07 20:09:15 +01:00
mathieui
8c63e26335
Add documentation for /set_default
and fix minor typing mistakes too
2014-12-05 21:35:35 +01:00
Eijebong
9caa992333
Add a set_default command. 2014-12-05 20:39:23 +01:00
Florent Le Coz
6f9f1796b3 fix wrong argument name (2/78) 2014-12-04 16:42:15 +01:00
Florent Le Coz
0800c666eb Set auto_reconnect to True by default 2014-12-04 15:30:18 +01:00
mathieui
a8ed5bc4e1
Fix /name 2014-11-29 19:12:23 +01:00
mathieui
a0a00d5e7d
Add our own JID to the roster 2014-11-29 18:53:02 +01:00
Florent Le Coz
823e3d178e fix wrong argument name (1/78) 2014-11-25 17:12:47 +01:00
Florent Le Coz
e1808a8455 Parse command arguments using a decorator and make things more consistent
Avoid surprises with some commands accepting quoted arguments and some other
not.

fix #2555
2014-11-25 17:07:45 +01:00
Florent Le Coz
1faf8576e2 Remove DelayedEvent.repetive (sic) member which is not used 2014-11-25 13:51:04 +01:00
Florent Le Coz
81ae3e7eec Implement MUC self-ping to regularly check if we are still in the room 2014-11-25 13:51:04 +01:00
mathieui
61b5c6a91e
Merge branch 'master' of git.poez.io:poezio into slix 2014-11-15 19:20:43 +01:00
mathieui
0eb5c241f0
Fix the color of the first line for offline messages 2014-11-15 19:18:50 +01:00
mathieui
d2bbbbffb9
Merge branch 'master' of git.poez.io:poezio into slix 2014-11-13 23:36:12 +01:00
mathieui
a400bfc1e9
Fix a typo in /unlock help 2014-11-13 21:33:17 +01:00
mathieui
c2f9ffff33
Merge branch 'master' of git.poez.io:poezio into slix 2014-11-12 21:46:18 +01:00
mathieui
20487e46b7
Don’t display a feature check of the remote party if it doesn’t support anything
it’s confusing.
2014-11-12 21:45:52 +01:00
mathieui
5cd854f7cc
Add a stream error handler in order to display error messages 2014-11-02 17:57:03 +01:00
mathieui
1c1ab3cb83
Merge branch 'master' of git.poez.io:poezio into slix
Conflicts:
	src/bookmark.py
	src/config.py
	src/connection.py
	src/core/commands.py
	src/core/core.py
	src/core/handlers.py
	src/windows/info_bar.py
	src/windows/muc.py
	src/windows/roster_win.py
	src/windows/text_win.py
	src/xhtml.py
2014-10-31 19:16:44 +01:00
mathieui
ea2b703bfd
Fix the default value of Config.get to None
Might fix some not-yet-seen bugs
2014-10-31 18:14:56 +01:00
mathieui
f097efd852
Fix some tracebacks on /set completion
(introduced by the automated default arguments of config.get)
2014-10-31 15:54:33 +01:00
mathieui
58b424a923
notify_messages is of course True by default 2014-10-30 22:02:23 +01:00
mathieui
f93f92517d
Use a space instead of a cross while checking features 2014-10-30 21:43:49 +01:00
mathieui
cedc5a6ec8
Fix the ssl check for asyncio 2014-10-30 19:55:19 +01:00
mathieui
616d0d2c73
Fix two potential tracebacks on /set completion 2014-10-29 23:28:20 +01:00
mathieui
29942d38bb
Add some unit tests using py.test
- we need to have more
2014-10-27 20:01:22 +01:00
mathieui
d2ca062eaa
Make the features disco in chat more user-friendly 2014-10-25 16:50:51 +02:00
mathieui
0dc36d9598
Typo 2014-10-22 19:10:40 +02:00
mathieui
9d58c9d32e
Fix #2719 (write/read in the plugin config files even when not loaded) 2014-10-20 23:24:27 +02:00
mathieui
6b8af2413e
Fix #2713 (make /set <option> return the value of the option)
Should work for any case (plugin, different section, etc)
2014-10-20 22:54:00 +02:00
mathieui
7bc5d0de66
Initialize PluginConfig properly 2014-10-20 22:52:41 +02:00
mathieui
b803db7ff6
Make the runtime changes to max_lines_in_memory useful 2014-10-20 21:21:06 +02:00
mathieui
b44dae8fae
If the whitespace_interval value set in the config is null or negative, don’t send any 2014-10-20 21:21:06 +02:00
mathieui
f9734cde56
Remove the (sometimes wrong) default values in the config.get() calls 2014-10-20 21:21:04 +02:00
mathieui
7b01c62e07
Change the API of Config.get_by_tabname
Make the "default" parameter optional and thus move it to the end of
the command with the other optional parameters.

And change all the calls.
2014-10-20 21:20:43 +02:00
mathieui
ece9b2082b
Keep the default config options in a dict and make the “default” parameter of config.get() optional
the Config object now also optionally takes a dict of default values
in its constructor.
2014-10-20 21:20:41 +02:00
mathieui
a9f642f743
Extract XHTML-IM inline imags by default
- Add two new options: tmp_image_dir and extract_inline_images
- tmp_image_dir is $XDG_CACHE_HOME(usually ~/.cache)/poezio/images if unset
- Name the images from a SHA-1 of their data and their mimetype
- Output file:// links inside the message
2014-10-16 18:56:12 +02:00
Florent Le Coz
d4590949f7 Do not ignore empty topics 2014-10-16 10:45:00 +02:00
mathieui
076b899b45
Fix a traceback when the terminal is not behaving as it should 2014-10-14 16:16:11 +02:00
mathieui
545ad1bd71
Merge branch 'master' of git.poez.io:poezio into slix
Conflicts:
	src/core/handlers.py
	src/tabs/xmltab.py
2014-10-14 15:51:30 +02:00
mathieui
5a5d5812ed
Add an open_all_bookmarks option
this option determines if the non-autojoin bookmarks will
be opened on startup or not.

It is false by default.
2014-10-12 23:06:44 +02:00
mathieui
6c62f62402
Color the JID in locking/unlocking messages 2014-10-12 22:34:41 +02:00
mathieui
577d6ea87b
Output the result of the /info command in the MUC window
and not the global info buffer
2014-10-12 22:28:10 +02:00
mathieui
8e29f6d1ff
Add a /dump <filename> command to the XML tab 2014-10-11 16:52:41 +02:00
mathieui
8f6ab25fc9
Fix /me display in delayed messages 2014-10-10 14:20:59 +02:00
mathieui
8d2408c169
Use SHA-2 (SHA-512) to store the certificate fingerprint instead of SHA-1
Because SHA-1 is not really relevant anymore.
Too bad it's significantly longer and tiring to check, even if that is
to be expected.
2014-10-08 12:55:22 +02:00
mathieui
dc4f9cc35a
Fix #2692 (ad-hoc mistakes show /help list) 2014-10-03 22:46:21 +02:00
Florent Le Coz
37fe4be7ec Fix an other call to an old SleekXMPP function name 2014-09-30 22:11:38 +02:00
Emmanuel Gil Peyrot
5a618cf2c2 Don’t use deprecated-then-removed aliases from slixmpp. 2014-09-29 00:07:37 +02:00
Emmanuel Gil Peyrot
b6953d3fcf Get the asyncio event loop only once. 2014-09-29 00:07:27 +02:00
Florent Le Coz
07c4c53e03 Clear the numbers already entered on alt+j when the new one is not digit 2014-08-25 13:34:34 +02:00
Florent Le Coz
2e73331d07 Fix a traceback on command_win: matchin_names() must return strings, not JIDs 2014-08-08 18:11:56 +02:00
Florent Le Coz
8a32ab2514 Remove the timeout and the pre-get_wch things from the keyboard module 2014-08-07 23:31:56 +02:00
Florent Le Coz
3ef9228211 Continuation keys (like after M-j or Ctrl-c) are handled without blocking 2014-08-07 23:20:21 +02:00
Florent Le Coz
30b31b3215 Fix an indentation issue introduced earlier (bar tab displaying only one tab) 2014-08-01 17:06:19 +02:00
Florent Le Coz
30194a8a91 Fix a traceback when a receiving a message from a bare JID 2014-08-01 16:13:52 +02:00
Florent Le Coz
271fd662a1 Entirely remove the g_lock (used to avoid a few race conditions with ncures) 2014-08-01 16:00:01 +02:00
Florent Le Coz
ba93f3f236 Ad-hoc requests can be sent on any JID, not just servers 2014-08-01 15:12:58 +02:00
Florent Le Coz
992fe72554 Fix a few blocking iq, and remove all block=False function arguments 2014-08-01 15:01:25 +02:00
Florent Le Coz
3ec9e80de4 Little comments fix 2014-08-01 13:38:12 +02:00
Florent Le Coz
d84071a804 Privacy: do leak our last activy when our status is away or xa 2014-08-01 13:32:07 +02:00
Florent Le Coz
6250ba345e Fix the data form retrieval, by making it non-blocking 2014-08-01 13:03:18 +02:00
Florent Le Coz
52f50cd949 The password used can be changed at runtime using /set and /reconnect 2014-08-01 04:07:38 +02:00
Florent Le Coz
df569d4e66 First implementation of auto_reconnect, poezio-side 2014-08-01 04:01:08 +02:00
Florent Le Coz
2fd71cd637 Display “authentication failed” only when all auth methods failed 2014-08-01 03:15:39 +02:00
Florent Le Coz
87cf38995a Make the TimedEvents work with asyncio
Improvements: events now occur precisely at the specified date. You don’t
need to stop touching your keyboard to execute them.
2014-08-01 01:22:59 +02:00
Florent Le Coz
55daf9d49d Make the resize work, using an ugly workaround
It seems efficient (more than the curses.endwin(); stdscr.refresh() stuf,
which is slow and really really ugly) and it doesn't break my lovely main
loop, so it’s all good (except that it uses shutil…)
2014-07-31 04:45:02 +02:00
Florent Le Coz
3510e8f5fa Minor fix of a function signature 2014-07-30 18:05:31 +02:00
Florent Le Coz
b0accad5c0 Make the bookmark stuff non-blocking 2014-07-30 17:35:21 +02:00
Florent Le Coz
39c8319ec4 Fix a bunch of iq.send() by removing the block argument 2014-07-30 17:35:21 +02:00
Florent Le Coz
ecf22cb4a4 Fix all the connect() reconnect() stuff
The /reconnect command should now properly work everytime.
2014-07-30 17:35:21 +02:00
Florent Le Coz
a404195a0a Send pings only when we are connected 2014-07-30 17:35:21 +02:00
Florent Le Coz
fe16d52b7b Fix the main launch point to use asyncio correctly, and read stdin using it 2014-07-30 17:35:21 +02:00
Florent Le Coz
fccf7f5af7 Do not traceback when we receive a message from a JID with no resource 2014-07-28 14:58:26 +02:00
mathieui
2275b61a4d
Add dummy on_delete handlers for input placeholders 2014-07-27 00:15:27 +02:00
Florent Le Coz
c166e79a89 First adaptation to slixmpp 2014-07-24 15:19:26 +02:00
Florent Le Coz
9c3fece96b Use slixmpp 2014-07-24 02:11:45 +02:00
Florent Le Coz
459471d716 The most important resource of a bare jid is the one with the highest priority 2014-07-24 02:01:10 +02:00
mathieui
2363e3f1bd
Scroll the input after erasing the last visible char 2014-07-19 00:45:12 +02:00
mathieui
2e8d99be30
Fix #2563 (fix the asserts in adjust_view_pos)
Thanks djanos
2014-07-19 00:41:47 +02:00
mathieui
d790465d6d
Fix #2520 (feedback on roster changes) 2014-07-09 16:25:15 +02:00
mathieui
e0e2123a4b
Fix #2534 (display who changed the topic) 2014-07-06 00:18:29 +02:00
mathieui
cfd344edc3
Fix #2537 (crash on adhoc tab without items) 2014-07-06 00:08:43 +02:00
mathieui
390bb8e2b4
Fix #2554 (traceback on last activity in the roster) 2014-07-06 00:05:42 +02:00
Florent Le Coz
d11ea32f0b Fix a traceback when we trigger the reload using a signal 2014-07-01 17:54:40 +02:00
Florian Duraffourg
6698ed806e Redirect stderr to /dev/null when executing a command
fix #2545
2014-06-26 17:45:05 +02:00
Florent Le Coz
900b67c01d get_tab_by_name() should specify a tab type whenever possible
For example, a tab can be named muc.example.com, if you do /list
muc.example.com.  If you then do /join muc.example.com, the error handler
needs to get the correct tab (the MucTab, not the MucListTab previously
opened).
This commit fixes the above issue (a traceback), and maybe some others like
that.
2014-05-31 17:37:15 +02:00
Florent Le Coz
06fdc82f60 Do not traceback if the server does not oprived options for list fields 2014-05-31 15:27:03 +02:00
mathieui
7049fe7c21 Do not exit from SIGPIPE as it is creating more problems than it solves 2014-05-27 22:34:29 +02:00
mathieui
2ec83f3412 Fix a wrong nick displayed in privatetab (our default one instead of the muc one) 2014-05-19 23:53:20 +02:00
mathieui
3ce4454282 Use simple chars for PEP mood/activity/gaming 2014-05-18 19:34:36 +02:00
mathieui
db8111c295 Handle the case where the contact does not support anything 2014-05-18 13:53:30 +02:00
mathieui
2dafd6d5cf Only display the supported features when they change
also, check the features every rejoin for PrivateTabs
and refresh the window after displaying the features
2014-05-17 15:51:42 +02:00
mathieui
a1f86720d1 Add an informative message about what the contact supports feature-wise
and add a handler for missing commands
2014-05-17 15:28:17 +02:00
mathieui
97ef9d7fb9 Make detecting the features supported by the remote entity less awful
no more stalling while waiting for a disco info while sending a message.
2014-05-15 23:33:51 +02:00
mathieui
916416a019 Add an ugly fix to avoid endless disco#info queries with each message (with receipts)
We need to check if the remote entity supports 0184, but if it doesn’t
support disco#info, then we will get an iq type="error" and nothing
will be cached, leading to disco#info queries being sent each time.

Keep a cache valid 2 hours of the JIDs which replied with an error.
TODO: check that this the kind of time period we want.
2014-05-08 01:37:52 +02:00
mathieui
9786592b80 Fix a hidden traceback on error message outside MUCs 2014-05-08 00:27:26 +02:00
mathieui
c66bae5412 When closing a tab, go to the previous one, and not the one before it in the tab list 2014-05-06 00:27:05 +02:00
mathieui
16276cd163 Provide our own (non-blocking) wrappers for room configuration functions 2014-05-06 00:17:22 +02:00
mathieui
467ae18290 Obsolete docstring in dataforms tab 2014-05-06 00:07:41 +02:00
mathieui
4a46e7ed5f Make the theming module executable 2014-05-05 23:31:25 +02:00
mathieui
950a864d2f Move the Windows from the DataFormsTab to the windows directory 2014-05-05 23:27:03 +02:00
mathieui
2f629ee686 Split the windows.py module into a subdirectory 2014-05-05 23:16:33 +02:00
mathieui
109e86cbab Fix a potential traceback when creation of the plugins conf dir fails
(error during error handling)
2014-05-05 23:04:13 +02:00
mathieui
c9059b98c7 Fix a traceback on adhoc error 2014-05-05 23:01:03 +02:00
mathieui
c5b85d3b5d Fix a traceback on the listtab 2014-05-05 20:13:57 +02:00
mathieui
9c8d577737 Revert "Fix #2072 (only resize a tab if the size changed since the last display)"
This reverts commit b46f0f5e26.

Conflicts:
	src/tabs/muclisttab.py

Doing this made the unresized elements refresh in the old subwins,
causing glitches and weirdness. And anyway, the only problematic
element is the TextWin (rebuilding all the lines of a buffer is
expensive), but it already checks if the width changed.
2014-05-05 20:01:04 +02:00
mathieui
b8972ad940 Fix a traceback when creating a gaptab 2014-05-05 00:01:09 +02:00
mathieui
5cfe79e5e1 Do not beep in a MUC if we receive a message from one of our resources
happens when beep_on contains "message".

thanks eijebong
2014-05-04 23:31:25 +02:00
Florent Le Coz
7378ea96d3 Make the inputs bigger in DataForm, to be able to see long values more easily 2014-05-04 21:05:47 +02:00
Florent Le Coz
ce90a37249 Remove a useless copyright notice 2014-05-04 21:05:47 +02:00
Florent Le Coz
3858273084 Fix two tb in the DataFormTab
- when list-multi doesn't have selected values at all
- text-multi.options() provided by sleekxmpp is apparently a '\n' separated
  string, and not a list
2014-05-04 21:05:47 +02:00
Florent Le Coz
d78b7df68b Implement the execution of ad-hoc commands (#1832) 2014-05-04 21:05:47 +02:00
Florent Le Coz
bbc55fa40e Add the /ad-hoc <jid> command to list commands of the given jid 2014-05-04 21:05:47 +02:00
Florent Le Coz
36620901e8 Create a more generic ListTab class, and make MucListTab inherite from it 2014-05-04 21:05:47 +02:00
mathieui
b46f0f5e26 Fix #2072 (only resize a tab if the size changed since the last display) 2014-05-03 02:27:19 +02:00
mathieui
ea935ded09 Highlight the newlines characters in the input instead of plain "|"s 2014-05-03 02:12:05 +02:00
mathieui
d1e33e1863 Make the FormWin handle resize properly
(also, wrap one forgotten call to curses funcs)
2014-05-02 03:01:13 +02:00
Florent Le Coz
b080c53ac4 Scroll the FormWin when resize moves the current line out of the visible area 2014-05-01 16:40:00 +02:00
Florent Le Coz
16d80a2f25 FormWin now scrolls when needed, as the cursor is moved up and down 2014-05-01 16:33:44 +02:00
Florent Le Coz
f7a5847f75 Move data_forms in the tabs directory 2014-05-01 05:24:50 +02:00
mathieui
c287a959b4 Fix bugs in the previous/next highlight functions 2014-05-01 02:28:01 +02:00
mathieui
c1d19fa548 Set the terminal title to "poezio" by default 2014-04-30 21:54:25 +02:00
mathieui
bbdc14aaa5 Remove Tab.get_name() and use Tab.name instead
(keep a get_name() fallback just in case for now)
2014-04-30 21:34:09 +02:00
mathieui
d859ec2ea1 Add a 'tab_change' event 2014-04-30 20:37:18 +02:00
mathieui
4e4ab569cf Fix #2447 (OTR & HTML) -- partial WONTFIX
- Guess-parse the OTR messages in search for xhtml upon arrival
- add a configurable option to decode it or not
- We have XHTML-IM for a reason, and therefore we will *not* implement a
  full html parser for clients that dump whatever formatting inside the
  OTR payload (looking at you, pidgin)
2014-04-30 01:55:23 +02:00
mathieui
c3dd20fc74 Fix #2510 (link displayed twice in xhtml-im)
- also, fix the /xhtml command that was nesting one <body/> too many
2014-04-30 00:43:21 +02:00
mathieui
5f0afab060 Do not ask for receipts in messages without a body 2014-04-29 22:14:03 +02:00
mathieui
793b78f009 Fix a traceback in /topic (with no argument) 2014-04-29 03:12:57 +02:00
mathieui
6391d97b3a Fix most UI issues with introduced in 0caf941 2014-04-29 02:20:06 +02:00
mathieui
9e72f8336d Add the size manager (forgotten in the previous commits) 2014-04-29 00:29:54 +02:00
mathieui
8241f5d6fc Update CHANGELOG
(also, fix a traceback-typo)
2014-04-28 23:37:42 +02:00
mathieui
0caf9417b2 Make the size modular, remove small-size lock (also seems to fix #2155)
some stuff is now hidden wen the window size gets too small (might need
some adjustments). The info buffer in the roster tab, the userlist in
mucs, the vertical tab list, the info buffer everywhere, etc…
2014-04-28 23:29:21 +02:00
mathieui
069283e349 Don’t escape backslashes unless we are inside a quoted string and the next char is a quote
Sadly, we can’t doctest stuff with backslashes because it drives doctest
crazy.
2014-04-28 00:20:57 +02:00
mathieui
31716565a7 Provide our own wrapper for checking the host category (ref #2511?)
xmpp.plugin['xep_0030'].has_identity appears to be unreliable at best,
so we provide our own.

Might help the case of carbons not displayed.
2014-04-27 22:38:24 +02:00
mathieui
3fb3d8db3d Fix memleaks in pooptmodule.cut_text (ref #1914)
- we need to decrement the refcount after giving the tuple to the
  retlist in order to transfer ownership

The example script below will quickly take gigabytes of ram with the
old module, while the new will not take noticeably more memory.

The leak is not very visible on launch, because we “only” leaked each
tuple returned, and (int, int) is not heavy. However, after weeks of
use and many messages, the memory still isn’t freed and it shows.

import poopt
import gc

a = 'coucouco ' * 1000
for i in range(100000):
    if not (i % 10000):
        print(i)
    poopt.cut_text(a, 50)
2014-04-27 21:38:29 +02:00
mathieui
5999b71c41 Fix #2106 (implement message delivery receipts)
- two options request/ack_message_receipts
- two new theme parameters : CHAR_ACK_RECEIVED and COLOR_CHAR_ACK
- if a message has a receipt, the character is displayed between the
  timestamp and the nick, using the color
2014-04-27 16:32:03 +02:00
mathieui
60224bb76a Fix weird behavior while using the input in the muclisttab 2014-04-27 02:17:00 +02:00
mathieui
3cb2c8351a Fix a resize issue when vertical tab list options are set from the roster 2014-04-27 01:59:02 +02:00
mathieui
fea4f95de9 80-columns wrap for MucTab and fix some completions
- fix the /version completion with spaces
- fix the /unignore completion with spaces
2014-04-26 23:49:52 +02:00
mathieui
0d5d36465c Document /recolor random with /help too 2014-04-26 14:41:19 +02:00
mathieui
4172a79117 Fix #2514 (add a /toggle command) 2014-04-26 14:27:02 +02:00
mathieui
1f0ff4f0c3 Fix #2444 (implement room destroy)
- destroy the current room if no parameter
- destroy the room given as a parameter if any
- no reason or alt room because it would be ambiguous in a command
  (implementation ideas welcome)
2014-04-26 14:05:28 +02:00
mathieui
4c4e2083a6 Fix the nickname of server-generated messages 2014-04-26 11:50:00 +02:00
mathieui
947cd13107 Disable 0198 for now because we will properly implement it later 2014-04-26 11:49:11 +02:00
mathieui
4a26dea66d Fix #2516 (display error with carbons)
- fix the bug where messages from our own jid were incorrectly displayed
- the nick is now fixed for the whole conversation
2014-04-25 20:48:40 +02:00
mathieui
98914b8b0a Fix a traceback when sorting a listwin 2014-04-24 23:39:12 +02:00
mathieui
1bd9f78fe6 Improve src/theming.py (print the colors and do not pollute the terminal) 2014-04-24 21:26:13 +02:00
mathieui
828f60fcb8 Update the themes dir during execution, and not at module level 2014-04-24 21:25:31 +02:00
mathieui
5012611bd7 Make keyboard.py a bit nicer to use 2014-04-24 21:13:31 +02:00
mathieui
4de2dfc72b Fix a bug in the config._parse_file function (traceback when parsing empty files) 2014-04-24 21:12:48 +02:00
mathieui
3bfe93824c Wrap yet another curses operation with a lock 2014-04-23 20:05:51 +02:00
mathieui
efa6b4254d Fix #2450 (redraw top-scrolled tabs properly after resize) 2014-04-23 20:05:02 +02:00
mathieui
e6ce1ce7b6 Map Config.remove_and_save to PluginConfig.remove 2014-04-22 20:17:19 +02:00
mathieui
b01d94294a Add a way to remove options from the config file
(still surgically, without touching comments or anything else)
2014-04-22 20:16:27 +02:00
mathieui
3415619895 80-columns wrapping and some docstrings
also bump version, and add some gettext wraps
2014-04-22 20:02:07 +02:00
mathieui
b14aceaa4f Close the file descriptor of the fifo on closing
(also, it indeed needs to be a thread because opening
a fifo for reading is a blocking operation)
2014-04-22 19:57:25 +02:00
mathieui
266ab8e10d Split the config.write_in_file method to be more modular and cleaner
Will also allow a remove_in_file or whatever to remove options instead
of blanking them.
2014-04-21 23:46:12 +02:00
mathieui
d66aa8cf66 Log exit from signals to the error log
(SIGTERM, SIGHUP, and SIGPIPE for now)
2014-04-20 17:47:16 +02:00
mathieui
3622443631 Keep a file descriptor reading the fifo instead of just opening and closing it
should take care of the sigpipe when no one is reading it anymore due to
broken connection
2014-04-19 06:36:10 +02:00
mathieui
0401029854 Same formatting changes in core.commands 2014-04-18 23:10:12 +02:00
mathieui
2879d3c694 Mostly line-wrap at 80 chars and add docstrings
- also fix some erroneous comment(s)
- remove self.background which wasn’t set to something other than false
- fix the chatroom address (and the doc) in the first help message
2014-04-18 19:41:20 +02:00
mathieui
28d928999d Fix #2297 (crash after resize)
wrap some curses calls with try/except block
2014-04-18 19:18:48 +02:00
mathieui
dc08adf605 Do not lock on the “composing” chat state with otr
might send too many stanzas when send_chat_states is false, but I don’t
care.
2014-04-17 20:39:01 +02:00
mathieui
71ae73ca7b Log part messages and show a leave message on /cycle 2014-04-17 00:02:19 +02:00
mathieui
214904f199 Change the formatting of join/part messages
also remove some hardcoded stuff
2014-04-16 23:07:00 +02:00