Prechádzať zdrojové kódy

구식 OAuth 기능 제거, 최적화, 사용자 설정 디폴트 제공

Surplus_Up (2DU) 5 rokov pred
rodič
commit
7975ca75a9
9 zmenil súbory, kde vykonal 86 pridanie a 497 odobranie
  1. 8 5
      app.py
  2. 0 5
      data/app_var.json
  3. 0 1
      emergency_tool.py
  4. 0 30
      route/login.py
  5. 0 223
      route/login_oauth.py
  6. 0 85
      route/setting.py
  7. 64 116
      route/tool/func.py
  8. 12 30
      route/user_setting.py
  9. 2 2
      version.json

+ 8 - 5
app.py

@@ -10,7 +10,6 @@ for i_data in os.listdir("route"):
 
 # DB
 version_list = json.loads(open('version.json', encoding = 'utf8').read())
-app_var = json.loads(open('data/app_var.json', encoding = 'utf8').read())
 
 print('Version : ' + version_list['master']['r_ver'])
 print('DB set version : ' + version_list['master']['c_ver'])
@@ -207,6 +206,14 @@ curs.execute(db_change('select name from alist where acl = "owner"'))
 if not curs.fetchall():
     curs.execute(db_change('insert into alist (name, acl) values ("owner", "owner")'))
 
+curs.execute(db_change('select name from other where name = "image_where"'))
+app_var = curs.fetchall()
+if not app_var:
+    curs.execute(db_change('insert into other (name, data) values ("image_where", "data/images")'))
+    app_var = { 'path_data_image' : 'data/images' }
+else:
+    app_var = { 'path_data_image' : app_var[0][0] }
+
 if not os.path.exists(app_var['path_data_image']):
     os.makedirs(app_var['path_data_image'])
 
@@ -510,10 +517,6 @@ def user_tool(name = None):
 def login():
     return login_2(conn)
 
-@app.route('/oauth/<regex("discord|naver|facebook|kakao"):platform>/<regex("init|callback"):func>', methods=['GET', 'POST'])
-def login_oauth(platform = None, func = None):
-    return login_oauth_2(conn, platform, func)
-
 @app.route('/change', methods=['POST', 'GET'])
 def user_setting():
     return user_setting_2(conn, server_init)

+ 0 - 5
data/app_var.json

@@ -1,5 +0,0 @@
-{
-    "_conment_1_" : "Don't edit this file.",
-    "path_oauth_setting" : "data/oauthsettings.json",
-    "path_data_image" : "data/images"
-}

+ 0 - 1
emergency_tool.py

@@ -4,7 +4,6 @@ from route.tool.func import *
 
 # DB
 version_list = json.loads(open('version.json', encoding='utf8').read())
-app_var = json.loads(open('data/app_var.json', encoding='utf8').read())
 
 print('Version : ' + version_list['master']['r_ver'])
 print('DB set version : ' + version_list['master']['c_ver'])

+ 0 - 30
route/login.py

@@ -48,35 +48,6 @@ def login_2(conn):
 
         return redirect('/user')
     else:
