pyslackers/sirbot-slack

Fail parsing incoming message

ovv opened this issue · 1 comments

ovv commented
2017-07-02 23:46:17,000 - sirbot.slack.dispatcher.event - ERROR - 'NoneType' object has no attribute 'startswith'
Traceback (most recent call last):
  File "/home/sirbot/.pyvenv/lib/python3.6/site-packages/sirbot/slack/dispatcher/event.py", line 48, in incoming_rtm
    await self._incoming_message(event)
  File "/home/sirbot/.pyvenv/lib/python3.6/site-packages/sirbot/slack/dispatcher/event.py", line 91, in _incoming_message
    await self._message_dispatcher.incoming(event)
  File "/home/sirbot/.pyvenv/lib/python3.6/site-packages/sirbot/slack/dispatcher/message.py", line 55, in incoming
    message = await SlackMessage.from_raw(msg, slack)
  File "/home/sirbot/.pyvenv/lib/python3.6/site-packages/sirbot/slack/store/message/message.py", line 166, in from_raw
    frm = await slack.users.get(bot_id)
  File "/home/sirbot/.pyvenv/lib/python3.6/site-packages/sirbot/slack/store/user.py", line 103, in get
    user = await self._query(id_)
  File "/home/sirbot/.pyvenv/lib/python3.6/site-packages/sirbot/slack/store/user.py", line 140, in _query
    if id_.startswith('B'):
