2016-11-17 3 views
-2

Я очищаю нашу учетную запись Slack и хочу сохранить файлы перед их удалением. Прикрепленный сценарий, который я получил от github. Может кто-то, пожалуйста, предоставит мне фрагмент, который я могу добавить в скрипт, чтобы я мог сказать Python, чтобы сохранить файлы в указанной папке (root_folder). Пожалуйста, предоставьте свою любезную помощь.Сохраните слабые файлы в папке

from slacker import * 
import sys 
import time 
import os 
from datetime import timedelta, datetime 

root_folder = 'Z:\Slack_Files' 

def main(token, weeks=4): 
    slack = Slacker(token) 
    # Get list of all files available for the user of the token 
    total = slack.files.list(count=1).body['paging']['total'] 
    num_pages = int(total/1000.00 + 1) 
    print("{} files to be processed, across {} pages".format(total, num_pages)) 
    # Get Data about files 
    files_to_save = [] 
    ids = [] # For checking that the API doesn't return duplicate files 
    count = 1 
    for page in range(num_pages): 
    print ("Pulling page number {}".format(page + 1)) 
    files = slack.files.list(count=1000, page=page+1).body['files'] 
    for file in files: 
     print("Checking file number {}".format(count)) 
     # Checking for duplicates 
     if file['id'] not in ids: 
      ids.append(file['id']) 
      if datetime.fromtimestamp(file['timestamp']) < datetime.now() - timedelta(weeks=weeks): 
       files_to_save.append(file) 
       print("File No. {} will be saved".format(count)) 
      else: 
       print("File No. {} will not be saved".format(count)) 
     count+=1 

print("All files saved\nProceeding to save files") 
print("{} files will be saved!".format(len(files_to_save))) 
count = 1 
for file in files_to_save: 
    print("Saving file {} of {} - {}".format(count, len(files_to_save), file["name"])) 
    print(file["name"]) 
    count+=1 

return count-1 
+1

- это API, включающий детали из файлов? – Juggernaut

+0

Является ли какой-либо код, который вы разместили самостоятельно, или это прямо из github? Вы просите нас написать код для вас, когда вы сами не работали над этим? Если да, это не по теме для этого сайта. –

+0

Да, он включает в себя детали с нашей учетной записи Slack. Я сделал дополнения к нему. Это не совсем то же самое, что и github. Я просто хочу сказать Python, чтобы сохранить файлы в указанной папке. Когда я запускаю скрипт, он возвращает список файлов, которые будут сохранены, мне просто нужно добавить фрагмент, чтобы сохранить файлы в папке. –

ответ

1

Вот базовый подход к тому, как это сделать.

  1. Получить список всех файлов и их идентификаторов с files.list
  2. Loop через список всех файлов
  3. для каждого файла: Использование files.sharedPublicUrl получить публичный URL для файла. Загрузите и сохраните его со своим скриптом. Наконец, удалите его с помощью files.delete

Обратите внимание, что ваш токен бота/доступа будет иметь доступ только к файлам с частных каналов, к которому он/приглашен соответствующий пользователь.

Обратите внимание, что ваш скрипт должен соблюдать ограничение 1 запрос на секунду или он не будет работать.

Смежные вопросы