Bläddra i källkod

orjson을 사용하도록 수정

잉여개발기 (SPDV) 1 år sedan
förälder
incheckning
63e76c73c2

+ 1 - 1
app.py

@@ -17,7 +17,7 @@ if len(args) > 1:
 
 # Init-Version
 with open('version.json', encoding = 'utf8') as file_data:
-    version_list = json.loads(file_data.read())
+    version_list = orjson.loads(file_data.read())
 
 # Init-DB
 data_db_set = class_check_json()

+ 4 - 4
lang/help_tool.py

@@ -1,11 +1,11 @@
 import re
-import json
+import orjson
 
-o_json = json.loads(open('en-US.json', encoding='utf8').read())
+o_json = orjson.loads(open('en-US.json', encoding = 'utf8').read())
 
 print('n_name : ', end = '')
 n_name = input()
-n_json = json.loads(open(n_name + '.json', encoding='utf8').read())
+n_json = orjson.loads(open(n_name + '.json', encoding = 'utf8').read())
 
 print()
 for i in list(n_json):
@@ -23,7 +23,7 @@ for i in list(o_json):
 
             n_json = {**n_json, **{i : n_text}}
 
-n_data = json.dumps(n_json, indent = 4, ensure_ascii = False)
+n_data = orjson.dumps(n_json, indent = 4, ensure_ascii = False)
 
 f = open(n_name + '.json', "w", encoding='utf8')
 f.write(n_data)

+ 1 - 0
requirements.txt

@@ -5,6 +5,7 @@ flask[async]
 waitress
 
 requests
+orjson
 typing_extensions
 diff-match-patch
 

+ 3 - 3
route/api_skin_info.py

@@ -9,7 +9,7 @@ def api_skin_info(name = ''):
         if not flask.request.args.get('all', None):
             json_address = re.sub(r"(((?!\.|\/).)+)\.html$", "info.json", name)
             try:
-                json_data = json.loads(open(json_address, encoding='utf8').read())
+                json_data = orjson.loads(open(json_address, encoding='utf8').read())
             except:
                 json_data = None
 
@@ -28,7 +28,7 @@ def api_skin_info(name = ''):
             for i in load_skin(conn, skin_check(conn, 1), 1):
                 json_address = re.sub(r"(((?!\.|\/).)+)\.html$", "info.json", './views/' + i + '/index.html')
                 try:
-                    json_data = json.loads(open(json_address, encoding='utf8').read())
+                    json_data = orjson.loads(open(json_address, encoding='utf8').read())
                 except:
                     json_data = None
 
@@ -51,7 +51,7 @@ def api_skin_info(name = ''):
 
                         if get_data and get_data.getcode() == 200:
                             try:
-                                get_data = json.loads(get_data.read().decode())
+                                get_data = orjson.loads(get_data.read().decode())
                             except:
                                 get_data = {}
 

+ 1 - 1
route/bbs_w_delete.py

@@ -19,7 +19,7 @@ def bbs_w_delete(bbs_num = '', post_num = '', comment_num = ''):
         if acl_check('', 'owner_auth', '') == 1:
             return redirect(conn, '/bbs/in/' + bbs_num_str)
         
-        temp_dict = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+        temp_dict = orjson.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
         if not 'user_id' in temp_dict:
             return redirect(conn, '/bbs/main')
         

+ 4 - 4
route/bbs_w_edit.py

@@ -19,14 +19,14 @@ def bbs_w_edit(bbs_num = '', post_num = '', comment_num = ''):
             return redirect(conn, '/bbs/main')
         
         if comment_num != '':
-            temp_dict = json.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
+            temp_dict = orjson.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
             if 'comment_user_id' in temp_dict:
                 if not temp_dict['comment_user_id'] == ip and acl_check('', 'owner_auth', '', '') == 1:
                     return re_error(conn, '/ban')
             else:
                 return redirect(conn, '/bbs/main')
         elif post_num != '':
-            temp_dict = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+            temp_dict = orjson.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
             if 'user_id' in temp_dict:
                 if not temp_dict['user_id'] == ip and acl_check('', 'owner_auth', '', '') == 1:
                     return re_error(conn, '/ban')
@@ -92,7 +92,7 @@ def bbs_w_edit(bbs_num = '', post_num = '', comment_num = ''):
             option_display = ''
 
             if comment_num != '':
-                temp_dict = json.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
+                temp_dict = orjson.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
 
                 title = ''
                 data = temp_dict['comment']
