-
-
Save gelicia/96e537b7d62f367f596a14223b5226eb to your computer and use it in GitHub Desktop.
This Ruby script will bulk remove all Slack files older than 30 days. Just add your API token from https://api.slack.com/custom-integrations/legacy-tokens (See Legacy token generator) into the token quotes at the top of the file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'net/http' | |
require 'json' | |
require 'uri' | |
@token = '' | |
def list_files | |
ts_to = (Time.now - 30 * 24 * 60 * 60).to_i # 30 days ago | |
params = { | |
token: @token, | |
ts_to: ts_to, | |
count: 1000 | |
} | |
uri = URI.parse('https://slack.com/api/files.list') | |
uri.query = URI.encode_www_form(params) | |
response = Net::HTTP.get_response(uri) | |
JSON.parse(response.body)['files'] | |
end | |
def delete_files(file_ids) | |
file_ids.each do |file_id| | |
params = { | |
token: @token, | |
file: file_id | |
} | |
uri = URI.parse('https://slack.com/api/files.delete') | |
uri.query = URI.encode_www_form(params) | |
response = Net::HTTP.get_response(uri) | |
p "#{file_id}: #{JSON.parse(response.body)['ok']}" | |
end | |
end | |
p 'Deleting files...' | |
files = list_files | |
file_ids = files.map { |f| f['id'] } | |
delete_files(file_ids) | |
p 'Done!' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment