Просмотр исходного кода

Merge pull request #773 from 2du/master

모자란 것 추가, 버그 수정
잉여개발기 (SPDV) 6 лет назад
Родитель
Сommit
fad1c9805a

+ 9 - 2
route/api_version.py

@@ -6,12 +6,19 @@ def api_version_2(conn, r_ver, c_ver):
     n_ver = ''
     data = None
 
+    curs.execute(db_change('select data from other where name = "update"'))
+    up_data = curs.fetchall()
+    if up_data:
+        up_data = up_data[0][0]
+    else:
+        up_data = 'stable'
+
     data = urllib.request.urlopen('https://raw.githubusercontent.com/2du/openNAMU/master/version.json')
     if data and data.getcode() == 200:
         try:
             json_data = json.loads(data.read().decode())
-            if 'master' in json_data:
-                n_ver = json_data['master']['r_ver']
+            if up_data in json_data:
+                n_ver = json_data[up_data]['r_ver']
         except:
             pass
         

+ 3 - 2
route/tool/func.py

@@ -402,7 +402,8 @@ def other2(data):
         'topic_main_load.js' : '2',
         'topic_plus_load.js' : '2',
         'do_stop_exit.js' : '2',
-        'do_open_folding' : '2'
+        'do_open_folding.js' : '2',
+        'shotcuts_set.js' : '2'
     }
     for i_data in os.listdir(os.path.join("views", "main_css", "js")):
         if i_data in js_filter:
@@ -606,7 +607,7 @@ def ip_pas(raw_ip):
         curs.execute(db_change("select data from other where name = 'ip_view'"))
         data = curs.fetchall()
         if data and data[0][0] != '':
-            ip = re.sub('((?:(?!\.).)+)$', 'xxx', raw_ip)
+            ip = re.sub('((?:(?!\.).)+)\.((?:(?!\.).)+)$', '*.*', raw_ip)
 
             if not admin_check(1):
                 hide = 1

+ 1 - 1
route/tool/set_mark/tool.py

@@ -51,7 +51,7 @@ def link_fix(main_link):
     main_link = re.sub('^파일:', 'file:', main_link)
     main_link = re.sub('^분류:', 'category:', main_link)
 
-    other_link = re.search('[^\\\\](#.+)$', main_link)
+    other_link = re.search('[^\\\\]?(#.+)$', main_link)
     if other_link:
         other_link = other_link.groups()[0]
 

+ 1 - 1
route/topic.py

@@ -63,7 +63,7 @@ def topic_2(conn, name, sub):
             curs.execute(db_change("select ip from topic where title = ? and sub = ? and id = ?"), [name, sub, rd_data])
             ip_data = curs.fetchall()
             if ip_data and ip_or_user(ip_data[0][0]) == 0:
