فهرست منبع

https://github.com/openNAMU/openNAMU/issues/1756

잉여개발기 (SPDV) 2 سال پیش
والد
کامیت
857655c565
9فایلهای تغییر یافته به همراه116 افزوده شده و 58 حذف شده
  1. 3 0
      app.py
  2. 101 34
      route/bbs_w.py
  3. 2 8
      route/main_setting_skin_set.py
  4. 2 3
      route/main_tool_other.py
  5. 1 2
      route/main_tool_redirect.py
  6. 1 4
      route/recent_change.py
  7. 1 4
      route/recent_record_topic.py
  8. 4 2
      route/user_info.py
  9. 1 1
      version.json

+ 3 - 0
app.py

@@ -406,6 +406,9 @@ app.route('/record/<int:num>/<set_type>/<name>', defaults = { 'tool' : 'record'
 app.route('/record/reset/<name>', methods = ['POST', 'GET'])(recent_record_reset)
 app.route('/record/topic/<name>')(recent_record_topic)
 
+app.route('/record/bbs/<name>', defaults = { 'tool' : 'record' })(bbs_w)
+app.route('/record/bbs_comment/<name>', defaults = { 'tool' : 'comment_record' })(bbs_w)
+
 app.route('/history/<everything:name>', defaults = { 'tool' : 'history' }, methods = ['POST', 'GET'])(recent_change)
 app.route('/history_page/<int:num>/<set_type>/<everything:name>', defaults = { 'tool' : 'history' }, methods = ['POST', 'GET'])(recent_change)
 

+ 101 - 34
route/bbs_w.py

@@ -1,11 +1,12 @@
 from .tool.func import *
 
-def bbs_w(bbs_num = '', tool = 'bbs'):
+def bbs_w(bbs_num = '', tool = 'bbs', page = 1, name = ''):
     with get_db_connect() as conn:
         curs = conn.cursor()
         
         data = ''
         title_name = ''
+        sub = ''
         bbs_name_dict = {}
 
         admin_auth = admin_check()
@@ -20,7 +21,24 @@ def bbs_w(bbs_num = '', tool = 'bbs'):
             bbs_num_str = str(bbs_num)
 
             title_name = bbs_name
+            sub = '(' + load_lang('bbs') + ')'
             menu = [['bbs/main', load_lang('return')], ['bbs/edit/' + bbs_num_str, load_lang('add')], ['bbs/set/' + bbs_num_str, load_lang('bbs_set')]]
+        elif tool == 'record':
+            curs.execute(db_change('select set_data, set_id from bbs_set where set_name = "bbs_name"'))
+            db_data = curs.fetchall()
+            bbs_name_dict = { for_a[1] : for_a[0] for for_a in db_data } if db_data else {}
+            
+            title_name = name
+            sub = '(' + load_lang('bbs_record') + ')'
+            menu = [['user/' + url_pas(name), load_lang('user_tool')]]
+        elif tool == 'comment_record':
+            curs.execute(db_change('select set_data, set_id from bbs_set where set_name = "bbs_name"'))
+            db_data = curs.fetchall()
+            bbs_name_dict = { for_a[1] : for_a[0] for for_a in db_data } if db_data else {}
+            
+            title_name = name
+            sub = '(' + load_lang('bbs_comment_record') + ')'
+            menu = [['user/' + url_pas(name), load_lang('user_tool')]]
         else:
             curs.execute(db_change('select set_data, set_id from bbs_set where set_name = "bbs_name"'))
             db_data = curs.fetchall()
@@ -51,16 +69,26 @@ def bbs_w(bbs_num = '', tool = 'bbs'):
             data += '<hr class="main_hr">'
 
             title_name = load_lang('bbs_main')
-            menu = [['other', load_lang('return')]] + ([['bbs/make', load_lang('add')]] if admin_auth == 1 else [])
+            menu = [['other', load_lang('other_tool')]] + ([['bbs/make', load_lang('add')]] if admin_auth == 1 else [])
 
-        data += '''
-            <table id="main_table_set">
-                <tr id="main_table_top_tr">
-                    <td id="main_table_width">''' + load_lang('editor') + '''</td>
-                    <td id="main_table_width">''' + load_lang('time') + '''</td>
-                    <td id="main_table_width">''' + load_lang('last_comment_time') + '''</td>
-                </tr>
-        '''
+        if tool == 'comment_record':
+            data += '''
+                <table id="main_table_set">
+                    <tr id="main_table_top_tr">
+                        <td id="main_table_width">''' + load_lang('editor') + '''</td>
+                        <td id="main_table_width">''' + load_lang('time') + '''</td>
+                        <td id="main_table_width">''' + load_lang('comment') + '''</td>
+                    </tr>
+            '''
+        else:
+            data += '''
+                <table id="main_table_set">
+                    <tr id="main_table_top_tr">
+                        <td id="main_table_width">''' + load_lang('editor') + '''</td>
+                        <td id="main_table_width">''' + load_lang('time') + '''</td>
+                        <td id="main_table_width">''' + load_lang('last_comment_time') + '''</td>
+                    </tr>
+            '''
 
         if tool == 'bbs':
             curs.execute(db_change('select set_code, set_id, set_name from bbs_data where set_name = "pinned" and set_id like ? order by set_data desc'), [bbs_num])
@@ -70,6 +98,12 @@ def bbs_w(bbs_num = '', tool = 'bbs'):
             curs.execute(db_change('select set_code, set_id from bbs_data where set_name = "title" and set_id like ? order by set_code + 0 desc'), [bbs_num])
             db_data_2 = curs.fetchall()
             db_data += list(db_data_2) if db_data_2 else []
+        elif tool == 'record':
+            curs.execute(db_change('select set_code, set_id, set_data from bbs_data where set_name = "date" and (set_code, set_id) in (select set_code, set_id from bbs_data where set_name = "user_id" and set_data = ?) order by set_data desc limit 50'), [name])
+            db_data = curs.fetchall()
+        elif tool == 'comment_record':
+            curs.execute(db_change('select set_code, set_id, set_data from bbs_data where set_name = "comment_date" and (set_code, set_id) in (select set_code, set_id from bbs_data where set_name = "comment_user_id" and set_data = ?) order by set_data desc limit 50'), [name])
+            db_data = curs.fetchall()
         else:
             curs.execute(db_change('select set_code, set_id, set_data from bbs_data where set_name = "date" order by set_data desc limit 50'))
             db_data = curs.fetchall()
@@ -81,16 +115,11 @@ def bbs_w(bbs_num = '', tool = 'bbs'):
 
             temp_dict = { for_a[0] : for_a[1] for for_a in db_data }
 
-            curs.execute(db_change('select count(*) from bbs_data where set_name = "comment_date" and (set_id = ? or set_id like ?) order by set_code + 0 desc'), [for_b[1] + '-' + for_b[0], for_b[1] + '-' + for_b[0] + '-%'])
-            db_data = curs.fetchall()
-            comment_count = str(db_data[0][0]) if db_data else '0'
-
-            curs.execute(db_change('select set_data from bbs_data where set_name = "comment_date" and (set_id = ? or set_id like ?) order by set_data desc limit 1'), [for_b[1] + '-' + for_b[0], for_b[1] + '-' + for_b[0] + '-%'])
-            db_data = curs.fetchall()
-            last_comment_date = db_data[0][0] if db_data else '0'
-
             bbs_name_select = ''
-            if tool != 'bbs':
+            bbs_split = for_b[1].split('-')
+            if tool == 'comment_record':
+                bbs_name_select = '(' + bbs_name_dict[bbs_split[0]] + ')'
+            elif tool != 'bbs':
                 bbs_name_select = '(' + bbs_name_dict[for_b[1]] + ')'
 
             if tool == 'bbs':
@@ -98,25 +127,63 @@ def bbs_w(bbs_num = '', tool = 'bbs'):
             else:
                 notice = 0
 
-            data += '''
-                <tr class="''' + ('opennamu_comment_color_red' if notice == 1 else '') + '''">
-                    <td>''' + ip_pas(temp_dict['user_id']) + '''</td>
-                    <td>''' + temp_dict['date'] + '''</td>
-                    <td>''' + last_comment_date + '''</td>
-                </tr>
-                <tr>
-                    <td colspan="3">
-                        <a href="/bbs/w/''' + for_b[1] + '/' + for_b[0] + '">' + html.escape(temp_dict['title']) + '''</a> 
-                        (''' + comment_count + ''') 
-                        ''' + bbs_name_select + '''
-                    </td>
-                </tr>
-            '''
+            if tool == 'comment_record':
+                print(for_b, bbs_split)
+                curs.execute(db_change('select set_name, set_data, set_code, set_id from bbs_data where set_name = "title" and set_code = ? and set_id = ?'), [bbs_split[1], bbs_split[0]])
+                db_data = curs.fetchall()
+                db_data = list(db_data) if db_data else []
+                print(db_data)
+                for for_a in db_data:
+                    temp_dict[for_a[0]] = for_a[1]
+            
+                comment_link = ''
+                if len(bbs_split) > 2:
+                    comment_link = '-'.join(bbs_split[2:])
+                    
+                comment_link += ('-' + for_b[0] if comment_link != '' else for_b[0])
+                    
+                
+                data += '''
+                    <tr>
+                        <td>''' + ip_pas(temp_dict['comment_user_id']) + '''</td>
+                        <td>''' + temp_dict['comment_date'] + '''</td>
+                        <td>''' + ('#' + comment_link) + '''</td>
+                    </tr>
+                    <tr>
+                        <td colspan="3">
+                            <a href="/bbs/w/''' + bbs_split[0] + '/' + bbs_split[1] + '#' + comment_link + '">' + html.escape(temp_dict['title']) + '''</a> 
+                            ''' + bbs_name_select + '''
+                        </td>
+                    </tr>
+                '''
+            else:
+                curs.execute(db_change('select count(*) from bbs_data where set_name = "comment_date" and (set_id = ? or set_id like ?) order by set_code + 0 desc'), [for_b[1] + '-' + for_b[0], for_b[1] + '-' + for_b[0] + '-%'])
+                db_data = curs.fetchall()
+                comment_count = str(db_data[0][0]) if db_data else '0'
+
+                curs.execute(db_change('select set_data from bbs_data where set_name = "comment_date" and (set_id = ? or set_id like ?) order by set_data desc limit 1'), [for_b[1] + '-' + for_b[0], for_b[1] + '-' + for_b[0] + '-%'])
+                db_data = curs.fetchall()
+                last_comment_date = db_data[0][0] if db_data else '0'
+            
+                data += '''
+                    <tr class="''' + ('opennamu_comment_color_red' if notice == 1 else '') + '''">
+                        <td>''' + ip_pas(temp_dict['user_id']) + '''</td>
+                        <td>''' + temp_dict['date'] + '''</td>
+                        <td>''' + last_comment_date + '''</td>
+                    </tr>
+                    <tr>
+                        <td colspan="3">
+                            <a href="/bbs/w/''' + for_b[1] + '/' + for_b[0] + '">' + html.escape(temp_dict['title']) + '''</a> 
+                            (''' + comment_count + ''') 
+                            ''' + bbs_name_select + '''
+                        </td>
+                    </tr>
+                '''
                 
         data += '</table>'
 
         return easy_minify(flask.render_template(skin_check(),
-            imp = [title_name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('bbs') + ')', 0])],
+            imp = [title_name, wiki_set(), wiki_custom(), wiki_css([sub, 0])],
             data = data,
             menu = menu
         ))

