hfaran / slack-export-viewer

A Slack Export archive viewer that allows you to easily view and share your Slack team's export
https://pypi.python.org/pypi/slack-export-viewer
MIT License
901 stars 189 forks source link

slackdump exports aren't viewable using slack-export-viewer #187

Closed ritiek closed 2 months ago

ritiek commented 3 months ago

Hi!

I exported a channel from slack using https://github.com/rusq/slackdump and tried viewing it using slack-export-viewer. However, I get a 500 Internal Server Error from slack-export-viewer with the following traceback:

$ slack-export-viewer -z myexport -I 0.0.0.0
$ slack-export-viewer -z myexport -I 0.0.0.0
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://192.168.5.11:5000
Press CTRL+C to quit
192.168.5.10 - - [09/Apr/2024 14:17:15] "GET / HTTP/1.1" 500 -
INFO:werkzeug:192.168.2.5 - - [09/Apr/2024 14:17:15] "GET / HTTP/1.1" 500 -
Error on request:
Traceback (most recent call last):
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/werkzeug/serving.py", line 364, in run_wsgi
    execute(self.server.app)
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/werkzeug/serving.py", line 325, in execute
    application_iter = app(environ, start_response)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 2213, in __call__
    return self.wsgi_app(environ, start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 2193, in wsgi_app
    response = self.handle_exception(e)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 2190, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 1486, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 1484, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 1469, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/slackviewer/app.py", line 119, in index
    return dm_id(dms[0])
           ^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/slackviewer/app.py", line 67, in dm_id
    return flask.render_template("viewer.html", messages=messages,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/templating.py", line 151, in render_template
    return _render(app, template, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/templating.py", line 132, in _render
    rv = template.render(context)
         ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/jinja2/environment.py", line 1301, in render
    self.environment.handle_exception()
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/jinja2/environment.py", line 936, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/slackviewer/templates/viewer.html", line 65, in top-level template code
    {% if "Thread Reply:" in message.msg %}
TypeError: argument of type 'NoneType' is not iterable
ERROR:werkzeug:Error on request:
Traceback (most recent call last):
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/werkzeug/serving.py", line 364, in run_wsgi
    execute(self.server.app)
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/werkzeug/serving.py", line 325, in execute
    application_iter = app(environ, start_response)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 2213, in __call__
    return self.wsgi_app(environ, start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 2193, in wsgi_app
    response = self.handle_exception(e)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 2190, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 1486, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 1484, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/app.py", line 1469, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/slackviewer/app.py", line 119, in index
    return dm_id(dms[0])
           ^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/slackviewer/app.py", line 67, in dm_id
    return flask.render_template("viewer.html", messages=messages,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/templating.py", line 151, in render_template
    return _render(app, template, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/flask/templating.py", line 132, in _render
    rv = template.render(context)
         ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/jinja2/environment.py", line 1301, in render
    self.environment.handle_exception()
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/jinja2/environment.py", line 936, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "/home/ritiek/.local/pipx/venvs/slack-export-viewer/lib/python3.11/site-packages/slackviewer/templates/viewer.html", line 65, in top-level template code
    {% if "Thread Reply:" in message.msg %}
TypeError: argument of type 'NoneType' is not iterable

I originally opened this issue on slackdump's repo, it was suggested that this seems a regression in slack-export-viewer v1.4.2 https://github.com/rusq/slackdump/issues/282#issuecomment-2044998943.

And indeed v1.4.1 seems to work fine for me. The problem occurs only when I am using v1.4.2.

hfaran commented 2 months ago

Resolved by https://github.com/hfaran/slack-export-viewer/pull/188