PyPtt 1.2.8__tar.gz → 1.2.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyptt-1.2.8 → pyptt-1.2.9}/PKG-INFO +1 -1
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/__init__.py +1 -1
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/connect_core.py +16 -1
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/i18n.py +8 -8
- pyptt-1.2.9/PyPtt/lang_en_US.py +119 -0
- pyptt-1.2.9/PyPtt/lang_zh_TW.py +119 -0
- pyptt-1.2.9/PyPtt/ssl_config.py +25 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt.egg-info/PKG-INFO +1 -1
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt.egg-info/SOURCES.txt +3 -2
- {pyptt-1.2.8 → pyptt-1.2.9}/setup.py +0 -1
- pyptt-1.2.8/PyPtt/lang/en_US.yaml +0 -116
- pyptt-1.2.8/PyPtt/lang/zh_TW.yaml +0 -116
- {pyptt-1.2.8 → pyptt-1.2.9}/LICENSE +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/MANIFEST.in +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/PTT.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_bucket.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_call_status.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_change_pw.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_comment.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_del_post.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_board_info.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_board_list.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_bottom_post_list.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_favourite_board.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_newest_index.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_post.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_post_index.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_time.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_get_user.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_give_money.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_has_new_mail.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_loginout.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_mail.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_mark_post.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_post.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_reply_post.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_search_user.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_set_board_title.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/_api_util.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/check_value.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/command.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/config.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/data_type.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/exceptions.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/lib_util.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/log.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/screens.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/service.py +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/ssl/cert.pem +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt/ssl/key.pem +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt.egg-info/dependency_links.txt +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt.egg-info/requires.txt +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/PyPtt.egg-info/top_level.txt +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/README.md +0 -0
- {pyptt-1.2.8 → pyptt-1.2.9}/setup.cfg +0 -0
|
@@ -21,10 +21,25 @@ from . import exceptions
|
|
|
21
21
|
from . import i18n
|
|
22
22
|
from . import log
|
|
23
23
|
from . import screens
|
|
24
|
+
from . import ssl_config
|
|
24
25
|
|
|
25
26
|
websockets.http.USER_AGENT += f' PyPtt/{PyPtt.__version__}'
|
|
26
27
|
|
|
27
|
-
_script_path = os.path.dirname(
|
|
28
|
+
_script_path = os.path.dirname(__file__)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def ssl_init():
|
|
32
|
+
if not os.path.exists(f'{_script_path}/ssl'):
|
|
33
|
+
os.mkdir(f'{_script_path}/ssl')
|
|
34
|
+
|
|
35
|
+
with open(f"{_script_path}/ssl/cert.pem", 'w') as f:
|
|
36
|
+
f.write(ssl_config.cert)
|
|
37
|
+
|
|
38
|
+
with open(f"{_script_path}/ssl/key.pem", 'w') as f:
|
|
39
|
+
f.write(ssl_config.key)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
ssl_init()
|
|
28
43
|
|
|
29
44
|
ssl_context = ssl.create_default_context()
|
|
30
45
|
ssl_context.load_cert_chain(certfile=f"{_script_path}/ssl/cert.pem", keyfile=f"{_script_path}/ssl/key.pem")
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import random
|
|
3
3
|
|
|
4
|
-
import yaml
|
|
5
|
-
|
|
6
4
|
from . import __version__
|
|
7
5
|
from . import data_type
|
|
8
6
|
|
|
@@ -11,7 +9,7 @@ locale_pool = {
|
|
|
11
9
|
data_type.Language.MANDARIN
|
|
12
10
|
}
|
|
13
11
|
|
|
14
|
-
_script_path = os.path.dirname(
|
|
12
|
+
_script_path = os.path.dirname(__file__)
|
|
15
13
|
_lang_data = {}
|
|
16
14
|
|
|
17
15
|
mapping = {
|
|
@@ -30,12 +28,14 @@ def init(locale: str, cache: bool = False) -> None:
|
|
|
30
28
|
if locale not in locale_pool:
|
|
31
29
|
raise ValueError(f'Unknown locale: {locale}')
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
if locale == data_type.Language.ENGLISH:
|
|
32
|
+
from . import lang_en_US as lang
|
|
33
|
+
elif locale == data_type.Language.MANDARIN:
|
|
34
|
+
from . import lang_zh_TW as lang
|
|
35
|
+
string_data = lang.string_data
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
if string_data is None:
|
|
38
|
+
raise ValueError(f'Unknown locale: {locale}')
|
|
39
39
|
|
|
40
40
|
for k, v in string_data.items():
|
|
41
41
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
string_data = {
|
|
2
|
+
"PTT": "PTT",
|
|
3
|
+
"PTT2": "PTT2",
|
|
4
|
+
"active": "Active",
|
|
5
|
+
"author": "Author",
|
|
6
|
+
"board": "Board",
|
|
7
|
+
"can_not_use_search_post_code_f": "This status can not use the search PostField code function",
|
|
8
|
+
"catch_bottom_post_success": "Catch bottom post success",
|
|
9
|
+
"change_pw": "Change password",
|
|
10
|
+
"comment": "Comment",
|
|
11
|
+
"comment_content": "Comment content",
|
|
12
|
+
"comment_date": "Comment date",
|
|
13
|
+
"comment_id": "Comment id",
|
|
14
|
+
"connect": "Connect",
|
|
15
|
+
"connect_core": "Connect core",
|
|
16
|
+
"connect_fail": "Connect fail",
|
|
17
|
+
"connect_mode_TELNET": "Telnet",
|
|
18
|
+
"connect_mode_WEBSOCKET": "WebSocket",
|
|
19
|
+
"connection_closed": "Connection Closed",
|
|
20
|
+
"content": "Content",
|
|
21
|
+
"current_version": "Current version",
|
|
22
|
+
"date": "Date",
|
|
23
|
+
"delete_post": "Delete post",
|
|
24
|
+
"development_version": "Running development version",
|
|
25
|
+
"done": "Done",
|
|
26
|
+
"english_module": "English",
|
|
27
|
+
"error_pw": "Wrong password",
|
|
28
|
+
"fail": "Fail",
|
|
29
|
+
"find_newest_index": "Find newest index",
|
|
30
|
+
"get_board_info": "Get board info _target0_",
|
|
31
|
+
"get_favourite_board_list": "Query favourite board list",
|
|
32
|
+
"get_mail": "Get mail",
|
|
33
|
+
"give_money_to": "give _target0_ _target1_ P coins",
|
|
34
|
+
"goodbye": [
|
|
35
|
+
"good bye",
|
|
36
|
+
"bye",
|
|
37
|
+
"see you",
|
|
38
|
+
"catch you later",
|
|
39
|
+
"I hate to run, but...",
|
|
40
|
+
"Until we meet again, I will wait"
|
|
41
|
+
],
|
|
42
|
+
"has_comment_permission": "User has permission to comment",
|
|
43
|
+
"has_new_mail_goto_main_menu": "New mail! Back to main menu",
|
|
44
|
+
"has_post_permission": "Have permission to post",
|
|
45
|
+
"hide_sensitive_info": "Hide sensitive info",
|
|
46
|
+
"in_login_process_please_wait": "In login process, please wait",
|
|
47
|
+
"initialization": "Init",
|
|
48
|
+
"kick_other_login": "Kick other login",
|
|
49
|
+
"latest_version": "Running the latest version",
|
|
50
|
+
"localhost": "Localhost",
|
|
51
|
+
"login_fail": "Login fail",
|
|
52
|
+
"login_id": "Login id",
|
|
53
|
+
"login_success": "Login ... success",
|
|
54
|
+
"login_too_often": "Login too often",
|
|
55
|
+
"logout": "Logout",
|
|
56
|
+
"mail_box_full": "Mail box is full",
|
|
57
|
+
"mandarin_module": "Mandarin",
|
|
58
|
+
"multi_thread_operate": "Do not use a multi-thread to operate a PyPtt object",
|
|
59
|
+
"must_be": "Must be",
|
|
60
|
+
"must_be_a_boolean": "Must be a boolean",
|
|
61
|
+
"must_be_a_integer": "Must be a integer",
|
|
62
|
+
"must_be_a_string": "Must be a string",
|
|
63
|
+
"must_between": "Must between",
|
|
64
|
+
"must_bigger_than": "Must bigger than",
|
|
65
|
+
"must_small_than": "Must smaller than",
|
|
66
|
+
"need_moderator_permission": "Need moderator permission",
|
|
67
|
+
"new_cursor": "New cursor",
|
|
68
|
+
"new_version": "There is a new version",
|
|
69
|
+
"no_comment": "No comment",
|
|
70
|
+
"no_fast_comment": "No fast comment",
|
|
71
|
+
"no_money": "Not enough PTT coins",
|
|
72
|
+
"no_permission": "User Has No Permission",
|
|
73
|
+
"no_response": "This post has been closed and marked, no response",
|
|
74
|
+
"no_search_result": "No Search Result",
|
|
75
|
+
"no_such_board": "No such board",
|
|
76
|
+
"no_such_mail": "No such mail",
|
|
77
|
+
"no_such_post": "In _target0_, the post code is not EXISTS _target1_",
|
|
78
|
+
"no_such_user": "No such user",
|
|
79
|
+
"not_kick_other_login": "Not kick other login",
|
|
80
|
+
"not_push_aligned": "No push aligned",
|
|
81
|
+
"not_record_ip": "Not record IP",
|
|
82
|
+
"old_cursor": "Old cursor",
|
|
83
|
+
"only_secure_connection": "Skip registration form",
|
|
84
|
+
"picks_in_register": "Registration application processing order",
|
|
85
|
+
"post": "Post article",
|
|
86
|
+
"post_deleted": "Post has been deleted",
|
|
87
|
+
"prepare_connect_again": "Prepare connect again",
|
|
88
|
+
"ptt2_not_support": "PTT2 not support this api",
|
|
89
|
+
"push_aligned": "Push aligned",
|
|
90
|
+
"record_ip": "Record ip",
|
|
91
|
+
"reply_board": "Respond to the BoardField",
|
|
92
|
+
"reply_board_mail": "Respond to the board and the mailbox of author",
|
|
93
|
+
"reply_mail": "Respond to the mailbox of author",
|
|
94
|
+
"require_login": "Please login first",
|
|
95
|
+
"reset_your_contact_email": "Please reset your contact email",
|
|
96
|
+
"retry": "Retry",
|
|
97
|
+
"search_user": "Search user",
|
|
98
|
+
"send_mail": "Send mail",
|
|
99
|
+
"send_msg": "Send msg",
|
|
100
|
+
"set_connect_host": "Set up the connect host",
|
|
101
|
+
"set_connect_mode": "Set up the connect mode",
|
|
102
|
+
"set_contact_mail_first": "Password can only be changed after setting the contact mailbox",
|
|
103
|
+
"set_up_lang_module": "Set up language module",
|
|
104
|
+
"spend_time": "Spend time",
|
|
105
|
+
"substandard_post": "Substandard post",
|
|
106
|
+
"success": "Success",
|
|
107
|
+
"title": "Title",
|
|
108
|
+
"transaction_cancelled": "The transaction is cancelled!",
|
|
109
|
+
"unregistered_user_cant_use_all_api": "Unregistered UserField Can't Use All API",
|
|
110
|
+
"unregistered_user_cant_use_this_api": "Unregistered UserField Can't Use This API",
|
|
111
|
+
"update_remote_version": "Fetching latest version",
|
|
112
|
+
"use_mailbox_api_will_logout_after_execution": "If you use mailbox related functions, you will be logged out automatically after execution",
|
|
113
|
+
"use_too_many_resources": "Use too many resources",
|
|
114
|
+
"user_has_previously_been_banned": "User has previously been banned",
|
|
115
|
+
"user_offline": "User offline",
|
|
116
|
+
"wait_for_no_fast_comment": "Because no fast comment, wait 5 sec",
|
|
117
|
+
"welcome": "PyPtt v _target0_ developed by CodingMan",
|
|
118
|
+
"wrong_id_pw": "Wrong id or pw"
|
|
119
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
string_data = {
|
|
2
|
+
"PTT": "批踢踢",
|
|
3
|
+
"PTT2": "批踢踢兔",
|
|
4
|
+
"active": "啟動",
|
|
5
|
+
"author": "作者",
|
|
6
|
+
"board": "看板",
|
|
7
|
+
"can_not_use_search_post_code_f": "此狀態下無法使用搜尋文章代碼(AID)功能",
|
|
8
|
+
"catch_bottom_post": "取得置底文章",
|
|
9
|
+
"change_pw": "變更密碼",
|
|
10
|
+
"comment": "推文",
|
|
11
|
+
"comment_content": "推文內文",
|
|
12
|
+
"comment_date": "推文日期",
|
|
13
|
+
"comment_id": "推文帳號",
|
|
14
|
+
"connect": "連線",
|
|
15
|
+
"connect_core": "連線核心",
|
|
16
|
+
"connect_fail": "連線失敗",
|
|
17
|
+
"connect_mode_TELNET": "Telnet",
|
|
18
|
+
"connect_mode_WEBSOCKET": "WebSocket",
|
|
19
|
+
"connection_closed": "連線已經被關閉",
|
|
20
|
+
"content": "內文",
|
|
21
|
+
"current_version": "目前版本",
|
|
22
|
+
"date": "日期",
|
|
23
|
+
"delete_post": "刪除文章",
|
|
24
|
+
"development_version": "正在執行開發版本",
|
|
25
|
+
"done": "完成",
|
|
26
|
+
"english_module": "英文",
|
|
27
|
+
"error_pw": "密碼不正確",
|
|
28
|
+
"fail": "失敗",
|
|
29
|
+
"find_newest_index": "找到最新編號",
|
|
30
|
+
"get_board_info": "取得看板資訊 _target0_",
|
|
31
|
+
"get_favourite_board_list": "取得我的最愛",
|
|
32
|
+
"get_mail": "取得信件",
|
|
33
|
+
"give_money_to": "給 _target0_ _target1_ P 幣",
|
|
34
|
+
"goodbye": [
|
|
35
|
+
"再見",
|
|
36
|
+
"下次再見",
|
|
37
|
+
"再會",
|
|
38
|
+
"祝平安",
|
|
39
|
+
"謝謝你,我很開心",
|
|
40
|
+
"我們會再見面的"
|
|
41
|
+
],
|
|
42
|
+
"has_comment_permission": "確認擁有推文權限",
|
|
43
|
+
"has_new_mail_goto_main_menu": "有新信,回到主選單",
|
|
44
|
+
"has_post_permission": "確認擁有貼文權限",
|
|
45
|
+
"hide_sensitive_info": "隱藏敏感資訊",
|
|
46
|
+
"in_login_process_please_wait": "登入中,請稍候",
|
|
47
|
+
"initialization": "初始化",
|
|
48
|
+
"kick_other_login": "強制執行剔除其他登入",
|
|
49
|
+
"latest_version": "正在執行最新版本",
|
|
50
|
+
"localhost": "本機",
|
|
51
|
+
"login_fail": "登入失敗",
|
|
52
|
+
"login_id": "登入帳號",
|
|
53
|
+
"login_success": "登入 ... 成功",
|
|
54
|
+
"login_too_often": "登入太頻繁",
|
|
55
|
+
"logout": "登出",
|
|
56
|
+
"mail_box_full": "郵件已滿",
|
|
57
|
+
"mandarin_module": "繁體中文",
|
|
58
|
+
"multi_thread_operate": "請勿使用多線程同時操作一個 PyPtt 物件",
|
|
59
|
+
"must_be": "必須為",
|
|
60
|
+
"must_be_a_boolean": "必須為布林值",
|
|
61
|
+
"must_be_a_integer": "必須為數字",
|
|
62
|
+
"must_be_a_string": "必須為字串",
|
|
63
|
+
"must_between": "必須介於",
|
|
64
|
+
"must_bigger_than": "必須大於",
|
|
65
|
+
"must_small_than": "必須小於",
|
|
66
|
+
"need_moderator_permission": "需要板主權限",
|
|
67
|
+
"new_cursor": "新式游標",
|
|
68
|
+
"new_version": "有新版本",
|
|
69
|
+
"no_comment": "禁止推薦",
|
|
70
|
+
"no_fast_comment": "禁止快速連續推文",
|
|
71
|
+
"no_money": "PTT 幣不足",
|
|
72
|
+
"no_permission": "使用者沒有權限",
|
|
73
|
+
"no_response": "很抱歉, 此文章已結案並標記, 不得回應",
|
|
74
|
+
"no_search_result": "沒有搜尋結果",
|
|
75
|
+
"no_such_board": "無該看板",
|
|
76
|
+
"no_such_mail": "無此信件",
|
|
77
|
+
"no_such_post": "_target0_ 板找不到這個文章代碼 _target1_",
|
|
78
|
+
"no_such_user": "無該使用者",
|
|
79
|
+
"not_kick_other_login": "不剔除其他登入",
|
|
80
|
+
"not_push_aligned": "無推文對齊",
|
|
81
|
+
"not_record_ip": "不紀錄 IP",
|
|
82
|
+
"old_cursor": "舊式游標",
|
|
83
|
+
"only_secure_connection": "跳過填寫註冊單",
|
|
84
|
+
"picks_in_register": "註冊申請單處理順位",
|
|
85
|
+
"post": "發佈文章",
|
|
86
|
+
"post_deleted": "文章已經被刪除",
|
|
87
|
+
"prepare_connect_again": "準備再次連線",
|
|
88
|
+
"ptt2_not_support": "批踢踢兔不支援此功能",
|
|
89
|
+
"push_aligned": "推文對齊",
|
|
90
|
+
"record_ip": "紀錄 IP",
|
|
91
|
+
"reply_board": "回應至看板",
|
|
92
|
+
"reply_board_mail": "回應至看板與作者信箱",
|
|
93
|
+
"reply_mail": "回應至作者信箱",
|
|
94
|
+
"require_login": "請先登入",
|
|
95
|
+
"reset_your_contact_email": "請重新設定您的聯絡信箱",
|
|
96
|
+
"retry": "重試",
|
|
97
|
+
"search_user": "搜尋使用者",
|
|
98
|
+
"send_mail": "寄信",
|
|
99
|
+
"send_msg": "送出訊息",
|
|
100
|
+
"set_connect_host": "設定連線主機",
|
|
101
|
+
"set_connect_mode": "設定連線模式",
|
|
102
|
+
"set_contact_mail_first": "請先設定聯絡信箱後才能修改密碼",
|
|
103
|
+
"set_up_lang_module": "設定語言模組",
|
|
104
|
+
"spend_time": "花費時間",
|
|
105
|
+
"substandard_post": "不合規範文章",
|
|
106
|
+
"success": "成功",
|
|
107
|
+
"title": "標題",
|
|
108
|
+
"transaction_cancelled": "交易取消!",
|
|
109
|
+
"unregistered_user_cant_use_all_api": "未註冊使用者,將無法使用全部功能",
|
|
110
|
+
"unregistered_user_cant_use_this_api": "未註冊使用者,無法使用此功能",
|
|
111
|
+
"update_remote_version": "確認最新版本",
|
|
112
|
+
"use_mailbox_api_will_logout_after_execution": "如果使用信箱相關功能,將執行後自動登出",
|
|
113
|
+
"use_too_many_resources": "耗用過多資源",
|
|
114
|
+
"user_has_previously_been_banned": "使用者之前已被禁言",
|
|
115
|
+
"user_offline": "使用者離線",
|
|
116
|
+
"wait_for_no_fast_comment": "因禁止快速連續推文,所以等待五秒",
|
|
117
|
+
"welcome": "PyPtt v _target0_ 由 CodingMan 開發",
|
|
118
|
+
"wrong_id_pw": "帳號密碼錯誤"
|
|
119
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
cert = """-----BEGIN CERTIFICATE-----
|
|
4
|
+
MIIBrTCCAVOgAwIBAgIUac6b6rzwFIEa9VBigD0jYlE96NkwCgYIKoZIzj0EAwIw
|
|
5
|
+
RTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
|
|
6
|
+
dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDA0MTEwNzA4NDJaFw0zNDA0MDkw
|
|
7
|
+
NzA4NDJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
|
|
8
|
+
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwWTATBgcqhkjOPQIBBggqhkjO
|
|
9
|
+
PQMBBwNCAASGL9hdVzbi6QTzJk409Ne+ZMnK2iQcm6VcAacTyJvQqCEIQysJtRs+
|
|
10
|
+
/53XjdOORHgDfsMK94T4CG6TbULqCT+uoyEwHzAdBgNVHQ4EFgQUoR2GjY1nFWvR
|
|
11
|
+
gTyu936KF11kvL0wCgYIKoZIzj0EAwIDSAAwRQIhAOQ33wHzCv7F2yI8Ye4BHdtZ
|
|
12
|
+
SOW7IgU5rRkFlMPhTXj6AiBGE0+EZPNctmBfj2N8s6lYIxsGmlcSnWVxlQvj6XQc
|
|
13
|
+
Uw==
|
|
14
|
+
-----END CERTIFICATE-----
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
key = """-----BEGIN EC PARAMETERS-----
|
|
18
|
+
BggqhkjOPQMBBw==
|
|
19
|
+
-----END EC PARAMETERS-----
|
|
20
|
+
-----BEGIN EC PRIVATE KEY-----
|
|
21
|
+
MHcCAQEEIO6ELVhrKQdW1YcoP3VOGW4XKGyVmlVdPHxou5XDDlU3oAoGCCqGSM49
|
|
22
|
+
AwEHoUQDQgAEhi/YXVc24ukE8yZONPTXvmTJytokHJulXAGnE8ib0KghCEMrCbUb
|
|
23
|
+
Pv+d143TjkR4A37DCveE+Ahuk21C6gk/rg==
|
|
24
|
+
-----END EC PRIVATE KEY-----
|
|
25
|
+
"""
|
|
@@ -35,16 +35,17 @@ PyPtt/connect_core.py
|
|
|
35
35
|
PyPtt/data_type.py
|
|
36
36
|
PyPtt/exceptions.py
|
|
37
37
|
PyPtt/i18n.py
|
|
38
|
+
PyPtt/lang_en_US.py
|
|
39
|
+
PyPtt/lang_zh_TW.py
|
|
38
40
|
PyPtt/lib_util.py
|
|
39
41
|
PyPtt/log.py
|
|
40
42
|
PyPtt/screens.py
|
|
41
43
|
PyPtt/service.py
|
|
44
|
+
PyPtt/ssl_config.py
|
|
42
45
|
PyPtt.egg-info/PKG-INFO
|
|
43
46
|
PyPtt.egg-info/SOURCES.txt
|
|
44
47
|
PyPtt.egg-info/dependency_links.txt
|
|
45
48
|
PyPtt.egg-info/requires.txt
|
|
46
49
|
PyPtt.egg-info/top_level.txt
|
|
47
|
-
PyPtt/lang/en_US.yaml
|
|
48
|
-
PyPtt/lang/zh_TW.yaml
|
|
49
50
|
PyPtt/ssl/cert.pem
|
|
50
51
|
PyPtt/ssl/key.pem
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
PTT: PTT
|
|
2
|
-
PTT2: PTT2
|
|
3
|
-
active: Active
|
|
4
|
-
author: Author
|
|
5
|
-
board: Board
|
|
6
|
-
can_not_use_search_post_code_f: This status can not use the search PostField code function
|
|
7
|
-
catch_bottom_post_success: Catch bottom post success
|
|
8
|
-
change_pw: Change password
|
|
9
|
-
comment: Comment
|
|
10
|
-
comment_content: Comment content
|
|
11
|
-
comment_date: Comment date
|
|
12
|
-
comment_id: Comment id
|
|
13
|
-
connect: Connect
|
|
14
|
-
connect_core: Connect core
|
|
15
|
-
connect_fail: Connect fail
|
|
16
|
-
connect_mode_TELNET: Telnet
|
|
17
|
-
connect_mode_WEBSOCKET: WebSocket
|
|
18
|
-
connection_closed: Connection Closed
|
|
19
|
-
content: Content
|
|
20
|
-
current_version: Current version
|
|
21
|
-
date: Date
|
|
22
|
-
delete_post: Delete post
|
|
23
|
-
development_version: Running development version
|
|
24
|
-
done: Done
|
|
25
|
-
english_module: English
|
|
26
|
-
error_pw: Wrong password
|
|
27
|
-
fail: Fail
|
|
28
|
-
find_newest_index: Find newest index
|
|
29
|
-
get_board_info: Get board info _target0_
|
|
30
|
-
get_favourite_board_list: Query favourite board list
|
|
31
|
-
get_mail: Get mail
|
|
32
|
-
give_money_to: give _target0_ _target1_ P coins
|
|
33
|
-
goodbye:
|
|
34
|
-
- good bye
|
|
35
|
-
- bye
|
|
36
|
-
- see you
|
|
37
|
-
- catch you later
|
|
38
|
-
- I hate to run, but...
|
|
39
|
-
- Until we meet again, I will wait
|
|
40
|
-
has_comment_permission: User has permission to comment
|
|
41
|
-
has_new_mail_goto_main_menu: New mail! Back to main menu
|
|
42
|
-
has_post_permission: Have permission to post
|
|
43
|
-
hide_sensitive_info: Hide sensitive info
|
|
44
|
-
in_login_process_please_wait: In login process, please wait
|
|
45
|
-
initialization: Init
|
|
46
|
-
kick_other_login: Kick other login
|
|
47
|
-
latest_version: Running the latest version
|
|
48
|
-
localhost: Localhost
|
|
49
|
-
login_fail: Login fail
|
|
50
|
-
login_id: Login id
|
|
51
|
-
login_success: Login ... success
|
|
52
|
-
login_too_often: Login too often
|
|
53
|
-
logout: Logout
|
|
54
|
-
mail_box_full: Mail box is full
|
|
55
|
-
mandarin_module: Mandarin
|
|
56
|
-
multi_thread_operate: Do not use a multi-thread to operate a PyPtt object
|
|
57
|
-
must_be: Must be
|
|
58
|
-
must_be_a_boolean: Must be a boolean
|
|
59
|
-
must_be_a_integer: Must be a integer
|
|
60
|
-
must_be_a_string: Must be a string
|
|
61
|
-
must_between: Must between
|
|
62
|
-
must_bigger_than: Must bigger than
|
|
63
|
-
must_small_than: Must smaller than
|
|
64
|
-
need_moderator_permission: Need moderator permission
|
|
65
|
-
new_cursor: New cursor
|
|
66
|
-
new_version: There is a new version
|
|
67
|
-
no_comment: No comment
|
|
68
|
-
no_fast_comment: No fast comment
|
|
69
|
-
no_money: Not enough PTT coins
|
|
70
|
-
no_permission: User Has No Permission
|
|
71
|
-
no_response: This post has been closed and marked, no response
|
|
72
|
-
no_search_result: No Search Result
|
|
73
|
-
no_such_board: No such board
|
|
74
|
-
no_such_mail: No such mail
|
|
75
|
-
no_such_post: In _target0_, the post code is not EXISTS _target1_
|
|
76
|
-
no_such_user: No such user
|
|
77
|
-
not_kick_other_login: Not kick other login
|
|
78
|
-
not_push_aligned: No push aligned
|
|
79
|
-
not_record_ip: Not record IP
|
|
80
|
-
old_cursor: Old cursor
|
|
81
|
-
only_secure_connection: Skip registration form
|
|
82
|
-
picks_in_register: Registration application processing order
|
|
83
|
-
post: Post article
|
|
84
|
-
post_deleted: Post has been deleted
|
|
85
|
-
prepare_connect_again: Prepare connect again
|
|
86
|
-
ptt2_not_support: PTT2 not support this api
|
|
87
|
-
push_aligned: Push aligned
|
|
88
|
-
record_ip: Record ip
|
|
89
|
-
reply_board: Respond to the BoardField
|
|
90
|
-
reply_board_mail: Respond to the board and the mailbox of author
|
|
91
|
-
reply_mail: Respond to the mailbox of author
|
|
92
|
-
require_login: Please login first
|
|
93
|
-
reset_your_contact_email: Please reset your contact email
|
|
94
|
-
retry: Retry
|
|
95
|
-
search_user: Search user
|
|
96
|
-
send_mail: Send mail
|
|
97
|
-
send_msg: Send msg
|
|
98
|
-
set_connect_host: Set up the connect host
|
|
99
|
-
set_connect_mode: Set up the connect mode
|
|
100
|
-
set_contact_mail_first: Password can only be changed after setting the contact mailbox
|
|
101
|
-
set_up_lang_module: Set up language module
|
|
102
|
-
spend_time: Spend time
|
|
103
|
-
substandard_post: Substandard post
|
|
104
|
-
success: Success
|
|
105
|
-
title: Title
|
|
106
|
-
transaction_cancelled: The transaction is cancelled!
|
|
107
|
-
unregistered_user_cant_use_all_api: Unregistered UserField Can't Use All API
|
|
108
|
-
unregistered_user_cant_use_this_api: Unregistered UserField Can't Use This API
|
|
109
|
-
update_remote_version: Fetching latest version
|
|
110
|
-
use_mailbox_api_will_logout_after_execution: If you use mailbox related functions, you will be logged out automatically after execution
|
|
111
|
-
use_too_many_resources: Use too many resources
|
|
112
|
-
user_has_previously_been_banned: User has previously been banned
|
|
113
|
-
user_offline: User offline
|
|
114
|
-
wait_for_no_fast_comment: Because no fast comment, wait 5 sec
|
|
115
|
-
welcome: PyPtt v _target0_ developed by CodingMan
|
|
116
|
-
wrong_id_pw: Wrong id or pw
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
PTT: 批踢踢
|
|
2
|
-
PTT2: 批踢踢兔
|
|
3
|
-
active: 啟動
|
|
4
|
-
author: 作者
|
|
5
|
-
board: 看板
|
|
6
|
-
can_not_use_search_post_code_f: 此狀態下無法使用搜尋文章代碼(AID)功能
|
|
7
|
-
catch_bottom_post: 取得置底文章
|
|
8
|
-
change_pw: 變更密碼
|
|
9
|
-
comment: 推文
|
|
10
|
-
comment_content: 推文內文
|
|
11
|
-
comment_date: 推文日期
|
|
12
|
-
comment_id: 推文帳號
|
|
13
|
-
connect: 連線
|
|
14
|
-
connect_core: 連線核心
|
|
15
|
-
connect_fail: 連線失敗
|
|
16
|
-
connect_mode_TELNET: Telnet
|
|
17
|
-
connect_mode_WEBSOCKET: WebSocket
|
|
18
|
-
connection_closed: 連線已經被關閉
|
|
19
|
-
content: 內文
|
|
20
|
-
current_version: 目前版本
|
|
21
|
-
date: 日期
|
|
22
|
-
delete_post: 刪除文章
|
|
23
|
-
development_version: 正在執行開發版本
|
|
24
|
-
done: 完成
|
|
25
|
-
english_module: 英文
|
|
26
|
-
error_pw: 密碼不正確
|
|
27
|
-
fail: 失敗
|
|
28
|
-
find_newest_index: 找到最新編號
|
|
29
|
-
get_board_info: 取得看板資訊 _target0_
|
|
30
|
-
get_favourite_board_list: 取得我的最愛
|
|
31
|
-
get_mail: 取得信件
|
|
32
|
-
give_money_to: 給 _target0_ _target1_ P 幣
|
|
33
|
-
goodbye:
|
|
34
|
-
- 再見
|
|
35
|
-
- 下次再見
|
|
36
|
-
- 再會
|
|
37
|
-
- 祝平安
|
|
38
|
-
- 謝謝你,我很開心
|
|
39
|
-
- 我們會再見面的
|
|
40
|
-
has_comment_permission: 確認擁有推文權限
|
|
41
|
-
has_new_mail_goto_main_menu: 有新信,回到主選單
|
|
42
|
-
has_post_permission: 確認擁有貼文權限
|
|
43
|
-
hide_sensitive_info: 隱藏敏感資訊
|
|
44
|
-
in_login_process_please_wait: 登入中,請稍候
|
|
45
|
-
initialization: 初始化
|
|
46
|
-
kick_other_login: 強制執行剔除其他登入
|
|
47
|
-
latest_version: 正在執行最新版本
|
|
48
|
-
localhost: 本機
|
|
49
|
-
login_fail: 登入失敗
|
|
50
|
-
login_id: 登入帳號
|
|
51
|
-
login_success: 登入 ... 成功
|
|
52
|
-
login_too_often: 登入太頻繁
|
|
53
|
-
logout: 登出
|
|
54
|
-
mail_box_full: 郵件已滿
|
|
55
|
-
mandarin_module: 繁體中文
|
|
56
|
-
multi_thread_operate: 請勿使用多線程同時操作一個 PyPtt 物件
|
|
57
|
-
must_be: 必須為
|
|
58
|
-
must_be_a_boolean: 必須為布林值
|
|
59
|
-
must_be_a_integer: 必須為數字
|
|
60
|
-
must_be_a_string: 必須為字串
|
|
61
|
-
must_between: 必須介於
|
|
62
|
-
must_bigger_than: 必須大於
|
|
63
|
-
must_small_than: 必須小於
|
|
64
|
-
need_moderator_permission: 需要板主權限
|
|
65
|
-
new_cursor: 新式游標
|
|
66
|
-
new_version: 有新版本
|
|
67
|
-
no_comment: 禁止推薦
|
|
68
|
-
no_fast_comment: 禁止快速連續推文
|
|
69
|
-
no_money: PTT 幣不足
|
|
70
|
-
no_permission: 使用者沒有權限
|
|
71
|
-
no_response: 很抱歉, 此文章已結案並標記, 不得回應
|
|
72
|
-
no_search_result: 沒有搜尋結果
|
|
73
|
-
no_such_board: 無該看板
|
|
74
|
-
no_such_mail: 無此信件
|
|
75
|
-
no_such_post: _target0_ 板找不到這個文章代碼 _target1_
|
|
76
|
-
no_such_user: 無該使用者
|
|
77
|
-
not_kick_other_login: 不剔除其他登入
|
|
78
|
-
not_push_aligned: 無推文對齊
|
|
79
|
-
not_record_ip: 不紀錄 IP
|
|
80
|
-
old_cursor: 舊式游標
|
|
81
|
-
only_secure_connection: 跳過填寫註冊單
|
|
82
|
-
picks_in_register: 註冊申請單處理順位
|
|
83
|
-
post: 發佈文章
|
|
84
|
-
post_deleted: 文章已經被刪除
|
|
85
|
-
prepare_connect_again: 準備再次連線
|
|
86
|
-
ptt2_not_support: 批踢踢兔不支援此功能
|
|
87
|
-
push_aligned: 推文對齊
|
|
88
|
-
record_ip: 紀錄 IP
|
|
89
|
-
reply_board: 回應至看板
|
|
90
|
-
reply_board_mail: 回應至看板與作者信箱
|
|
91
|
-
reply_mail: 回應至作者信箱
|
|
92
|
-
require_login: 請先登入
|
|
93
|
-
reset_your_contact_email: 請重新設定您的聯絡信箱
|
|
94
|
-
retry: 重試
|
|
95
|
-
search_user: 搜尋使用者
|
|
96
|
-
send_mail: 寄信
|
|
97
|
-
send_msg: 送出訊息
|
|
98
|
-
set_connect_host: 設定連線主機
|
|
99
|
-
set_connect_mode: 設定連線模式
|
|
100
|
-
set_contact_mail_first: 請先設定聯絡信箱後才能修改密碼
|
|
101
|
-
set_up_lang_module: 設定語言模組
|
|
102
|
-
spend_time: 花費時間
|
|
103
|
-
substandard_post: 不合規範文章
|
|
104
|
-
success: 成功
|
|
105
|
-
title: 標題
|
|
106
|
-
transaction_cancelled: 交易取消!
|
|
107
|
-
unregistered_user_cant_use_all_api: 未註冊使用者,將無法使用全部功能
|
|
108
|
-
unregistered_user_cant_use_this_api: 未註冊使用者,無法使用此功能
|
|
109
|
-
update_remote_version: 確認最新版本
|
|
110
|
-
use_mailbox_api_will_logout_after_execution: 如果使用信箱相關功能,將執行後自動登出
|
|
111
|
-
use_too_many_resources: 耗用過多資源
|
|
112
|
-
user_has_previously_been_banned: 使用者之前已被禁言
|
|
113
|
-
user_offline: 使用者離線
|
|
114
|
-
wait_for_no_fast_comment: 因禁止快速連續推文,所以等待五秒
|
|
115
|
-
welcome: PyPtt v _target0_ 由 CodingMan 開發
|
|
116
|
-
wrong_id_pw: 帳號密碼錯誤
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|