2du 4 年之前
父节点
当前提交
4458a26151

+ 39 - 88
app.py

@@ -145,32 +145,7 @@ print('----')
 
 # Init-DB_Data
 server_set = {}
-server_set_var = {
-    'host' : {
-        'display' : 'Host',
-        'require' : 'conv',
-        'default' : '0.0.0.0'
-    }, 'port' : {
-        'display' : 'Port',
-        'require' : 'conv',
-        'default' : '3000'
-    }, 'language' : {
-        'display' : 'Language',
-        'require' : 'select',
-        'default' : 'ko-KR',
-        'list' : ['ko-KR', 'en-US']
-    }, 'markup' : {
-        'display' : 'Markup',
-        'require' : 'select',
-        'default' : 'namumark',
-        'list' : ['namumark', 'markdown', 'custom', 'raw']
-    }, 'encode' : {
-        'display' : 'Encryption method',
-        'require' : 'select',
-        'default' : 'sha3',
-        'list' : ['sha3', 'sha256']
-    }
-}
+server_set_var = get_init_set_list()
 server_set_env = {
     'host' : os.getenv('NAMU_HOST'),
     'port' : os.getenv('NAMU_PORT'),
@@ -387,6 +362,10 @@ def give_admin_groups(name = None):
 def give_delete_admin_group(name = None):
     return give_delete_admin_group_2(load_db.db_get(), name)
 
+@app.route('/app_submit', methods = ['POST', 'GET'])
+def recent_app_submit():
+    return recent_app_submit_2(load_db.db_get())
+
 # /auth/history
 # ongoing 반영 필요
 @app.route('/block_log')
@@ -441,25 +420,6 @@ def recent_record_reset(name = 'Test'):
 def recent_record_topic(name = 'Test'):
     return recent_record_topic_2(load_db.db_get(), name)
 
-# 거처를 고심중
-@app.route('/app_submit', methods = ['POST', 'GET'])
-def recent_app_submit():
-    return recent_app_submit_2(load_db.db_get())
-
-# Func-search
-@app.route('/search', methods=['POST'])
-def search():
-    return search_2(load_db.db_get())
-
-@app.route('/goto', methods=['POST'])
-@app.route('/goto/<everything:name>', methods=['POST'])
-def search_goto(name = 'test'):
-    return search_goto_2(load_db.db_get(), name)
-
-@app.route('/search/<everything:name>')
-def search_deep(name = 'test'):
-    return search_deep_2(load_db.db_get(), name)
-
 # Func-view
 app.route('/xref/<everything:name>')(view_xref)
 app.route('/xref_this/<everything:name>', defaults = { 'xref_type' : 2 })(view_xref)
@@ -477,11 +437,15 @@ app.route('/w_rev/<int(signed = True):doc_rev>/<everything:name>')(view_read)
 app.route('/w_from/<everything:name>')(view_read)
 app.route('/w/<everything:name>')(view_read)
 
+app.route('/random')(main_func_random)
+
 # Func-edit
 app.route('/edit/<everything:name>', methods = ['POST', 'GET'])(edit)
 app.route('/edit/<everything:name>/doc_from/<everything:name_load>', methods = ['POST', 'GET'])(edit)
 app.route('/edit/<everything:name>/doc_section/<int:section>', methods = ['POST', 'GET'])(edit)
 
+app.route('/upload', methods = ['POST', 'GET'])(main_func_upload)
+
 # 개편 예정
 app.route('/xref_reset/<everything:name>')(edit_backlink_reset)
 
@@ -514,27 +478,10 @@ app.route('/thread/<int:topic_num>/comment/<int:num>/raw')(view_raw_2)
 app.route('/thread/<int:topic_num>/comment/<int:num>/delete', methods = ['POST', 'GET'])(topic_comment_delete)
 
 # Func-user
-@app.route('/change', methods = ['POST', 'GET'])
-def user_setting():
-    return user_setting_2(load_db.db_get(), server_set_var)
-
-@app.route('/change/email', methods = ['POST', 'GET'])
-def user_setting_email():
-    return user_setting_email_2(load_db.db_get())
-
-app.route('/change/email/delete')(user_setting_email_delete)
-
-@app.route('/change/email/check', methods = ['POST', 'GET'])
-def user_setting_email_check():
-    return user_setting_email_check_2(load_db.db_get())
-
+app.route('/change', methods = ['POST', 'GET'])(user_setting)
 app.route('/change/key')(user_setting_key)
 app.route('/change/key/delete')(user_setting_key_delete)
-
-@app.route('/change/pw', methods = ['POST', 'GET'])
-def user_setting_pw_change():
-    return user_setting_pw_change_2(load_db.db_get())
-
+app.route('/change/pw', methods = ['POST', 'GET'])(user_setting_pw)
 app.route('/change/head', methods=['GET', 'POST'])(user_setting_head)
 
 app.route('/user')(user_info)
@@ -542,29 +489,34 @@ app.route('/user/<name>')(user_info)
 
 app.route('/challenge')(user_challenge)
 
-@app.route('/count')
-@app.route('/count/<name>')
-def user_count_edit(name = None):
-    return user_count_edit_2(load_db.db_get(), name)
-    
+app.route('/count')(user_count)
+app.route('/count/<name>')(user_count)
+
 app.route('/alarm')(user_alarm)
-app.route('/alarm/delete')(user_alarm_del)
-    
-@app.route('/watch_list')
-def user_watch_list():
-    return user_watch_list_2(load_db.db_get(), 'watch_list')
+app.route('/alarm/delete')(user_alarm_delete)
+
+app.route('/watch_list', defaults = { 'tool' : 'watch_list' })(user_watch_list)
+app.route('/watch_list/<everything:name>', defaults = { 'tool' : 'watch_list' })(user_watch_list_name)
+
+app.route('/star_doc', defaults = { 'tool' : 'star_doc' })(user_watch_list)
+app.route('/star_doc/<everything:name>', defaults = { 'tool' : 'star_doc' })(user_watch_list_name)
+
+# 하위 호환용 S
+app.route('/skin_set')(main_func_skin_set)
+app.route('/main_skin_set')(main_func_skin_set)
+# 하위 호환용 E
 
-@app.route('/watch_list/<everything:name>')
-def user_watch_list_name(name = 'Test'):
-    return user_watch_list_name_2(load_db.db_get(), 'watch_list', name)
+# 개편 보류중 S
+@app.route('/change/email', methods = ['POST', 'GET'])
+def user_setting_email():
+    return user_setting_email_2(load_db.db_get())
 
-@app.route('/star_doc')
-def user_star_doc():
-    return user_watch_list_2(load_db.db_get(), 'star_doc')
+app.route('/change/email/delete')(user_setting_email_delete)
 
-@app.route('/star_doc/<everything:name>')
-def user_star_doc_name(name = 'Test'):
-    return user_watch_list_name_2(load_db.db_get(), 'star_doc', name)
+@app.route('/change/email/check', methods = ['POST', 'GET'])
+def user_setting_email_check():
+    return user_setting_email_check_2(load_db.db_get())
+# 개편 보류중 E
 
 # Func-login
 # 개편 예정
@@ -656,11 +608,10 @@ app.route('/manager', methods = ['POST', 'GET'])(main_tool_admin)
 app.route('/manager/<int:num>', methods = ['POST', 'GET'])(main_tool_admin)
 app.route('/manager/<int:num>/<add_2>', methods = ['POST', 'GET'])(main_tool_admin)
 
-app.route('/random')(main_func_random)
-app.route('/upload', methods = ['POST', 'GET'])(main_func_upload)
-app.route('/skin_set')(main_func_skin_set)
-app.route('/main_skin_set')(main_func_skin_set)
-app.route('/easter_egg.xml')(main_func_easter_egg)
+app.route('/search', methods=['POST'])(main_search)
+app.route('/search/<everything:name>')(main_search_deep)
+app.route('/goto', methods=['POST'])(main_search_goto)
+app.route('/goto/<everything:name>', methods=['POST'])(main_search_goto)
 
 app.route('/setting')(main_func_setting)
 app.route('/setting/main', defaults = { 'db_set' : data_db_set['type'] }, methods = ['POST', 'GET'])(main_func_setting_main)

+ 0 - 8
route/main_func_easter_egg.py

@@ -1,8 +0,0 @@
-from .tool.func import *
-
-def main_func_easter_egg(conn):
-    return easy_minify(flask.render_template(skin_check(),
-        imp = ['easter_egg.html', wiki_set(), wiki_custom(), wiki_css([0, 0])],
-        data = open('./views/main_css/file/easter_egg.html', encoding='utf8').read(),
-        menu = 0
-    ))

+ 1 - 1
route/main_func_setting_main.py

@@ -23,7 +23,7 @@ def main_func_setting_main(db_set):
             19 : ['slow_edit', '0'],
             20 : ['requires_approval', ''],
             21 : ['backup_where', ''],
-            22 : ['domain', flask.request.host_url],
+            22 : ['domain', flask.request.host],
             23 : ['ua_get', ''],
             24 : ['enable_comment', ''],
             25 : ['enable_challenge', ''],

+ 1 - 3
route/search.py → route/main_search.py

@@ -1,6 +1,4 @@
 from .tool.func import *
 
-def search_2(conn):
-    curs = conn.cursor()
-
+def main_search():
     return redirect('/search/' + url_pas(flask.request.form.get('search', 'test')))

+ 66 - 0
route/main_search_deep.py

@@ -0,0 +1,66 @@
+from .tool.func import *
+
+def main_search_deep(name = 'Test'):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        if name == '':
+            return redirect()
+
+        num = int(number_check(flask.request.args.get('num', '1')))
+        sql_num = (num * 50 - 50) if num * 50 > 0 else 0
+
+        div = '<ul class="inside_ul">'
+
+        div_plus = ''
+        test = ''
+
+        curs.execute(db_change("select title from data where title = ?"), [name])
+        link_id = '' if curs.fetchall() else 'id="not_thing"'
+
+        div = '''
+            <ul class="inside_ul">
+                <li>
+                    <a ''' + link_id + ' href="/w/' + url_pas(name) + '">' + html.escape(name) + '''</a>
+                </li>
+            </ul>
+            <hr class="main_hr">
+            <ul class="inside_ul">
+        '''
+
+        curs.execute(db_change('select data from other where name = "count_all_title"'))
+        if int(curs.fetchall()[0][0]) < 30000:
+            curs.execute(db_change("" + \
+                "select distinct title, case " + \
+                "when title like ? then 'title' else 'data' end from data " + \
+                "where (title like ? or data like ?) order by case " + \
+                "when title like ? then 1 else 2 end limit ?, 50"),
+                ['%' + name + '%', '%' + name + '%', '%' + name + '%', '%' + name + '%', sql_num]
+            )
+            all_list = curs.fetchall()
+            if all_list:
+                test = all_list[0][1]
+
+                for data in all_list:
+                    if data[1] != test:
+                        div_plus += '</ul><hr class="main_hr"><ul class="inside_ul">'
+
+                        test = data[1]
+
+                    div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + html.escape(data[0]) + '</a> (' + data[1] + ')</li>'
+        else:
+            curs.execute(db_change("select title from data where title like ? order by title limit ?, 50"),
+                ['%' + name + '%', sql_num]
+            )
+            all_list = curs.fetchall()
+            for data in all_list:
+                div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> (title)</li>'
+
+        div += div_plus + '</ul>'
+        div += next_fix('/search/' + url_pas(name) + '?num=', num, all_list)
+
+        return easy_minify(flask.render_template(skin_check(),
+            imp = [name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('search') + ')', 0])],
+            data = div,
+            menu = 0
+        ))

