2du 3 rokov pred
rodič
commit
1ea9d36b4a

+ 13 - 12
route/api_func_sha224.py

@@ -1,17 +1,18 @@
 from .tool.func import *
 
 def api_func_sha224(data = 'Test'):
-    if flask.request.method == 'POST':
-        try:
-            title_list = json.loads(flask.request.form.get('title_list', ''))
-            title_list = list(set(title_list))
-        except:
-            title_list = []
+    with get_db_connect() as conn:
+        if flask.request.method == 'POST':
+            try:
+                title_list = json.loads(flask.request.form.get('title_list', ''))
+                title_list = list(set(title_list))
+            except:
+                title_list = []
 
-        data_list = {}
-        for i in title_list:
-            data_list[i] = sha224_replace(i)
+            data_list = {}
+            for i in title_list:
+                data_list[i] = sha224_replace(i)
 
-        return flask.jsonify(data_list)
-    else:
-        return flask.jsonify({ "data" : sha224_replace(data) })
+            return flask.jsonify(data_list)
+        else:
+            return flask.jsonify({ "data" : sha224_replace(data) })

+ 18 - 17
route/api_image_view.py

@@ -1,21 +1,22 @@
 from .tool.func import *
 
 def api_image_view(name = 'Test'):
-    if flask.request.method == 'POST':
-        try:
-            title_list = json.loads(flask.request.form.get('title_list', ''))
-            title_list = list(set(title_list))
-        except:
-            title_list = []
-        
-        data_list = {}
-        for i in title_list:
-            if os.path.exists(os.path.join(load_image_url(), i)):
-                data_list[i] = '1'
-        
-        return flask.jsonify(data_list)
-    else:
-        if os.path.exists(os.path.join(load_image_url(), name)):
-            return flask.jsonify({ "exist" : "1" })
+    with get_db_connect() as conn:
+        if flask.request.method == 'POST':
+            try:
+                title_list = json.loads(flask.request.form.get('title_list', ''))
+                title_list = list(set(title_list))
+            except:
+                title_list = []
+
+            data_list = {}
+            for i in title_list:
+                if os.path.exists(os.path.join(load_image_url(), i)):
+                    data_list[i] = '1'
+
+            return flask.jsonify(data_list)
         else:
-            return flask.jsonify({})
+            if os.path.exists(os.path.join(load_image_url(), name)):
+                return flask.jsonify({ "exist" : "1" })
+            else:
+                return flask.jsonify({})

+ 11 - 10
route/login_find.py

@@ -1,13 +1,14 @@
 from .tool.func import *
 
 def login_find():
