README.md
Rendering markdown...
from termcolor import colored, cprint
from sys import argv
import requests
import json
def list_files(jsonfile):
for file in jsonfile["data"]["files"]:
user = file["additional"]["owner"]["user"]
group = file["additional"]["owner"]["group"]
size = file["additional"]["size"]
read = file["additional"]["perm"]["acl"]["read"]
write = file["additional"]["perm"]["acl"]["write"]
append = file["additional"]["perm"]["acl"]["append"]
exec_ = file["additional"]["perm"]["acl"]["exec"]
isdir = file["isdir"]
path = file["path"]
#add some colors owo
cpath = ""
for x in path.split("/"):
cpath += "" if x == "" else "/"
if x == "..":
cpath += x
else:
cpath += colored(x, "red", attrs=["bold"])
cprint("{}{}{}{}{} {:8} {}:{:10} {}".format('d' if isdir else '-', 'r' if read else '-',
'w' if write else '-', 'x' if exec_ else '-', 'a' if append else '-', size,
user, group, cpath))
#proxy = {"http" : "http://127.0.0.1:8080"}
SynoToken = argv[1] #authentication cookie
url = argv[2] + "/webapi/FileStation/file_share.cgi"
path = argv[3] #must start with /home/
payload = {"filetype" : "all",
"folder_path": path,
"api" : "SYNO.FileStation.List",
"method" : "list",
"version" : 1,
"additional" : "real_path,owner,perm,size",
}
if (not url.startswith("http://")):
url = "http://" + url
r = requests.post(url, data =payload,
cookies={"id" : SynoToken},
headers={"X-SYNO-TOKEN" : SynoToken})
#proxies=proxy)
data = r.json()
if (data["success"]):
list_files(data)
else:
print r.text