فهرست منبع

totally anonymous wiki

잉여개발기 (SPDV) 3 سال پیش
والد
کامیت
7214edb60d
4فایلهای تغییر یافته به همراه54 افزوده شده و 19 حذف شده
  1. 2 0
      route/api_topic.py
  2. 8 2
      route/main_setting_main.py
  3. 36 16
      route/tool/func.py
  4. 8 1
      route/user_setting.py

+ 2 - 0
route/api_topic.py

@@ -59,6 +59,8 @@ def api_topic(topic_num = 1, tool = 'normal', num = '', render = ''):
                             '<a href="/w/user:\g<in>">@\g<in></a>',
                             data_v[0]
                         )
+                    else:
+                        data_v = ['', '']
 
                     data_a['data'] += [{
                         "id" : i[0],

+ 8 - 2
route/main_setting_main.py

@@ -35,7 +35,8 @@ def main_setting_main(db_set):
             31 : ['wiki_access_password_need', ''],
             32 : ['wiki_access_password', ''],
             33 : ['history_recording_off', ''],
-            34 : ['namumark_compatible', '']
+            34 : ['namumark_compatible', ''],
+            35 : ['user_name_view', '']
         }
 
         if flask.request.method == 'POST':
@@ -85,7 +86,7 @@ def main_setting_main(db_set):
                 else:
                     tls_select += '<option value="' + tls_select_one + '">' + tls_select_one + '</option>'
 
-            check_box_div = ['', '', '', '', '', '', '', '', '', '', '']
+            check_box_div = ['', '', '', '', '', '', '', '', '', '', '', '']
             for i in range(0, len(check_box_div)):
                 if i == 0:
                     acl_num = 7
@@ -107,6 +108,8 @@ def main_setting_main(db_set):
                     acl_num = 33
                 elif i == 10:
                     acl_num = 34
+                elif i == 11:
+                    acl_num = 35
 
                 if d_list[acl_num]:
                     check_box_div[i] = 'checked="checked"'
@@ -197,6 +200,9 @@ def main_setting_main(db_set):
                         <input type="checkbox" name="ip_view" ''' + check_box_div[1] + '''> ''' + load_lang('hide_ip') + '''
                         <hr class="main_hr">
 
+                        <input type="checkbox" name="user_name_view" ''' + check_box_div[11] + '''> ''' + load_lang('hide_user_name') + '''
+                        <hr class="main_hr">
+
                         <input type="checkbox" name="requires_approval" ''' + check_box_div[3] + '''> ''' + load_lang('requires_approval') + '''
                         <hr class="main_hr">
 

+ 36 - 16
route/tool/func.py

@@ -2069,33 +2069,53 @@ def ip_pas(raw_ip, type_data = 0):
         get_ip = raw_ip
 
     curs.execute(db_change("select data from other where name = 'ip_view'"))
-    ip_view = curs.fetchall()
-    ip_view = ip_view[0][0] if ip_view else ''
+    db_data = curs.fetchall()
+    ip_view = db_data[0][0] if db_data else ''
     ip_view = '' if admin_check(1) == 1 else ip_view
+
+    curs.execute(db_change("select data from other where name = 'user_name_view'"))
+    db_data = curs.fetchall()
+    user_name_view = db_data[0][0] if db_data else ''
+    user_name_view = '' if admin_check(1) == 1 else user_name_view
     
     get_ip = list(set(get_ip))
     
     for raw_ip in get_ip:
         change_ip = 0
         is_this_ip = ip_or_user(raw_ip)
-        if is_this_ip != 0 and ip_view != '':
-            try:
-                ip = ipaddress.ip_address(raw_ip)
-                if type(ip) == ipaddress.IPv6Address:
-                    ip = ip.exploded
-                    ip = re.sub(r':([^:]*):([^:]*)$', ':*:*', ip)
+        if is_this_ip != 0:
+            # ip user
+            if ip_view != '':
+                try:
+                    ip = ipaddress.ip_address(raw_ip)
+                    if type(ip) == ipaddress.IPv6Address:
+                        ip = ip.exploded
+                        ip = re.sub(r':([^:]*):([^:]*)$', ':*:*', ip)
+                    else:
+                        ip = ip.exploded
+                        ip = re.sub(r'\.([^.]*)\.([^.]*)$', '.*.*', ip)
+                    
+                    # ip = hashlib.sha3_224(bytes(raw_ip, 'utf-8')).hexdigest()
+                    # ip = ip[0:4] + '-' + ip[4:8] + '-' + ip[8:12] + '-' + ip[12:16]
+
+                    change_ip = 1
+                except:
+                    ip = raw_ip
+            else:
+                ip = raw_ip
+        else:
+            # not ip user
+            if ip_view != '':
+                curs.execute(db_change("select data from user_set where id = ? and name = 'sub_user_name'"), [raw_ip])
+                db_data = curs.fetchall()
+                if db_data and db_data[0][0] != '':
+                    ip = db_data[0][0]
                 else:
-                    ip = ip.exploded
-                    ip = re.sub(r'\.([^.]*)\.([^.]*)$', '.*.*', ip)
-                
-                # ip = hashlib.sha3_224(bytes(raw_ip, 'utf-8')).hexdigest()
-                # ip = ip[0:4] + '-' + ip[4:8] + '-' + ip[8:12] + '-' + ip[12:16]
+                    ip = load_lang('member')
 
                 change_ip = 1
-            except:
+            else:
                 ip = raw_ip
-        else:     
-            ip = raw_ip
             
         if type_data == 0 and change_ip == 0:
             if is_this_ip == 0:

+ 8 - 1
route/user_setting.py

@@ -15,7 +15,8 @@ def user_setting():
                 auto_list = [
                     ['skin', flask.request.form.get('skin', '')], 
                     ['lang', flask.request.form.get('lang', '')],
-                    ['user_title', flask.request.form.get('user_title', '')]
+                    ['user_title', flask.request.form.get('user_title', '')],
+                    ['sub_user_name' , flask.request.form.get('sub_user_name', '')]
                 ]
 
                 twofa_on = flask.request.form.get('2fa', '')
@@ -96,6 +97,10 @@ def user_setting():
                 fa_data_pw = curs.fetchall()
                 fa_data_pw = load_lang('2fa_password_change') if fa_data_pw else load_lang('2fa_password')
 
+                curs.execute(db_change('select data from user_set where name = "sub_user_name" and id = ?'), [ip])
+                db_data = curs.fetchall()
+                sub_user_name = db_data[0][0] if db_data else ''
+
                 return easy_minify(flask.render_template(skin_check(),
                     imp = [load_lang('user_setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
                     data = '''
@@ -127,6 +132,8 @@ def user_setting():
                             <select name="2fa" id="twofa_check_input">''' + fa_data_select + '''</select>
                             <hr class="main_hr">
                             <input type="password" name="2fa_pw" placeholder="''' + fa_data_pw + '''">
+                            <h2>''' + load_lang('sub_user_name') + '''</h2>
+                            <input name="sub_user_name" value="''' + html.escape(sub_user_name) + '''" placeholder="''' + load_lang('sub_user_name') + '''">
                             <hr class="main_hr">
                             <button type="submit">''' + load_lang('save') + '''</button>
                             ''' + http_warning() + '''