+ 17 - 0
route/main_search_goto.py

@@ -0,0 +1,17 @@
+from .tool.func import *
+
+def main_search_goto(name = 'Test'):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        if flask.request.form.get('search', None):
+            data = flask.request.form.get('search', 'Test')
+        else:
+            data = name
+
+        curs.execute(db_change("select title from data where title = ?"), [data])
+        t_data = curs.fetchall()
+        if t_data:
+            return redirect('/w/' + url_pas(data))
+        else:
+            return redirect('/search/' + url_pas(data))

+ 0 - 65
route/search_deep.py

@@ -1,65 +0,0 @@
-from .tool.func import *
-
-def search_deep_2(conn, name):
-    curs = conn.cursor()
-
-    if name == '':
-        return redirect()
-
-    num = int(number_check(flask.request.args.get('num', '1')))
-    sql_num = (num * 50 - 50) if num * 50 > 0 else 0
-
-    div = '<ul class="inside_ul">'
-
-    div_plus = ''
-    test = ''
-
-    curs.execute(db_change("select title from data where title = ?"), [name])
-    link_id = '' if curs.fetchall() else 'id="not_thing"'
-
-    div = '''
-        <ul class="inside_ul">
-            <li>
-                <a ''' + link_id + ' href="/w/' + url_pas(name) + '">' + html.escape(name) + '''</a>
-            </li>
-        </ul>
-        <hr class=\"main_hr\">
-        <ul class="inside_ul">
-    '''
-
-    curs.execute(db_change('select data from other where name = "count_all_title"'))
-    if int(curs.fetchall()[0][0]) < 30000:
-        curs.execute(db_change("" + \
-            "select distinct title, case " + \
-            "when title like ? then 'title' else 'data' end from data " + \
-            "where (title like ? or data like ?) order by case " + \
-            "when title like ? then 1 else 2 end limit ?, 50"),
-            ['%' + name + '%', '%' + name + '%', '%' + name + '%', '%' + name + '%', sql_num]
-        )
-        all_list = curs.fetchall()
-        if all_list:
-            test = all_list[0][1]
-
-            for data in all_list:
-                if data[1] != test:
-                    div_plus += '</ul><hr class=\"main_hr\"><ul class="inside_ul">'
-
-                    test = data[1]
-
-                div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + html.escape(data[0]) + '</a> (' + data[1] + ')</li>'
-    else:
-        curs.execute(db_change("select title from data where title like ? order by title limit ?, 50"),
-            ['%' + name + '%', sql_num]
-        )
-        all_list = curs.fetchall()
-        for data in all_list:
-            div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> (title)</li>'
-
-    div += div_plus + '</ul>'
-    div += next_fix('/search/' + url_pas(name) + '?num=', num, all_list)
-
-    return easy_minify(flask.render_template(skin_check(),
-        imp = [name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('search') + ')', 0])],
-        data = div,
-        menu = 0
-    ))

