forked from ziyuejun/AV_Data_Capture
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.py
125 lines (98 loc) · 3.71 KB
/
config.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import os
import configparser
class Config:
def __init__(self, path: str = "config.ini"):
if os.path.exists(path):
self.conf = configparser.ConfigParser()
self.conf.read(path, encoding="utf-8")
else:
print("[-] Config file not found! Use the default settings")
self.conf = self._default_config()
def main_mode(self) -> str:
try:
return self.conf.getint("common", "main_mode")
except ValueError:
self._exit("common:main_mode")
def failed_folder(self) -> str:
return self.conf.get("common", "failed_output_folder")
def success_folder(self) -> str:
return self.conf.get("common", "success_output_folder")
def soft_link(self) -> bool:
return self.conf.getboolean("common", "soft_link")
def proxy(self) -> [str, int, int]:
try:
sec = "proxy"
proxy = self.conf.get(sec, "proxy")
timeout = self.conf.getint(sec, "timeout")
retry = self.conf.getint(sec, "retry")
return proxy, timeout, retry
except ValueError:
self._exit("common")
def naming_rule(self) -> str:
return self.conf.get("Name_Rule", "naming_rule")
def location_rule(self) -> str:
return self.conf.get("Name_Rule", "location_rule")
def update_check(self) -> bool:
try:
return self.conf.getboolean("update", "update_check")
except ValueError:
self._exit("update:update_check")
def sources(self) -> str:
return self.conf.get("priority", "website")
def escape_literals(self) -> str:
return self.conf.get("escape", "literals")
def escape_folder(self) -> str:
return self.conf.get("escape", "folders")
def debug(self) -> bool:
return self.conf.getboolean("debug_mode", "switch")
@staticmethod
def _exit(sec: str) -> None:
print("[-] Read config error! Please check the {} section in config.ini", sec)
input("[-] Press ENTER key to exit.")
exit()
@staticmethod
def _default_config() -> configparser.ConfigParser:
conf = configparser.ConfigParser()
sec1 = "common"
conf.add_section(sec1)
conf.set(sec1, "main_mode", "1")
conf.set(sec1, "failed_output_folder", "failed")
conf.set(sec1, "success_output_folder", "JAV_output")
conf.set(sec1, "soft_link", "0")
sec2 = "proxy"
conf.add_section(sec2)
conf.set(sec2, "proxy", "127.0.0.1:1080")
conf.set(sec2, "timeout", "10")
conf.set(sec2, "retry", "3")
sec3 = "Name_Rule"
conf.add_section(sec3)
conf.set(sec3, "location_rule", "actor + '/' + number")
conf.set(sec3, "naming_rule", "number + '-' + title")
sec4 = "update"
conf.add_section(sec4)
conf.set(sec4, "update_check", "1")
sec5 = "priority"
conf.add_section(sec5)
conf.set(sec5, "website", "javbus,javdb,fanza,xcity,mgstage,fc2,avsox,jav321,xcity")
sec6 = "escape"
conf.add_section(sec6)
conf.set(sec6, "literals", "\()/") # noqa
conf.set(sec6, "folders", "failed, JAV_output")
sec7 = "debug_mode"
conf.add_section(sec7)
conf.set(sec7, "switch", "0")
return conf
if __name__ == "__main__":
config = Config()
print(config.main_mode())
print(config.failed_folder())
print(config.success_folder())
print(config.soft_link())
print(config.proxy())
print(config.naming_rule())
print(config.location_rule())
print(config.update_check())
print(config.sources())
print(config.escape_literals())
print(config.escape_folder())
print(config.debug())