AttributeError: 'NoneType' object has no attribute 'startswith'
ovv commented
2017-08-08 07:21:55,121 - sirbot.slack.dispatcher.event - DEBUG - Event handler received: {'type': 'presence_change', 'presence': 'away', 'user': 'U2JCZL4JX'}
2017-08-08 07:21:58,039 - sirbot.slack.dispatcher.event - DEBUG - Event handler received: {'type': 'presence_change', 'presence': 'away', 'user': 'U49H71F8R'}
2017-08-08 07:22:01,042 - sirbot.slack.dispatcher.event - DEBUG - Event handler received: {'type': 'presence_change', 'presence': 'active', 'user': 'U6CLKDRAQ'}
2017-08-08 07:22:08,254 - sirbot.slack.dispatcher.event - DEBUG - Event handler received: {'type': 'file_comment_added', 'comment': {'id': 'Fc6JVD4BH7', 'created': 1502176928, 'timestamp': 1502176928, 'user': 'U5MSC2Y0G', 'is_intro': False, 'comment': 'int_fields = map(int, string_fields)\nint_fields = [int(field) for field in string_fields]'}, 'file_id': 'F6KH9HTD2', 'user_id': 'U4U2E1ZT9', 'file': {'id': 'F6KH9HTD2'}, 'event_ts': '1502176927.505780', 'ts': '1502176927.505780'}
2017-08-08 07:22:08,339 - sirbot.slack.dispatcher.message - DEBUG - Message handler received {'type': 'message', 'subtype': 'file_comment', 'text': '<@U5MSC2Y0G|ian-macleod> commented on <@U4U2E1ZT9|avrliza>’s file <https://pythondev.slack.com/files/avrliza/F6KH9HTD2/-.py|Untitled>: int_fields = map(int, string_fields)\nint_fields = [int(field) for field in string_fields]', 'file': {'id': 'F6KH9HTD2', 'created': 1502176006, 'timestamp': 1502176006, 'name': '-.py', 'title': 'Untitled', 'mimetype': 'text/plain', 'filetype': 'python', 'pretty_type': 'Python', 'user': 'U4U2E1ZT9', 'editable': True, 'size': 401, 'mode': 'snippet', 'is_external': False, 'external_type': '', 'is_public': True, 'public_url_shared': False, 'display_as_bot': False, 'username': '', 'url_private': 'https://files.slack.com/files-pri/T07EFKXHR-F6KH9HTD2/-.py', 'url_private_download': 'https://files.slack.com/files-pri/T07EFKXHR-F6KH9HTD2/download/-.py', 'permalink': 'https://pythondev.slack.com/files/avrliza/F6KH9HTD2/-.py', 'permalink_public': 'https://slack-files.com/T07EFKXHR-F6KH9HTD2-f028fc19b0', 'edit_link': 'https://pythondev.slack.com/files/avrliza/F6KH9HTD2/-.py/edit', 'preview': 'def read_csv(file_name):\r\n    f = open(file_name,"r")\r\n    data = f.read()\r\n    data_split = data.split ("\\n")\r\n    string_list = data_split[1:len(data_split)]\r', 'preview_highlight': '<div class="CodeMirror cm-s-default CodeMirrorServer" oncopy="if(event.clipboardData){event.clipboardData.setData(\'text/plain\',window.getSelection().toString().replace(/\\u200b/g,\'\'));event.preventDefault();event.stopPropagation();}">\n<div class="CodeMirror-code">\n<div><pre><span class="cm-keyword">def</span> <span class="cm-def">read_csv</span>(<span class="cm-variable">file_name</span>):</pre></div>\n<div><pre>    <span class="cm-variable">f</span> = <span class="cm-builtin">open</span>(<span class="cm-variable">file_name</span>,<span class="cm-string">&quot;r&quot;</span>)</pre></div>\n<div><pre>    <span class="cm-variable">data</span> = <span class="cm-variable">f</span>.<span class="cm-property">read</span>()</pre></div>\n<div><pre>    <span class="cm-variable">data_split</span> = <span class="cm-variable">data</span>.<span class="cm-property">split</span> (<span class="cm-string">&quot;\\n&quot;</span>)</pre></div>\n<div><pre>    <span class="cm-variable">string_list</span> = <span class="cm-variable">data_split</span>[<span class="cm-number">1</span>:<span class="cm-builtin">len</span>(<span class="cm-variable">data_split</span>)]</pre></div>\n</div>\n</div>\n', 'lines': 14, 'lines_more': 9, 'preview_is_truncated': False, 'channels': ['C07EW4DNE'], 'groups': [], 'ims': [], 'comments_count': 3, 'initial_comment': {'id': 'Fc6LCAEM46', 'created': 1502176006, 'timestamp': 1502176006, 'user': 'U4U2E1ZT9', 'is_intro': True, 'comment': 'Could somebody help me understand - on line 10 when I do split on my lists, it splits my list into lists, right? In this case I can’t convert my lists on line 11 into integers. So does it mean I need to add an extra step to convert a list to a string, and then convert it to an int?'}}, 'comment': {'id': 'Fc6JVD4BH7', 'created': 1502176928, 'timestamp': 1502176928, 'user': 'U5MSC2Y0G', 'is_intro': False, 'comment': 'int_fields = map(int, string_fields)\nint_fields = [int(field) for field in string_fields]'}, 'is_intro': False, 'team': 'T07EFKXHR', 'channel': 'C07EW4DNE', 'event_ts': '1502176927.505786', 'ts': '1502176927.505786'}
2017-08-08 07:22:08,340 - sirbot.slack.dispatcher.event - ERROR - 'NoneType' object has no attribute 'startswith'
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/sirbot/slack/dispatcher/event.py", line 48, in incoming_rtm
    await self._incoming_message(event)
  File "/usr/local/lib/python3.6/site-packages/sirbot/slack/dispatcher/event.py", line 91, in _incoming_message
    await self._message_dispatcher.incoming(event)
  File "/usr/local/lib/python3.6/site-packages/sirbot/slack/dispatcher/message.py", line 55, in incoming
    message = await SlackMessage.from_raw(msg, slack)
  File "/usr/local/lib/python3.6/site-packages/sirbot/slack/store/message/message.py", line 166, in from_raw
    frm = await slack.users.get(bot_id)
  File "/usr/local/lib/python3.6/site-packages/sirbot/slack/store/user.py", line 139, in get
    user = await self._query(id_)
  File "/usr/local/lib/python3.6/site-packages/sirbot/slack/store/user.py", line 176, in _query
    if id_.startswith('B'):
AttributeError: 'NoneType' object has no attribute 'startswith'
2017-08-08 07:22:13,054 - sirbot.slack.dispatcher.event - DEBUG - Event handler received: {'type': 'presence_change', 'presence': 'active', 'user': 'U5B987MDK'}
2017-08-08 07:22:14,054 - sirbot.slack.dispatcher.event - DEBUG - Event handler received: {'type': 'presence_change', 'presence': 'away', 'user': 'U4XNMF06A'}

A bit more log. Seems to be linked to message sent following a file comment.

We could just skip these messages as a corresponding event is sent.