File size: 1,537 Bytes
bcad657
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bf3b654
bcad657
 
 
 
 
 
 
 
 
 
 
10948fe
bcad657
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import requests
import os
import urllib.request



def seafile_list_files(folder_path, library_id, seafile_token):

    list_url = f"https://seafile.projekt.uni-hannover.de/api2/repos/{library_id}/dir/?p={folder_path}"
    response = requests.get(list_url, headers={"Authorization": f"Token {seafile_token}"})

    if response.status_code == 200:
        file_list = response.json()
        return [file["name"] for file in file_list]



def seafile_download_file(seafile_token, library_id, folder_path, file, target_folder):

    list_url = f"https://seafile.projekt.uni-hannover.de/api2/repos/{library_id}/file/?p={folder_path}/{file}"
    response = requests.get(list_url, headers={"Authorization": f"Token {seafile_token}"})
    download_link = response.content.decode('utf-8').strip('"\n')

    if response.status_code == 200:
        file_name = os.path.basename(download_link)
        
        if os.path.exists(f"{target_folder}/{file_name}"):
            pass
        else:
            urllib.request.urlretrieve(download_link, f"{target_folder}/{file_name}")
            print(f"File downloaded successfully to {target_folder}/{file_name}")

def auto_download(seafile_token):
    
    library_id = "a6911db9-9ec6-42d3-9c2f-ce36b121c5e7"
    folder_path = "Messungen"
    target_folder = "Messungen"

    while True:
        file_list = seafile_list_files(folder_path, library_id, seafile_token)

        for file in file_list:
            seafile_download_file(seafile_token, library_id, folder_path, file, target_folder)