aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Support backlog tags for all tagsetsTrygve Aaberge2019-06-021-12/+12
| | | | | By sending in backlog as a separate argument to tag instead of as a tagset, we can mark all types of messages as backlog messages.
* Simplify process_subteam_updatedTrygve Aaberge2019-06-021-11/+6
|
* Move subteam created/updated functionsTrygve Aaberge2019-06-021-21/+24
|
* Remove redundant arguments and improve some variable namesTrygve Aaberge2019-06-021-81/+64
| | | | | | Mostly removes None as a second argument to .get(...), since that is the default value. Also replaces get with brackets a few places where get is not necessary.
* Set the self_msg tag on own messagesTrygve Aaberge2019-06-021-19/+18
|
* Set dm tags on threads in dmsTrygve Aaberge2019-06-021-11/+6
|
* Set nick tag for thread messagesTrygve Aaberge2019-06-021-2/+2
|
* Set conditions for muted channels on channel instead of messageTrygve Aaberge2019-06-021-10/+14
| | | | | Instead of setting tags on each message to prevent notify and highlights, set variables on the buffer to prevent it.
* Prevent highlight in debug bufferTrygve Aaberge2019-06-021-0/+1
|
* Allow %h (weechat home) replacement in download_location (#690)Daniel Lublin2019-06-012-2/+5
|
* Fix /topic command output (#691)luk13372019-05-292-2/+2
| | | | | * This change makes sure the /topic command outputs 'Topic for #random is ""' instead of 'Topic for #random is "{'value': ''}"'.
* Fix broken receive_httprequest_callback when record_events is trueTrygve Aaberge2019-05-231-2/+2
| | | | | | | | | | | When removing pickle in commit 3639342 I broke record_events without realizing it. record_events tries to json serialize the response dict, and that failed because that dict includes some metadata which without pickle is a class instead of a string. Fix it by recording the event before adding the metadata. I don't think there is much point in recording the metadata, and the serialized output from pickle wasn't practical anyways.
* Swap elif and else blocks in receive_httprequest_callbackTrygve Aaberge2019-05-231-5/+5
|
* Improve installation documentationTrygve Aaberge2019-05-161-3/+7
| | | | | | Add a command to create the necessary directories, replace wget with curl (since curl, but not wget, is available by default on macOS), and add a note that you can skip autoload if you want.
* Document all supported regex flagsTrygve Aaberge2019-05-101-4/+7
|
* Update commands and options docs filesTrygve Aaberge2019-05-072-0/+15
|
* Support regex flags i, m and sTrygve Aaberge2019-05-071-1/+5
|
* Add instructions for installing deps on OpenBSDMartin Gammelsæter2019-05-071-0/+5
|
* Fix broken testsTrygve Aaberge2019-05-053-11/+7
| | | | | I forgot to make some required changes in the tests after commit f3d880e and commit 49d481c.
* Release v2.3.0v2.3.0Trygve Aaberge2019-05-052-2/+23
|
* Update copyright noticeTrygve Aaberge2019-05-052-2/+6
| | | | | | | | I included it in the script as well, since it is included in the script in weechats repo. I also removed the coding comment from wee_slack.py since the file is in ascii.
* Support subteams in resolve_refTrygve Aaberge2019-05-051-0/+5
|
* Simplify resolve_refTrygve Aaberge2019-05-051-20/+10
|
* Increase pong timeout to 30 secondsTrygve Aaberge2019-05-051-1/+1
| | | | | | | | Even after the last two changes, I have still experienced a disconnect because of missing pong once where I think I possibly shouldn't have been disconnected. Hopefully 30 seconds is a good compromise between not disconnecting when it isn't necessary and not waiting too long before disconnecting a dead connection.
* Only check for pong responses when ping has been recently sentTrygve Aaberge2019-05-031-1/+5
| | | | | | | | With large teams on a slow computer, wee-slack may unfortunately hang for a while at times while processing data. When this happen, it doesn't get a chance to send pings. When it's finished processing, it previously might have disconnected if the pong checker runs before sending a ping, since it's a long time since a ping has been sent.
* Process the entire websocket queue in receive_ws_callbackTrygve Aaberge2019-05-031-24/+25
| | | | | | | | | | | | | | | | | | When we receive many lines over the websocket, receive_ws_callback seems to be called periodically (10 times per second or so) until all lines have been read. Since we previously only read one line per invocation of receive_ws_callback, it would take a long time to read all the lines. In addition to making events processed slower than necessary, this caused a problem for the pong watcher. Since the lines was processed so slow, it might take a long time until we process the pong message when the queue was large. This caused the script to disconnect the websocket since it didn't see the pong messages in time. To fix this, we run websocket receive in receive_ws_callback until there are no more messages. The messages are just added to the eventrouter queue, not processed right away, so this shouldn't cause performance issues.
* Reconnect if no pong is received for 12 secondsTrygve Aaberge2019-04-232-7/+25
| | | | | | | 12 seconds is a bit more than twice the amount of time between the pings we send. Fixes #238, fixes #480, fixes #561
* Don't connect to rtm multiple times simultaneouslyTrygve Aaberge2019-04-231-9/+11
|
* Call rtm.connect instead of rtm.start on reconnectTrygve Aaberge2019-04-231-5/+18
|
* Close websocket connection on shutdownTrygve Aaberge2019-04-231-0/+2
|
* Print connected message after websocket is connectedTrygve Aaberge2019-04-231-4/+4
|
* Connect explicitly in handle_rtmstartTrygve Aaberge2019-04-231-1/+2
| | | | Instead of waiting for reconnect_if_disconnected to call connect.
* Catch socket errors when sending pingTrygve Aaberge2019-04-231-2/+5
| | | | | | Also check that the team is connected before sending ping. Fixes #687
* Create helper for socket error handlingTrygve Aaberge2019-04-231-13/+16
| | | | | Changes send_to_websocket to handle the same errors as receive_ws_callback.
* Catch socket errors in receive_ws_callbackTrygve Aaberge2019-04-231-6/+11
|
* Enable testing in python 3 on TravisTrygve Aaberge2019-04-081-0/+2
| | | | | Use Ubuntu Xenial (16.04), since the default (Trusty, 14.04) doesn't have python 3.7.
* Use default python for generate_docs.pyTrygve Aaberge2019-04-081-1/+1
| | | | It can now be run with either python 2 or 3.
* Various fixes for python 3Trygve Aaberge2019-04-081-3/+3
|
* Use raw strings for regexesTrygve Aaberge2019-04-081-4/+4
|
* Cleanup tests and make them compatible with python 3Trygve Aaberge2019-04-0814-254/+157
| | | | | | This mainly adds team, channel_general and user_alice as fixtures, so we can use those directly instead of picking arbitrary ones from the lists. It also adds assertions to some tests which where missing it.
* Delete testsTrygve Aaberge2019-04-086-126/+0
| | | | These tests don't do any assertions, so they are not very useful.
* Miscellaneous Python 3 compatibility fixesSamuel Holland2019-04-081-2/+9
|
* Don't use iter or view functionsTrygve Aaberge2019-04-081-17/+15
| | | | | | Python 3 doesn't have these functions, but returns iterables and views by default. For python 2 this may have a small performance impact, but probably not much.
* Make encode_to/decode_from_utf8 noop in python 3Trygve Aaberge2019-04-082-51/+76
| | | | | | | Python 3 receives unicode strings as arguments in weechat callbacks, websocet receive etc. and we can send unicode strings to weechat functions, websocket etc., so we don't need to do any of this converting.
* Implement the new comparison methods for SlackTSSamuel Holland2019-04-081-0/+15
| | | | | | Python 3 no longer respects __cmp__, as it has more fine-grained hooks for ordering/comparison. To minimize code changes, implement them in terms of the existing __cmp__ method.
* Make PluginConfig getattr compatible with Python 3Samuel Holland2019-04-081-7/+10
| | | | | | __getattr__ is expected to raise AttributeError, not KeyError. The removal of the call to hasattr() also speeds up fetch_setting().
* Remember plugin config values in FakeWeechatSamuel Holland2019-04-081-3/+4
| | | | | | PluginConfig uses round-tripping through wee_slack.w to coerce the its default values to the correct type. Without this, the normal getters fail, as '' cannot be converted to an integer/boolean.
* Make SHA1 hashing work on both Python 2 and 3Samuel Holland2019-04-081-5/+7
| | | | | Use sha1 from the hashlib module, and factor out a helper function that makes sure the argument to sha1 is a bytestring.
* Import urllib classes in a way compatible with Python 3Samuel Holland2019-04-081-2/+6
| | | | Try both the old and the new locations.
* Use StringIO from ioTrygve Aaberge2019-04-082-4/+3
| | | | | This is compatible with python 3, which StringIO from StringIO or cStringIO is not.