-                curs.execute(db_change('insert into alarm (name, data, date) values (?, ?, ?)'), [ip_data[0][0], ip + ' - <a href="/topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '#' + str(num) + '">' + load_lang('discussion', 1) + '</a>', today])
+                curs.execute(db_change('insert into alarm (name, data, date) values (?, ?, ?)'), [ip_data[0][0], ip + ' - <a href="/topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '#' + str(num) + '">discussion</a>', today])
             
         data = re.sub("(?P<in>#(?:[0-9]+))", '[[\g<in>]]', data)
 

+ 10 - 10
route/view_read.py

@@ -180,16 +180,6 @@ def view_read_2(conn, name):
         adsense_code = adsense_code.format(curs.fetchall()[0][0])
     else:
         adsense_code = adsense_code.format('')
-
-    curs.execute(db_change("select data from other where name = 'body'"))
-    body = curs.fetchall()
-    if body:
-        div = body[0][0] + '<hr class=\"main_hr\">' + div
-        
-    curs.execute(db_change("select data from other where name = 'bottom_body'"))
-    body = curs.fetchall()
-    if body:
-        div += '<hr class=\"main_hr\">' + body[0][0]
     
     div = adsense_code + '<div>' + div + '</div>'
 
@@ -201,6 +191,16 @@ def view_read_2(conn, name):
             <script>load_user_info("''' + user_name + '''");</script>
         ''' + div
 
+    curs.execute(db_change("select data from other where name = 'body'"))
+    body = curs.fetchall()
+    if body:
+        div = body[0][0] + '<hr class=\"main_hr\">' + div
+        
+    curs.execute(db_change("select data from other where name = 'bottom_body'"))
+    body = curs.fetchall()
+    if body:
+        div += '<hr class=\"main_hr\">' + body[0][0]
+
     if ip_or_user(ip) == 0:
         curs.execute(db_change("select title from scan where user = ? and title = ?"), [ip, name])
         if curs.fetchall():

+ 2 - 2
version.json

@@ -1,10 +1,10 @@
 {
     "master" : {
-        "r_ver" : "v3.1.4-stable-01",
+        "r_ver" : "v3.1.4-stable-02",
         "c_ver" : "400004",
         "s_ver" : "5"
     }, "stable" : {
-        "r_ver" : "v3.1.4-stable-01",
+        "r_ver" : "v3.1.4-stable-02",
         "c_ver" : "400004",
         "s_ver" : "5"
     }

+ 33 - 27
views/main_css/js/shotcuts_set.js

@@ -1,31 +1,37 @@
-all_list = [
-    ['F', '/'],
-    ['C', '/recent_changes'],
-    ['D', '/recent_discuss'],
-    ['A', '/random']
-];
+var check = setInterval(function() {
+    try {
+        all_list = [
+            ['F', '/'],
+            ['C', '/recent_changes'],
+            ['D', '/recent_discuss'],
+            ['A', '/random']
+        ];
 
-all_list.forEach(function(element) {
-    shortcut.add(element[0], function() {
-        window.location.href = element[1];
-    }, {
-        'disable_in_input' : true
-    }); 
-});
+        all_list.forEach(function(element) {
+            shortcut.add(element[0], function() {
+                window.location.href = element[1];
+            }, {
+                'disable_in_input' : true
+            }); 
+        });
 
-all_list_2 = [
-    ['W', '/w'],
-    ['H', '/history'],
-    ['E', '/edit'],
-];
+        all_list_2 = [
+            ['W', '/w'],
+            ['H', '/history'],
+            ['E', '/edit'],
+        ];
 
-all_list_2.forEach(function(element) {    
-    shortcut.add(element[0], function() {
-        href_d = window.location.href.split("/");
-        if(href_d[4]) { 
-            window.location.href = element[1] + '/' + href_d[4];
-        }
-    }, {
-        'disable_in_input' : true
-    });
+        all_list_2.forEach(function(element) {    
+            shortcut.add(element[0], function() {
+                href_d = window.location.href.split("/");
+                if(href_d[4]) { 
+                    window.location.href = element[1] + '/' + href_d[4];
+                }
+            }, {
+                'disable_in_input' : true
+            });
+        });
+
+        clearInterval(check);
+    } catch { }
 });

+ 1 - 1
views/marisa/css/dark.css

@@ -3,7 +3,7 @@ html, #main {
     color: white;
 }
 
-.cel_in_cel, #background, div#pre_search, #toc, #cate, #redirect, #mobile_menu {
+.cel_in_cel, #background, div#pre_search, #toc, #cate, #redirect {
     background: #1f2023;
     border-color: #1f2023;
 }

+ 25 - 27
views/marisa/css/main.css

@@ -53,7 +53,7 @@ li {
     position: relative;
     top: 0;
     left: 0;
-    height: 20px;
+    height: auto;
 }
 
 #main {
@@ -292,32 +292,6 @@ div#pre_search a {
     margin-top: 10px;
 }
 
-#top_tool_mobile {
-    float: right;
-}
-
-#mobile_menu {
-    width: 200px;
-    height: 100%;
-    position: fixed;
-    top: 0;
-    right: 0;
-    background: white;
-    border-left: 2px solid gainsboro;
-    z-index: 1;
-    overflow-y: scroll;
-}
-
-#mobile_menu button {
-    color: dodgerblue;
-}
-
-#mobile_menu_main {
-    width: 90%;
-    margin: auto;
-    margin-top: 5%;
-}
-
 #toc {
     max-width: 300px;
 }
@@ -429,4 +403,28 @@ div#last_edit {
 
 #mobile_search_input {
     border-radius: 10px;
+}
+
+#top_menu_groups {
+    display: inline-block;
+}
+
+@media (max-width: 600px) {
+    #top_tool {
+        float: none;
+        display: inline;
+    }
+
+    #top_menu_groups {
+        margin-left: 20px;
+    }
+
+    #search {
+        margin-top: 10px;
+        width: 100%;
+    }
+
+    #search_input {
+        width: calc(100% - 60px);
+    }
 }

+ 64 - 88
views/marisa/index.html

@@ -4,10 +4,10 @@
         <meta charset="utf-8">
         <title>{{imp[0]}} - {{imp[1][0]}}</title>
         {{imp[3][3]|safe}}
-        <link rel="stylesheet" href="/views/marisa/css/main.css?ver=5">
-        <script src="/views/marisa/js/search.js?ver=1"></script>
+        <link rel="stylesheet" href="/views/marisa/css/main.css?ver=6">
+        <script src="/views/marisa/js/search.js?ver=2"></script>
         <script src="/views/marisa/js/skin_set.js?ver=2"></script>
-        <script src="/views/marisa/js/main.js?ver=1"></script>
+        <script src="/views/marisa/js/main.js?ver=2"></script>
         <script>window.onload = function () { search_do(); skin_set(); }</script>
         <script src="https://code.iconify.design/1/1.0.3/iconify.min.js"></script>
         <link rel="shortcut icon" href="/views/main_css/file/favicon.ico?ver=1">
@@ -25,67 +25,76 @@
                     <div id="logo">
                         <a href="/">{{imp[1][4]|safe}}</a>
                     </div>
-                    <div id="top_tool" class="not_mobile">
-                        <div id="top_tool_cel">
-                            <a href="javascript:void(0);" onclick="opening('recent_cel');">
-                                <span class="iconify" data-icon="ic:baseline-access-time" data-inline="true"></span>
-                                {{'recent'|load_lang}}
-                                <span class="iconify" data-icon="ic:baseline-arrow-drop-down" data-inline="true"></span>
-                            </a>
-                            <div id="recent_cel" class="cel_in_cel" style="display: none;">
-                                <a href="/recent_changes">
-                                    <span class="iconify" data-icon="ic:baseline-autorenew" data-inline="true"></span>
-                                    {{'edit'|load_lang}}
-                                </a>
-                                <hr>
-                                <a href="/recent_discuss">
-                                    <span class="iconify" data-icon="ic:baseline-add-comment" data-inline="true"></span>
-                                    {{'discussion'|load_lang}}
+                    <div id="top_tool">
+                        <div id="top_menu_groups">
+                            <div id="top_tool_cel">
+                                <a href="javascript:void(0);" onclick="opening('recent_cel');">
+                                    <span class="iconify" data-icon="ic:baseline-access-time" data-inline="true"></span>
+                                    <span class="not_mobile">{{'recent'|load_lang}}</span>
+                                    <span class="iconify" data-icon="ic:baseline-arrow-drop-down" data-inline="true"></span>
                                 </a>
+                                <div id="recent_cel" class="cel_in_cel" style="display: none;">
+                                    <a href="/recent_changes">
+                                        <span class="iconify" data-icon="ic:baseline-autorenew" data-inline="true"></span>
+                                        {{'edit'|load_lang}}
+                                    </a>
+                                    <hr>
+                                    <a href="/recent_discuss">
+                                        <span class="iconify" data-icon="ic:baseline-add-comment" data-inline="true"></span>
+                                        {{'discussion'|load_lang}}
+                                    </a>
+                                </div>
                             </div>
-                        </div>
-                         
-                        <div id="top_tool_cel">
-                            <a href="javascript:void(0);" onclick="opening('other_cel');">
-                                <span class="iconify" data-icon="ic:baseline-archive" data-inline="true"></span>
-                                {{'other'|load_lang}}
-                                <span class="iconify" data-icon="ic:baseline-arrow-drop-down" data-inline="true"></span>
-                            </a>
-                            <div id="other_cel" class="cel_in_cel" style="display: none;">
-                                <a href="/random">
-                                    <span class="iconify" data-icon="ic:baseline-shuffle" data-inline="true"></span>
-                                    {{'random'|load_lang}}
-                                </a>
-                                <hr>
-                                <a href="/other">
-                                    <span class="iconify" data-icon="ic:baseline-build" data-inline="true"></span>
-                                    {{'tool'|load_lang}}
-                                </a>
-                                <hr>
-                                <a href="/skin_set">
-                                    <span class="iconify" data-icon="ic:baseline-settings" data-inline="true"></span>
-                                    {{'skin_setting'|load_lang}}
+                             
+                            <div id="top_tool_cel">
+                                <a href="javascript:void(0);" onclick="opening('other_cel');">
+                                    <span class="iconify" data-icon="ic:baseline-archive" data-inline="true"></span>
+                                    <span class="not_mobile">{{'other'|load_lang}}</span>
+                                    <span class="iconify" data-icon="ic:baseline-arrow-drop-down" data-inline="true"></span>
                                 </a>
+                                <div id="other_cel" class="cel_in_cel" style="display: none;">
+                                    <a href="/random">
+                                        <span class="iconify" data-icon="ic:baseline-shuffle" data-inline="true"></span>
+                                        {{'random'|load_lang}}
+                                    </a>
+                                    <hr>
+                                    <a href="/other">
+                                        <span class="iconify" data-icon="ic:baseline-build" data-inline="true"></span>
+                                        {{'tool'|load_lang}}
+                                    </a>
+                                    {% if imp[2][9] != '0' %}
+                                        <hr>
+                                        <a href="/manager">
+                                            <span class="iconify" data-icon="ic:baseline-how-to-reg" data-inline="true"></span>
+                                            {{'admin'|load_lang}}
+                                        </a>
+                                    {% endif %}
+                                    <hr>
+                                    <a href="/skin_set">
+                                        <span class="iconify" data-icon="ic:baseline-settings" data-inline="true"></span>
+                                        {{'skin_setting'|load_lang}}
+                                    </a>
+                                </div>
                             </div>
-                        </div>
-                         
-                        <div id="top_tool_cel">
-                            <a href="/user">
-                                {% if imp[2][2] == 1 %}
-                                    {% if imp[2][8] != '0' %}
-                                        <span class="iconify" data-icon="ic:baseline-add-alert" data-inline="true"></span>
+                             
+                            <div id="top_tool_cel">
+                                <a href="/user">
+                                    {% if imp[2][2] == 1 %}
+                                        {% if imp[2][8] != '0' %}
+                                            <span class="iconify" data-icon="ic:baseline-add-alert" data-inline="true"></span>
+                                        {% else %}
+                                            <span class="iconify" data-icon="ic:baseline-person-add" data-inline="true"></span>
+                                        {% endif %}
                                     {% else %}
-                                        <span class="iconify" data-icon="ic:baseline-person-add" data-inline="true"></span>
+                                        <span class="iconify" data-icon="ic:baseline-person" data-inline="true"></span>
                                     {% endif %}
-                                {% else %}
-                                    <span class="iconify" data-icon="ic:baseline-person" data-inline="true"></span>
-                                {% endif %}
-                                {{imp[2][5]}}
-                            </a>
+                                    <span class="not_mobile">{{imp[2][5]}}</span>
+                                </a>
+                            </div>
                         </div>
                         <form method="post" action="/search" id="search" role="search">
-                            <input id="search_input" name="search" placeholder="{{'search'|load_lang}}" autocomplete="off" type="search">
+                            <input id="search_input" name="search" onclick="view_search();" placeholder="{{'search'|load_lang}}" autocomplete="off" type="search">
                             |
                             <button type="submit" formaction="/goto">
                                 <span class="iconify" data-icon="ic:round-find-in-page" data-inline="true"></span>
@@ -97,39 +106,6 @@
                             <div id="pre_search" style="display: none;"></div>
                         </form>
                     </div>
-                    <div id="top_tool_mobile" class="is_mobile">
-                        <a href="javascript:void(0);" onclick="opening('mobile_menu');">
-                            <span class="iconify" data-icon="ic:baseline-reorder" data-inline="true"></span> {{'tool'|load_lang}}
-                        </a>
-                    </div>
-                </div>
-            </div>
-            <div id="mobile_menu" class="is_mobile" style="display: none;">
-                <div id="mobile_menu_main">
-                    <form method="post" action="/search" id="mobile_search" role="search">
-                        <input id="mobile_search_input" name="search" placeholder="{{'search'|load_lang}}" autocomplete="off" type="search">
-                        <br>
-                        <button id="mobile_button_first" type="submit" formaction="/goto">
-                            <span class="iconify" data-icon="ic:round-find-in-page" data-inline="true"></span>
-                        </button>
-                        |
-                        <button type="submit" formaction="/search">
-                            <span class="iconify" data-icon="ic:baseline-search" data-inline="true"></span>
-                        </button>
-                        |
-                        <a href="javascript:void(0);" onclick="opening('mobile_menu');">
-                            <span class="iconify" data-icon="ic:baseline-reorder" data-inline="true"></span>
-                        </a>
-                    </form>
-                    <h2>{{'recent'|load_lang}}</h2>
-                    <li><a href="/recent_changes">{{'edit'|load_lang}}</a></li>
-                    <li><a href="/recent_discuss">{{'discussion'|load_lang}}</a></li>
-                    <h2>{{'other'|load_lang}}</h2>
-                    <li><a href="/random">{{'random'|load_lang}}</a></li>
-                    <li><a href="/other">{{'tool'|load_lang}}</a></li>
-                    <li><a href="/skin_set">{{'skin_setting'|load_lang}}</a></li>
-                    <h2>{{'user'|load_lang}}</h2>
-                    <li><a href="/user">{{imp[2][5]}}</a></li>
                 </div>
             </div>
             <div id="main">

+ 1 - 1
views/marisa/info.json

@@ -1,5 +1,5 @@
 {
     "name" : "Marisa",
-    "skin_ver" : "v1.1.2",
+    "skin_ver" : "v1.1.3",
     "require_ver" : "5"
 }

+ 30 - 1
views/marisa/js/main.js

@@ -1,8 +1,37 @@
+var save_data = '';
+var open = 0;
+
 function opening(data) {
-    var element = document.getElementById(data);
+    save_data = data;
+    if(data === 'recent_cel') {
+        var element = document.getElementById(data);
+        var element_2 = document.getElementById('other_cel');
+    } else {
+        var element = document.getElementById(data);
+        var element_2 = document.getElementById('recent_cel');
+    }
+    
     if(element.style.display == 'none') {
         element.style.display = 'block';
+        element_2.style.display = 'none';
     } else {
         element.style.display = 'none';
     }
+
+    open = 1;
+    setTimeout(function() { open = 0; }, 100);
+}
+
+document.onclick = function(event) {
+    var element = document.getElementById(save_data);
+
+    for(var node = event.target; node != document.body; node = node.parentNode) {
+        if(save_data !== '' && open == 0) {
+            if(node.id === save_data) {
+                break;
+            } else {
+                element.style.display = 'none';
+            }
+        }
+    }
 }

+ 13 - 0
views/marisa/js/search.js

@@ -32,5 +32,18 @@ function search_do() {
     }
 
     var before = '';
+    save_data = 'pre_search';
+    open = 1;
+    setTimeout(function() { open = 0; }, 100);
     setInterval(search_load, 1000);
+}
+
+function view_search() {
+    var data = document.getElementById("pre_search").innerHTML;
+    if(data !== '') {
+        document.getElementById("pre_search").style.display = 'block';
+    }
+
+    open = 1;
+    setTimeout(function() { open = 0; }, 100);
 }