-
-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathutils.py
43 lines (35 loc) · 1.37 KB
/
utils.py
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
from __future__ import annotations
from collections import defaultdict
from datetime import datetime
from avilla.standard.core.file.metadata import DownloadInfo, FileData
from avilla.core.selector import Selector
def file_parse(raw: dict, url: str, parent: FileData | None = None):
return FileData(
raw["file_id"],
Selector().land("qq").group(str(raw["group_id"])),
raw["file_name"],
parent=parent,
is_file=True,
is_dir=False,
upload_time=datetime.fromtimestamp(raw["upload_time"]) if raw["upload_time"] else None,
modify_time=datetime.fromtimestamp(raw["modify_time"]) if raw["modify_time"] else None,
download_info=DownloadInfo(
raw["download_times"],
url,
),
busid=raw["busid"]
)
def folder_parse(raw: dict, parent: FileData | None = None):
return FileData(
raw["folder_id"],
Selector().land("qq").group(str(raw["group_id"])),
raw["folder_name"],
parent=parent,
is_file=False,
is_dir=True,
upload_time=datetime.fromtimestamp(raw["create_time"]) if raw["create_time"] else None,
modify_time=None,
download_info=None,
)
PRIVILEGE_TRANS = defaultdict(lambda: "group_member", {"owner": "group_owner", "admin": "group_admin"})
PRIVILEGE_LEVEL = defaultdict(lambda: 0, {"owner": 2, "admin": 1})