حذف الرسائل والملفات بشكل جماعي على Slack.
هذه شوكة لـ https://github.com/kfei/slack-cleaner
توجد نسخة محسنة تعتمد على وحدة Python على https://github.com/sgratzl/slack_cleaner2
التثبيت من النقطة:
pip install slack-cleaner
النسخة التطويرية الحالية:
pip install -e git+https://github.com/sgratzl/slack-cleaner.git#egg=slack-cleaner
إذا كنت تفضل Docker، فهناك صورة Docker مُصممة مسبقًا أيضًا:
docker pull sgratzl/slack-cleaner
ما عليك سوى استخدام docker run -it --rm sgratzl/slack-cleaner -c "slack-cleaner ..."
لكل أمر أو الانتقال إلى shell باستخدام docker run -it --rm sgratzl/slack-cleaner
.
التثبيت لـ Fedora أو EPEL7
تحتفظ @rapgro بحزم لكل من Fedora و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
تعتمد الأذونات التي سيتم منحها على الغرض الذي ستستخدم البرنامج النصي من أجله. امنح الأذونات أدناه اعتمادًا على استخدامك.
بالإضافة إلى منح الأذونات، إذا كنت ترغب في استخدام هذا البرنامج النصي لحذف الرسائل أو الملفات التي نشرها الآخرون، فستحتاج إلى أن تكون مالكًا أو مسؤولاً عن مساحة العمل.
channels:history
channels:read
chat:write
(أو كل من chat:write:user
chat:write:bot
للتطبيقات الأقدم)users:read
groups:history
groups:read
chat:write
(أو chat:write:user
للتطبيقات القديمة)users:read
im:history
im:read
chat:write
(أو chat:write:user
للتطبيقات القديمة)users:read
mpim:history
mpim:read
chat:write
(أو chat:write:user
للتطبيقات القديمة)users:read
files:read
files:write
(أو files:write:user
للتطبيقات الأقدم)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
يحتاج المنظف إلى منح إذن Slack's API للسماح له بتشغيل العمليات التي يحتاجها. يمكنك منحها عن طريق تسجيله كتطبيق في مساحة العمل التي تريد استخدامه فيها.
يمكنك منح هذه الأذونات للتطبيق عن طريق:
--token
للبرنامج النصي بعد المهمة، سيتم إنشاء ملف النسخ الاحتياطي slack-cleaner.<timestamp>.log
في الدليل الحالي إذا تم توفير --log
.
في حالة حدوث أي مشكلة في واجهة برمجة التطبيقات، حاول --rate=<delay-in-seconds>
لتقليل معدل استدعاء واجهة برمجة التطبيقات (وهو غير محدود بشكل افتراضي).
إذا رأيت التحذير التالي من urllib3
، ففكر في تثبيت الحزم المفقودة: pip install --upgrade requests[security]
أو قم فقط بترقية Python الخاص بك إلى 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.
إلى جميع الأشخاص الذين لا يستطيعون سوى شراء خطة مجانية. ؟