-
Notifications
You must be signed in to change notification settings - Fork 90
/
Copy pathconst.py
126 lines (107 loc) · 3.59 KB
/
const.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
126
#!/usr/bin/env python
# coding:utf-8
# constants module
# Contributor:
# fffonion <[email protected]>
import os
import re
import sys
import locale
PY3K = sys.version_info.major == 3
IRONPYTHON = sys.platform == 'cli'
EXEBUNDLE = getattr(sys, 'frozen', False)
LOCALE = locale.getdefaultlocale()[0]
CODEPAGE = locale.getdefaultlocale()[1] or 'ascii'
ANDROID = 'ANDROID_ARGUMENT' in os.environ
__version__ = 2.023
VERSION_UPDATE = ""
VERSION_UPDATE_LOADER = __version__
DEVELOPMENT = False
SCRIPT_NAME = "xeHentai"
# https://github.com/soimort/you-get/you-get
if getattr(sys, 'frozen', False):
# The application is frozen
FILEPATH = os.path.dirname(os.path.realpath(sys.executable))
else:
# The application is not frozen
# Change this bit to match where you store your data files:
FILEPATH = sys.path[0]
# if update is being injected
if FILEPATH.endswith(".zip"):
FILEPATH = sys.path[1]
DUMMY_FILENAME = "-dummy-"
RENAME_TMPDIR = "-xeh-conflict-"
STATIC_CACHE_FILE = os.path.join(FILEPATH, "webui.gz")
# cache for 1 hour
STATIC_CACHE_TTL = 3600
STATIC_CACHE_VERSION = 1
SRC_UPDATE_FILE = os.path.join(FILEPATH, "src.zip")
SRC_UPDATE_VERSION = 1
RE_INDEX = re.compile('.+/(\d+)/([^\/]+)/*')
RE_GALLERY = re.compile('/([a-f0-9]{10})/[^\-]+\-(\d+)')
RE_IMGHASH = re.compile('/([a-f0-9]{40})-(\d+)-(\d+)-(\d+)-([a-z]{,4})')
RE_FULLIMG = re.compile('fullimg.php\?gid=([a-z0-9]+)&page=(\d+)&key=')
__restr_webpage = '^https*://([^\.]+\.)*(?:[g\.]*e-|ex)hentai.org'
RE_URL_WEBPAGE = re.compile(__restr_webpage)
RE_URL_IMAGE = re.compile('(?!%s)' % __restr_webpage)
# matches all
RE_URL_ALL = re.compile('.')
RE_LOCAL_ADDR = re.compile('(^localhost)|(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])')
RESTR_SITE = "https*://(?:[g\.]*e\-|ex)hentai\.org"
FALLBACK_CF_IP = ("104.20.134.21", "104.20.135.21", "172.67.0.127")
FALLBACK_IP_MAP = {
'e-hentai.org': FALLBACK_CF_IP,
'forums.e-hentai.org': ("94.100.18.243", ) + FALLBACK_CF_IP,
'exhentai.org': ("178.175.129.254", "178.175.128.252", "178.175.132.20", "178.175.129.252", "178.175.128.254", "178.175.132.22")
}
QUOTA_EXCEEDED_CONTENT_LENGTHS = (925, 28658, 144, 210, 1009)
DEFAULT_MAX_REDIRECTS = 30
XEH_STATE_RUNNING = 0
XEH_STATE_SOFT_EXIT = 1 # wait until current task finish and exit
XEH_STATE_FULL_EXIT = 2 # finish current task stage and exit
XEH_STATE_CLEAN = 3
TASK_STATE_PAUSED = 0
TASK_STATE_WAITING = 1
TASK_STATE_GET_META = 2
# TASK_STATE_GET_HATHDL = 3
TASK_STATE_SCAN_PAGE = 3
TASK_STATE_SCAN_IMG = 4
TASK_STATE_SCAN_ARCHIVE = 5
TASK_STATE_DOWNLOAD = 10
TASK_STATE_MAKE_ARCHIVE = 19
TASK_STATE_FINISHED = 20
TASK_STATE_FAILED = -1
ERR_NO_ERROR = 0
ERR_URL_NOT_RECOGNIZED = 1000
ERR_CANT_DOWNLOAD_EXH = 1001
ERR_ONLY_VISIBLE_EXH = 1002
ERR_MALFORMED_HATHDL = 1003
ERR_GALLERY_REMOVED = 1004
ERR_IMAGE_RESAMPLED = 1005
ERR_QUOTA_EXCEEDED = 1006
ERR_KEY_EXPIRED = 1007
ERR_NO_PAGEURL_FOUND = 1008
ERR_CONNECTION_ERROR = 1009
ERR_IP_BANNED = 1010
ERR_HATH_NOT_FOUND = 1011
ERR_IMAGE_BROKEN = 1012
ERR_SCAN_REGEX_FAILED = 1013
ERR_STREAM_NOT_IMPLEMENTED = 1014
ERR_TASK_NOT_FOUND = 1101
ERR_SAVE_SESSION_FAILED = 1103
ERR_TASK_LEVEL_UNDEF = 1104
ERR_DELETE_RUNNING_TASK = 1105
ERR_TASK_CANNOT_PAUSE = 1106
ERR_TASK_CANNOT_RESUME = 1107
# ERR_HATHDL_NOTFOUND = 1108
ERR_RPC_UNAUTHORIZED = 1200
ERR_CANNOT_CREATE_DIR = 1300
ERR_CANNOT_MAKE_ARCHIVE = 1301
ERR_NOT_RANGE_FORMAT = 1302
ERR_RPC_PARSE_ERROR = -32700
ERR_RPC_INVALID_REQUEST = -32600
ERR_RPC_METHOD_NOT_FOUND = -32601
ERR_RPC_INVALID_PARAMS = -32602
ERR_RPC_EXEC_ERROR = -32603
class DownloadAbortedException(Exception):
pass