Kaynağa Gözat

리다이렉트 관련 버그 수정

https://github.com/openNAMU/openNAMU/issues/1943
잉여개발기 (SPDV) 2 yıl önce
ebeveyn
işleme
d4c54055ea
3 değiştirilmiş dosya ile 25 ekleme ve 11 silme
  1. 1 1
      route/main_func_error_404.py
  2. 23 9
      route/view_read.py
  3. 1 1
      version.json

+ 1 - 1
route/main_func_error_404.py

@@ -11,4 +11,4 @@ def main_func_error_404(e = ''):
             db_data = curs.fetchall()
             db_data = db_data[0][0] if db_data and db_data[0][0] != '' else 'FrontPage'
             
-            return redirect('/w/' + db_data)
+            return '<script>window.location.href = "/w/' + url_pas(db_data) + '";</script>'

+ 23 - 9
route/view_read.py

@@ -219,19 +219,33 @@ def view_read(name = 'Test', doc_rev = '', doc_from = '', do_type = ''):
                 ['acl/' + url_pas(name), load_lang('setting'), acl],
             ]
 
+            if flask.session and 'lastest_document' in flask.session:
+                pass
+            else:
+                flask.session['lastest_document'] = []
+
             if do_type == 'from':
                 menu += [['w/' + url_pas(name), load_lang('pass')]]
-                if flask.session and 'lastest_document' in flask.session:
-                    end_data = '''
-                        <div id="redirect">
-                            <a href="/w_from/''' + url_pas(flask.session['lastest_document']) + '''">''' + flask.session['lastest_document'] + '''</a> ➤ <b>''' + name + '''</b>
-                        </div>
-                        <hr class="main_hr">
-                    ''' + end_data
+                
+                last_page = ''
+                for for_a in reversed(range(0, len(flask.session['lastest_document']))):
+                    last_page = flask.session['lastest_document'][for_a]
+
+                    curs.execute(db_change("select link from back where (title = ? or link = ?) and type = 'redirect' limit 1"), [last_page, last_page])
+                    if curs.fetchall():
+                        break
+
+                end_data = '''
+                    <div id="redirect">
+                        <a href="/w_from/''' + url_pas(last_page) + '''">''' + html.escape(last_page) + '''</a> ➤ <b>''' + html.escape(name) + '''</b>
+                    </div>
+                    <hr class="main_hr">
+                ''' + end_data
                     
-                flask.session['lastest_document'] = name
+            if len(flask.session['lastest_document']) >= 10:
+                flask.session['lastest_document'] = flask.session['lastest_document'][-9:] + [name]
             else:
-                flask.session['lastest_document'] = name
+                flask.session['lastest_document'] += [name]
 
             if uppage != 0:
                 menu += [['w/' + url_pas(uppage), load_lang('upper')]]

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.6-RC5-dev19",
+        "r_ver" : "v3.4.6-RC5-dev20",
         "c_ver" : "3500373",
         "s_ver" : "3500112"
     }