2du 4 years ago
parent
commit
c4484cd904
4 changed files with 35 additions and 39 deletions
  1. 7 3
      app.py
  2. 1 1
      route/recent_change.py
  3. 25 33
      route/view_read.py
  4. 2 2
      views/main_css/js/render_onmark.js

+ 7 - 3
app.py

@@ -357,6 +357,9 @@ if os.path.exists('custom.py'):
 
     custom_run(conn, app)
 
+# 전체 파라미터 제거 및 URL화 (한 눈에 모든 URL이 관리되게)
+# 되도록 1기능 1라우터
+    
 # Func
 # Func-inter_wiki
 # 개편 필요(각각 분리 예정)
@@ -579,10 +582,11 @@ def view_diff(name = 'Test', num_a = 1, num_b = 1):
 def view_down(name = None):
     return view_down_2(conn, name)
 
-@app.route('/w/<int:num>/<everything:name>')
+@app.route('/w/<everything:name>/doc_rev/<int:doc_rev>')
+@app.route('/w/<everything:name>/doc_from/<everything:doc_from>')
 @app.route('/w/<everything:name>')
-def view_read(name = 'Test', num = 0):
-    return view_read_2(conn, name)
+def view_read(name = 'Test', doc_rev = 0, doc_from = ''):
+    return view_read_2(conn, name, doc_rev, doc_from)
 
 # Func-edit
 @app.route('/revert/<everything:name>', methods = ['POST', 'GET'])

+ 1 - 1
route/recent_change.py

@@ -119,7 +119,7 @@ def recent_change_2(conn, name, tool):
                     style[1] = 'id="toron_color_grey"'
 
             if tool == 'history':
-                title = '<a href="/w/' + url_pas(name) + '?num=' + data[0] + '">r' + data[0] + '</a> '
+                title = '<a href="/w/' + url_pas(name) + '/doc_rev/' + data[0] + '">r' + data[0] + '</a> '
             else:
                 title = '<a href="/w/' + url_pas(data[1]) + '">' + html.escape(data[1]) + '</a> '
                 if int(data[0]) < 2:

+ 25 - 33
route/view_read.py

@@ -1,16 +1,14 @@
 from .tool.func import *
 
-def view_read_2(conn, name):
+def view_read_2(conn, name, doc_rev, doc_from):
     curs = conn.cursor()
 
     sub = ''
     div = ''
     ip = ip_check()
-    name_doc_pass = flask.request.args.get('from', '')
+    name_doc_pass = doc_from
     uppage = re.sub(r"/([^/]+)$", '', name)
-
-    num = flask.request.args.get('num', None)
-    num = int(number_check(num)) if num else None
+    num = str(doc_rev)        
 
     curs.execute(db_change("select sub from rd where title = ? and not stop = 'O' order by date desc"), [name])
     topic = 1 if curs.fetchall() else 0
@@ -19,37 +17,31 @@ def view_read_2(conn, name):
     down = 1 if curs.fetchall() else 0
     
     if re.search(r'^category:', name):
+        category_doc = ''
+        category_sub = ''
+        
         curs.execute(db_change("select link from back where title = ? and type = 'cat' order by link asc"), [name])
-        back = curs.fetchall()
-        if back:
-            u_div = ''
-
-            for data in back:
-                if div == '':
-                    div = '<br><h2 id="cate_normal">' + load_lang('category_title') + '</h2><ul class="inside_ul">'
-
-                if re.search(r'^category:', data[0]):
-                    u_div += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a></li>'
-                else:
-                    curs.execute(db_change("select title from back where title = ? and type = 'include'"), [data[0]])
-                    db_data = curs.fetchall()
-                    if db_data:
-                        div += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> <a id="inside" href="/xref/' + url_pas(data[0]) + '">(' + load_lang('backlink') + ')</a></li>'
-                    else:
-                        div += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a></li>'
-
-            if div != '':
-                div += '</ul>'
-
-            if u_div != '':
-                div += '<br><h2 id="cate_under">' + load_lang('under_category') + '</h2><ul class="inside_ul">' + u_div + '</ul>'
+        category_sql = curs.fetchall()
+        for data in category_sql:
+            if re.search(r'^category:', data[0]):
+                category_sub += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a></li>'
+            else:
+                category_doc += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> <a id="inside" href="/xref/' + url_pas(data[0]) + '">(' + load_lang('backlink') + ')</a></li>'
+
+        if category_doc != '':
+            category_doc += '<h2 id="cate_normal">' + load_lang('category_title') + '</h2><ul class="inside_ul">' + category_doc + '</ul>'
+
+        if category_sub != '':
+            category_doc += '<h2 id="cate_under">' + load_lang('under_category') + '</h2><ul class="inside_ul">' + category_sub + '</ul>'
+            
+        div += category_doc
 
-    if num:
-        curs.execute(db_change("select title from history where title = ? and id = ? and hide = 'O'"), [name, str(num)])
+    if num != '0':
+        curs.execute(db_change("select title from history where title = ? and id = ? and hide = 'O'"), [name, num])
         if curs.fetchall() and admin_check(6) != 1:
             return redirect('/history/' + url_pas(name))
 
-        curs.execute(db_change("select data from history where title = ? and id = ?"), [name, str(num)])
+        curs.execute(db_change("select data from history where title = ? and id = ?"), [name, num])
     else:
         curs.execute(db_change("select data from data where title = ?"), [name])
 
@@ -99,7 +91,7 @@ def view_read_2(conn, name):
     else:
         response_data = 200
 
-    if num:
+    if num != '0':
         menu = [['history/' + url_pas(name), load_lang('history')]]
         sub = ' (r' + str(num) + ')'
         acl = 0
@@ -124,7 +116,7 @@ def view_read_2(conn, name):
             menu += [['w/' + url_pas(name), load_lang('pass')]]
             end_data = '''
                 <div id="redirect">
-                    <a href="/w/''' + url_pas(name_doc_pass) + '?from=' + url_pas(name) + '">' + name_doc_pass + '</a> ⇨ <b>' + name + '''</b>
+                    <a href="/w/''' + url_pas(name_doc_pass) + '/doc_from/' + url_pas(name) + '">' + name_doc_pass + '</a> ⇨ <b>' + name + '''</b>
                 </div>
                 <br>
             ''' + end_data

+ 2 - 2
views/main_css/js/render_onmark.js

@@ -1246,11 +1246,11 @@ function do_onmark_redirect_render(data, data_js, name_doc) {
             window.location.search === '' &&
             window.location.pathname.match(/^\/w\//)
         ) {
-            window.location.href = '/w/' + do_url_change(link_main) + '?from=' + do_url_change(name_doc) + link_sub;
+            window.location.href = '/w/' + do_url_change(link_main) + '/doc_from/' + do_url_change(name_doc) + link_sub;
         }
         
         return [
-            data.replace(redirect_re, '/w/' + do_url_change(link_main) + '?from=' + do_url_change(name_doc) + link_sub), 
+            data.replace(redirect_re, '/w/' + do_url_change(link_main) + '/doc_from/' + do_url_change(name_doc) + link_sub), 
             data_js, 
             1
         ];