aboutsummaryrefslogtreecommitdiffstats
path: root/wee_slack.py
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #414 from trygveaa/improve-rendering-of-multiline-editsTollef Fog Heen2017-08-271-8/+39
|\ | | | | Improve rendering of changes in multiline messages
| * Prevent lines being broken in bare display modeTrygve Aaberge2017-08-121-0/+3
| | | | | | | | | | | | | | | | | | | | If you update a line with hdata_update and pass a string containing newlines, the buffer will become a bit broken when bare display mode is activated (alt+l). It seems that the newlines are printed in bare mode, but extra lines are not inserted, so the lines are overlapping with each other. Fixes #306
| * Abort modification of message if encountering line without dataTrygve Aaberge2017-07-301-0/+7
| | | | | | | | | | | | | | Not sure if this can happen. The weechat documentation doesn't state that it can, but since the if condition was there, maybe it can. If it can and does happen, abort the modification, which is better than something unexpected happening.
| * Improve rendering of changes in multiline messagesTrygve Aaberge2017-07-301-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, if a multiline message was edited or reacted to, all of the new message would be crammed into the last line of the already printed message. This change updates each line separately, so if the number of lines in the message doesn't change, the message will still be rendered correctly after edits or reactions. If the number of lines change, the rendering is still improved, however I don't know if it is possible to insert or delete lines in a weechat buffer without re-rendering the whole buffer, so it won't be perfect. If the number of lines of a message decreases after an edit, the extra lines will still be present, but they will be blanked. If the number of lines increases, the first lines will be set as normally, but the last line will contain all of the rest of the lines.
| * Set correct id on all the lines of a messageTrygve Aaberge2017-07-291-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of only updating the last line printed with the id of the message (ts.minor, set in the date_printed field), update all of the lines that is printed for that message. This is necessary for updating all of the lines on changes, instead of only the last. This will be implemented in the next commit. This assumes that the lines after the first in messages always has an empty prefix, and that the first line of a message always has a prefix. This holds for the messages I have seen (single-line, multi-line as well as me-messages and joins/quits). Other approaches I considered was to count the number of newlines in the message and update the same number of lines, or to check the existing date_printed field of the messages and update the ones that had 10 digits or more (since current timestamps has that, and the slack id currently has 6 digits). However, I dropped them in favor of the prefix solution which seems better.
* | Check that the bot_id exists before using itTrygve Aaberge2017-08-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of just checking that bot_id is not None, check that it exists in the list of bots. This prevents a KeyError when trying to access a bot that doesn't exist in the list. This KeyError would happen if you use a reminder. The message from slackbot then has bot_id B01 which is not in the list of bots from rtm.start and gives bot_not_found if trying to look it up with the bots.info API endpoint. By ignoring the bot_id we fall back to the user/username, which in the case of reminders is slackbot, so the name appears just as the other messages from slackbot. Fixes #420
* | Fix HTML entity-encoding of outgoing messagesTrygve Aaberge2017-08-011-4/+4
|/ | | | | | We have to replace the & before we replace < and >, otherwise the & in &lt; and &gt; are going to be replaced. Additionally, we need to end the sequences with ; which was missing.
* Merge remote-tracking branch 'origin/nicklist-presence-groups'Tollef Fog Heen2017-07-281-1/+12
|\
| * Move presence change to a SlackTeam methodMarcel de Vries2017-07-241-6/+9
| |
| * Update nicklist when team member presence changesMarcel de Vries2017-07-231-1/+9
| |
* | Decode the basic HTML entities in topic handlingTollef Fog Heen2017-07-281-6/+9
| | | | | | | | Closes: #315
* | Merge pull request #399 from wee-slack/nicklist-presence-groupsTollef Fog Heen2017-07-281-11/+15
|\| | | | | Put users in groups according to presence
| * Put users in groups according to presenceTollef Fog Heen2017-07-191-11/+15
| | | | | | | | Fixes #398
* | Merge pull request #408 from auscompgeek/fix-status-cmdTollef Fog Heen2017-07-281-1/+1
|\ \ | | | | | | Fix AttributeError on /slack status in team buffer
| * | Fix AttributeError on /slack status in team bufferDavid Vo2017-07-271-1/+1
| | |
* | | Merge pull request #412 from trygveaa/set-correct-unread-countTollef Fog Heen2017-07-281-1/+1
|\ \ \ | | | | | | | | Set correct number of unread messages in hotlist
| * | | Set correct number of unread messages in hotlistTrygve Aaberge2017-07-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | While the commit 6718e2f fixed buffers not appearing in the hotlist, after it the number of new messages for each buffer was gone. This makes the number of messages for each buffer shown again.
* | | | Merge pull request #411 from auscompgeek/fix-open-threadTollef Fog Heen2017-07-281-1/+1
|\ \ \ \ | | | | | | | | | | Fix opening thread buffers
| * | | | Fix opening thread buffersDavid Vo2017-07-281-1/+1
| |/ / /
* | | | Add support for editing other messages than just the last oneTollef Fog Heen2017-07-281-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar syntax as for adding reactions: 3s/foo/bar/ Fixes: #153
* | | | Fix return codes in buffer_input_callbackTollef Fog Heen2017-07-281-2/+2
|/ / / | | | | | | | | | Not sure this actually matters as weechat seemed happy with the wrong return codes too
* / / Properly escape <&> when sending messages to Slack.Ben Kelly2017-07-251-0/+7
|/ / | | | | | | | | Signed-off-by: Ben Kelly <bk@ancilla.ca> Signed-off-by: Ben Kelly <btk@google.com>
* | Merge pull request #394 from ToxicFrog/toxicfrog/typing-notificationsBen Kelly2017-07-211-1/+1
|\ \ | | | | | | Don't send typing notifications for threads, since Slack doesn't like that
| * | Don't send typing notifications for threads, since Slack doesn't like that.Ben Kelly2017-07-131-1/+1
| | | | | | | | | | | | Signed-off-by: Ben Kelly <btk@google.com>
* | | Re-add setting of localvar_set_nickTollef Fog Heen2017-07-211-0/+3
| | | | | | | | | | | | Fixes #80 (again)
* | | Handle /msg * foo correctlyTollef Fog Heen2017-07-211-1/+4
| | | | | | | | | | | | | | | | | | Send * to the current channel. Fixes: #191
* | | Fix use-before-assignment when fetching channel to send toTollef Fog Heen2017-07-211-1/+1
| |/ |/|
* | restore call to update_nicklist() (accidental removal)Bryan Gilbert2017-07-191-0/+1
| |
* | use im.open endpoint to properly update unread count for ims on startupBryan Gilbert2017-07-191-6/+17
| |
* | add group info request and handler to set unread count and update hotlistBryan Gilbert2017-07-171-0/+9
| |
* | call channel info on channel open to set unread count and update hotlistBryan Gilbert2017-07-161-19/+20
|/
* Merge pull request #371 from ToxicFrog/toxicfrog/mrkdwnBen Kelly2017-07-131-8/+13
|\ | | | | Disable formatting for messages with `mrkdwn` unset
| * Disable formatting for messages with `mrkdwn` unsetBen Kelly2017-07-121-8/+13
| | | | | | | | | | Signed-off-by: Ben Kelly <btk@google.com> Signed-off-by: Ben Kelly <bk@ancilla.ca>
* | Fix the testsBen Kelly2017-07-121-2/+3
| | | | | | | | | | | | | | | | | | | | Not everything that needed to be mocked out was, and there was also an issue with every instance of PluginConfig sharing the same mutable settings field and thus stomping on each other if you initialized more than one in the same test. Signed-off-by: Ben Kelly <bk@ancilla.ca> Signed-off-by: Ben Kelly <btk@google.com>
* | Add descriptions for weeslack plugin settings.Ben Kelly2017-07-121-26/+97
|/ | | | | Signed-off-by: Ben Kelly <btk@google.com> Signed-off-by: Ben Kelly <bk@ancilla.ca>
* Merge pull request #350 from ToxicFrog/toxicfrog/italicsBen Kelly2017-07-121-12/+27
|\ | | | | Add italic support, and settings to switch between italic and underline
| * Add italic support, and settings to switch between italic and underlineBen Kelly2017-04-151-12/+27
| | | | | | | | | | Signed-off-by: Ben Kelly <btk@google.com> Signed-off-by: Ben Kelly <bk@ancilla.ca>
* | Get nick color name correctly in weechat < 1.5Trygve Aaberge2017-07-121-2/+9
| | | | | | | | | | | | | | | | | | In weechat 1.5, the info name 'irc_nick_color_name' was renamed to 'nick_color_name'. Since we want to support weechat < 1.5 and don't want deprecation warnings in >= 1.5, we need to check the version and use the appropriate name. Fixes #364
* | Rename version variable to weechat_versionTrygve Aaberge2017-07-121-2/+2
| | | | | | | | | | This is going to be used another place in the script in the next commit, so set a more verbose name so it's not confused with the script version.
* | Stop polling dead websockets. Fixes #349Cameron Matheson2017-07-051-1/+2
| |
* | Merge pull request #351 from wee-slack/settings_cleanupRyan Huber2017-04-211-10/+0
|\ \ | | | | | | Clean up a little bit
| * | Remove colorize_messages settingTollef Fog Heen2017-04-161-1/+0
| | | | | | | | | | | | This doesn't seem to be used, so just remove it.
| * | Remove dead code related to cacheTollef Fog Heen2017-04-161-9/+0
| | | | | | | | | | | | The cache is gone, remove some related code.
* | | Fix channel history not appearing when an earlier message has 'text': NoneBen Kelly2017-04-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Today I learned that sometimes, rather than the key missing, it has the value None. In this case, (key in dict) is true! This fixes an issue where, if the backscroll of a channel contained such a message, it would throw while fetching the backscroll and cut off without fetching all of it. Signed-off-by: Ben Kelly <btk@google.com> Signed-off-by: Ben Kelly <bk@ancilla.ca>
* | | Merge pull request #347 from V13Axel/status_commandRyan Huber2017-04-181-0/+25
|\ \ \ | | | | | | | | Add command for setting Slack Status
| * | | Remove redundant team reference retrievalV13Axel2017-04-171-1/+0
| | | |
| * | | Add command for setting Slack StatusV13Axel2017-04-131-0/+26
| | | |
* | | | Decode arguments sent to callback functionsTrygve Aaberge2017-04-151-0/+36
| | | |
* | | | Do encode/decode in websocket and urllib callsTrygve Aaberge2017-04-151-3/+3
| | | |
* | | | Create a wrapper around weechat which handles encodingTrygve Aaberge2017-04-151-1/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This encodes everything sent into weechat, and decodes the return values, so we don't have to do it every place we call weechat. We still have to decode the arguments in all of the callback functions though. The encode_to_utf8 and decode_from_utf8 functions traverses data structures and encodes/decodes all of the strings inside the structures.