+ 0 - 16
route/search_goto.py

@@ -1,16 +0,0 @@
-from .tool.func import *
-
-def search_goto_2(conn, name):
-    curs = conn.cursor()
-
-    if flask.request.form.get('search', None):
-        data = flask.request.form.get('search', 'test')
-    else:
-        data = name
-
-    curs.execute(db_change("select title from data where title = ?"), [data])
-    t_data = curs.fetchall()
-    if t_data:
-        return redirect('/w/' + url_pas(data))
-    else:
-        return redirect('/search/' + url_pas(data))

+ 30 - 0
route/tool/func.py

@@ -106,6 +106,36 @@ def do_db_set(db_set):
     global_db_set = db_set
     
 # Func-init
+def get_init_set_list(need = 'all'):
+    init_set_list = {
+        'host' : {
+            'display' : 'Host',
+            'require' : 'conv',
+            'default' : '0.0.0.0'
+        }, 'port' : {
+            'display' : 'Port',
+            'require' : 'conv',
+            'default' : '3000'
+        }, 'language' : {
+            'display' : 'Language',
+            'require' : 'select',
+            'default' : 'ko-KR',
+            'list' : ['ko-KR', 'en-US']
+        }, 'markup' : {
+            'display' : 'Markup',
+            'require' : 'select',
+            'default' : 'namumark',
+            'list' : ['namumark', 'markdown', 'custom', 'raw']
+        }, 'encode' : {
+            'display' : 'Encryption method',
+            'require' : 'select',
+            'default' : 'sha3',
+            'list' : ['sha3', 'sha256']
+        }
+    }
+    
+    return init_set_list
+
 class get_db_connect_old:
     def __init__(self, db_set):
         self.db_set = db_set

+ 1 - 1
route/user_alarm_del.py → route/user_alarm_delete.py

@@ -1,6 +1,6 @@
 from .tool.func import *
 
-def user_alarm_del():
+def user_alarm_delete():
     with get_db_connect() as conn:
         curs = conn.cursor()
     

+ 35 - 0
route/user_count.py

