Parcourir la source

검색을 Go 파트로 대체

잉여개발기 il y a 3 mois
Parent
commit
0847b45f16
5 fichiers modifiés avec 9 ajouts et 140 suppressions
  1. 9 8
      app.py
  2. 0 6
      route/__init__.py
  3. 0 33
      route/main_func_error_404.py
  4. 0 70
      route/main_search_deep.py
  5. 0 23
      route/main_search_goto.py

+ 9 - 8
app.py

@@ -527,7 +527,7 @@ _golang_view_seq = itertools.count()
 def golang_view():
     idx = next(_golang_view_seq)
 
-    async def _view(**_):
+    async def _view(*args, **kwargs):
         return await python_to_golang("same")
     
     _view.__name__ = f"_golang_view_{idx}"
@@ -978,19 +978,20 @@ app.route('/manager', methods = ['POST', 'GET'])(main_tool_admin)
 app.route('/manager/<int:num>', methods = ['POST', 'GET'])(main_tool_redirect)
 app.route('/manager/<int:num>/<everything:add_2>', methods = ['POST', 'GET'])(main_tool_redirect)
 
+app.route('/search/<everything:name>', methods = ['GET'])(golang_view())
+app.route('/goto/<everything:name>', methods = ['GET'])(golang_view())
+app.route('/search_page/<int:num>/<everything:name>', methods = ['GET'])(golang_view())
+app.route('/search_data/<everything:name>', methods = ['GET'])(golang_view())
+app.route('/search_data_page/<int:num>/<everything:name>', methods = ['GET'])(golang_view())
+
 app.route('/goto', methods = ['POST'])(golang_view())
-app.route('/goto/<everything:name>', methods = ['GET', 'POST'])(golang_view())
+app.route('/goto/<everything:name>', methods = ['POST'])(golang_view())
 app.route('/search', methods = ['POST'])(golang_view())
 app.route('/search/<everything:name>', methods = ['POST'])(golang_view())
 app.route('/search_page/<int:num>/<everything:name>', methods = ['POST'])(golang_view())
 app.route('/search_data/<everything:name>', methods = ['POST'])(golang_view())
 app.route('/search_data_page/<int:num>/<everything:name>', methods = ['POST'])(golang_view())
 
-app.route('/search/<everything:name>', methods = ['GET'])(golang_view())
-app.route('/search_page/<int:num>/<everything:name>', methods = ['GET'])(golang_view())
-app.route('/search_data/<everything:name>', methods = ['GET'])(golang_view())
-app.route('/search_data_page/<int:num>/<everything:name>', methods = ['GET'])(golang_view())
-
 app.route('/setting')(main_setting)
 app.route('/setting/main', methods = ['POST', 'GET'])(main_setting_main)
 app.route('/setting/main/logo', methods = ['POST', 'GET'])(main_setting_main_logo)
@@ -1023,7 +1024,7 @@ app.route('/shutdown', methods = ['POST', 'GET'])(main_sys_shutdown)
 app.route('/restart', defaults = { 'golang_process' : golang_process }, methods = ['POST', 'GET'])(main_sys_restart)
 app.route('/update', defaults = { 'golang_process' : golang_process }, methods = ['POST', 'GET'])(main_sys_update)
 
-app.errorhandler(404)(main_func_error_404)
+app.errorhandler(404)(golang_view())
 
 def terminate_golang():
     if golang_process.poll() is None:

+ 0 - 6
route/__init__.py

@@ -62,12 +62,6 @@ from route.login_register_email import login_register_email
 from route.login_register_email_check import login_register_email_check
 from route.login_register_submit import login_register_submit
 
-from route.main_func_error_404 import main_func_error_404
-
-from route.main_search import main_search
-from route.main_search_deep import main_search_deep
-from route.main_search_goto import main_search_goto
-
 from route.main_setting import main_setting
 from route.main_setting_external import main_setting_external
 from route.main_setting_head import main_setting_head

+ 0 - 33
route/main_func_error_404.py

