2
0
surplus-dev 2 жил өмнө
parent
commit
d3fbf20c76

+ 5 - 1
app.py

@@ -524,10 +524,13 @@ app.route('/bbs/set/<int:bbs_num>', methods = ['POST', 'GET'])(bbs_w_set)
 app.route('/bbs/edit/<int:bbs_num>', methods = ['POST', 'GET'])(bbs_w_edit)
 app.route('/bbs/edit/preview/<int:bbs_num>', methods = ['POST', 'GET'], defaults = { 'do_type' : 'preview' })(bbs_w_edit)
 app.route('/bbs/w/<int:bbs_num>/<int:post_num>', methods = ['POST', 'GET'])(bbs_w_post)
+app.route('/bbs/raw/<int:bbs_num>/<int:post_num>')(view_raw_2)
+app.route('/bbs/tool/<int:bbs_num>/<int:post_num>')(bbs_w_tool)
 app.route('/bbs/edit/<int:bbs_num>/<int:post_num>', methods = ['POST', 'GET'])(bbs_w_edit)
 app.route('/bbs/edit/preview/<int:bbs_num>/<int:post_num>', methods = ['POST', 'GET'], defaults = { 'do_type' : 'preview' })(bbs_w_edit)
 app.route('/bbs/w/preview/<int:bbs_num>/<int:post_num>', methods = ['POST'], defaults = { 'do_type' : 'preview' })(bbs_w_post)
-app.route('/bbs/w/<int:bbs_num>/<int:post_num>/comment/<int:comment_num>/tool')(bbs_w_comment_tool)
+app.route('/bbs/tool/<int:bbs_num>/<int:post_num>/<comment_num>')(bbs_w_comment_tool)
+app.route('/bbs/raw/<int:bbs_num>/<int:post_num>/<comment_num>')(view_raw_2)
 
 # Func-api
 app.route('/api/w/<everything:name>/doc_tool/<tool>/doc_rev/<int(signed = True):rev>')(api_w)
@@ -537,6 +540,7 @@ app.route('/api/raw/<everything:name>')(api_raw)
 
 app.route('/api/bbs/w/<sub_code>')(api_bbs_w_post)
 app.route('/api/bbs/w/comment/<sub_code>')(api_bbs_w_comment)
+app.route('/api/bbs/w/comment_one/<sub_code>')(api_bbs_w_comment)
 
 app.route('/api/version', defaults = { 'version_list' : version_list })(api_version)
 app.route('/api/skin_info')(api_skin_info)

+ 2 - 0
route/__init__.py

@@ -14,6 +14,7 @@ from route.api_version import api_version
 from route.api_w import api_w
 from route.api_bbs_w_post import api_bbs_w_post
 from route.api_bbs_w_comment import api_bbs_w_comment
+from route.api_bbs_w_comment_one import api_bbs_w_comment_one
 
 from route.bbs_w_edit import bbs_w_edit
 from route.bbs_main import bbs_main
@@ -22,6 +23,7 @@ from route.bbs_w import bbs_w
 from route.bbs_w_post import bbs_w_post
 from route.bbs_w_set import bbs_w_set
 from route.bbs_w_comment_tool import bbs_w_comment_tool
+from route.bbs_w_tool import bbs_w_tool
 
 from route.edit import edit
 from route.edit_backlink_reset import edit_backlink_reset

+ 30 - 0
route/api_bbs_w_comment_one.py

@@ -0,0 +1,30 @@
+from .tool.func import *
+
+def api_bbs_w_comment_one(sub_code = ''):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+        
+        sub_code = sub_code.split('-')
+        sub_code_last = ''
+        if len(sub_code) > 2:
+            sub_code_last = sub_code[len(sub_code) - 1]
+            del sub_code[len(sub_code) - 1]
+            
+        sub_code = '-'.join(sub_code)
+
+        curs.execute(db_change('select set_name, set_data, set_code, set_id from bbs_data where (set_name = "comment" or set_name = "comment_date" or set_name = "comment_user_id") and set_id = ? and set_code = ?'), [sub_code, sub_code_last])
+        db_data = curs.fetchall()
+        if not db_data:
+            return flask.jsonify({})
+        else:
+            temp_id = ''
+            temp_dict = {}
+
+            for for_a in db_data:
+                if temp_id != for_a[2]:
+                    temp_id = for_a[2]
+                    temp_dict['code'] = for_a[2]
+
+                temp_dict[for_a[0]] = for_a[1]
+
+            return flask.jsonify(temp_dict)