@@ -101,7 +101,7 @@ def bbs_w_edit(bbs_num = '', post_num = '', comment_num = ''):
                 title = ''
                 data = ''
             else:
-                temp_dict = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+                temp_dict = orjson.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
 
                 title = temp_dict['title']
                 data = temp_dict['data']

+ 1 - 1
route/bbs_w_pinned.py

@@ -19,7 +19,7 @@ def bbs_w_pinned(bbs_num = '', post_num = ''):
         if acl_check('', 'bbs_auth', '', '') == 1:
             return redirect(conn, '/bbs/in/' + bbs_num_str)
         
-        temp_dict = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+        temp_dict = orjson.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
         if not 'user_id' in temp_dict:
             return redirect(conn, '/bbs/main')
         

+ 3 - 3
route/bbs_w_post.py

@@ -14,7 +14,7 @@ def bbs_w_post_comment(conn, user_id, sub_code, comment_num, bbs_num_str, post_n
     comment_count = 0
     comment_add_count = 0
 
-    thread_data = json.loads(api_bbs_w_comment(sub_code).data)
+    thread_data = orjson.loads(api_bbs_w_comment(sub_code).data)
     
     comment_count += len(thread_data)
     comment_add_count += comment_count
@@ -73,7 +73,7 @@ def bbs_w_post(bbs_num = '', post_num = ''):
         bbs_comment_acl = acl_check(bbs_num_str, 'bbs_comment')
         ip = ip_check()
 
-        temp_dict = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+        temp_dict = orjson.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
         if temp_dict == {}:
             return redirect(conn, '/bbs/main')
         
@@ -134,7 +134,7 @@ def bbs_w_post(bbs_num = '', post_num = ''):
                 user_id = temp_dict['user_id']
                 count = 0
 
-                thread_data = json.loads(api_bbs_w_comment(bbs_num_str + '-' + post_num_str).data)
+                thread_data = orjson.loads(api_bbs_w_comment(bbs_num_str + '-' + post_num_str).data)
                 for temp_dict in thread_data:
                     count += 1
                     if user_id == temp_dict['comment_user_id']:

+ 1 - 1
route/go_api_w_render.py

@@ -60,7 +60,7 @@ async def api_w_render(name = '', tool = ''):
                 data_type = 'api_thread'
 
             if markup in ('', 'namumark', 'namumark_beta') and data_option != '':
-                data_option = json.loads(data_option)
+                data_option = orjson.loads(data_option)
 
                 data_option_func = api_w_render_include(data_option)
 

+ 1 - 1
route/login_find_email_check.py

@@ -79,7 +79,7 @@ def login_find_email_check(tool):
                         user_app_data['ua'] = user_agent
                         user_app_data['email'] = flask.session['c_email']
                         
-                        curs.execute(db_change("insert into user_set (id, name, data) values (?, ?, ?)"), [flask.session['c_id'], 'application', json.dumps(user_app_data)])
+                        curs.execute(db_change("insert into user_set (id, name, data) values (?, ?, ?)"), [flask.session['c_id'], 'application', orjson.dumps(user_app_data)])
         
                         for i in re_set_list:
                             flask.session.pop(i, None)

+ 1 - 1
route/login_register_submit.py

@@ -48,7 +48,7 @@ def login_register_submit_2():
             for for_a in session_reset_list:
                 flask.session.pop(for_a, None)
 
-            curs.execute(db_change("insert into user_set (id, name, data) values (?, ?, ?)"), [user_app_data['id'], 'application', json.dumps(user_app_data)])
+            curs.execute(db_change("insert into user_set (id, name, data) values (?, ?, ?)"), [user_app_data['id'], 'application', orjson.dumps(user_app_data)])
 
             return re_error(conn, '/error/43')
         else:

+ 1 - 1
route/main_search_deep.py

@@ -51,7 +51,7 @@ async def main_search_deep(name = 'Test', search_type = 'title', num = 1):
                 <ul>
             '''
 
-            all_list = json.loads((await api_search(name, search_type, num)).get_data(as_text = True))
+            all_list = orjson.loads((await api_search(name, search_type, num)).get_data(as_text = True))
             for data in all_list:
                 div += '<li><a href="/w/' + url_pas(data) + '">' + data + '</a></li>'
 

+ 2 - 2
route/recent_app_submit.py

@@ -33,7 +33,7 @@ def recent_app_submit_2():
                 '''
 
                 for application in db_data:
-                    application = json.loads(application[0])
+                    application = orjson.loads(application[0])
 
                     if 'question' in application:
                         question = html.escape(application['question'])
@@ -101,7 +101,7 @@ def recent_app_submit_2():
                 if not application:
                     return re_error(conn, '/error/26')
                 else:
-                    application = json.loads(application[0][0])
+                    application = orjson.loads(application[0][0])
 
                 add_user(conn, application['id'], application['pw'], application['email'], application['encode'])
 

+ 1 - 1
route/recent_edit_request.py

@@ -17,7 +17,7 @@ async def recent_edit_request():
                     </tr>
         '''
 
-        all_list = json.loads((await api_list_recent_edit_request()).get_data(as_text = True))
+        all_list = orjson.loads((await api_list_recent_edit_request()).get_data(as_text = True))
         for data in all_list:
             if re.search(r"\+", data[5]):
                 leng = '<span style="color:green;">(' + data[5] + ')</span>'

+ 16 - 16
route/tool/func.py

@@ -2,7 +2,7 @@
 import os
 import sys
 import platform
-import json
+import orjson
 import smtplib
 import random
 import shutil
@@ -16,7 +16,7 @@ import email.header
 
 # Init-Version
 with open('version.json', encoding = 'utf8') as file_data:
-    version_list = json.loads(file_data.read())
+    version_list = orjson.loads(file_data.read())
 
 print('Version : ' + version_list['beta']['r_ver'])
 print('DB set version : ' + version_list['beta']['c_ver'])
@@ -117,7 +117,7 @@ def python_to_golang_sync(func_name, other_set = {}):
     if other_set == {}:
         other_set = '{}'
     else:
-        other_set = json.dumps(other_set)
+        other_set = orjson.dumps(other_set)
 
     if platform.system() == 'Linux':
         if platform.machine() in ["AMD64", "x86_64"]:
@@ -156,7 +156,7 @@ async def python_to_golang(func_name, other_set = {}):
     if other_set == {}:
         other_set = '{}'
     else:
-        other_set = json.dumps(other_set)
+        other_set = orjson.dumps(other_set)
 
     if platform.system() == 'Linux':
         if platform.machine() in ["AMD64", "x86_64"]:
@@ -294,7 +294,7 @@ class class_check_json:
             if os.path.exists(os.path.join('data', 'set.json')):
                 db_set_list = ['db', 'db_type']
                 with open(os.path.join('data', 'set.json'), encoding = 'utf8') as file_data:
-                    set_data = json.loads(file_data.read())
+                    set_data = orjson.loads(file_data.read())
 
                 for i in db_set_list:
                     if not i in set_data:
@@ -329,7 +329,7 @@ class class_check_json:
                     set_data['db'] = data_get
 
                 with open(os.path.join('data', 'set.json'), 'w', encoding = 'utf8') as f:
-                    f.write(json.dumps(set_data))
+                    f.write(orjson.dumps(set_data))
 
         print('DB name : ' + set_data['db'])
         print('DB type : ' + set_data['db_type'])
@@ -344,7 +344,7 @@ class class_check_json:
         if os.path.exists(os.path.join('data', 'mysql.json')):
             db_set_list = ['user', 'password', 'host', 'port']
             with open(os.path.join('data', 'mysql.json'), encoding = 'utf8') as file_data:
-                set_data = json.loads(file_data.read())
+                set_data = orjson.loads(file_data.read())
 
             for i in db_set_list:
                 if not i in set_data:
@@ -378,7 +378,7 @@ class class_check_json:
                 'w', 
                 encoding = 'utf8'
             ) as f:
-                f.write(json.dumps(set_data_mysql))
+                f.write(orjson.dumps(set_data_mysql))
 
         data_db_set['mysql_user'] = set_data_mysql['user']
         data_db_set['mysql_pw'] = set_data_mysql['password']
@@ -485,7 +485,7 @@ def update(conn, ver_num, set_data):
                 curs.execute(db_change("update other set data = '' where name = 'sec_re'"))
     
     if ver_num < 3172800 and set_data['type'] == 'mysql':
-        get_data_mysql = json.loads(open('data/mysql.json', encoding = 'utf8').read())
+        get_data_mysql = orjson.loads(open('data/mysql.json', encoding = 'utf8').read())
         
         with open('data/mysql.json', 'w') as f:
             f.write('{ "user" : "' + get_data_mysql['user'] + '", "password" : "' + get_data_mysql['password'] + '", "host" : "localhost" }')
@@ -572,7 +572,7 @@ def update(conn, ver_num, set_data):
             sql_data['ua'] = i[7]
             sql_data['email'] = i[8]
             
-            curs.execute(db_change("insert into user_set (name, id, data) values (?, ?, ?)"), ['application', i[0], json.dumps(sql_data)])
+            curs.execute(db_change("insert into user_set (name, id, data) values (?, ?, ?)"), ['application', i[0], orjson.dumps(sql_data)])
     
     if ver_num < 3500105:
         curs.execute(db_change('delete from acl where title like "file:%" and data = "admin" and type like "decu%"'))
@@ -939,7 +939,7 @@ def get_acl_list(type_data = 'normal'):
     other_set['type'] = type_data
 
     data_str = python_to_golang_sync('api_func_acl_list', other_set)
-    data = json.loads(data_str)
+    data = orjson.loads(data_str)
 
     return data["data"]
 
@@ -1163,7 +1163,7 @@ def get_lang(conn, data, safe = 0):
         else:
             lang_list = os.listdir('lang')
             if (lang_name + '.json') in lang_list:
-                lang = json.loads(open(os.path.join('lang', lang_name + '.json'), encoding = 'utf8').read())
+                lang = orjson.loads(open(os.path.join('lang', lang_name + '.json'), encoding = 'utf8').read())
             else:
                 lang = {}
 
@@ -1824,7 +1824,7 @@ def captcha_post(conn, re_data):
                 )
                 
             if data.status_code == 200:
-                json_data = json.loads(data.text)
+                json_data = orjson.loads(data.text)
                 if json_data['success'] != True:
                     return 1
 
@@ -1912,7 +1912,7 @@ def acl_check(name = '', tool = '', topic_num = '', ip = '', memo = ''):
     other_set['tool'] = tool
 
     data_str = python_to_golang_sync('api_func_acl', other_set)
-    data = json.loads(data_str)
+    data = orjson.loads(data_str)
 
     result = 0 if data["data"] else 1
 
@@ -1934,7 +1934,7 @@ def ban_check(ip = None, tool = ''):
     other_set['type'] = tool
 
     data_str = python_to_golang_sync('api_func_ban', other_set)
-    data = json.loads(data_str)
+    data = orjson.loads(data_str)
     data["ban"] = 1 if data["ban"] == "true" else 0
 
     return [data["ban"], data["ban_type"]]
@@ -1954,7 +1954,7 @@ def ip_pas(raw_ip):
         other_set["data_" + str(for_a)] = get_ip[for_a - 1]
 
     data_str = python_to_golang_sync('api_func_ip_post', other_set)
-    data = json.loads(data_str)
+    data = orjson.loads(data_str)
 
     return data["data"][raw_ip] if return_data == 1 else data["data"]
         

+ 1 - 1
route/tool/func_render_namumark.py

@@ -1380,7 +1380,7 @@ class class_do_render_namumark:
                         '''
                         data_name = self.get_tool_data_storage('' + \
                             include_link + \
-                            '<div id="' + include_sub_name + '" style="display: none;">' + urllib.parse.quote(json.dumps(include_change_list)) + '</div>' + \
+                            '<div id="' + include_sub_name + '" style="display: none;">' + urllib.parse.quote(orjson.dumps(include_change_list)) + '</div>' + \
                         '', '', match_org)
                     else:
                         self.data_backlink[include_name]['no'] = ''

+ 1 - 1
route/tool/func_tool.py

@@ -9,7 +9,7 @@ import os
 import html
 import sqlite3
 import time
-import json
+import orjson
 import threading
 
 def get_time():

+ 1 - 1
route/view_random.py

@@ -4,6 +4,6 @@ from .go_api_w_random import api_w_random
 
 async def view_random():
     with get_db_connect() as conn:
-        data = json.loads((await api_w_random()).get_data(as_text = True))["data"]
+        data = orjson.loads((await api_w_random()).get_data(as_text = True))["data"]
         
         return redirect(conn, '/w/' + url_pas(data))

+ 3 - 3
route/view_raw.py

@@ -67,10 +67,10 @@ def view_raw(name = '', topic_num = '', num = '', doc_acl = 0, bbs_num = '', pos
 
         if bbs_num != '' and post_num != '':
             if comment_num != '':
-                data = json.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
-                sub_data = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+                data = orjson.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
+                sub_data = orjson.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
             else:
-                data = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+                data = orjson.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
                 
             if 'comment' in data:
                 v_name = sub_data["title"]

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-v160",
+        "r_ver" : "v3.5.0-v161",
         "c_ver" : "20240513",
         "s_ver" : "20240426"
     }