@@ -1,33 +0,0 @@
-from .tool.func import *
-
-async def main_func_error_404(e = ''):
-    with get_db_connect() as conn:
-        curs = conn.cursor()
-
-        if flask.request.path == '/':
-            curs.execute(db_change('select data from other where name = "frontpage"'))
-            db_data = curs.fetchall()
-            db_data = db_data[0][0] if db_data and db_data[0][0] != '' else 'FrontPage'
-            
-            return redirect(conn, '/w/' + url_pas(db_data))
-        else:
-            curs.execute(db_change('select data from other where name = "manage_404_page"'))
-            db_data = curs.fetchall()
-            db_data = db_data[0][0] if db_data else ''
-
-            if os.path.exists('404.html') and db_data == '404_file':
-                return open('404.html', encoding = 'utf8').read(), 404
-            else:
-                curs.execute(db_change('select data from other where name = "manage_404_page_content"'))
-                db_data = curs.fetchall()
-                db_data = db_data[0][0] if db_data and db_data[0][0] != '' else ''
-
-                if db_data != '':
-                    return await render_template(
-                        '404',
-                        db_data,
-                        0,
-                        0
-                    ), 404
-                else:
-                    return await re_error(conn, 46)

+ 0 - 70
route/main_search_deep.py

@@ -1,70 +0,0 @@
-from .tool.func import *
-
-from .go_api_func_search import api_func_search
-
-async def main_search_deep(name = 'Test', search_type = 'title', num = 1):
-    with get_db_connect() as conn:
-        curs = conn.cursor()
-
-        if name == '':
-            return redirect(conn)
-
-        if flask.request.method == 'POST':
-            if search_type == 'title':
-                return redirect(conn, '/search_page/1/' + url_pas(flask.request.form.get('search', 'test')))
-            else:
-                return redirect(conn, '/search_data_page/1/' + url_pas(flask.request.form.get('search', 'test')))
-        else:
-            div = '''
-                <form method="post">
-                    <input class="opennamu_width_200 __ON_INPUT__" name="search" value="''' + html.escape(name) + '''">
-                    <button class="__ON_BUTTON__" type="submit">''' + await get_lang('search') + '''</button>
-                </form>
-                <hr class="main_hr">
-            '''
-
-            if search_type == 'title':
-                div += '<a href="/search_data_page/1/' + url_pas(name) + '">(' + await get_lang('search_document_data') + ')</a>'
-            else:
-                div += '<a href="/search_page/1/' + url_pas(name) + '">(' + await get_lang('search_document_name') + ')</a>'
-
-            name_new = ''
-            if re.search(r'^분류:', name):
-                name_new = re.sub(r"^분류:", 'category:', name)
-            elif re.search(r"^사용자:", name):
-                name_new = re.sub(r"^사용자:", 'user:', name)
-            elif re.search(r"^파일:", name):
-                name_new = re.sub(r"^파일:", 'file:', name)
-
-            if name_new != '':
-                div += ' <a href="/search_page/1/' + url_pas(name_new) + '">(' + name_new + ')</a>'
-
-            curs.execute(db_change("select title from data where title = ? collate nocase"), [name])
-            link_id = '' if curs.fetchall() else 'class="opennamu_not_exist_link"'
-
-            div += '''
-                <ul>
-                    <li>
-                        ''' + await get_lang('go') + ''' : <a ''' + link_id + ' href="/w/' + url_pas(name) + '">' + html.escape(name) + '''</a>
-                    </li>
-                </ul>
-                <ul>
-            '''
-
-            all_list = await api_func_search(name, search_type, num)
-            for data in all_list:
-                div += '<li><a href="/w/' + url_pas(data) + '">' + data + '</a></li>'
-
-            div += '</ul>'
-            
-            if search_type == 'title':
-                div += await get_next_page_bottom('/search_page/{}/' + url_pas(name), num, all_list)
-            else:
-                div += await get_next_page_bottom('/search_data_page/{}/' + url_pas(name), num, all_list)
-
-            return await render_template(
-                name,
-                div,
-                '(' + await get_lang('search') + ')',
-                0
-            )

+ 0 - 23
route/main_search_goto.py

@@ -1,23 +0,0 @@
-from .tool.func import *
-
-from .go_api_func_search import api_func_search
-
-async 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
-
-        search_data = await api_func_search(data, 'title', 1)
-
-        curs.execute(db_change("select title from data where title = ? collate nocase"), [data])
-        db_data = curs.fetchall()
-        if db_data:
-            return redirect(conn, '/w/' + url_pas(db_data[0][0]))
-        elif len(search_data) == 1:
-            return redirect(conn, '/w/' + url_pas(search_data[0]))
-        else:
-            return redirect(conn, '/search/' + url_pas(data))