+ 4 - 5
route/bbs_w_comment_tool.py

@@ -8,19 +8,18 @@ def bbs_w_comment_tool(bbs_num = '', post_num = '', comment_num = ''):
         
         bbs_num_str = str(bbs_num)
         post_num_str = str(post_num)
-        comment_num_str = str(comment_num)
         
         data += '''
             <h2>''' + load_lang('tool') + '''</h2>
             <ul class="opennamu_ul">
-                <li><a href="bbs/w/''' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '/raw">' + load_lang('raw') + '''</a></li>
-                <li><a href="bbs/w/''' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '/edit">' + load_lang('edit') + '''</a></li>
-                <li><a href="bbs/w/''' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '/blind">' + load_lang('blind') + '''</a></li>
+                <li><a href="/bbs/raw/''' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '/' + url_pas(comment_num) + '">' + load_lang('raw') + '''</a></li>
+                <li><a href="/bbs/edit/''' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '/' + url_pas(comment_num) + '">' + load_lang('edit') + '''</a></li>
+                <li><a href="/bbs/w/''' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '/blind">' + load_lang('hide') + '''</a></li>
             </ul>
         '''
 
         return easy_minify(flask.render_template(skin_check(),
             imp = [load_lang('bbs_comment_tool'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
             data = data,
-            menu = [['bbs/w/' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str), load_lang('return')]]
+            menu = [['bbs/w/' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '#' + url_pas(comment_num), load_lang('return')]]
         ))

+ 4 - 6
route/bbs_w_post.py

@@ -28,7 +28,7 @@ def bbs_w_post_comment(user_id, sub_code, comment_num, bbs_num_str, post_num_str
 
         date = ''
         date += '<a href="javascript:opennamu_change_comment(\'' + sub_code_check + '\');">(' + load_lang('comment') + ')</a> '
-        date += '<a href="/bbs/w/' + bbs_num_str + '/' + post_num_str + '/comment/' + sub_code_check + '/tool">(' + load_lang('tool') + ')</a> '
+        date += '<a href="/bbs/tool/' + bbs_num_str + '/' + post_num_str + '/' + sub_code_check + '">(' + load_lang('tool') + ')</a> '
         date += temp_dict['comment_date']
 
         comment_data += '<span style="padding-left: 20px;"></span>' * margin_count
@@ -135,7 +135,6 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                     )
 
                 date = ''
-                date += '<a href="/bbs/w/' + bbs_num_str + '/' + post_num_str + '/tool">(' + load_lang('tool') + ')</a> '
                 date += temp_dict['date']
 
                 data = ''
@@ -165,7 +164,7 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                         color = 'default'
                         
                     date = ''
-                    date += '<a href="/bbs/w/' + bbs_num_str + '/' + post_num_str + '/comment/' + str(count) + '/tool">(' + load_lang('tool') + ')</a> '
+                    date += '<a href="/bbs/tool/' + bbs_num_str + '/' + post_num_str + '/' + str(count) + '">(' + load_lang('tool') + ')</a> '
                     date += temp_dict['comment_date']
 
                     data += api_topic_thread_make(
@@ -204,7 +203,7 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                 return easy_minify(flask.render_template(skin_check(),
                     imp = [bbs_name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('bbs') + ')', 0])],
                     data = data,
-                    menu = [['bbs/w/' + bbs_num_str, load_lang('return')], ['bbs/edit/' + bbs_num_str + '/' + post_num_str, load_lang('edit')]]
+                    menu = [['bbs/w/' + bbs_num_str, load_lang('return')], ['bbs/edit/' + bbs_num_str + '/' + post_num_str, load_lang('edit')], ['bbs/tool/' + bbs_num_str + '/' + post_num_str, load_lang('tool')]]
                 ))
         else:
             # db_data_2[0][0] == 'comment'
@@ -293,7 +292,6 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
 
                 date = ''
                 date += '<a href="javascript:opennamu_change_comment(\'0\');">(' + load_lang('comment') + ')</a> '
-                date += '<a href="/bbs/w/' + bbs_num_str + '/' + post_num_str + '/tool">(' + load_lang('tool') + ')</a> '
                 date += temp_dict['date']
 
                 data = ''
@@ -364,5 +362,5 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                 return easy_minify(flask.render_template(skin_check(),
                     imp = [bbs_name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('bbs') + ')', 0])],
                     data = data,
