Supprimez en masse des messages et des fichiers sur Slack.
c'est un fork de https://github.com/kfei/slack-cleaner
Une version améliorée basée sur le module Python se trouve sur https://github.com/sgratzl/slack_cleaner2
Installer depuis Pip :
pip install slack-cleaner
version de développement actuelle :
pip install -e git+https://github.com/sgratzl/slack-cleaner.git#egg=slack-cleaner
Si vous préférez Docker, il existe également une image Docker prédéfinie :
docker pull sgratzl/slack-cleaner
Utilisez simplement docker run -it --rm sgratzl/slack-cleaner -c "slack-cleaner ..."
pour chaque commande ou sautez dans un shell en utilisant docker run -it --rm sgratzl/slack-cleaner
.
Installer pour Fedora ou EPEL7
@rapgro gère des packages pour Fedora et EPEL7
# Fedora
dnf install slack-cleaner
# EPEL7
yum install -y epel-release ; yum install slack-cleaner
usage: slack-cleaner [-h] --token TOKEN [--log] [--quiet] [--rate RATE]
[--as_user] [--message | --file | --info] [--regex]
[--channel CHANNEL] [--direct DIRECT] [--group GROUP]
[--mpdirect MPDIRECT] [--user USER] [--botname BOTNAME]
[--bot] [--keeppinned] [--after AFTER] [--before BEFORE]
[--types TYPES] [--pattern PATTERN] [--perform]
optional arguments:
-h, --help show this help message and exit
--token TOKEN Slack API token (https://api.slack.com/web) or SLACK_TOKEN env var
--log Create a log file in the current directory
--quiet Run quietly, does not log messages deleted
--proxy Proxy Server url:port
--verify Verify option for Session (http://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verification)
--rate RATE Delay between API calls (in seconds)
--as_user Pass true to delete the message as the authed user. Bot
users in this context are considered authed users.
--message Delete messages
--file Delete files
--info Show information
--regex Interpret channel, direct, group, and mpdirect as regex
--channel CHANNEL Channel name's, e.g., general
--direct DIRECT Direct message's name, e.g., sherry
--group GROUP Private group's name
--mpdirect MPDIRECT Multiparty direct message's name, e.g.,
sherry,james,johndoe
--user USER Delete messages/files from certain user
--botname BOTNAME Delete messages/files from certain bots. Implies '--bot'
--bot Delete messages from bots
--keeppinned exclude pinned messages from deletion
--after AFTER Delete messages/files newer than this time (YYYYMMDD)
--before BEFORE Delete messages/files older than this time (YYYYMMDD)
--types TYPES Delete files of a certain type, e.g., posts,pdfs
--pattern PATTERN Delete messages/files with specified pattern or if one of their attachments matches (regex)
--perform Perform the task
Les autorisations à accorder dépendent de l'utilisation que vous allez faire du script. Accordez les autorisations ci-dessous en fonction de votre utilisation.
Au-delà de l'octroi d'autorisations, si vous souhaitez utiliser ce script pour supprimer des messages ou des fichiers publiés par d'autres, vous devrez être propriétaire ou administrateur de l'espace de travail.
channels:history
channels:read
chat:write
(ou les deux chat:write:user
et chat:write:bot
pour les anciennes applications)users:read
groups:history
groups:read
chat:write
(ou chat:write:user
pour les anciennes applications)users:read
im:history
im:read
chat:write
(ou chat:write:user
pour les anciennes applications)users:read
mpim:history
mpim:read
chat:write
(ou chat:write:user
pour les anciennes applications)users:read
files:read
files:write
(ou files:write:user
pour les anciennes applications)users:read
# Delete all messages from a channel
slack-cleaner --token < TOKEN > --message --channel general --user " * "
# Delete all messages from a private group aka private channel
slack-cleaner --token < TOKEN > --message --group hr --user " * "
# Delete all messages from a direct message channel
slack-cleaner --token < TOKEN > --message --direct sherry --user johndoe
# Delete all messages from a multiparty direct message channel. Note that the
# list of usernames must contains yourself
slack-cleaner --token < TOKEN > --message --mpdirect sherry,james,johndoe --user " * "
# Delete all messages from certain user
slack-cleaner --token < TOKEN > --message --channel gossip --user johndoe
# Delete all messages from bots (especially flooding CI updates)
slack-cleaner --token < TOKEN > --message --channel auto-build --bot
# Delete all messages older than 2015/09/19
slack-cleaner --token < TOKEN > --message --channel general --user " * " --before 20150919
# Delete all files
slack-cleaner --token < TOKEN > --file --user " * "
# Delete all files from certain user
slack-cleaner --token < TOKEN > --file --user johndoe
# Delete all snippets and images
slack-cleaner --token < TOKEN > --file --types snippets,images
# Show information about users, channels:
slack-cleaner --token < TOKEN > --info
# Delete matching a regexp pattern
slack-cleaner --token < TOKEN > --pattern " (bar|foo.+) "
# TODO add add keep_pinned example, add quiet
# Always have a look at help message
slack-cleaner --help
Le nettoyeur a besoin que vous accordiez à l'API de Slack l'autorisation de lui permettre d'exécuter les opérations dont il a besoin. Vous les accordez en l'enregistrant en tant qu'application dans l'espace de travail dans lequel vous souhaitez l'utiliser.
Vous pouvez accorder ces autorisations à l'application en :
--token
dans le script Après la tâche, un fichier de sauvegarde slack-cleaner.<timestamp>.log
sera créé dans le répertoire courant si --log
est fourni.
Si un problème d'API survient, essayez --rate=<delay-in-seconds>
pour réduire le taux d'appels de l'API (qui par défaut est illimité).
Si vous voyez l'avertissement suivant de urllib3
, envisagez d'installer les packages manquants : pip install --upgrade requests[security]
ou mettez simplement à niveau votre Python vers la version 2.7.9.
InsecurePlatformWarning: A true SSLContext object is not available.
This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail.
For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
À toutes les personnes qui ne peuvent se permettre qu’un forfait gratuit. ?