Parcourir la source

일부 추가 수정

잉여개발기 il y a 6 mois
Parent
commit
2f913345e8

+ 1 - 1
route/__init__.py

@@ -47,7 +47,7 @@ from route.list_title_index import list_title_index
 from route.list_user import list_user
 from route.list_user_check import list_user_check
 from route.list_user_check_delete import list_user_check_delete
-from route.list_history import list_history
+from route.go_view_list_history import list_history
 
 from route.login_find import login_find
 from route.login_find_email import login_find_email

+ 1 - 1
route/go_api_w_raw.py

@@ -2,7 +2,7 @@ from .tool.func import *
 
 async def api_w_raw(name = 'Test', rev = '', exist_check = ''):
     other_set = {}
-    other_set["name"] = name
+    other_set["doc_name"] = name
     other_set["rev"] = str(rev)
     other_set["exist_check"] = exist_check
 

+ 2 - 2
route/go_api_w_render.py

@@ -44,7 +44,7 @@ async def api_w_render(name = '', tool = '', request_method = '', request_data =
                 # remove end br
                 data_org = re.sub('^\n+', '', data_org)
 
-            if markup in ('', 'namumark'):
+            if markup in ('', 'namumark', 'namumark_beta'):
                 data_pas = await render_set(conn, 
                     doc_name = name, 
                     doc_data = data_org, 
@@ -60,7 +60,7 @@ async def api_w_render(name = '', tool = '', request_method = '', request_data =
                 other_set = {}
                 other_set["doc_name"] = name
                 other_set["render_type"] = data_type
-                other_set["data"] = data_org
+                other_set["raw_data"] = data_org
 
                 return await python_to_golang(sys._getframe().f_code.co_name, other_set)
         else:

+ 4 - 0
route/go_view_list_history.py

@@ -0,0 +1,4 @@
+from .tool.func import *
+
+async def list_history(tool = 'history', num = 1, set_type = 'normal', doc_name = 'Test'):
+    return await python_to_golang("same", {})

+ 0 - 171
route/list_history.py

@@ -1,171 +0,0 @@
-from .tool.func import *
-
-from .go_api_list_history import api_list_history
-from .go_api_list_recent_change import api_list_recent_change
-from .go_api_func_auth import api_func_auth
-
-from .recent_change import recent_change_send_render
-
-async def option_lang(lang_in, lang):
-    if lang_in == 'user':
-        lang_in = lang.get('user_document')
-    elif lang_in in lang:
-        lang_in = get_lang(lang_in)
-    
-    return lang_in
-
-async def list_history(tool = 'history', num = 1, set_type = 'normal', doc_name = 'Test'):
-    with get_db_connect() as conn:
-        if flask.request.method == 'POST':
-            a = flask.request.form.get('a')
-            b = flask.request.form.get('b')
-
-            return redirect(conn, f'/diff/{b}/{a}/{doc_name}')
-        else:
-            if tool == "history":
-                data = await api_list_history(num, set_type, doc_name)
-
-                title = doc_name
-                sub = '(' + await get_lang('history') + ') (' + await get_lang(set_type) + ')'
-                menu = [['w/' + url_pas(doc_name), await get_lang('return')], ['history_add/' + url_pas(doc_name), await get_lang('history_add')], ['history_reset/' + url_pas(doc_name), await get_lang('history_reset')]]
-            else:
-                data = await api_list_recent_change(num, set_type, 50, '')
-
-                title = await get_lang('recent_change')
-                sub = '(' + await get_lang(set_type) + ')'
-                menu = [['other', await get_lang('return')], ['recent_edit_request', await get_lang('edit_request')]]
-
-            auth = await api_func_auth()
-            print(auth)
-
-            data = data["data"]
-            
-            data_html = ''
-
-            if tool == "history":
-                option_list = ['normal', 'edit', 'move', 'delete', 'revert', 'r1', 'setting']
-                for option in option_list:
-                    label = await get_lang(option)
-                    data_html += f'<a href="/history_page/1/{option}/{doc_name}">({label})</a> '
-            else:
-                option_list = ['normal', 'edit', 'move', 'delete', 'revert', 'r1', 'edit_request', 'user', 'file', 'category']
-                for option in option_list:
-                    label = await get_lang(option)
-                    data_html += f'<a href="/recent_change/1/{option}">({label})</a> '
-
-            date_heading = ''
-            select = ''
-
-            for for_a in range(len(data)):
-                if data[for_a][6] != "" and data[for_a][1] == "":
-                    if date_heading != '----':
-                        data_html += '<h2>----</h2>'
-                        date_heading = '----'
-
-                    data_html += await opennamu_make_list('----', '', '', '')
-                    continue
-
-                doc_name = url_pas(data[for_a][1])
-
-                left = '<a href="/w/' + doc_name + '">' + html.escape(data[for_a][1]) + '</a> '
-                rev = ''
-
-                if data[for_a][6] != "":
-                    rev += f'<span style="color: red;">r{data[for_a][0]}</span>'
-                else:
-                    rev += f'r{data[for_a][0]}'
-
-                select += f'<option value="{data[for_a][0]}">{data[for_a][0]}</option>'
-
-                if int(data[for_a][0]) > 1:
-                    before_rev = str(int(data[for_a][0]) - 1)
-                    rev = f'<a href="/diff/{before_rev}/{data[for_a][0]}/{doc_name}">{rev}</a>'
-
-                right = f'<span id="opennamu_list_history_{for_a}_over">'
-                right += f'<a id="opennamu_list_history_{for_a}" href="javascript:void(0);">'
-                right += '<span class="opennamu_svg opennamu_svg_tool">&nbsp;</span></a>'
-                right += f'<span class="opennamu_popup_footnote" id="opennamu_list_history_{for_a}_load" style="display: none;"></span>'
-                right += '</span> | '
-                right += rev + ' | '
-
-                diff_size = data[for_a][5]
-                if diff_size == '0':
-                    right += f'<span style="color: gray;">{diff_size}</span>'
-                elif '+' in diff_size:
-                    right += f'<span style="color: green;">{diff_size}</span>'
-                else:
-                    right += f'<span style="color: red;">{diff_size}</span>'
-
-                right += ' | '
-                right += f'{data[for_a][7]} | '
-
-                edit_type = data[for_a][8] if data[for_a][8] != '' else 'edit'
-                right += f'{await get_lang(edit_type)} | '
-
-                time_split = data[for_a][2].split(' ')
-                if date_heading != time_split[0]:
-                    data_html += f'<h2>{time_split[0]}</h2>'
-                    date_heading = time_split[0]
-
-                if len(time_split) > 1:
-                    right += time_split[1]
-
-                right += f'<span style="display: none;" id="opennamu_history_tool_{for_a}">'
-
-                right += f'<a href="/render/{data[for_a][0]}/{doc_name}">{get_lang("view")}</a>'
-                right += f' | <a href="/raw_rev/{data[for_a][0]}/{doc_name}">{get_lang("raw")}</a>'
-                right += f' | <a href="/revert/{data[for_a][0]}/{doc_name}">{get_lang("revert")} (r{data[for_a][0]})</a>'
-
-                if int(data[for_a][0]) > 1:
-                    before_rev = str(int(data[for_a][0]) - 1)
-                    right += f' | <a href="/revert/{before_rev}/{doc_name}">{get_lang("revert")} (r{before_rev})</a>'
-                    right += f' | <a href="/diff/{before_rev}/{data[for_a][0]}/{doc_name}">{get_lang("compare")}</a>'
-
-                right += f' | <a href="/history/{doc_name}">{get_lang("history")}</a>'
-
-                if auth.get("owner") or auth.get("hidel"):
-                    right += f' | <a href="/history_hidden/{data[for_a][0]}/{doc_name}">{get_lang("hide")}</a>'
-
-                if auth.get("owner"):
-                    right += f' | <a href="/history_delete/{data[for_a][0]}/{doc_name}">{get_lang("history_delete")}</a>'
-                    right += f' | <a href="/history_send/{data[for_a][0]}/{doc_name}">{get_lang("send_edit")}</a>'
-
-                right += '</span>'
-
-                bottom = ''
-                if data[for_a][4] != "":
-                    bottom = recent_change_send_render(html.escape(data[for_a][4]))
-
-                data_html += await opennamu_make_list(left, right, bottom)
-
-                data_html += f'''
-                    <script>
-                        document.getElementById('opennamu_list_history_{for_a}').addEventListener("click", function() {{
-                            opennamu_do_footnote_popover('opennamu_list_history_{for_a}', '', 'opennamu_history_tool_{for_a}', 'open');
-                        }});
-                        document.addEventListener("click", function() {{
-                            opennamu_do_footnote_popover('opennamu_list_history_{for_a}', '', 'opennamu_history_tool_{for_a}', 'close');
-                        }});
-                    </script>
-                '''
-
-            if tool == "history":
-                data_html += await get_next_page_bottom(f'/history_page/{{}}/{set_type}/{doc_name}', num, data)
-                data_html = (
-                    '<form method="post">'
-                    f'<select name="a">{select}</select> '
-                    f'<select name="b">{select}</select> '
-                    f'<button type="submit">{get_lang("compare")}</button>'
-                    '</form>'
-                    '<hr class="main_hr"></hr>' + data_html
-                )
-            else:
-                data_html += await get_next_page_bottom(f'/recent_change/{{}}/{set_type}', num, data)
-
-            print(await wiki_custom())
-
-            return easy_minify(flask.render_template(await skin_check(),
-                imp = [title, await wiki_set(), await wiki_custom(), wiki_css([sub, 0])],
-                data = data_html,
-                menu = menu
-            ))

+ 10 - 3
route/tool/func.py

@@ -158,9 +158,17 @@ async def python_to_golang(func_name, other_set = {}):
         "view_list_random" : "/list/random",
     }
 
-    if func_name in func_to_normal_url:
+    print(func_name, other_set)
+
+    if func_name == "same":
+        async with aiohttp.ClientSession() as session:
+            async with session.get('http://localhost:' + port_data + flask.request.path, headers = headers) as res:
+                data = await res.text()
+
+                return data
+    elif func_name in func_to_normal_url:
         async with aiohttp.ClientSession() as session:
-            async with session.post('http://localhost:' + port_data + '/compatible_api/' + func_name, data = json_dumps(other_set), headers = headers) as res:
+            async with session.post('http://localhost:' + port_data + func_to_normal_url[func_name], data = json_dumps(other_set), headers = headers) as res:
                 data = await res.text()
 
                 return data
@@ -292,7 +300,6 @@ class get_db_connect:
                         try_cnt += 1
                         time.sleep(1)
 
-            
             if self.conn == None:
                 raise Exception("Unable to connect database")
 

+ 2 - 0
route/view_w.py

@@ -185,6 +185,8 @@ async def view_w(name = 'Test', do_type = '', doc_rev = ''):
         else:
             doc_data = await api_w_raw(name, str(doc_rev))
 
+        print([name, doc_data, doc_rev])
+
         if doc_data["response"] == "ok":
             render_data = await api_w_render(name, request_method = 'POST', request_data = {
                 'name' : name,

+ 93 - 82
views/main_css/js/route/bbs_w_post.js

@@ -44,102 +44,113 @@ function opennamu_load_comment() {
     let bbs_id = url_split[3];
     let bbs_code = url_split[4];
 
-    fetch('/api/v2/bbs/w/comment/' + bbs_id + '-' + bbs_code + '/normal').then(function(res) {
+    let lang_data = new FormData();
+    lang_data.append('data', 'normal comment tool return upvote');
+
+    fetch('/api/lang', {
+        method : 'POST',
+        body : lang_data,
+    }).then(function(res) {
         return res.json();
-    }).then(function(data) {
-        let data_html = '';
+    }).then(function(lang) {
+        lang = lang["data"];
 
-        if(data) {
-            let lang = data["language"];
-            data = data["data"];
+        fetch('/api/v2/bbs/w/comment/' + bbs_id + '-' + bbs_code + '/normal').then(function(res) {
+            return res.json();
+        }).then(function(data) {
+            let data_html = '';
+
+            if(data) {
+                data = data["data"];
 
-            let end_render = [];
-            let select = '<select id="opennamu_comment_select" name="comment_select">';
-            select += '<option value="0">' + lang["normal"] + '</option>';
+                let end_render = [];
+                let select = '<select id="opennamu_comment_select" name="comment_select">';
+                select += '<option value="0">' + lang["normal"] + '</option>';
 
-            for(let for_a in data) {
-                let data_in = data[for_a];
+                for(let for_a in data) {
+                    let data_in = data[for_a];
 
-                let code_id = data_in["id"] + '-' + data_in["code"];
-                code_id = code_id.replace(/^[0-9]+-[0-9]+-/, '');
+                    let code_id = data_in["id"] + '-' + data_in["code"];
+                    code_id = code_id.replace(/^[0-9]+-[0-9]+-/, '');
 
-                let count = 0;
-                for(let for_a = 0; for_a < code_id.length; for_a++) {
-                    if(code_id[for_a] === '-') {
-                        count += 1;
+                    let count = 0;
+                    for(let for_a = 0; for_a < code_id.length; for_a++) {
+                        if(code_id[for_a] === '-') {
+                            count += 1;
+                        }
                     }
+                    
+                    select += '<option value="' + code_id + '">' + code_id + '</option>';
+
+                    let color = 'default';
+                    let date = '';
+
+                    date += '<a href="javascript:opennamu_change_comment(\'' + code_id + '\');">(' + lang["comment"] + ')</a> ';
+                    date += '<a href="/bbs/tool/' + bbs_id + '/' + bbs_code + '/' + code_id + '">(' + lang["tool"] + ')</a> ';
+                    date += data_in["comment_date"];
+
+                    data_html += '<span style="padding-left: ' + String(20 * count) + 'px;"></span>';
+                    data_html += opennamu_get_thread_ui(
+                        data_in["comment_user_id_render"], 
+                        date, 
+                        '<div class="opennamu_comment_scroll" id="opennamu_thread_render_' + code_id + '">' + opennamu_xss_filter(data_in["comment"]) + '</div>',
+                        code_id,
+                        color,
+                        '',
+                        'width: calc(100% - ' + String(20 * count) + 'px);',
+                        ''
+                    );
+
+                    end_render.push([
+                        data_in["comment"],
+                        code_id
+                    ]);
                 }
-                
-                select += '<option value="' + code_id + '">' + code_id + '</option>';
-
-                let color = 'default';
-                let date = '';
-
-                date += '<a href="javascript:opennamu_change_comment(\'' + code_id + '\');">(' + lang["comment"] + ')</a> ';
-                date += '<a href="/bbs/tool/' + bbs_id + '/' + bbs_code + '/' + code_id + '">(' + lang["tool"] + ')</a> ';
-                date += data_in["comment_date"];
-
-                data_html += '<span style="padding-left: ' + String(20 * count) + 'px;"></span>';
-                data_html += opennamu_get_thread_ui(
-                    data_in["comment_user_id_render"], 
-                    date, 
-                    '<div class="opennamu_comment_scroll" id="opennamu_thread_render_' + code_id + '">' + opennamu_xss_filter(data_in["comment"]) + '</div>',
-                    code_id,
-                    color,
-                    '',
-                    'width: calc(100% - ' + String(20 * count) + 'px);',
-                    ''
-                );
-
-                end_render.push([
-                    data_in["comment"],
-                    code_id
-                ]);
-            }
 
-            select += '</select> <a href="javascript:opennamu_return_comment();">(' + lang["return"] + ')</a>';
-            select += '<hr class="main_hr">';
+                select += '</select> <a href="javascript:opennamu_return_comment();">(' + lang["return"] + ')</a>';
+                select += '<hr class="main_hr">';
 
-            if(document.getElementById('opennamu_bbs_w_post_select')) {
-                document.getElementById('opennamu_bbs_w_post_select').innerHTML = select;
-            }
+                if(document.getElementById('opennamu_bbs_w_post_select')) {
+                    document.getElementById('opennamu_bbs_w_post_select').innerHTML = select;
+                }
 
-            if(document.getElementById('opennamu_bbs_w_post_tabom')) {
-                document.getElementById('opennamu_bbs_w_post_tabom').innerHTML = '' +
-                    '<a href="javascript:void(0);" id="opennamu_tabom_button">' +
-                        '<span class="opennamu_bbs_w_post_tabom opennamu_svg opennamu_svg_tabom">&nbsp;</span>' +
-                    '</a>' +
-                    '<hr class="main_hr">' +
-                    '<span>' + lang["upvote"] + '</span> <span class="opennamu_tabom_count"></span>' +
-                '';
-            }
+                if(document.getElementById('opennamu_bbs_w_post_tabom')) {
+                    document.getElementById('opennamu_bbs_w_post_tabom').innerHTML = '' +
+                        '<a href="javascript:void(0);" id="opennamu_tabom_button">' +
+                            '<span class="opennamu_bbs_w_post_tabom opennamu_svg opennamu_svg_tabom">&nbsp;</span>' +
+                        '</a>' +
+                        '<hr class="main_hr">' +
+                        '<span>' + lang["upvote"] + '</span> <span class="opennamu_tabom_count"></span>' +
+                    '';
+                }
 
-            document.getElementById('opennamu_bbs_w_post').innerHTML = data_html;
-            
-            opennamu_load_tabom_count(bbs_id, bbs_code);
-
-            document.getElementById('opennamu_tabom_button').addEventListener("click", function() {
-                opennamu_post_tabom(bbs_id, bbs_code);
-            });
-
-            for(let for_a = 0; for_a < end_render.length; for_a++) {
-                let observer = new IntersectionObserver(entries => {
-                    entries.forEach(entry => {
-                        if(entry.isIntersecting) {
-                            opennamu_do_render(
-                                'opennamu_thread_render_' + end_render[for_a][1],
-                                end_render[for_a][0], 
-                                '',
-                                'thread'
-                            );
-
-                            observer.unobserve(entry.target);
-                        }
-                    });
+                document.getElementById('opennamu_bbs_w_post').innerHTML = data_html;
+                
+                opennamu_load_tabom_count(bbs_id, bbs_code);
+
+                document.getElementById('opennamu_tabom_button').addEventListener("click", function() {
+                    opennamu_post_tabom(bbs_id, bbs_code);
                 });
 
-                observer.observe(document.getElementById('opennamu_thread_render_' + end_render[for_a][1]));
+                for(let for_a = 0; for_a < end_render.length; for_a++) {
+                    let observer = new IntersectionObserver(entries => {
+                        entries.forEach(entry => {
+                            if(entry.isIntersecting) {
+                                opennamu_do_render(
+                                    'opennamu_thread_render_' + end_render[for_a][1],
+                                    end_render[for_a][0], 
+                                    '',
+                                    'thread'
+                                );
+
+                                observer.unobserve(entry.target);
+                            }
+                        });
+                    });
+
+                    observer.observe(document.getElementById('opennamu_thread_render_' + end_render[for_a][1]));
+                }
             }
-        }
+        });
     });
 }

+ 59 - 48
views/main_css/js/route/list_recent_discuss.js

@@ -14,69 +14,80 @@ function opennamu_list_recent_discuss() {
         num = url_split[2];
     }
 
-    fetch('/api/v2/recent_discuss/' + set_type + '/' + num).then(function(res) {
+    let lang_data = new FormData();
+    lang_data.append('data', 'normal close_discussion open_discussion admin_tool closed stop agreed_discussion');
+
+    fetch('/api/lang', {
+        method : 'POST',
+        body : lang_data,
+    }).then(function(res) {
         return res.json();
-    }).then(function(data) {
-        let lang = data["language"];
-        let auth = data["auth"];
-        data = data["data"];
+    }).then(function(lang) {
+        lang = lang["data"];
+        
+        fetch('/api/v2/recent_discuss/' + set_type + '/' + num).then(function(res) {
+            return res.json();
+        }).then(function(data) {
+            let auth = data["auth"];
+            data = data["data"];
+
+            let data_html = '';
+
+            let option_list = [
+                ['normal', lang['normal']],
+                ['close', lang['close_discussion']],
+                ['open', lang['open_discussion']]
+            ];
+            for(let for_a = 0; for_a < option_list.length; for_a++) {
+                data_html += '<a href="/recent_discuss/1/' + option_list[for_a][0] + '">(' + option_list[for_a][1] + ')</a> ';
+            }
 
-        let data_html = '';
+            data_html += '<hr class="main_hr">';
 
-        let option_list = [
-            ['normal', lang['normal']],
-            ['close', lang['close_discussion']],
-            ['open', lang['open_discussion']]
-        ];
-        for(let for_a = 0; for_a < option_list.length; for_a++) {
-            data_html += '<a href="/recent_discuss/1/' + option_list[for_a][0] + '">(' + option_list[for_a][1] + ')</a> ';
-        }
+            if(auth["hidel"] === true) {
+                data_html += '<a id="opennamu_list_admin_tool_button" href="javascript:void(0);">(' + lang["admin_tool"] + ')</a>';
 
-        data_html += '<hr class="main_hr">';
+                data_html += '<span id="opennamu_list_admin_tool" style="display: none;">';
+                data_html += 'test';
+                data_html += '</span>';
 
-        if(auth["hidel"] === true) {
-            data_html += '<a id="opennamu_list_admin_tool_button" href="javascript:void(0);">(' + lang["admin_tool"] + ')</a>';
+                data_html += '<span class="opennamu_popup_footnote" style="display: none;" id="opennamu_list_admin_tool_button_load">';
+                data_html += '</span>';
 
-            data_html += '<span id="opennamu_list_admin_tool" style="display: none;">';
-            data_html += 'test';
-            data_html += '</span>';
+                data_html += '<hr class="main_hr">';
+            }
 
-            data_html += '<span class="opennamu_popup_footnote" style="display: none;" id="opennamu_list_admin_tool_button_load">';
-            data_html += '</span>';
+            for(let for_a = 0; for_a < data.length; for_a++) {
+                let doc_name = opennamu_do_url_encode(data[for_a][0]);
 
-            data_html += '<hr class="main_hr">';
-        }
+                let left = '<a href="/thread/' + data[for_a][3] + '">' + opennamu_xss_filter(data[for_a][1]) + '</a> ';
+                left += '<a href="/w/' + doc_name + '">(' + opennamu_xss_filter(data[for_a][0]) + ')</a> ';
 
-        for(let for_a = 0; for_a < data.length; for_a++) {
-            let doc_name = opennamu_do_url_encode(data[for_a][0]);
+                if(auth["hidel"] === true) {
+                    left = '<label><input type="checkbox"> ' + left + '</label>';
+                }
 
-            let left = '<a href="/thread/' + data[for_a][3] + '">' + opennamu_xss_filter(data[for_a][1]) + '</a> ';
-            left += '<a href="/w/' + doc_name + '">(' + opennamu_xss_filter(data[for_a][0]) + ')</a> ';
+                let right = '';
+                if(data[for_a][4] === 'O') {
+                    right += lang['closed'] + ' | ';
+                } else if(data[for_a][4] === 'S') {
+                    right += lang['stop'] + ' | ';
+                }
 
-            if(auth["hidel"] === true) {
-                left = '<label><input type="checkbox"> ' + left + '</label>';
-            }
+                if(data[for_a][8] !== '') {
+                    right += lang['agreed_discussion'] + ' | ';
+                }
 
-            let right = '';
-            if(data[for_a][4] === 'O') {
-                right += lang['closed'] + ' | ';
-            } else if(data[for_a][4] === 'S') {
-                right += lang['stop'] + ' | ';
-            }
+                right += '<a href="/thread/' + data[for_a][3] + '#' + data[for_a][7] + '">#' + data[for_a][7] + '</a> | ';
+                right += data[for_a][6] + ' | ';
+                right += data[for_a][2];
 
-            if(data[for_a][8] !== '') {
-                right += lang['agreed_discussion'] + ' | ';
+                data_html += opennamu_make_list(left, right);
             }
 
-            right += '<a href="/thread/' + data[for_a][3] + '#' + data[for_a][7] + '">#' + data[for_a][7] + '</a> | ';
-            right += data[for_a][6] + ' | ';
-            right += data[for_a][2];
-
-            data_html += opennamu_make_list(left, right);
-        }
-
-        data_html += opennamu_page_control('/recent_discuss/{}/' + set_type, Number(num), data.length);
+            data_html += opennamu_page_control('/recent_discuss/{}/' + set_type, Number(num), data.length);
 
-        document.getElementById('opennamu_list_recent_discuss').innerHTML = data_html;
+            document.getElementById('opennamu_list_recent_discuss').innerHTML = data_html;
+        });
     });
 }