+ 2 - 8
route/main_setting_skin_set.py

@@ -15,15 +15,9 @@ def main_setting_skin_set():
             for for_b in set_list:
                 curs.execute(db_change('select data from other where name = ?'), [for_b])
                 if curs.fetchall():
-                    curs.execute(db_change("update other set data = ? where name = ?"), [
-                        flask.request.form.get(for_b, set_list[for_b][0][0]),
-                        for_b
-                    ])
+                    curs.execute(db_change("update other set data = ? where name = ?"), [flask.request.form.get(for_b, set_list[for_b][0][0]), for_b])
                 else:
-                    curs.execute(db_change('insert into other (name, data, coverage) values (?, ?, "")'), [
-                        for_b, 
-                        flask.request.form.get(for_b, set_list[for_b][0][0])
-                    ])
+                    curs.execute(db_change('insert into other (name, data, coverage) values (?, ?, "")'), [for_b, flask.request.form.get(for_b, set_list[for_b][0][0])])
             
             conn.commit()
 

+ 2 - 3
route/main_tool_other.py

@@ -5,10 +5,9 @@ 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 = render_simple_set('''
-                <h2>''' + load_lang('record') + '''</h2>
+                <h2>''' + load_lang('user_tool') + '''</h2>
                 <ul class="opennamu_ul">
-                    <li><a href="/manager/6">''' + load_lang('edit_record') + '''</a></li>
-                    <li><a href="/manager/7">''' + load_lang('discussion_record') + '''</a></li>
+                    <li><a href="/manager/6">''' + load_lang('user_tool') + '''</a></li>
                 </ul>
                 <h2>''' + load_lang('list') + '''</h2>
                 <h3>''' + load_lang('admin') + '''</h3>

+ 1 - 2
route/main_tool_redirect.py

@@ -9,8 +9,7 @@ def main_tool_redirect(num = 1, add_2 = ''):
             1 : [0, '/list/user/check', load_lang('check')],
             2 : [load_lang('file_name'), '/filter/file_filter/add', load_lang('file_filter_add')],
             3 : [0, '/auth/give', load_lang('authorize')],
-            4 : [0, '/record', load_lang('edit_record')],
-            5 : [0, '/record/topic', load_lang('discussion_record')],
+            4 : [0, '/user', load_lang('user_tool')],
             6 : [load_lang('name'), '/auth/list/add', load_lang('add_admin_group')],
             7 : [load_lang('name'), '/filter/edit_filter/add', load_lang('edit_filter_add')],
             8 : [load_lang('document_name'), '/search', load_lang('search')],

+ 1 - 4
route/recent_change.py

@@ -199,10 +199,7 @@ def recent_change(name = '', tool = '', num = 1, set_type = 'normal'):
                 ''
 
                 title = name
-                menu = [
-                    ['other', load_lang('other')], 
-                    ['user', load_lang('user')]
-                ]
+                menu = [['user/' + url_pas(name), load_lang('user_tool')]]
                 if admin == 1:
                     menu += [['record/reset/' + url_pas(name), load_lang('record_reset')]]
 

+ 1 - 4
route/recent_record_topic.py

@@ -42,8 +42,5 @@ def recent_record_topic(name = 'Test'):
         return easy_minify(flask.render_template(skin_check(),
             imp = [load_lang('discussion_record'), wiki_set(), wiki_custom(), wiki_css([sub, 0])],
             data = div,
-            menu = [
-                ['other', load_lang('other')], 
-                ['user', load_lang('user')]
-            ]
+            menu = [['other', load_lang('other')], ['user/' + url_pas(name), load_lang('user_tool')]]
         ))

+ 4 - 2
route/user_info.py

@@ -64,12 +64,14 @@ def user_info(name = ''):
                 ''' + tool_menu + '''
                 <h2>''' + load_lang('other') + '''</h2>
                 <ul class="opennamu_ul">
-                    <li><a href="/record/''' + url_pas(ip) + '''">''' + load_lang('record') + '''</a></li>
+                    <li><a href="/record/''' + url_pas(ip) + '''">''' + load_lang('edit_record') + '''</a></li>
                     <li><a href="/record/topic/''' + url_pas(ip) + '''">''' + load_lang('discussion_record') + '''</a></li>
+                    <li><a href="/record/bbs/''' + url_pas(ip) + '''">''' + load_lang('bbs_record') + '''</a></li>
+                    <li><a href="/record/bbs_comment/''' + url_pas(ip) + '''">''' + load_lang('bbs_comment_record') + '''</a></li>
                     <li><a href="/topic/user:''' + url_pas(ip) + '''">''' + load_lang('user_discussion') + '''</a></li>
                     <li><a href="/count/''' + url_pas(ip) + '''">''' + load_lang('count') + '''</a></li>
                 </ul>
                 ''' + admin_menu + '''
             ''',
-            menu = 0
+            menu = [['other', load_lang('other_tool')]]
         ))

+ 1 - 1
version.json

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