-        oauth_check = 0
-        oauth_content = '<hr class=\"main_hr\"><div class="oauth-wrapper"><ul class="oauth-list">'
-        oauth_supported = load_oauth('_README')['support']
-        for i in range(len(oauth_supported)):
-            oauth_data = load_oauth(oauth_supported[i])
-            if oauth_data['client_id'] != '' and oauth_data['client_secret'] != '':
-                oauth_content += '''
-                    <li>
-                        <a href="/oauth/{}/init">
-                            <div class="oauth-btn oauth-btn-{}">
-                                <div class="oauth-btn-logo oauth-btn-{}"></div>
-                                {}
-                            </div>
-                        </a>
-                    </li>
-                '''.format(
-                    oauth_supported[i],
-                    oauth_supported[i],
-                    oauth_supported[i],
-                    load_lang('oauth_signin_' + oauth_supported[i])
-                )
-
-                oauth_check = 1
-
-        oauth_content += '</ul></div>'
-
-        if oauth_check == 0:
-            oauth_content = ''
-
         http_warring = '<hr class=\"main_hr\"><span>' + load_lang('http_warring') + '</span>'
 
         return easy_minify(flask.render_template(skin_check(),
@@ -89,7 +60,6 @@ def login_2(conn):
                         <hr class=\"main_hr\">
                         ''' + captcha_get() + '''
                         <button type="submit">''' + load_lang('login') + '''</button>
-                        ''' + oauth_content + '''
                         ''' + http_warring + '''
                     </form>
                     ''',

+ 0 - 223
route/login_oauth.py

@@ -1,223 +0,0 @@
-from .tool.func import *
-
-def login_oauth_2(conn, platform, func):
-    curs = conn.cursor()
-
-    publish_url = load_oauth('publish_url')
-    oauth_data = load_oauth(platform)
-    api_url = {}
-    data = {
-        'client_id' : oauth_data['client_id'],
-        'client_secret' : oauth_data['client_secret'],
-        'redirect_uri' : publish_url + '/oauth/' + platform + '/callback',
-        'state' : 'RAMDOMVALUE'
-    }
-
-    if platform == 'discord':
-        api_url['redirect'] = 'https://discordapp.com/api/oauth2/authorize'
-        api_url['token'] = 'https://discordapp.com/api/oauth2/token'
-        api_url['profile'] = 'https://discordapp.com/api/users/@me'
-    elif platform == 'naver':
-        api_url['redirect'] = 'https://nid.naver.com/oauth2.0/authorize'
-        api_url['token'] = 'https://nid.naver.com/oauth2.0/token'
-        api_url['profile'] = 'https://openapi.naver.com/v1/nid/me'
-    elif platform == 'facebook':
-        api_url['redirect'] = 'https://www.facebook.com/v3.1/dialog/oauth'
-        api_url['token'] = 'https://graph.facebook.com/v3.1/oauth/access_token'
-        api_url['profile'] = 'https://graph.facebook.com/me'
-    elif platform == 'kakao':
-        api_url['redirect'] = 'https://kauth.kakao.com/oauth/authorize'
-        api_url['token'] = 'https://kauth.kakao.com/oauth/token'
-        api_url['profile'] = 'https://kapi.kakao.com/v2/user/me'
-
-    if func == 'init':
-        if oauth_data['client_id'] == '' or oauth_data['client_secret'] == '':
-            return re_error('/error/31')
-        elif publish_url == 'https://':
-            return re_error('/error/32')
-
-        referrer_re = re.compile(r'(?P<host>^(https?):\/\/([^\/]+))\/(?P<refer>[^\/?]+)')
-        if flask.request.referrer != None:
-            referrer = referrer_re.search(flask.request.referrer)
-            if referrer.group('host') != load_oauth('publish_url'):
-                return redirect()
-            else:
-                flask.session['referrer'] = referrer.group('refer')
-        else:
-            return redirect()
-
-        flask.session['refer'] = flask.request.referrer
-
-        if platform == 'discord':
-            return redirect(api_url['redirect'] + '?client_id={}&redirect_uri={}&response_type=code&scope=identify'.format(
-                data['client_id'],
-                data['redirect_uri']
-            ))
-        elif platform == 'naver':
-            return redirect(api_url['redirect'] + '?response_type=code&client_id={}&redirect_uri={}&state={}'.format(
-                data['client_id'],
-                data['redirect_uri'],
-                data['state']
-            ))
-        elif platform == 'facebook':
-            return redirect(api_url['redirect'] + '?client_id={}&redirect_uri={}&state={}'.format(
-                data['client_id'],
-                data['redirect_uri'],
-                data['state']
-            ))
-        elif platform == 'kakao':
-            return redirect(api_url['redirect'] + '?client_id={}&redirect_uri={}&response_type=code'.format(
-                data['client_id'],
-                data['redirect_uri']
-            ))
-
-    elif func == 'callback':
-        code = flask.request.args.get('code')
-        state = flask.request.args.get('state')
-
-        if code == None:
-            return re_error('/error/30')
-
-        if platform == 'discord':
-            data = {
-                'client_id'     : data['client_id'],
-                'client_secret' : data['client_secret'],
-                'grant_type'    : 'authorization_code',
-                'redirect_uri'  : data['redirect_uri'],
-                'scope'         : 'identify',
-                'code'          : code
-            }
-            headers = {
-                'Content-Type': 'application/x-www-form-urlencoded',
-                'User-Agent': 'Mozilla/5.0'
-            }
-            token_exchange = urllib.request.Request(
-                api_url['token'],
-                data = bytes(urllib.parse.urlencode(data).encode()),
-                headers = headers
-            )
-            token_result = urllib.request.urlopen(token_exchange).read()
-            token_json = json.loads(token_result)
-
-            headers = {
-                'User-Agent'    : 'Mozilla/5.0',
-                'Authorization' : 'Bearer ' + token_json['access_token']
-            }
-            profile_exchange = urllib.request.Request(
-                api_url['profile'],
-                headers = headers
-            )
-            profile_result =  urllib.request.urlopen(profile_exchange).read().decode('utf-8')
-            profile_result_json = json.loads(profile_result)
-            stand_json = {
-                'id'        : profile_result_json['id'],
-                'name'      : profile_result_json['username'] + '#' + profile_result_json['discriminator'],
-                'picture'   : profile_result_json['avatar']
-            }
-        elif platform == 'naver':
-            token_access = api_url['token'] + '?grant_type=authorization_code&client_id={}&client_secret={}&code={}&state={}'.format(
-                data['client_id'],
-                data['client_secret'],
-                code,
-                state
-            )
-            token_result = urllib.request.urlopen(token_access).read().decode('utf-8')
-            token_result_json = json.loads(token_result)
-
-            headers = {
-                'Authorization': 'Bearer {}'.format(token_result_json['access_token'])
-            }
-
-            profile_access = urllib.request.Request(api_url['profile'], headers = headers)
-            profile_result = urllib.request.urlopen(profile_access).read().decode('utf-8')
-            profile_result_json = json.loads(profile_result)
-
-            stand_json = {
-                'id'        : profile_result_json['response']['id'],
-                'name'      : profile_result_json['response']['name'],
-                'picture'   : profile_result_json['response']['profile_image']
-            }
-        elif platform == 'facebook':
-            token_access = api_url['token'] + '?client_id={}&redirect_uri={}&client_secret={}&code={}'.format(
-                data['client_id'],
-                data['redirect_uri'],
-                data['client_secret'],
-                code
-            )
-            token_result = urllib.request.urlopen(token_access).read().decode('utf-8')
-            token_result_json = json.loads(token_result)
-
-            profile_access = api_url['profile'] + '?fields=id,name,picture&access_token={}'.format(token_result_json['access_token'])
-            profile_result = urllib.request.urlopen(profile_access).read().decode('utf-8')
-            profile_result_json = json.loads(profile_result)
-
-            stand_json = {
-                'id': profile_result_json['id'],
-                'name': profile_result_json['name'],
-                'picture': profile_result_json['picture']['data']['url']
-            }
-        elif platform == 'kakao':
-            data = {
-                'client_id'     : data['client_id'],
-                'client_secret' : data['client_secret'],
-                'grant_type'    : 'authorization_code',
-                'redirect_uri'  : data['redirect_uri'],
-                'code'          : code
-            }
-            headers = {
-                'Content-Type': 'application/x-www-form-urlencoded',
-                'User-Agent': 'Mozilla/5.0'
-            }
-            token_exchange = urllib.request.Request(
-                api_url['token'],
-                data = bytes(urllib.parse.urlencode(data).encode()),
-                headers = headers
-            )
-            token_result = urllib.request.urlopen(token_exchange).read()
-            token_json = json.loads(token_result)
-
-            headers = {
-                'User-Agent'    : 'Mozilla/5.0',
-                'Authorization' : 'Bearer ' + token_json['access_token']
-            }
-            profile_exchange = urllib.request.Request(
-                api_url['profile'],
-                headers = headers
-            )
-            profile_result =  urllib.request.urlopen(profile_exchange).read().decode('utf-8')
-            profile_result_json = json.loads(profile_result)
-            stand_json = {
-                'id'        : profile_result_json['id'],
-                'name'      : profile_result_json['properties']['nickname'],
-                'picture'   : profile_result_json['properties']['profile_image']
-            }
-
-        if flask.session['referrer'][0:6] == 'change':
-            curs.execute(db_change('select * from oauth_conn where wiki_id = ? and provider = ?'), [flask.session['id'], platform])
-            oauth_result = curs.fetchall()
-            if len(oauth_result) == 0:
-                curs.execute(db_change('insert into oauth_conn (provider, wiki_id, sns_id, name, picture) values(?, ?, ?, ?, ?)'), [
-                    platform,
-                    flask.session['id'],
-                    stand_json['id'],
-                    stand_json['name'],
-                    stand_json['picture']
-                ])
-            else:
-                curs.execute(db_change('update oauth_conn set name = ? picture = ? where wiki_id = ?'), [
-                    stand_json['name'],
-                    stand_json['picture'],
-                    flask.session['id']
-                ])
-
-            conn.commit()
-        elif flask.session['referrer'][0:5] == 'login':
-            curs.execute(db_change('select * from oauth_conn where provider = ? and sns_id = ?'), [platform, stand_json['id']])
-            curs_result = curs.fetchall()
-            if len(curs_result) == 0:
-                return re_error('/error/2')
-            else:
-                flask.session['state'] = 1
-                flask.session['id'] = curs_result[0][2]
-
-        return redirect(flask.session['refer'])

+ 0 - 85
route/setting.py

@@ -16,7 +16,6 @@ def setting_2(conn, num, db_set):
             'Google',
             load_lang('main_bottom_body'),
             load_lang('main_acl_setting'),
-            load_lang('oauth_setting'),
             load_lang('wiki_logo')
         ]
 
@@ -656,90 +655,6 @@ def setting_2(conn, num, db_set):
                 menu = [['setting', load_lang('return')]]
             ))
     elif num == 9:
-        oauth_supported = load_oauth('_README')['support']
-
-        if admin_check() != 1:
-            return re_error('/error/3')
-
-        if flask.request.method == 'POST':
-            admin_check(None, 'oauth setting')
-            return_json_data = '{ "publish_url" : "' + flask.request.form.get('publish_url_box', '') + '", '
-
-            for i in range(len(oauth_supported)):
-                return_json_data += '"' + oauth_supported[i] + '" : { '
-                for j in range(2):
-                    if j == 0:
-                        load_target = 'id'
-                    elif j == 1:
-                        load_target = 'secret'
-
-                    target_data = flask.request.form.get(oauth_supported[i] + '_client_' + load_target, '')
-                    return_json_data += '"client_' + load_target  + '" : "' + target_data + '"' + (',' if j == 0 else '')
-
-                return_json_data += ' }'
-
-                try:
-                    _ = oauth_supported[i + 1]
-
-                    return_json_data += ', '
-                except:
-                    return_json_data += ' }'
-
-            with open(app_var['path_oauth_setting'], 'w', encoding='utf8') as f:
-                f.write(return_json_data)
-
-            return redirect('/oauth_setting')
-        else:
-            body_content = load_lang('oauth_explain') + '<hr class="main_hr">'
-            body_content += '''
-                <input placeholder="publish_url" id="publish_url_box" name="publish_url_box">
-                <hr class="main_hr">
-                <script>
-                    function check_value (target) {
-                        target_box = document.getElementById(target.id + "_box");
-                        if (target.value !== "") {
-                            target_box.checked = true;
-                        } else {
-                            target_box.checked = false;
-                        }
-                    }
-                </script>
-            '''
-
-            init_js = ''
-            body_content += '<form method="post">'
-
-            for i in range(len(oauth_supported)):
-                oauth_data = load_oauth(oauth_supported[i])
-
-                for j in range(2):
-                    if j == 0:
-                        load_target = 'id'
-                    elif j == 1:
-                        load_target = 'secret'
-
-                    init_js += 'check_value(document.getElementById("' + oauth_supported[i] + '_client_' + load_target + '"));'
-                    body_content += '''
-                        <input id="''' + oauth_supported[i] + '''_client_''' + load_target + '''_box" type="checkbox" disabled>
-                        <input  placeholder="''' + oauth_supported[i] + '''_client_''' + load_target + '''" 
-                                id="''' + oauth_supported[i] + '''_client_''' + load_target + '''" 
-                                name="''' + oauth_supported[i] + '''_client_''' + load_target + '''" 
-                                value="''' + oauth_data['client_' + load_target] + '''" 
-                                
-                                onChange="check_value(this)" 
-                                style="width: 80%;">
-                        ''' + ('<hr class="main_hr">' if j == 1 else '<hr class="main_hr">') + '''
-                    '''
-
-            body_content += '<button id="save" type="submit">' + load_lang('save') + '</button></form>'
-            body_content += '<script>' + init_js + '</script>'
-
-            return easy_minify(flask.render_template(skin_check(),
-                imp = [load_lang('oauth_setting'), wiki_set(), custom(), other2([0, 0])],
-                data = body_content,
-                menu = [['other', load_lang('return')]]
-            ))
-    elif num == 10:
         skin_list = [0] + load_skin('', 1)
         i_list = []
         for i in skin_list:

+ 64 - 116
route/tool/func.py

@@ -60,7 +60,7 @@ for i in range(0, 2):
             print(e)
             raise
 
-app_var = json.loads(open('data/app_var.json', encoding='utf8').read())
+global_lang = {}
 
 def load_conn(data):
     global conn
@@ -377,85 +377,47 @@ def captcha_post(re_data, num = 1):
         pass
 
 def load_lang(data, num = 2, safe = 0):
+    global global_lang
+
     if num == 1:
         curs.execute(db_change("select data from other where name = 'language'"))
         rep_data = curs.fetchall()
+        if rep_data:
+            try:
+                if not rep_data[0][0] in global_lang:
+                    lang = json.loads(open(os.path.join('language', rep_data[0][0] + '.json'), encoding='utf8').read())
+                    global_lang[rep_data[0][0]] = lang
+                else:
+                    lang = global_lang[rep_data[0][0]]
+            except:
+                return html.escape(data + ' (' + rep_data[0][0] + ')')
 
-        json_data = open(os.path.join('language', rep_data[0][0] + '.json'), encoding='utf8').read()
-        lang = json.loads(json_data)
-
-        if data in lang:
-            if safe == 1:
-                return lang[data]
+            if data in lang:
+                return lang[data] if safe == 1 else html.escape(lang[data])
             else:
-                return html.escape(lang[data])
+                return html.escape(data + ' (' + rep_data[0][0] + ')')
         else:
-            return html.escape(data + ' (M)')
+            return html.escape(data + ' (' + rep_data[0][0] + ')')
     else:
         curs.execute(db_change('select data from user_set where name = "lang" and id = ?'), [ip_check()])
         rep_data = curs.fetchall()
-        if rep_data:
+        if rep_data and rep_data != '' and rep_data != 'default':
             try:
-                json_data = open(os.path.join('language', rep_data[0][0] + '.json'), encoding='utf8').read()
-                lang = json.loads(json_data)
+                if not rep_data[0][0] in global_lang:
+                    lang = json.loads(open(os.path.join('language', rep_data[0][0] + '.json'), encoding='utf8').read())
+                    global_lang[rep_data[0][0]] = lang
+                else:
+                    lang = global_lang[rep_data[0][0]]
             except:
                 return load_lang(data, 1, safe)
 
             if data in lang:
-                if safe == 1:
-                    return lang[data]
-                else:
-                    return html.escape(lang[data])
+                return lang[data] if safe == 1 else html.escape(lang[data])
             else:
                 return load_lang(data, 1, safe)
         else:
             return load_lang(data, 1, safe)
 
-def load_oauth(provider):
-    oauth_supported = ["discord", "facebook", "naver", "kakao"]
-    if(provider == '_README'):
-        return { "support" : oauth_supported }
-    else:
-        try:
-            oauth = json.loads(open(app_var['path_oauth_setting'], encoding='utf8').read())
-        except:
-            return_json_data = '{ "publish_url" : "", '
-
-            for i in range(len(oauth_supported)):
-                return_json_data += '"' + oauth_supported[i] + '" : { '
-                for j in range(2):
-                    if j == 0:
-                        load_target = 'id'
-                    elif j == 1:
-                        load_target = 'secret'
-
-                    return_json_data += '"client_' + load_target  + '" : ""' + (',' if j == 0 else '')
-
-                return_json_data += ' }'
-
-                try:
-                    _ = oauth_supported[i + 1]
-
-                    return_json_data += ', '
-                except:
-                    return_json_data += ' }'
-
-            with open(app_var['path_oauth_setting'], 'w', encoding='utf-8') as f:
-                f.write(return_json_data)
-
-            oauth = json.loads(open(app_var['path_oauth_setting'], encoding='utf8').read())
-
-        return oauth[provider]
-
-def update_oauth(provider, target, content):
-    oauth = json.loads(open(app_var['path_oauth_setting'], encoding='utf8').read())
-    oauth[provider][target] = content
-
-    with open(app_var['path_oauth_setting'], 'w', encoding='utf8') as f:
-        f.write(json.dumps(oauth, sort_keys = True, indent = 4))
-
-    return 'Done'
-
 def ip_or_user(data = ''):
     if data == '':
         data = ip_check()
@@ -496,24 +458,21 @@ def ip_warring():
     return text_data
 
 def skin_check(set_n = 0):
-    skin = 'marisa'
-
-    curs.execute(db_change('select data from other where name = "skin"'))
-    skin_exist = curs.fetchall()
-    if skin_exist and skin_exist[0][0] != '':
-        if os.path.exists(os.path.abspath('./views/' + skin_exist[0][0] + '/index.html')) == 1:
-            skin = skin_exist[0][0]
+    skin_list = load_skin('marisa')
 
     curs.execute(db_change('select data from user_set where name = "skin" and id = ?'), [ip_check()])
     skin_exist = curs.fetchall()
-    if skin_exist and skin_exist[0][0] != '':
-        if os.path.exists(os.path.abspath('./views/' + skin_exist[0][0] + '/index.html')) == 1:
+    if skin_exist and skin_exist[0][0] != '' and skin_exist[0][0] in skin_list:
+        skin = skin_exist[0][0]
+    else:
+        curs.execute(db_change('select data from other where name = "skin"'))
+        skin_exist = curs.fetchall()
+        if skin_exist and skin_exist[0][0] != '' and skin_exist[0][0] in skin_list:
             skin = skin_exist[0][0]
+        else:
+            skin = skin_list[0][0]
 
-    if set_n == 0:
-        return './views/' + skin + '/index.html'
-    else:
-        return skin
+    return './views/' + skin + '/index.html' if set_n == 0 else skin
 
 def next_fix(link, num, page, end = 50):
     list_data = ''
@@ -824,53 +783,46 @@ def custom():
         user_topic
     ]
 
-def load_skin(data = '', set_n = 0):
-    skin_return_data = ''
+def load_skin(data = '', set_n = 0, default = 0):
+    # data -> 가장 앞에 있을 스킨 이름
+    # set_n == 0 -> 스트링으로 반환
+    # set_n == 1 -> 리스트로 반환
+    # default == 0 -> 디폴트 미포함
+    # default == 1 -> 디폴트 포함
+
+    skin_return_data = '' if set_n == 0 else []
     system_file = ['main_css']
+    skin_list_get = os.listdir(os.path.abspath('views'))
 
-    if data == '':
-        ip = ip_check()
+    if default == 1:
+        skin_list_get += ['default']
 
-        curs.execute(db_change('select data from user_set where name = "skin" and id = ?'), [ip])
+    if data == '':
+        curs.execute(db_change('select data from user_set where name = "skin" and id = ?'), [ip_check()])
         data = curs.fetchall()
-
         if not data:
             curs.execute(db_change('select data from other where name = "skin"'))
             data = curs.fetchall()
             if not data or data[0][0] == '':
-                data = [['marisa']]
-
-        if set_n == 0:
-            for skin_data in os.listdir(os.path.abspath('views')):
-                if not skin_data in system_file:
-                    if data[0][0] == skin_data:
-                        skin_return_data = '<option value="' + skin_data + '">' + skin_data + '</option>' + skin_return_data
-                    else:
-                        skin_return_data += '<option value="' + skin_data + '">' + skin_data + '</option>'
-        else:
-            skin_return_data = []
-            for skin_data in os.listdir(os.path.abspath('views')):
-                if not skin_data in system_file:
-                    if data[0][0] == skin_data:
-                        skin_return_data = [skin_data] + skin_return_data
-                    else:
-                        skin_return_data += [skin_data]
+                if default == 1:
+                    data = [['default']]
+                else:
+                    data = [['marisa']]
     else:
-        if set_n == 0:
-            for skin_data in os.listdir(os.path.abspath('views')):
-                if not skin_data in system_file:
-                    if data == skin_data:
-                        skin_return_data = '<option value="' + skin_data + '">' + skin_data + '</option>' + skin_return_data
-                    else:
-                        skin_return_data += '<option value="' + skin_data + '">' + skin_data + '</option>'
-        else:
-            skin_return_data = []
-            for skin_data in os.listdir(os.path.abspath('views')):
-                if not skin_data in system_file:
-                    if data == skin_data:
-                        skin_return_data = [skin_data] + skin_return_data
-                    else:
-                        skin_return_data += [skin_data]
+        data = [[data]]
+
+    for skin_data in skin_list_get:
+        if not skin_data in system_file:
+            if data[0][0] == skin_data:
+                if set_n == 0:
+                    skin_return_data = '<option value="' + skin_data + '">' + skin_data + '</option>' + skin_return_data
+                else:
+                    skin_return_data = [skin_data] + skin_return_data
+            else:
+                if set_n == 0:
+                    skin_return_data += '<option value="' + skin_data + '">' + skin_data + '</option>'
+                else:
+                    skin_return_data += [skin_data]                    
 
     return skin_return_data
 
@@ -1310,10 +1262,6 @@ def re_error(data):
             data = load_lang('copyright_disagreed')
         elif num == 30:
             data = load_lang('ie_wrong_callback')
-        elif num == 31:
-            data = load_lang('oauth_disabled')
-        elif num == 32:
-            data = load_lang('oauth_setting_not_found')
         elif num == 33:
             data = load_lang('restart_fail_error')
         elif num == 34:

+ 12 - 30
route/user_setting.py

@@ -3,7 +3,7 @@ from .tool.func import *
 def user_setting_2(conn, server_init):
     curs = conn.cursor()
 
-    support_language = server_init.server_set_var['language']['list']
+    support_language = ['default'] + server_init.server_set_var['language']['list']
     ip = ip_check()
 
     if ban_check() == 1:
@@ -32,16 +32,13 @@ def user_setting_2(conn, server_init):
             else:
                 email = '-'
 
-            div2 = load_skin()
+            div2 = load_skin('', 0, 1)
             div3 = ''
 
-            curs.execute(db_change('select data from user_set where name = "lang" and id = ?'), [flask.session['id']])
+            curs.execute(db_change('select data from user_set where name = "lang" and id = ?'), [ip_check()])
             data = curs.fetchall()
             if not data:
-                curs.execute(db_change('select data from other where name = "language"'))
-                data = curs.fetchall()
-                if not data:
-                    data = [['en-US']]
+                data = [['default']]
 
             for lang_data in support_language:
                 if data and data[0][0] == lang_data:
@@ -49,41 +46,26 @@ def user_setting_2(conn, server_init):
                 else:
                     div3 += '<option value="' + lang_data + '">' + lang_data + '</option>'
 
-            oauth_provider = load_oauth('_README')['support']
-            oauth_content = '<ul>'
-            for i in range(len(oauth_provider)):
-                curs.execute(db_change('select name, picture from oauth_conn where wiki_id = ? and provider = ?'), [flask.session['id'], oauth_provider[i]])
-                oauth_data = curs.fetchall()
-                if len(oauth_data) == 1:
-                    oauth_content += '<li>{}</li>'.format(oauth_provider[i].capitalize() + ' : <img src="{}" width="17px" height="17px"> {}'.format(oauth_data[0][1], oauth_data[0][0]))
-                else:
-                    oauth_content += '<li>{}</li>'.format(oauth_provider[i].capitalize() + ' <a href="/oauth/{}/init">({})</a>'.format(oauth_provider[i], load_lang('connect')))
-
-            oauth_content += '</ul>'
-
-            http_warring = '<hr class=\"main_hr\"><span>' + load_lang('http_warring') + '</span>'
+            http_warring = '<hr class="main_hr"><span>' + load_lang('http_warring') + '</span>'
 
             return easy_minify(flask.render_template(skin_check(),
                 imp = [load_lang('user_setting'), wiki_set(), custom(), other2([0, 0])],
                 data = '''
                     <form method="post">
                         <span>''' + load_lang('id') + ''' : ''' + ip + '''</span>
-                        <hr class=\"main_hr\">
+                        <hr class="main_hr">
                         <a href="/pw_change">(''' + load_lang('password_change') + ''')</a>
-                        <hr class=\"main_hr\">
+                        <hr class="main_hr">
                         <span>''' + load_lang('email') + ''' : ''' + email + '''</span> <a href="/email_change">(''' + load_lang('email_change') + ''')</a>
-                        <hr class=\"main_hr\">
+                        <hr class="main_hr">
                         <span>''' + load_lang('skin') + '''</span>
-                        <hr class=\"main_hr\">
+                        <hr class="main_hr">
                         <select name="skin">''' + div2 + '''</select>
-                        <hr class=\"main_hr\">
+                        <hr class="main_hr">
                         <span>''' + load_lang('language') + '''</span>
-                        <hr class=\"main_hr\">
+                        <hr class="main_hr">
                         <select name="lang">''' + div3 + '''</select>
-                        <hr class=\"main_hr\">
-                        <span>''' + load_lang('oauth_connection') + '''</span>
-                        ''' + oauth_content + '''
-                        <hr class=\"main_hr\">
+                        <hr class="main_hr">
                         <button type="submit">''' + load_lang('save') + '''</button>
                         ''' + http_warring + '''
                     </form>

+ 2 - 2
version.json

@@ -1,10 +1,10 @@
 {
     "master" : {
-        "r_ver" : "v3.2.0-master-06",
+        "r_ver" : "v3.2.0-master-07",
         "c_ver" : "3200500",
         "s_ver" : "9"
     }, "stable" : {
-        "r_ver" : "v3.2.0-stable-01",
+        "r_ver" : "v3.2.0-stable-02",
         "c_ver" : "3200100",
         "s_ver" : "9"
     }