Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Slack Export Archive Viewer

Project description

Slack Export Viewer

Build Status PyPI version

A Slack Export archive viewer that allows you to easily view and share your Slack team's export (instead of having to dive into hundreds of JSON files).

Preview

Contents

Overview

slack-export-viewer is useful for small teams on a free Slack plan (limited to 10,000 messages) who overrun their budget and ocassionally need a nice interface to refer back to previous messages. You get a web interface to easily scroll through all channels in the export without having to look at individual JSON files per channel per day.

slack-export-viewer can be used locally on one machine for yourself to explore an export or it can be run on a headless server (as it is a Flask web app) if you also want to serve the content to the rest of your team.

Installation

I recommend pipsi for a nice isolated install.

pipsi install slack-export-viewer

Or just feel free to use pip as you like.

pip install slack-export-viewer

slack-export-viewer will be installed as an entry-point; run from anywhere.

$ slack-export-viewer --help
Usage: slack-export-viewer [OPTIONS]

Options:
  -p, --port INTEGER        Host port to serve your content on
  -z, --archive PATH        Path to your Slack export archive (.zip file or
                            directory)  [required]
  -I, --ip TEXT             Host IP to serve your content on
  --no-browser              If you do not want a browser to open
                            automatically, set this.
  --channels TEXT           A comma separated list of channels to parse.
  --no-sidebar              Removes the sidebar.
  --no-external-references  Removes all references to external css/js/images.
  --test                    Runs in 'test' mode, i.e., this will do an archive
                            extract, but will not start the server, and
                            immediately quit.
  --debug
  --help                    Show this message and exit.

Usage

1) Grab your Slack team's export

2) Point slack-export-viewer to it

Point slack-export-viewer to the .zip file and let it do its magic

slack-export-viewer -z /path/to/export/zip

If everything went well, your archive will have been extracted, processed, and browser window will have opened showing your #general channel from the export.

CLI

There is now a CLI included as well. Currently the one command you can use is clearing the cache from slack-export-viewer from your %TEMP% directory; see usage:

└———→ slack-export-viewer-cli --help
Usage: slack-export-viewer-cli [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  clean  Cleans up any temporary files (including...

Examples

┌— hamza@AURORAONE C:\Users\hamza
└———→ slack-export-viewer-cli clean
Run with -w to remove C:\Users\hamza\AppData\Local\Temp\_slackviewer
┌— hamza@AURORAONE C:\Users\hamza
└———→ slack-export-viewer-cli clean -w
Removing C:\Users\hamza\AppData\Local\Temp\_slackviewer...

Acknowledgements

Credit to Pieter Levels whose blog post and PHP script I used as a jumping off point for this.

Improvements over Pieter's script

slack-export-viewer is similar in core functionality but adds several things on top to make it nicer to use:

  • An installable application
  • Automated archive extraction and retention
  • A Slack-like sidebar that lets you switch channels easily
  • Much more "sophisticated" rendering of messages
  • A Flask server which lets you serve the archive contents as opposed to a PHP script which does static file generation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for slack-export-viewer, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size slack_export_viewer-1.0.0-py2-none-any.whl (22.1 kB) File type Wheel Python version py2 Upload date Hashes View hashes
Filename, size slack-export-viewer-1.0.0.tar.gz (169.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page