From 7e91eb53ea993ea1892878d41f4e96fe401495dc Mon Sep 17 00:00:00 2001 From: Lisa-Hoffmann <96966642+Lisa-Hoffmann@users.noreply.github.com> Date: Mon, 3 Jan 2022 14:36:13 +0100 Subject: [PATCH] Nextcloud crawler via WebDav --- trying_to_fix_nextcloud.py | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 trying_to_fix_nextcloud.py diff --git a/trying_to_fix_nextcloud.py b/trying_to_fix_nextcloud.py new file mode 100644 index 0000000..8b42cb5 --- /dev/null +++ b/trying_to_fix_nextcloud.py @@ -0,0 +1,56 @@ +import requests +import xml.etree.ElementTree as ET +import sys + +def propfind(path,auth): + headers = {"Depth":"1"} + req = r = requests.Request("PROPFIND", path, headers=headers, auth=auth) + prepped = req.prepare() + + s = requests.Session() + resp = s.send(prepped) + return resp.text + +def search_folder(requestreturn): + innerfolders = [] + linkswrongtime = [] + firstfolder = True + temp = "this is sa temporary storage" + tree = ET.ElementTree(ET.fromstring(requestreturn)) + for resp in tree.findall('.//{DAV:}response'): + for p in resp: + if not(p.text is None): + if (p.text[-1] == '/'): + if not(firstfolder): + innerfolders.append(p.text) + else: + firstfolder = False + break + else: + temp = p.text + else: + for time in p.findall('.//{DAV:}getlastmodified'): + year = time.text.split(' ') + if int(year[3]) < 1990: + linkswrongtime.append(temp) + return [innerfolders, linkswrongtime] + +user = sys.arcv[1] +passw = sys.arcv[2] +auth = requests.auth.HTTPBasicAuth(user,passw) +prefix_path = "https://kingsx.cs.uni-saarland.de" +mainpath = "/remote.php/dav/files/"+ user + "/Testrequests/" +folders = [mainpath] +wrongtime = [] + +while folders: + path_suffix = folders.pop(0) + path = prefix_path + str(path_suffix) + r = propfind(path,auth) + res = search_folder(r) + folders = folders + res[0] + wrongtime = wrongtime + res[1] + +print(wrongtime) + +version_suffix = "/remote.php/dav/versions/USER/versions/FILEID"