Skip to main content

Slack Cleaner2 is an improved slack cleaner version using a python first approach

Project description

slack_cleaner2

License: MIT Github Actions PyPi Read the Docs

Bulk delete messages and files on Slack.

Install

Install from PyPi:

pip install slack-cleaner2

latest version

pip install -e git+https://github.com/sgratzl/slack_cleaner2.git

Usage

In contrast to the original version (https://github.com/kfei/slack-cleaner) this version is a focusing on pure python package that allows for easy scripting instead of a vast amount of different command line arguments.

basic usage

from slack_cleaner2 import *

s = SlackCleaner('SECRET TOKEN')
# list of users
s.users
# list of all kind of channels
s.conversations

# delete all messages in -bots channels
for msg in s.msgs(filter(match('.*-bots'), s.conversations)):
  # delete messages, its files, and all its replies (thread)
  msg.delete(replies=True, files=True)

# delete all general messages and also iterate over all replies
for msg in s.c.general.msgs(with_replies=True):
  msg.delete()

Migration Guides form slack-cleaner contains a series of common pattern in slack cleaner and their counterpart in Slack Cleaner2

Token

The slack cleaner needs you to give Slack's API permission to let it run the operations it needs. You grant these by registering it as an app in the workspace you want to use it in.

You can grant these permissions to the app by:

  1. going to Your Apps
  2. select 'Create New App', fill out an App Name (eg 'Slack Cleaner') and select the Slack workspace you want to use it in
  3. select 'OAuth & Permissions' in the sidebar
  4. scroll down to User Token Scope and select all scopes you need according to list below
  5. select 'Save changes'
  6. select 'Install App to Workspace'
  7. review the permissions and press 'Authorize'
  8. copy the 'OAuth Access Token' shown, and use as the first argument to SlackCleaner

The token should start with xoxp and not like bot tokens with xoxb.

Beyond granting permissions, if you wish to use this library to delete messages or files posted by others, you will need to be an Owner or Admin of the workspace.

User Token Scopes by Use Case

General channel and user detection

  • users:read
  • channels:read
  • groups:read
  • im:read
  • mpim:read

Deleting messages from public channels

  • users:read
  • channels:read
  • channels:history
  • chat:write

Deleting messages from private channels

  • users:read
  • groups:read
  • groups:history
  • chat:write

Deleting messages from 1:1 IMs

Note: You can only delete your own messages, not the ones of others. This is due to a restriction in the Slack API and there is nothing one can do about it.

  • im:read
  • im:history
  • users:read
  • chat:write

Deleting messages from multi-person IMs

  • mpim:read
  • mpim:history
  • users:read
  • chat:write

Deleting files

  • files:read
  • users:read
  • files:write

All User Token scopes

user token scopes

Docker

There is no direct docker file available, however since it is a python module one can easily create one:

FROM python:3.7-alpine

LABEL maintainer="Samuel Gratzl <sam@sgratzl.com>"

VOLUME "/backup"
WORKDIR /backup

RUN pip --no-cache-dir install slack-cleaner2

CMD ["python", "-"]

An Docker image named slack_cleaner2 with this Dockerfile would be used like

cat myscript.py | docker run -i slack_cleaner2

The myscript.py file is a python script using the slack_cleaner2 module.

Credits

To all the people who can only afford a free plan. :cry:

Development

Release

bumpversion patch
git commit -am 'release vX.X.X'
git tag vX.X.X
invoke release
git push 
git push --tags

change version in slack_cleaner2/_info.py

Project details


Download files

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

Source Distribution

slack_cleaner2-3.0.1.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

slack_cleaner2-3.0.1-py2.py3-none-any.whl (17.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file slack_cleaner2-3.0.1.tar.gz.

File metadata

  • Download URL: slack_cleaner2-3.0.1.tar.gz
  • Upload date:
  • Size: 21.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.7.7

File hashes

Hashes for slack_cleaner2-3.0.1.tar.gz
Algorithm Hash digest
SHA256 86abd2ca0972a661109b3aba0f7aa0fd0d7dfca5732a9ec12d3ad6f65c21ec75
MD5 53d348f98735cd319c0335fa7c545b83
BLAKE2b-256 a7defd88d5f60320c202ec5868eb335f864af22c85050f9edc3b3e4fc46ecdb8

See more details on using hashes here.

File details

Details for the file slack_cleaner2-3.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: slack_cleaner2-3.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.7.7

File hashes

Hashes for slack_cleaner2-3.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 dd818cf5dd37f4944bd3ca0ea892092a53e3efb36e059d1efe3a297163df6b4d
MD5 649a098b350af575c9a88e5c5bfbdb2b
BLAKE2b-256 05debdb18b9d38a6dc31c761561a5881c4377b37593b70fef79fbd0a062d700c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page