@@ -0,0 +1,35 @@
+from .tool.func import *
+
+def user_count(name = None):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        if name == None:
+            that = ip_check()
+        else:
+            that = name
+
+        curs.execute(db_change("select count(*) from history where ip = ?"), [that])
+        count = curs.fetchall()
+        if count:
+            data = count[0][0]
+        else:
+            data = 0
+
+        curs.execute(db_change("select count(*) from topic where ip = ?"), [that])
+        count = curs.fetchall()
+        if count:
+            t_data = count[0][0]
+        else:
+            t_data = 0
+
+        return easy_minify(flask.render_template(skin_check(),
+            imp = [load_lang('count'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+            data = '''
+                <ul class="inside_ul">
+                    <li><a href="/record/''' + url_pas(that) + '''">''' + load_lang('edit_record') + '''</a> : ''' + str(data) + '''</li>
+                    <li><a href="/record/topic/''' + url_pas(that) + '''">''' + load_lang('discussion_record') + '''</a> : ''' + str(t_data) + '''</a></li>
+                </ul>
+            ''',
+            menu = [['user', load_lang('return')]]
+        ))

+ 0 - 34
route/user_count_edit.py

@@ -1,34 +0,0 @@
-from .tool.func import *
-
-def user_count_edit_2(conn, name):
-    curs = conn.cursor()
-
-    if name == None:
-        that = ip_check()
-    else:
-        that = name
-
-    curs.execute(db_change("select count(*) from history where ip = ?"), [that])
-    count = curs.fetchall()
-    if count:
-        data = count[0][0]
-    else:
-        data = 0
-
-    curs.execute(db_change("select count(*) from topic where ip = ?"), [that])
-    count = curs.fetchall()
-    if count:
-        t_data = count[0][0]
-    else:
-        t_data = 0
-
-    return easy_minify(flask.render_template(skin_check(),
-        imp = [load_lang('count'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-        data = '''
-            <ul class="inside_ul">
-                <li><a href="/record/''' + url_pas(that) + '''">''' + load_lang('edit_record') + '''</a> : ''' + str(data) + '''</li>
-                <li><a href="/record/topic/''' + url_pas(that) + '''">''' + load_lang('discussion_record') + '''</a> : ''' + str(t_data) + '''</a></li>
-            </ul>
-        ''',
-        menu = [['user', load_lang('return')]]
-    ))

+ 177 - 176
route/user_setting.py

@@ -1,184 +1,185 @@
 from .tool.func import *
 
-def user_setting_2(conn, server_set_var):
-    curs = conn.cursor()
-
-    support_language = ['default'] + server_set_var['language']['list']
-    ip = ip_check()
-
-    if ban_check() == 1:
-        return re_error('/ban')
-
-    if ip_or_user(ip) == 0:
-        if flask.request.method == 'POST':
-            auto_list = [
-                ['skin', flask.request.form.get('skin', '')], 
-                ['lang', flask.request.form.get('lang', '')],
-                ['user_title', flask.request.form.get('user_title', '')]
-            ]
-                
-            twofa_turn_on = 0 
-            twofa_on = flask.request.form.get('2fa', '')
-            if twofa_on != '':
-                twofa_turn_on = 1
-                twofa_pw = flask.request.form.get('2fa_pw', '')
-                if twofa_pw != '':
-                    twofa_pw = pw_encode(twofa_pw)
-                    curs.execute(db_change("select data from user_set where id = ? and name = 'encode'"), [ip])
-                    twofa_encode = curs.fetchall()[0][0]
-                    auto_list += [['2fa', 'on'], ['2fa_pw', twofa_pw], ['2fa_pw_encode', twofa_encode]]
+def user_setting():
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        support_language = ['default'] + get_init_set_list()['language']['list']
+        ip = ip_check()
+
+        if ban_check() == 1:
+            return re_error('/ban')
+
+        if ip_or_user(ip) == 0:
+            if flask.request.method == 'POST':
+                auto_list = [
+                    ['skin', flask.request.form.get('skin', '')], 
+                    ['lang', flask.request.form.get('lang', '')],
+                    ['user_title', flask.request.form.get('user_title', '')]
+                ]
+
+                twofa_turn_on = 0 
+                twofa_on = flask.request.form.get('2fa', '')
+                if twofa_on != '':
+                    twofa_turn_on = 1
+                    twofa_pw = flask.request.form.get('2fa_pw', '')
+                    if twofa_pw != '':
+                        twofa_pw = pw_encode(twofa_pw)
+                        curs.execute(db_change("select data from user_set where id = ? and name = 'encode'"), [ip])
+                        twofa_encode = curs.fetchall()[0][0]
+                        auto_list += [['2fa', 'on'], ['2fa_pw', twofa_pw], ['2fa_pw_encode', twofa_encode]]
+                    else:
+                        auto_list += [['2fa', 'on']]
                 else:
-                    auto_list += [['2fa', 'on']]
+                    auto_list += [['2fa', '']]
+
+                for auto_data in auto_list:
+                    curs.execute(db_change('select data from user_set where name = ? and id = ?'), [auto_data[0], ip])
+                    if curs.fetchall():
+                        curs.execute(db_change("update user_set set data = ? where name = ? and id = ?"), [auto_data[1], auto_data[0], ip])
+                    else:
+                        curs.execute(db_change("insert into user_set (name, id, data) values (?, ?, ?)"), [auto_data[0], ip, auto_data[1]])
+
+                conn.commit()
+
+                return redirect('/change')
             else:
-                auto_list += [['2fa', '']]
-                
-            for auto_data in auto_list:
-                curs.execute(db_change('select data from user_set where name = ? and id = ?'), [auto_data[0], ip])
-                if curs.fetchall():
-                    curs.execute(db_change("update user_set set data = ? where name = ? and id = ?"), [auto_data[1], auto_data[0], ip])
-                else:
-                    curs.execute(db_change("insert into user_set (name, id, data) values (?, ?, ?)"), [auto_data[0], ip, auto_data[1]])
+                curs.execute(db_change('select data from user_set where name = "email" and id = ?'), [ip])
+                data = curs.fetchall()
+                email = data[0][0] if data and data[0][0] != '' else '-'
 
-            conn.commit()
+                curs.execute(db_change('select data from user_set where name = "random_key" and id = ?'), [ip])
+                data = curs.fetchall()
+                ramdom_key = data[0][0] if data and data[0][0] != '' else '-'
 
-            return redirect('/change')
-        else:
-            curs.execute(db_change('select data from user_set where name = "email" and id = ?'), [ip])
-            data = curs.fetchall()
-            email = data[0][0] if data and data[0][0] != '' else '-'
-            
-            curs.execute(db_change('select data from user_set where name = "random_key" and id = ?'), [ip])
-            data = curs.fetchall()
-            ramdom_key = data[0][0] if data and data[0][0] != '' else '-'
-            
-            curs.execute(db_change('select data from user_set where name = "skin" and id = ?'), [ip])
-            data = curs.fetchall()
-            div2 = load_skin(data[0][0] if data else '', 0, 1)
-
-            curs.execute(db_change('select data from user_set where name = "lang" and id = ?'), [ip])
-            data = curs.fetchall()
-            data = [['default']] if not data else data
-            div3 = ''
-            for lang_data in support_language:
-                see_data = lang_data if lang_data != 'default' else load_lang('default')
-                
-                if data and data[0][0] == lang_data:
-                    div3 = '<option value="' + lang_data + '">' + see_data + '</option>' + div3
-                else:
-                    div3 += '<option value="' + lang_data + '">' + see_data + '</option>'
-            
-            # 여기 잘못 짬
-            curs.execute(db_change('select data from user_set where name = "user_title" and id = ?'), [ip])
-            data = curs.fetchall()
-            data = [['']] if not data else data
-            user_title_list = get_user_title_list()
-            div4 = ''
-            for user_title in user_title_list:                
-                if data and data[0][0] == user_title:
-                    div4 = '<option value="' + user_title + '">' + user_title_list[user_title] + '</option>' + div4
-                else:
-                    div4 += '<option value="' + user_title + '">' + user_title_list[user_title] + '</option>'
-
-            curs.execute(db_change('select data from user_set where name = "2fa" and id = ?'), [ip])
-            fa_data = curs.fetchall()
-            fa_data = fa_data[0][0] if fa_data and fa_data[0][0] != '' else ''
-            fa_data_select = ''
-            fa_data_sp_list = [['off', ''], ['pw', 'on']]
-            for fa_data_get in fa_data_sp_list:
-                fa_data_selected = ''
-                if fa_data == fa_data_get[1]:
-                    fa_data_selected = 'selected'
-                
-                fa_data_select += '<option ' + fa_data_selected + ' value="' + fa_data_get[1] + '">' + fa_data_get[0] + '</option>'
-
-            curs.execute(db_change('select data from user_set where name = "2fa_pw" and id = ?'), [ip])
-            fa_data_pw = curs.fetchall()
-            fa_data_pw = load_lang('2fa_password_change') if fa_data_pw else load_lang('2fa_password')
-
-            return easy_minify(flask.render_template(skin_check(),
-                imp = [load_lang('user_setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-                data = '''
-                    <form method="post">
-                        <div id="get_user_info"></div>
-                        <script>load_user_info("''' + ip + '''");</script>
-                        <hr class="main_hr">
-                        <a href="/change/pw">(''' + load_lang('password_change') + ''')</a>
-                        <hr class="main_hr">
-                        <span>''' + load_lang('email') + ''' : ''' + email + '''</span> <a href="/change/email">(''' + load_lang('email_change') + ''')</a> <a href="/change/email/delete">(''' + load_lang('email_delete') + ''')</a>
-                        <hr class="main_hr">
-                        <span>''' + load_lang('password_instead_key') + ''' : ''' + ramdom_key + ''' <a href="/change/key">(''' + load_lang('key_change') + ''')</a> <a href="/change/key/delete">(''' + load_lang('key_delete') + ''')</a></span>
-                        <h2>''' + load_lang('main') + '''</h2>
-                        <span>''' + load_lang('skin') + '''</span>
-                        <hr class="main_hr">
-                        <select name="skin">''' + div2 + '''</select>
-                        <hr class="main_hr">
-                        <span>''' + load_lang('language') + '''</span>
-                        <hr class="main_hr">
-                        <select name="lang">''' + div3 + '''</select>
-                        <hr class="main_hr">
-                        <span>''' + load_lang('user_title') + '''</span>
-                        <hr class="main_hr">
-                        <select name="user_title">''' + div4 + '''</select>
-                        <h2>''' + load_lang('2fa') + '''</h2>
-                        <select name="2fa"
-                                id="twofa_check_input"
-                                onchange="do_twofa_check(0);">''' + fa_data_select + '''</select>
-                        <div id="fa_plus_content">
+                curs.execute(db_change('select data from user_set where name = "skin" and id = ?'), [ip])
+                data = curs.fetchall()
+                div2 = load_skin(data[0][0] if data else '', 0, 1)
+
+                curs.execute(db_change('select data from user_set where name = "lang" and id = ?'), [ip])
+                data = curs.fetchall()
+                data = [['default']] if not data else data
+                div3 = ''
+                for lang_data in support_language:
+                    see_data = lang_data if lang_data != 'default' else load_lang('default')
+
+                    if data and data[0][0] == lang_data:
+                        div3 = '<option value="' + lang_data + '">' + see_data + '</option>' + div3
+                    else:
+                        div3 += '<option value="' + lang_data + '">' + see_data + '</option>'
+
+                # 여기 잘못 짬
+                curs.execute(db_change('select data from user_set where name = "user_title" and id = ?'), [ip])
+                data = curs.fetchall()
+                data = [['']] if not data else data
+                user_title_list = get_user_title_list()
+                div4 = ''
+                for user_title in user_title_list:                
+                    if data and data[0][0] == user_title:
+                        div4 = '<option value="' + user_title + '">' + user_title_list[user_title] + '</option>' + div4
+                    else:
+                        div4 += '<option value="' + user_title + '">' + user_title_list[user_title] + '</option>'
+
+                curs.execute(db_change('select data from user_set where name = "2fa" and id = ?'), [ip])
+                fa_data = curs.fetchall()
+                fa_data = fa_data[0][0] if fa_data and fa_data[0][0] != '' else ''
+                fa_data_select = ''
+                fa_data_sp_list = [['off', ''], ['pw', 'on']]
+                for fa_data_get in fa_data_sp_list:
+                    fa_data_selected = ''
+                    if fa_data == fa_data_get[1]:
+                        fa_data_selected = 'selected'
+
+                    fa_data_select += '<option ' + fa_data_selected + ' value="' + fa_data_get[1] + '">' + fa_data_get[0] + '</option>'
+
+                curs.execute(db_change('select data from user_set where name = "2fa_pw" and id = ?'), [ip])
+                fa_data_pw = curs.fetchall()
+                fa_data_pw = load_lang('2fa_password_change') if fa_data_pw else load_lang('2fa_password')
+
+                return easy_minify(flask.render_template(skin_check(),
+                    imp = [load_lang('user_setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                    data = '''
+                        <form method="post">
+                            <div id="get_user_info"></div>
+                            <script>load_user_info("''' + ip + '''");</script>
+                            <hr class="main_hr">
+                            <a href="/change/pw">(''' + load_lang('password_change') + ''')</a>
                             <hr class="main_hr">
-                            <input type="password" name="2fa_pw" placeholder="''' + fa_data_pw + '''">
-                        </div>
-                        <hr class="main_hr">
-                        <button type="submit">''' + load_lang('save') + '''</button>
-                        ''' + http_warning() + '''
-                        <script>do_twofa_check(1);</script>
-                    </form>
-                ''',
-                menu = [['user', load_lang('return')]]
-            ))
-    else:
-        if flask.request.method == 'POST':
-            flask.session['skin'] = flask.request.form.get('skin', '')
-            flask.session['lang'] = flask.request.form.get('lang', '')
-            
-            return redirect('/change')
+                            <span>''' + load_lang('email') + ''' : ''' + email + '''</span> <a href="/change/email">(''' + load_lang('email_change') + ''')</a> <a href="/change/email/delete">(''' + load_lang('email_delete') + ''')</a>
+                            <hr class="main_hr">
+                            <span>''' + load_lang('password_instead_key') + ''' : ''' + ramdom_key + ''' <a href="/change/key">(''' + load_lang('key_change') + ''')</a> <a href="/change/key/delete">(''' + load_lang('key_delete') + ''')</a></span>
+                            <h2>''' + load_lang('main') + '''</h2>
+                            <span>''' + load_lang('skin') + '''</span>
+                            <hr class="main_hr">
+                            <select name="skin">''' + div2 + '''</select>
+                            <hr class="main_hr">
+                            <span>''' + load_lang('language') + '''</span>
+                            <hr class="main_hr">
+                            <select name="lang">''' + div3 + '''</select>
+                            <hr class="main_hr">
+                            <span>''' + load_lang('user_title') + '''</span>
+                            <hr class="main_hr">
+                            <select name="user_title">''' + div4 + '''</select>
+                            <h2>''' + load_lang('2fa') + '''</h2>
+                            <select name="2fa"
+                                    id="twofa_check_input"
+                                    onchange="do_twofa_check(0);">''' + fa_data_select + '''</select>
+                            <div id="fa_plus_content">
+                                <hr class="main_hr">
+                                <input type="password" name="2fa_pw" placeholder="''' + fa_data_pw + '''">
+                            </div>
+                            <hr class="main_hr">
+                            <button type="submit">''' + load_lang('save') + '''</button>
+                            ''' + http_warning() + '''
+                            <script>do_twofa_check(1);</script>
+                        </form>
+                    ''',
+                    menu = [['user', load_lang('return')]]
+                ))
         else:
-            div2 = load_skin(
-                ('' if not 'skin' in flask.session else flask.session['skin']), 
-                0, 
-                1
-            )
-
-            data = [['default']] if not 'lang' in flask.session else [[flask.session['lang']]]
-            div3 = ''
-            for lang_data in support_language:
-                see_data = lang_data if lang_data != 'default' else load_lang('default')
-                
-                if data and data[0][0] == lang_data:
-                    div3 = '<option value="' + lang_data + '">' + see_data + '</option>' + div3
-                else:
-                    div3 += '<option value="' + lang_data + '">' + see_data + '</option>'
-            
-            return easy_minify(flask.render_template(skin_check(),
-                imp = [load_lang('user_setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-                data = '''
-                    <form method="post">
-                        <div id="get_user_info"></div>
-                        <script>load_user_info("''' + ip + '''");</script>
-                        <hr class="main_hr">
-                        <h2>''' + load_lang('main') + '''</h2>
-                        <span>''' + load_lang('skin') + '''</span>
-                        <hr class="main_hr">
-                        <select name="skin">''' + div2 + '''</select>
-                        <hr class="main_hr">
-                        <span>''' + load_lang('language') + '''</span>
-                        <hr class="main_hr">
-                        <select name="lang">''' + div3 + '''</select>
-                        <hr class="main_hr">
-                        <button type="submit">''' + load_lang('save') + '''</button>
-                        ''' + http_warning() + '''
-                        <hr class="main_hr">
-                        <span>''' + load_lang('user_head_warning') + '''</span>
-                    </form>
-                ''',
-                menu = [['user', load_lang('return')]]
-            ))
+            if flask.request.method == 'POST':
+                flask.session['skin'] = flask.request.form.get('skin', '')
+                flask.session['lang'] = flask.request.form.get('lang', '')
+
+                return redirect('/change')
+            else:
+                div2 = load_skin(
+                    ('' if not 'skin' in flask.session else flask.session['skin']), 
+                    0, 
+                    1
+                )
+
+                data = [['default']] if not 'lang' in flask.session else [[flask.session['lang']]]
+                div3 = ''
+                for lang_data in support_language:
+                    see_data = lang_data if lang_data != 'default' else load_lang('default')
+
+                    if data and data[0][0] == lang_data:
+                        div3 = '<option value="' + lang_data + '">' + see_data + '</option>' + div3
+                    else:
+                        div3 += '<option value="' + lang_data + '">' + see_data + '</option>'
+
+                return easy_minify(flask.render_template(skin_check(),
+                    imp = [load_lang('user_setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                    data = '''
+                        <form method="post">
+                            <div id="get_user_info"></div>
+                            <script>load_user_info("''' + ip + '''");</script>
+                            <hr class="main_hr">
+                            <h2>''' + load_lang('main') + '''</h2>
+                            <span>''' + load_lang('skin') + '''</span>
+                            <hr class="main_hr">
+                            <select name="skin">''' + div2 + '''</select>
+                            <hr class="main_hr">
+                            <span>''' + load_lang('language') + '''</span>
+                            <hr class="main_hr">
+                            <select name="lang">''' + div3 + '''</select>
+                            <hr class="main_hr">
+                            <button type="submit">''' + load_lang('save') + '''</button>
+                            ''' + http_warning() + '''
+                            <hr class="main_hr">
+                            <span>''' + load_lang('user_head_warning') + '''</span>
+                        </form>
+                    ''',
+                    menu = [['user', load_lang('return')]]
+                ))

+ 67 - 0
route/user_setting_pw.py

@@ -0,0 +1,67 @@
+from .tool.func import *
+
+def user_setting_pw():
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        if ban_check() == 1:
+            return re_error('/ban')
+
+        ip = ip_check()
+        if ip_or_user(ip) != 0:
+            return redirect('/login')
+
+        if flask.request.method == 'POST':
+            now_pw = flask.request.form.get('pw4', None)
+            new_pw = flask.request.form.get('pw2', None)
+            re_pw = flask.request.form.get('pw3', None)
+            if now_pw and new_pw and re_pw:
+                if new_pw != re_pw:
+                    return re_error('/error/20')
+
+                curs.execute(db_change("" + \
+                    "select name, data from user_set " + \
+                    "where id = ? and (name = 'encode' or name = 'pw')" + \
+                ""), [
+                    flask.session['id']
+                ])
+                sql_data = curs.fetchall()
+                if not sql_data:
+                    return re_error('/error/2')
+                else:
+                    user = {}
+                    for i in sql_data:
+                        user[i[0]] = i[1]
+
+                if pw_check(
+                    now_pw,
+                    user['pw'], 
+                    user['encode'], 
+                    ip
+                ) != 1:
+                    return re_error('/error/10')
+
+                curs.execute(db_change(
+                    "update user_set set data = ? where id = ? and name = 'pw'"
+                ), [
+                    pw_encode(new_pw), 
+                    ip
+                ])
+
+            return redirect('/user')
+        else:
+            return easy_minify(flask.render_template(skin_check(),
+                imp = [load_lang('password_change'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                data = '''
+                    <form method="post">
+                        <input placeholder="''' + load_lang('now_password') + '''" name="pw4" type="password">
+                        <hr class="main_hr">
+                        <input placeholder="''' + load_lang('new_password') + '''" name="pw2" type="password">
+                        <hr class="main_hr">
+                        <input placeholder="''' + load_lang('password_confirm') + '''" name="pw3" type="password">
+                        <hr class="main_hr">
+                        <button type="submit">''' + load_lang('save') + '''</button>
+                    </form>
+                ''',
+                menu = [['change', load_lang('return')]]
+            ))

+ 0 - 66
route/user_setting_pw_change.py

@@ -1,66 +0,0 @@
-from .tool.func import *
-
-def user_setting_pw_change_2(conn):
-    curs = conn.cursor()
-
-    if ban_check() == 1:
-        return re_error('/ban')
-
-    ip = ip_check()
-    if ip_or_user(ip) != 0:
-        return redirect('/login')
-
-    if flask.request.method == 'POST':
-        now_pw = flask.request.form.get('pw4', None)
-        new_pw = flask.request.form.get('pw2', None)
-        re_pw = flask.request.form.get('pw3', None)
-        if now_pw and new_pw and re_pw:
-            if new_pw != re_pw:
-                return re_error('/error/20')
-
-            curs.execute(db_change("" + \
-                "select name, data from user_set " + \
-                "where id = ? and (name = 'encode' or name = 'pw')" + \
-            ""), [
-                flask.session['id']
-            ])
-            sql_data = curs.fetchall()
-            if not sql_data:
-                return re_error('/error/2')
-            else:
-                user = {}
-                for i in sql_data:
-                    user[i[0]] = i[1]
-
-            if pw_check(
-                now_pw,
-                user['pw'], 
-                user['encode'], 
-                ip
-            ) != 1:
-                return re_error('/error/10')
-
-            curs.execute(db_change(
-                "update user_set set data = ? where id = ? and name = 'pw'"
-            ), [
-                pw_encode(new_pw), 
-                ip
-            ])
-
-        return redirect('/user')
-    else:
-        return easy_minify(flask.render_template(skin_check(),
-            imp = [load_lang('password_change'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-            data = '''
-                <form method="post">
-                    <input placeholder="''' + load_lang('now_password') + '''" name="pw4" type="password">
-                    <hr class="main_hr">
-                    <input placeholder="''' + load_lang('new_password') + '''" name="pw2" type="password">
-                    <hr class="main_hr">
-                    <input placeholder="''' + load_lang('password_confirm') + '''" name="pw3" type="password">
-                    <hr class="main_hr">
-                    <button type="submit">''' + load_lang('save') + '''</button>
-                </form>
-            ''',
-            menu = [['change', load_lang('return')]]
-        ))

+ 49 - 48
route/user_watch_list.py

@@ -1,57 +1,58 @@
 from .tool.func import *
 
-def user_watch_list_2(conn, tool):
-    curs = conn.cursor()
+def user_watch_list(tool):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
 
-    if tool == 'watch_list':
-        div = load_lang("msg_whatchlist_lmt") + ' : 10 <hr class="main_hr">'
-    else:
-        div = ''
-
-    ip = ip_check()
-
-    if ip_or_user(ip) != 0:
-        return redirect('/login')
+        if tool == 'watch_list':
+            div = load_lang("msg_whatchlist_lmt") + ' : 10 <hr class="main_hr">'
+        else:
+            div = ''
 
-    if tool == 'watch_list':
-        curs.execute(db_change("select title from scan where type = '' and user = ?"), [ip])
+        ip = ip_check()
 
-        title_name = load_lang('watchlist')
-    else:
-        curs.execute(db_change("select title from scan where type = 'star' and user = ?"), [ip])
+        if ip_or_user(ip) != 0:
+            return redirect('/login')
 
-        title_name = load_lang('star_doc')
+        if tool == 'watch_list':
+            curs.execute(db_change("select title from scan where type = '' and user = ?"), [ip])
 
-    data = curs.fetchall()
-    for data_list in data:
-        if tool == 'star_doc':
-            curs.execute(db_change("select date from history where title = ? order by id + 0 desc limit 1"), [data_list[0]])
-            get_data = curs.fetchall()
-            if get_data:
-                plus = '(' + get_data[0][0] + ') '
+            title_name = load_lang('watchlist')
+        else:
+            curs.execute(db_change("select title from scan where type = 'star' and user = ?"), [ip])
+
+            title_name = load_lang('star_doc')
+
+        data = curs.fetchall()
+        for data_list in data:
+            if tool == 'star_doc':
+                curs.execute(db_change("select date from history where title = ? order by id + 0 desc limit 1"), [data_list[0]])
+                get_data = curs.fetchall()
+                if get_data:
+                    plus = '(' + get_data[0][0] + ') '
+                else:
+                    plus = ''
             else:
                 plus = ''
-        else:
-            plus = ''
-
-        div += '' + \
-            '<li>' + \
-                '<a href="/w/' + url_pas(data_list[0]) + '">' + html.escape(data_list[0]) + '</a> ' + \
-                plus + \
-                '<a href="/' + ('star_doc' if tool == 'star_doc' else 'watch_list') + '/' + url_pas(data_list[0]) + '">(' + load_lang('delete') + ')</a>' + \
-            '</li>' + \
-        ''
-
-    if data:
-        div = '' + \
-            '<ul class="inside_ul">' + div + '</ul>' + \
-            '<hr class="main_hr">' + \
-        ''
-
-    div += '<a href="/manager/' + ('13' if tool == 'watch_list' else '16') + '">(' + load_lang('add') + ')</a>'
-
-    return easy_minify(flask.render_template(skin_check(),
-        imp = [title_name, wiki_set(), wiki_custom(), wiki_css([0, 0])],
-        data = div,
-        menu = [['user', load_lang('return')]]
-    ))
+
+            div += '' + \
+                '<li>' + \
+                    '<a href="/w/' + url_pas(data_list[0]) + '">' + html.escape(data_list[0]) + '</a> ' + \
+                    plus + \
+                    '<a href="/' + ('star_doc' if tool == 'star_doc' else 'watch_list') + '/' + url_pas(data_list[0]) + '">(' + load_lang('delete') + ')</a>' + \
+                '</li>' + \
+            ''
+
+        if data:
+            div = '' + \
+                '<ul class="inside_ul">' + div + '</ul>' + \
+                '<hr class="main_hr">' + \
+            ''
+
+        div += '<a href="/manager/' + ('13' if tool == 'watch_list' else '16') + '">(' + load_lang('add') + ')</a>'
+
+        return easy_minify(flask.render_template(skin_check(),
+            imp = [title_name, wiki_set(), wiki_custom(), wiki_css([0, 0])],
+            data = div,
+            menu = [['user', load_lang('return')]]
+        ))

+ 24 - 25
route/user_watch_list_name.py

@@ -1,33 +1,32 @@
 from .tool.func import *
 
-def user_watch_list_name_2(conn, tool, name):
-    curs = conn.cursor()
-    
-    print(tool, name)
+def user_watch_list_name(tool, name = 'Test'):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
 
-    ip = ip_check()
-    if ip_or_user(ip) != 0:
-        return redirect('/login')
+        ip = ip_check()
+        if ip_or_user(ip) != 0:
+            return redirect('/login')
 
-    if tool == 'watch_list':
-        curs.execute(db_change("select count(*) from scan where user = ?"), [ip])
-        count = curs.fetchall()
-        if count and count[0][0] > 9:
-            return re_error('/error/28')
+        if tool == 'watch_list':
+            curs.execute(db_change("select count(*) from scan where user = ?"), [ip])
+            count = curs.fetchall()
+            if count and count[0][0] > 9:
+                return re_error('/error/28')
 
-        type_data = ''
-    else:
-        type_data = 'star'
+            type_data = ''
+        else:
+            type_data = 'star'
 
-    curs.execute(db_change("select title from scan where user = ? and title = ? and type = ?"), [ip, name, type_data])
-    if curs.fetchall():
-        curs.execute(db_change("delete from scan where user = ? and title = ? and type = ?"), [ip, name, type_data])
-    else:
-        curs.execute(db_change("insert into scan (user, title, type) values (?, ?, ?)"), [ip, name, type_data])
+        curs.execute(db_change("select title from scan where user = ? and title = ? and type = ?"), [ip, name, type_data])
+        if curs.fetchall():
+            curs.execute(db_change("delete from scan where user = ? and title = ? and type = ?"), [ip, name, type_data])
+        else:
+            curs.execute(db_change("insert into scan (user, title, type) values (?, ?, ?)"), [ip, name, type_data])
 
-    conn.commit()
+        conn.commit()
 
-    if tool == 'watch_list':
-        return redirect('/watch_list')
-    else:
-        return redirect('/star_doc')
+        if tool == 'watch_list':
+            return redirect('/watch_list')
+        else:
+            return redirect('/star_doc')

+ 0 - 9
views/main_css/js/route/main_skin_set.js

@@ -1,9 +0,0 @@
-"use strict";
-
-function opennamu_do_main_skin_set() {
-
-}
-
-function opennamu_route_main_skin_set() {
-    
-}