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