-    return easy_minify(flask.render_template(skin_check(),
-        imp = [load_lang('password_search'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-        data = '''
-            <ul class="inside_ul">
-                <li><a href="/login/find/email">''' + load_lang('email') + '''</a></li>
-                <li><a href="/login/find/key">''' + load_lang('key') + '''</a></li>
-            </ul>
-        ''',
-        menu = [['user', load_lang('return')]]
-    ))
+    with get_db_connect() as conn:
+        return easy_minify(flask.render_template(skin_check(),
+            imp = [load_lang('password_search'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+            data = '''
+                <ul class="inside_ul">
+                    <li><a href="/login/find/email">''' + load_lang('email') + '''</a></li>
+                    <li><a href="/login/find/key">''' + load_lang('key') + '''</a></li>
+                </ul>
+            ''',
+            menu = [['user', load_lang('return')]]
+        ))

+ 53 - 52
route/login_login_2fa_email.py

@@ -1,65 +1,66 @@
 from .tool.func import *
 
-def login_login_2fa_email_2(conn):
-    curs = conn.cursor()
+def login_login_2fa_email_2():
+    with get_db_connect() as conn:
+        curs = conn.cursor()
 
-    # email 2fa
-    # pw 2fa
-    # q_a 2fa
-    if not (flask.session and 'login_id' in flask.session):
-        return redirect('/user')
+        # email 2fa
+        # pw 2fa
+        # q_a 2fa
+        if not (flask.session and 'login_id' in flask.session):
+            return redirect('/user')
 
-    ip = ip_check()
-    if ip_or_user(ip) == 0:
-        return redirect('/user')
+        ip = ip_check()
+        if ip_or_user(ip) == 0:
+            return redirect('/user')
 
-    if ban_check(None, 'login') == 1:
-        return re_error('/ban')
+        if ban_check(None, 'login') == 1:
+            return re_error('/ban')
 
-    if flask.request.method == 'POST':
-        if captcha_post(flask.request.form.get('g-recaptcha-response', flask.request.form.get('g-recaptcha', ''))) == 1:
-            return re_error('/error/13')
-        else:
-            captcha_post('', 0)
+        if flask.request.method == 'POST':
+            if captcha_post(flask.request.form.get('g-recaptcha-response', flask.request.form.get('g-recaptcha', ''))) == 1:
+                return re_error('/error/13')
+            else:
+                captcha_post('', 0)
 
-        user_agent = flask.request.headers.get('User-Agent', '')
-        user_id = flask.session['b_id']
+            user_agent = flask.request.headers.get('User-Agent', '')
+            user_id = flask.session['b_id']
 
-        curs.execute(db_change('select data from user_set where name = "2fa_pw" and id = ?'), [user_id])
-        user_1 = curs.fetchall()
-        if user_1:
-            curs.execute(db_change('select data from user_set where name = "2fa_pw_encode" and id = ?'), [user_id])
-            user_1 = user_1[0][0]
-            user_2 = curs.fetchall()[0][0]
+            curs.execute(db_change('select data from user_set where name = "2fa_pw" and id = ?'), [user_id])
+            user_1 = curs.fetchall()
+            if user_1:
+                curs.execute(db_change('select data from user_set where name = "2fa_pw_encode" and id = ?'), [user_id])
+                user_1 = user_1[0][0]
+                user_2 = curs.fetchall()[0][0]
 
-            pw_check_d = pw_check(
-                flask.request.form.get('pw', ''),
-                user_1,
-                user_2,
-                user_id
-            )
-            if pw_check_d != 1:
-                return re_error('/error/10')
+                pw_check_d = pw_check(
+                    flask.request.form.get('pw', ''),
+                    user_1,
+                    user_2,
+                    user_id
+                )
+                if pw_check_d != 1:
+                    return re_error('/error/10')
 
-        flask.session['id'] = user_id
+            flask.session['id'] = user_id
 
-        ua_plus(user_id, ip, user_agent, get_time())
-        conn.commit()
+            ua_plus(user_id, ip, user_agent, get_time())
+            conn.commit()
 
-        flask.session.pop('b_id', None)
+            flask.session.pop('b_id', None)
 
-        return redirect('/user')
-    else:
-        return easy_minify(flask.render_template(skin_check(),
-            imp = [load_lang('login'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-            data =  '''
-                    <form method="post">
-                        <input placeholder="''' + load_lang('2fa_password') + '''" name="pw" type="password">
-                        <hr class=\"main_hr\">
-                        ''' + captcha_get() + '''
-                        <button type="submit">''' + load_lang('login') + '''</button>
-                        ''' + http_warning() + '''
-                    </form>
-                    ''',
-            menu = [['user', load_lang('return')]]
-        ))
+            return redirect('/user')
+        else:
+            return easy_minify(flask.render_template(skin_check(),
+                imp = [load_lang('login'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                data =  '''
+                        <form method="post">
+                            <input placeholder="''' + load_lang('2fa_password') + '''" name="pw" type="password">
+                            <hr class=\"main_hr\">
+                            ''' + captcha_get() + '''
+                            <button type="submit">''' + load_lang('login') + '''</button>
+                            ''' + http_warning() + '''
+                        </form>
+                        ''',
+                menu = [['user', load_lang('return')]]
+            ))

+ 4 - 3
route/login_logout.py

@@ -1,7 +1,8 @@
 from .tool.func import *
 
 def login_logout():
-    flask.session.pop('state', None)
-    flask.session.pop('id', None)
+    with get_db_connect() as conn:
+        flask.session.pop('state', None)
+        flask.session.pop('id', None)
 
-    return redirect('/user')
+        return redirect('/user')

+ 16 - 15
route/main_func_setting.py

@@ -1,20 +1,21 @@
 from .tool.func import *
 
 def main_func_setting():
-    li_list = [
-        ['main', load_lang('main_setting')],
-        ['phrase', load_lang('text_setting')],
-        ['robot', 'robots.txt'],
-        ['external', load_lang('ext_api_req_set')],
-        ['head', load_lang('main_head')],
-        ['body/top', load_lang('main_body')],
-        ['body/bottom', load_lang('main_bottom_body')]
-    ]
+    with get_db_connect() as conn:
+        li_list = [
+            ['main', load_lang('main_setting')],
+            ['phrase', load_lang('text_setting')],
+            ['robot', 'robots.txt'],
+            ['external', load_lang('ext_api_req_set')],
+            ['head', load_lang('main_head')],
+            ['body/top', load_lang('main_body')],
+            ['body/bottom', load_lang('main_bottom_body')]
+        ]
 
-    li_data = ''.join(['<li><a href="/setting/' + str(li[0]) + '">' + li[1] + '</a></li>' for li in li_list])
+        li_data = ''.join(['<li><a href="/setting/' + str(li[0]) + '">' + li[1] + '</a></li>' for li in li_list])
 
-    return easy_minify(flask.render_template(skin_check(),
-        imp = [load_lang('setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-        data = '<h2>' + load_lang('list') + '</h2><ul class="inside_ul">' + li_data + '</ul>',
-        menu = [['manager', load_lang('return')]]
-    ))
+        return easy_minify(flask.render_template(skin_check(),
+            imp = [load_lang('setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+            data = '<h2>' + load_lang('list') + '</h2><ul class="inside_ul">' + li_data + '</ul>',
+            menu = [['manager', load_lang('return')]]
+        ))

+ 2 - 1
route/main_search.py

@@ -1,4 +1,5 @@
 from .tool.func import *
 
 def main_search():
-    return redirect('/search/' + url_pas(flask.request.form.get('search', 'test')))
+    with get_db_connect() as conn:
+    	return redirect('/search/' + url_pas(flask.request.form.get('search', 'test')))

+ 26 - 25
route/main_sys_restart.py

@@ -1,31 +1,32 @@
 from .tool.func import *
 
 def main_sys_restart():
-    if admin_check() != 1:
-        return re_error('/error/3')
+    with get_db_connect() as conn:
+        if admin_check() != 1:
+            return re_error('/error/3')
 
-    if flask.request.method == 'POST':
-        admin_check(None, 'restart')
+        if flask.request.method == 'POST':
+            admin_check(None, 'restart')
 
-        print('----')
-        print('Restart')
+            print('----')
+            print('Restart')
 
-        try:
-            os.execl(sys.executable, sys.executable, *sys.argv)
-        except:
-            pass
-        
-        try:
-            os.execl(sys.executable, '"' + sys.executable + '"', *sys.argv)
-        except:
-            return re_error('/error/33')
-    else:
-        return easy_minify(flask.render_template(skin_check(),
-            imp = [load_lang('wiki_restart'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-            data = '''
-                <form method="post">
-                    <button type="submit">''' + load_lang('restart') + '''</button>
-                </form>
-            ''',
-            menu = [['manager', load_lang('return')]]
-        ))
+            try:
+                os.execl(sys.executable, sys.executable, *sys.argv)
+            except:
+                pass
+
+            try:
+                os.execl(sys.executable, '"' + sys.executable + '"', *sys.argv)
+            except:
+                return re_error('/error/33')
+        else:
+            return easy_minify(flask.render_template(skin_check(),
+                imp = [load_lang('wiki_restart'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                data = '''
+                    <form method="post">
+                        <button type="submit">''' + load_lang('restart') + '''</button>
+                    </form>
+                ''',
+                menu = [['manager', load_lang('return')]]
+            ))

+ 20 - 19
route/main_sys_shutdown.py

@@ -1,25 +1,26 @@
 from .tool.func import *
 
 def main_sys_shutdown():
-    if admin_check() != 1:
-        return re_error('/error/3')
+    with get_db_connect() as conn:
+        if admin_check() != 1:
+            return re_error('/error/3')
 
-    if flask.request.method == 'POST':
-        admin_check(None, 'shutdown')
-        
-        conn.commit()
+        if flask.request.method == 'POST':
+            admin_check(None, 'shutdown')
 
-        print('----')
-        print('Shutdown')
+            conn.commit()
 
-        os._exit(os.EX_OK)
-    else:
-        return easy_minify(flask.render_template(skin_check(),
-            imp = [load_lang('wiki_shutdown'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-            data = '''
-                <form method="post">
-                    <button type="submit">''' + load_lang('shutdown') + '''</button>
-                </form>
-            ''',
-            menu = [['manager', load_lang('return')]]
-        ))
+            print('----')
+            print('Shutdown')
+
+            os._exit(os.EX_OK)
+        else:
+            return easy_minify(flask.render_template(skin_check(),
+                imp = [load_lang('wiki_shutdown'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                data = '''
+                    <form method="post">
+                        <button type="submit">''' + load_lang('shutdown') + '''</button>
+                    </form>
+                ''',
+                menu = [['manager', load_lang('return')]]
+            ))

+ 109 - 108
route/main_tool_admin.py

@@ -1,116 +1,117 @@
 from .tool.func import *
 
 def main_tool_admin(num = 1, add_2 = ''):
-    title_list = {
-        0 : [load_lang('document_name'), 'acl', load_lang('acl')],
-        1 : [0, 'check', load_lang('check')],
-        2 : [load_lang('file_name'), 'file_filter/add', load_lang('file_filter_add')],
-        3 : [0, 'admin', load_lang('authorize')],
-        4 : [0, 'record', load_lang('edit_record')],
-        5 : [0, 'record/topic', load_lang('discussion_record')],
-        6 : [load_lang('name'), 'admin_plus', load_lang('add_admin_group')],
-        7 : [load_lang('name'), 'edit_filter/add', load_lang('edit_filter_add')],
-        8 : [load_lang('document_name'), 'search', load_lang('search')],
-        9 : [0, 'block_log/user', load_lang('blocked_user')],
-        10 : [0, 'block_log/admin', load_lang('blocked_admin')],
-        11 : [load_lang('document_name'), 'watch_list', load_lang('add_watchlist')],
-        12 : [load_lang('compare_target'), 'check', load_lang('compare_target')],
-        13 : [load_lang('document_name'), 'edit', load_lang('load')],
-        14 : [load_lang('document_name'), 'star_doc', load_lang('add_star_doc')],
-        15 : [load_lang('name_or_ip_or_regex'), 'auth/give/ban', load_lang('release')]
-    }
-
-    if num == 1:
-        return easy_minify(flask.render_template(skin_check(),
-            imp = [load_lang('admin_tool'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-            data = '''
-                <div id="opennamu_simple_render">
-                    <h2>1. ''' + load_lang('admin') + '''</h2>
-                    <ul class="inside_ul">
-                        <li><a href="/manager/2">''' + load_lang('acl_change') + '''</a></li>
-                        <li><a href="/manager/3">''' + load_lang('check_user') + '''</a></li>
-                        <li><a href="/auth/give/ban">''' + load_lang('ban') + '''</a></li>
-                        <li><a href="/auth/give/ban_multiple">''' + load_lang('multiple_ban') + '''</a></li>
-                        <li><a href="/manager/17">''' + load_lang('release') + '''</a></li>
-                        <li><a href="/manager/5">''' + load_lang('authorize') + '''</a></li>
-                    </ul>
-                    <h2>2. ''' + load_lang('owner') + '''</h2>
-                    <ul class="inside_ul">
-                        <li><a href="/admin_group">''' + load_lang('admin_group_list') + '''</a></li>
-                        <li><a href="/delete_multiple">''' + load_lang('many_delete') + '''</a></li>
-                        <li><a href="/app_submit">''' + load_lang('application_list') + '''</a></li>
-                        <li><a href="/api/sitemap.xml">''' + load_lang('get_sitemap') + '''</a></li>
-                        <li><a href="/register">''' + load_lang('add_user') + '''</a></li>
-                        <li><a href="/setting">''' + load_lang('setting') + '''</a></li>
-                    </ul>
-                    <h3>2.1. ''' + load_lang('filter') + '''</h3>
-                    <ul class="inside_ul">
-                        <li><a href="/edit_filter">''' + load_lang('edit_filter_list') + '''</a></li>
-                        <li><a href="/inter_wiki">''' + load_lang('interwiki_list') + '''</a></li>
-                        <li><a href="/edit_top">''' + load_lang('edit_tool_list') + '''</a></li>
-                        <li><a href="/image_license">''' + load_lang('image_license_list') + '''</a></li>
-                        <li><a href="/email_filter">''' + load_lang('email_filter_list') + '''</a></li>
-                        <li><a href="/name_filter">''' + load_lang('id_filter_list') + '''</a></li>
-                        <li><a href="/file_filter">''' + load_lang('file_filter_list') + '''</a></li>
-                        <li><a href="/extension_filter">''' + load_lang('extension_filter_list') + '''</a></li>
-                        <li><a href="/filter/document/list">''' + load_lang('document_filter_list') + '''</a></li>
-                    </ul>
-                    <h3>2.2. ''' + load_lang('server') + '''</h2>
-                    <ul class="inside_ul">
-                        <li><a href="/restart">''' + load_lang('wiki_restart') + '''</a></li>
-                        <li><a href="/shutdown">''' + load_lang('wiki_shutdown') + '''</a></li>
-                        <li><a href="/update">''' + load_lang('update') + '''</a></li>
-                    </ul>
-                    <h2>3. ''' + load_lang('version') + '''</h2>
-                    <ul class="inside_ul">
-                        <li id="ver_send_2">''' + load_lang('version') + ''' : </li>
-                        <li id="ver_send">''' + load_lang('lastest') + ''' : </li>
-                    </ul>
-                    <h3>3.1. ''' + load_lang('skin_info') + '''</h3>
-                    <ul class="inside_ul">
-                        <li><a href="/api/skin_info?all=true">''' + load_lang('skin_info') + '''</a></li>
-                        <div id="ver_send_3"></div>
-                    </ul>
-                </div>
-                <!-- JS : opennamu_do_insert_version -->
-                <!-- JS : opennamu_do_insert_version_skin -->
-                <!-- JS : opennamu_do_render_simple -->
-            ''',
-            menu = [['other', load_lang('return')]]
-        ))
-    elif not num - 1 > len(title_list):
-        num -= 2
-        
-        add_1 = flask.request.form.get('name', 'test')
-        if flask.request.method == 'POST':
-            if add_2 != '':
-                flask.session['edit_load_document'] = add_1
-                return redirect('/edit_from/' + url_pas(add_2))
-            elif flask.request.form.get('regex', '') != '':
-                return redirect('/auth/give/ban_regex/' + url_pas(add_1))
-            else:
-                return redirect('/' + title_list[num][1] + '/' + url_pas(add_1))
-        else:
-            if title_list[num][0] == 0:
-                placeholder = load_lang('user_name')
-            else:
-                placeholder = title_list[num][0]
-
-            plus = ''
-            if num == 15:
-                plus = '<input type="checkbox" name="regex"> ' + load_lang('regex') + '<hr class="main_hr">'
+    with get_db_connect() as conn:
+        title_list = {
+            0 : [load_lang('document_name'), 'acl', load_lang('acl')],
+            1 : [0, 'check', load_lang('check')],
+            2 : [load_lang('file_name'), 'file_filter/add', load_lang('file_filter_add')],
+            3 : [0, 'admin', load_lang('authorize')],
+            4 : [0, 'record', load_lang('edit_record')],
+            5 : [0, 'record/topic', load_lang('discussion_record')],
+            6 : [load_lang('name'), 'admin_plus', load_lang('add_admin_group')],
+            7 : [load_lang('name'), 'edit_filter/add', load_lang('edit_filter_add')],
+            8 : [load_lang('document_name'), 'search', load_lang('search')],
+            9 : [0, 'block_log/user', load_lang('blocked_user')],
+            10 : [0, 'block_log/admin', load_lang('blocked_admin')],
+            11 : [load_lang('document_name'), 'watch_list', load_lang('add_watchlist')],
+            12 : [load_lang('compare_target'), 'check', load_lang('compare_target')],
+            13 : [load_lang('document_name'), 'edit', load_lang('load')],
+            14 : [load_lang('document_name'), 'star_doc', load_lang('add_star_doc')],
+            15 : [load_lang('name_or_ip_or_regex'), 'auth/give/ban', load_lang('release')]
+        }
 
+        if num == 1:
             return easy_minify(flask.render_template(skin_check(),
-                imp = [title_list[num][2], wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                imp = [load_lang('admin_tool'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
                 data = '''
-                    <form method="post">
-                        <input placeholder="''' + placeholder + '''" name="name" type="text">
-                        <hr class="main_hr">
-                        ''' + plus + '''
-                        <button type="submit">''' + load_lang('go') + '''</button>
-                    </form>
+                    <div id="opennamu_simple_render">
+                        <h2>1. ''' + load_lang('admin') + '''</h2>
+                        <ul class="inside_ul">
+                            <li><a href="/manager/2">''' + load_lang('acl_change') + '''</a></li>
+                            <li><a href="/manager/3">''' + load_lang('check_user') + '''</a></li>
+                            <li><a href="/auth/give/ban">''' + load_lang('ban') + '''</a></li>
+                            <li><a href="/auth/give/ban_multiple">''' + load_lang('multiple_ban') + '''</a></li>
+                            <li><a href="/manager/17">''' + load_lang('release') + '''</a></li>
+                            <li><a href="/manager/5">''' + load_lang('authorize') + '''</a></li>
+                        </ul>
+                        <h2>2. ''' + load_lang('owner') + '''</h2>
+                        <ul class="inside_ul">
+                            <li><a href="/admin_group">''' + load_lang('admin_group_list') + '''</a></li>
+                            <li><a href="/delete_multiple">''' + load_lang('many_delete') + '''</a></li>
+                            <li><a href="/app_submit">''' + load_lang('application_list') + '''</a></li>
+                            <li><a href="/api/sitemap.xml">''' + load_lang('get_sitemap') + '''</a></li>
+                            <li><a href="/register">''' + load_lang('add_user') + '''</a></li>
+                            <li><a href="/setting">''' + load_lang('setting') + '''</a></li>
+                        </ul>
+                        <h3>2.1. ''' + load_lang('filter') + '''</h3>
+                        <ul class="inside_ul">
+                            <li><a href="/edit_filter">''' + load_lang('edit_filter_list') + '''</a></li>
+                            <li><a href="/inter_wiki">''' + load_lang('interwiki_list') + '''</a></li>
+                            <li><a href="/edit_top">''' + load_lang('edit_tool_list') + '''</a></li>
+                            <li><a href="/image_license">''' + load_lang('image_license_list') + '''</a></li>
+                            <li><a href="/email_filter">''' + load_lang('email_filter_list') + '''</a></li>
+                            <li><a href="/name_filter">''' + load_lang('id_filter_list') + '''</a></li>
+                            <li><a href="/file_filter">''' + load_lang('file_filter_list') + '''</a></li>
+                            <li><a href="/extension_filter">''' + load_lang('extension_filter_list') + '''</a></li>
+                            <li><a href="/filter/document/list">''' + load_lang('document_filter_list') + '''</a></li>
+                        </ul>
+                        <h3>2.2. ''' + load_lang('server') + '''</h2>
+                        <ul class="inside_ul">
+                            <li><a href="/restart">''' + load_lang('wiki_restart') + '''</a></li>
+                            <li><a href="/shutdown">''' + load_lang('wiki_shutdown') + '''</a></li>
+                            <li><a href="/update">''' + load_lang('update') + '''</a></li>
+                        </ul>
+                        <h2>3. ''' + load_lang('version') + '''</h2>
+                        <ul class="inside_ul">
+                            <li id="ver_send_2">''' + load_lang('version') + ''' : </li>
+                            <li id="ver_send">''' + load_lang('lastest') + ''' : </li>
+                        </ul>
+                        <h3>3.1. ''' + load_lang('skin_info') + '''</h3>
+                        <ul class="inside_ul">
+                            <li><a href="/api/skin_info?all=true">''' + load_lang('skin_info') + '''</a></li>
+                            <div id="ver_send_3"></div>
+                        </ul>
+                    </div>
+                    <!-- JS : opennamu_do_insert_version -->
+                    <!-- JS : opennamu_do_insert_version_skin -->
+                    <!-- JS : opennamu_do_render_simple -->
                 ''',
-                menu = [['manager', load_lang('return')]]
+                menu = [['other', load_lang('return')]]
             ))
-    else:
-        return redirect()
+        elif not num - 1 > len(title_list):
+            num -= 2
+
+            add_1 = flask.request.form.get('name', 'test')
+            if flask.request.method == 'POST':
+                if add_2 != '':
+                    flask.session['edit_load_document'] = add_1
+                    return redirect('/edit_from/' + url_pas(add_2))
+                elif flask.request.form.get('regex', '') != '':
+                    return redirect('/auth/give/ban_regex/' + url_pas(add_1))
+                else:
+                    return redirect('/' + title_list[num][1] + '/' + url_pas(add_1))
+            else:
+                if title_list[num][0] == 0:
+                    placeholder = load_lang('user_name')
+                else:
+                    placeholder = title_list[num][0]
+
+                plus = ''
+                if num == 15:
+                    plus = '<input type="checkbox" name="regex"> ' + load_lang('regex') + '<hr class="main_hr">'
+
+                return easy_minify(flask.render_template(skin_check(),
+                    imp = [title_list[num][2], wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                    data = '''
+                        <form method="post">
+                            <input placeholder="''' + placeholder + '''" name="name" type="text">
+                            <hr class="main_hr">
+                            ''' + plus + '''
+                            <button type="submit">''' + load_lang('go') + '''</button>
+                        </form>
+                    ''',
+                    menu = [['manager', load_lang('return')]]
+                ))
+        else:
+            return redirect()

+ 54 - 53
route/main_tool_other.py

@@ -1,56 +1,57 @@
 from .tool.func import *
 
 def main_tool_other():
-    return easy_minify(flask.render_template(skin_check(),
-        imp = [load_lang('other_tool'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-        data = '''
-            <div id="opennamu_simple_render">
-                <h2>1. ''' + load_lang('record') + '''</h2>
-                <ul class="inside_ul">
-                    <li><a href="/manager/6">''' + load_lang('edit_record') + '''</a></li>
-                    <li><a href="/manager/7">''' + load_lang('discussion_record') + '''</a></li>
-                </ul>
-                <h2>2. ''' + load_lang('list') + '''</h2>
-                <h3>2.1. ''' + load_lang('admin') + '''</h3>
-                <ul class="inside_ul">               
-                    <li><a href="/admin_list">''' + load_lang('admin_list') + '''</a></li>
-                    <li><a href="/admin_log">''' + load_lang('authority_use_list') + '''</a></li>
-                </ul>
-                <h3>2.2. ''' + load_lang('discussion') + '''</h3>
-                <ul class="inside_ul">
-                    <li><a href="/recent_discuss">''' + load_lang('recent_discussion') + '''</a></li>
-                </ul>
-                <h3>2.3. ''' + load_lang('document') + '''</h3>
-                <ul class="inside_ul">
-                    <li><a href="/recent_changes">''' + load_lang('recent_change') + '''</a></li>
-                    <li><a href="/title_index">''' + load_lang('all_document_list') + '''</a></li>
-                    <li><a href="/acl_list">''' + load_lang('acl_document_list') + '''</a></li>
-                    <li><a href="/please">''' + load_lang('need_document') + '''</a></li>
-                    <li><a href="/long_page">''' + load_lang('long_page') + '''</a></li>
-                    <li><a href="/short_page">''' + load_lang('short_page') + '''</a></li>
-                    <li><a href="/old_page">''' + load_lang('old_page') + '''</a></li>
-                </ul>
-                <h3>2.4. ''' + load_lang('user') + '''</h3>
-                <ul class="inside_ul">
-                    <li><a href="/block_log">''' + load_lang('recent_ban') + '''</a></li>
-                    <li><a href="/user_log">''' + load_lang('member_list') + '''</a></li>
-                </ul>
-                <h3>2.5. ''' + load_lang('other') + '''</h3>
-                <ul class="inside_ul">
-                    <li><a href="/image_file_list">''' + load_lang('image_file_list') + '''</a></li>
-                    <li><a href="/vote">''' + load_lang('vote_list') + '''</a></li>
-                </ul>
-                <h2>3. ''' + load_lang('other') + '''</h2>
-                <ul class="inside_ul">
-                    <li><a href="/upload">''' + load_lang('upload') + '''</a></li>
-                    <li><a href="/manager/10">''' + load_lang('search') + '''</a></li>
-                </ul>
-                <h2>4. ''' + load_lang('admin') + '''</h2>
-                <ul class="inside_ul">
-                    <li><a href="/manager/1">''' + load_lang('admin_tool') + '''</a></li>
-                </ul>
-            </div>
-            <!-- JS : opennamu_do_render_simple -->
-        ''',
-        menu = 0
-    ))
+    with get_db_connect() as conn:
+        return easy_minify(flask.render_template(skin_check(),
+            imp = [load_lang('other_tool'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+            data = '''
+                <div id="opennamu_simple_render">
+                    <h2>1. ''' + load_lang('record') + '''</h2>
+                    <ul class="inside_ul">
+                        <li><a href="/manager/6">''' + load_lang('edit_record') + '''</a></li>
+                        <li><a href="/manager/7">''' + load_lang('discussion_record') + '''</a></li>
+                    </ul>
+                    <h2>2. ''' + load_lang('list') + '''</h2>
+                    <h3>2.1. ''' + load_lang('admin') + '''</h3>
+                    <ul class="inside_ul">               
+                        <li><a href="/admin_list">''' + load_lang('admin_list') + '''</a></li>
+                        <li><a href="/admin_log">''' + load_lang('authority_use_list') + '''</a></li>
+                    </ul>
+                    <h3>2.2. ''' + load_lang('discussion') + '''</h3>
+                    <ul class="inside_ul">
+                        <li><a href="/recent_discuss">''' + load_lang('recent_discussion') + '''</a></li>
+                    </ul>
+                    <h3>2.3. ''' + load_lang('document') + '''</h3>
+                    <ul class="inside_ul">
+                        <li><a href="/recent_changes">''' + load_lang('recent_change') + '''</a></li>
+                        <li><a href="/title_index">''' + load_lang('all_document_list') + '''</a></li>
+                        <li><a href="/acl_list">''' + load_lang('acl_document_list') + '''</a></li>
+                        <li><a href="/please">''' + load_lang('need_document') + '''</a></li>
+                        <li><a href="/long_page">''' + load_lang('long_page') + '''</a></li>
+                        <li><a href="/short_page">''' + load_lang('short_page') + '''</a></li>
+                        <li><a href="/old_page">''' + load_lang('old_page') + '''</a></li>
+                    </ul>
+                    <h3>2.4. ''' + load_lang('user') + '''</h3>
+                    <ul class="inside_ul">
+                        <li><a href="/block_log">''' + load_lang('recent_ban') + '''</a></li>
+                        <li><a href="/user_log">''' + load_lang('member_list') + '''</a></li>
+                    </ul>
+                    <h3>2.5. ''' + load_lang('other') + '''</h3>
+                    <ul class="inside_ul">
+                        <li><a href="/image_file_list">''' + load_lang('image_file_list') + '''</a></li>
+                        <li><a href="/vote">''' + load_lang('vote_list') + '''</a></li>
+                    </ul>
+                    <h2>3. ''' + load_lang('other') + '''</h2>
+                    <ul class="inside_ul">
+                        <li><a href="/upload">''' + load_lang('upload') + '''</a></li>
+                        <li><a href="/manager/10">''' + load_lang('search') + '''</a></li>
+                    </ul>
+                    <h2>4. ''' + load_lang('admin') + '''</h2>
+                    <ul class="inside_ul">
+                        <li><a href="/manager/1">''' + load_lang('admin_tool') + '''</a></li>
+                    </ul>
+                </div>
+                <!-- JS : opennamu_do_render_simple -->
+            ''',
+            menu = 0
+        ))

+ 24 - 23
route/main_view.py

@@ -2,29 +2,30 @@ from .tool.func import *
 from .main_error_404 import main_error_404
 
 def main_view(name = ''):
-    file_name = re.search(r'([^/]+)$', name)
-    if not file_name:
-        return main_error_404(conn)
-    else:
-        file_name = file_name.group(1)
-        dir_name = './views/' + re.sub(r'\.{2,}', '', re.sub(r'([^/]+)$', '', name))
-
-        mime_type = file_name.split('.')
-        if len(mime_type) < 2:
-            mime_type = 'text/plain'
+    with get_db_connect() as conn:
+        file_name = re.search(r'([^/]+)$', name)
+        if not file_name:
+            return main_error_404(conn)
         else:
-            mime_type = mime_type[len(mime_type) - 1].lower()
-            image_type = ['jpeg', 'jpg', 'gif', 'png', 'webp']
-            if mime_type in image_type:
-                mime_type = 'image/' + mime_type
-            elif mime_type == 'js':
-                mime_type = 'text/javascript'
-            elif mime_type == 'txt':
+            file_name = file_name.group(1)
+            dir_name = './views/' + re.sub(r'\.{2,}', '', re.sub(r'([^/]+)$', '', name))
+
+            mime_type = file_name.split('.')
+            if len(mime_type) < 2:
                 mime_type = 'text/plain'
             else:
-                mime_type = 'text/' + mime_type
-        
-        return flask.send_from_directory(
-            dir_name, file_name, 
-            mimetype = mime_type
-        )
+                mime_type = mime_type[len(mime_type) - 1].lower()
+                image_type = ['jpeg', 'jpg', 'gif', 'png', 'webp']
+                if mime_type in image_type:
+                    mime_type = 'image/' + mime_type
+                elif mime_type == 'js':
+                    mime_type = 'text/javascript'
+                elif mime_type == 'txt':
+                    mime_type = 'text/plain'
+                else:
+                    mime_type = 'text/' + mime_type
+
+            return flask.send_from_directory(
+                dir_name, file_name, 
+                mimetype = mime_type
+            )

+ 9 - 8
route/main_view_file.py

@@ -2,12 +2,13 @@ from .tool.func import *
 from .main_error_404 import main_error_404
 
 def main_view_file(data = ''):
-    if data == 'robots.txt' and not os.path.exists('robots.txt'):
-        return flask.Response('User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/', mimetype = 'text/plain')
-    elif os.path.exists(data):
-        if re.search(r'\.txt$', data, flags = re.I):
-            return flask.send_from_directory('./', data, mimetype = 'text/plain')
-        else:
-            return flask.send_from_directory('./', data, mimetype = 'text/xml')
+    with get_db_connect() as conn:
+        if data == 'robots.txt' and not os.path.exists('robots.txt'):
+            return flask.Response('User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/', mimetype = 'text/plain')
+        elif os.path.exists(data):
+            if re.search(r'\.txt$', data, flags = re.I):
+                return flask.send_from_directory('./', data, mimetype = 'text/plain')
+            else:
+                return flask.send_from_directory('./', data, mimetype = 'text/xml')
 
-    return main_error_404()
+        return main_error_404()

+ 13 - 12
route/main_view_image.py

@@ -2,15 +2,16 @@ from .tool.func import *
 from .main_error_404 import main_error_404
 
 def main_view_image(name = ''):
-    mime_type = re.search(r'([^.]+)$', name)
-    if mime_type:
-        mime_type = mime_type.group(1).lower()
-        if mime_type == 'svg':
-            mime_type = 'svg+xml'
-        
-        return flask.send_from_directory(
-            './' + load_image_url(), name, 
-            mimetype = 'image/' + mime_type
-        )
-    else:
-        return main_error_404()
+    with get_db_connect() as conn:
+        mime_type = re.search(r'([^.]+)$', name)
+        if mime_type:
+            mime_type = mime_type.group(1).lower()
+            if mime_type == 'svg':
+                mime_type = 'svg+xml'
+
+            return flask.send_from_directory(
+                './' + load_image_url(), name, 
+                mimetype = 'image/' + mime_type
+            )
+        else:
+            return main_error_404()

+ 5 - 5
route/user_challenge.py

@@ -22,13 +22,13 @@ def do_make_challenge_design(img, title, info, disable = 0):
         <hr class="main_hr">
     '''
 
-def user_challenge():
-    ip = ip_check()
-    if ip_or_user(ip) == 1:
-        return redirect('/user')
-    
+def user_challenge():    
     with get_db_connect() as conn:
         curs = conn.cursor()
+        
+        ip = ip_check()
+        if ip_or_user(ip) == 1:
+            return redirect('/user')
 
         data_html_green = ''
         data_html_red = ''

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.5 (stable2) (beta3) (dev36)",
+        "r_ver" : "v3.4.5 (stable2) (beta3) (dev37)",
         "c_ver" : "3500113",
         "s_ver" : "3500110"
     }