-                    menu = [['bbs/w/' + bbs_num_str, load_lang('return')], ['bbs/edit/' + bbs_num_str + '/' + post_num_str, load_lang('edit')]]
+                    menu = [['bbs/w/' + bbs_num_str, load_lang('return')], ['bbs/edit/' + bbs_num_str + '/' + post_num_str, load_lang('edit')], ['bbs/tool/' + bbs_num_str + '/' + post_num_str, load_lang('tool')]]
                 ))

+ 24 - 0
route/bbs_w_tool.py

@@ -0,0 +1,24 @@
+from .tool.func import *
+
+def bbs_w_tool(bbs_num = '', post_num = ''):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        data = ''
+        
+        bbs_num_str = str(bbs_num)
+        post_num_str = str(post_num)
+        
+        data += '''
+            <h2>''' + load_lang('tool') + '''</h2>
+            <ul class="opennamu_ul">
+                <li><a href="/bbs/raw/''' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '">' + load_lang('raw') + '''</a></li>
+                <li><a href="/bbs/blind/''' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str) + '">' + load_lang('hide') + '''</a></li>
+            </ul>
+        '''
+
+        return easy_minify(flask.render_template(skin_check(),
+            imp = [load_lang('bbs_post_tool'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+            data = data,
+            menu = [['bbs/w/' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str), load_lang('return')]]
+        ))

+ 40 - 6
route/view_raw.py

@@ -1,10 +1,21 @@
 from .tool.func import *
 
-def view_raw_2(name = None, topic_num = None, num = None, doc_acl = 0):
+from .api_bbs_w_post import api_bbs_w_post
+from .api_bbs_w_comment_one import api_bbs_w_comment_one
+
+def view_raw_2(name = None, topic_num = None, num = None, doc_acl = 0, bbs_num = '', post_num = '', comment_num = ''):
     with get_db_connect() as conn:
         curs = conn.cursor()
+        
+        bbs_num_str = str(bbs_num)
+        post_num_str = str(post_num)
 
-        if topic_num:
+        if bbs_num != '' and post_num != '':
+            if acl_check(bbs_num_str, 'bbs_view') == 1:
+                    return re_error('/ban')
+                    
+            name = ''
+        elif topic_num:
             topic_num = str(topic_num)
             
             if acl_check('', 'topic_view', topic_num) == 1:
@@ -18,9 +29,15 @@ def view_raw_2(name = None, topic_num = None, num = None, doc_acl = 0):
 
         v_name = name
         p_data = ''
-        sub = ' (' + load_lang('raw') + ')'
+        sub = '(' + load_lang('raw') + ')'
 
-        if not topic_num and num:
+        if bbs_num != '' and post_num != '':
+            sub += ' (' + load_lang('bbs') + ')'
+            menu = [['bbs/tool/' + url_pas(bbs_num_str) + '/' + url_pas(post_num_str), load_lang('return')]]
+            
+            if comment_num != '':
+                sub += ' (' + comment_num + ')'
+        elif not topic_num and num:
             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 re_error('/error/3')
@@ -29,7 +46,7 @@ def view_raw_2(name = None, topic_num = None, num = None, doc_acl = 0):
 
             sub += ' (r' + num + ')'
 
-            menu = [['history/' + url_pas(name), load_lang('history')]]
+            menu = [['history_tool/' + url_pas(num) + '/' + url_pas(name), load_lang('return')]]
         elif topic_num:
             if admin_check(6) != 1:
                 curs.execute(db_change("select data from topic where id = ? and code = ? and block = ''"), [num, topic_num])
@@ -48,7 +65,24 @@ def view_raw_2(name = None, topic_num = None, num = None, doc_acl = 0):
 
             menu = [['w/' + url_pas(name), load_lang('return')]]
 
-        data = curs.fetchall()
+        if bbs_num != '' and post_num != '':
+            if comment_num != '':
+                data = json.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
+                sub_data = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+            else:
+                data = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+                
+            if 'comment' in data:
+                v_name = sub_data["title"]
+                data = [[data["comment"]]]
+            elif 'data' in data:
+                v_name = data["title"]
+                data = [[data["data"]]]
+            else:
+                data = None
+        else:
+            data = curs.fetchall()
+            
         if data:
             p_data += '<textarea readonly class="opennamu_textarea_500">' + html.escape(data[0][0]) + '</textarea>'