Kaynağa Gözat

초기적인 브라우저 알림 기능 도입

Surplus_Up (2DU) 7 yıl önce
ebeveyn
işleme
6667dd9c71

+ 1 - 0
language/en-US.json

@@ -162,6 +162,7 @@
         "name_or_ip_or_regex" : "ID or IP or Regex",
         "name_or_ip_or_regex" : "ID or IP or Regex",
         "ban_period" : "Period to block",
         "ban_period" : "Period to block",
         "not_sure" : "Not sure",
         "not_sure" : "Not sure",
+        "use_push_alarm" : "Enable Push Notification",
         "_comment_2.1_" : "Filter",
         "_comment_2.1_" : "Filter",
             "_comment_2.1.1_" : "List",
             "_comment_2.1.1_" : "List",
                 "interwiki_list" : "Interwiki(s) list",
                 "interwiki_list" : "Interwiki(s) list",

+ 1 - 0
language/ko-KR.json

@@ -162,6 +162,7 @@
         "name_or_ip_or_regex" : "ID or IP or 정규식",
         "name_or_ip_or_regex" : "ID or IP or 정규식",
         "ban_period" : "차단 기간",
         "ban_period" : "차단 기간",
         "not_sure" : "확실하지 않음",
         "not_sure" : "확실하지 않음",
+        "use_push_alarm" : "푸쉬 알림 사용",
         "_comment_2.1_" : "필터",
         "_comment_2.1_" : "필터",
             "_comment_2.1.1_" : "목록",
             "_comment_2.1.1_" : "목록",
                 "interwiki_list" : "인터위키 목록",
                 "interwiki_list" : "인터위키 목록",

+ 8 - 9
route/tool/func.py

@@ -413,25 +413,24 @@ def next_fix(link, num, page, end = 50):
     return list_data
     return list_data
 
 
 def other2(data):
 def other2(data):
+    req_list = ''
+    for i_data in os.listdir(os.path.join("views", "main_css", "css")):
+        req_list += '<link rel="stylesheet" href="/views/main_css/css/' + i_data + '">'
+    
+    for i_data in os.listdir(os.path.join("views", "main_css", "js")):
+        req_list += '<script src="/views/main_css/js/' + i_data + '"></script>'
+
     data += ['', '''
     data += ['', '''
-        <link rel="stylesheet" href="/views/main_css/css/main.css">
-        <link rel="stylesheet" href="/views/main_css/css/oauth.css">
         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
         <link   rel="stylesheet"
         <link   rel="stylesheet"
                 href="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.css"
                 href="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.css"
                 integrity="sha384-dbVIfZGuN1Yq7/1Ocstc1lUEm+AT+/rCkibIcC/OmWo5f0EA48Vf8CytHzGrSwbQ"
                 integrity="sha384-dbVIfZGuN1Yq7/1Ocstc1lUEm+AT+/rCkibIcC/OmWo5f0EA48Vf8CytHzGrSwbQ"
                 crossorigin="anonymous">
                 crossorigin="anonymous">
-        <script src="/views/main_css/js/open_foot.js"></script>
-        <script src="/views/main_css/js/folding.js"></script>
-        <script src="/views/main_css/js/topic_load.js"></script>
-        <script src="/views/main_css/js/do_preview.js"></script>
-        <script src="/views/main_css/js/load_ver.js"></script>
-        <script src="/views/main_css/js/insert_data.js"></script>
         <script src="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.js"
         <script src="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.js"
                 integrity="sha384-2BKqo+exmr9su6dir+qCw08N2ZKRucY4PrGQPPWU1A7FtlCGjmEGFqXCv5nyM5Ij"
                 integrity="sha384-2BKqo+exmr9su6dir+qCw08N2ZKRucY4PrGQPPWU1A7FtlCGjmEGFqXCv5nyM5Ij"
                 crossorigin="anonymous"></script>
                 crossorigin="anonymous"></script>
         <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
         <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
-    ''']
+    ''' + req_list]
 
 
     return data
     return data
 
 

+ 1 - 1
route/topic.py

@@ -205,7 +205,7 @@ def topic_2(conn, name, sub):
             data += '''
             data += '''
                 <div id="plus"></div>
                 <div id="plus"></div>
                 <script>topic_load("''' + name + '''", "''' + sub + '''", "''' + str(number) + '''");</script>
                 <script>topic_load("''' + name + '''", "''' + sub + '''", "''' + str(number) + '''");</script>
-                <a id="reload" href="javascript:void(0);" onclick="location.href.endsWith(\'#reload\')? location.reload(true):location.href=\'#reload\'">(''' + load_lang('reload') + ''')</a>
+                <a id="reload" href="javascript:void(0);" onclick="reload();">(''' + load_lang('reload') + ''')</a> <a id="reload" href="javascript:void(0);" onclick="req_alarm();">(''' + load_lang('use_push_alarm') + ''')</a>
                 <hr class=\"main_hr\">
                 <hr class=\"main_hr\">
                 <form style="''' + display + '''" method="post">
                 <form style="''' + display + '''" method="post">
                     <textarea style="height: 100px;" name="content"></textarea>
                     <textarea style="height: 100px;" name="content"></textarea>

+ 3 - 0
views/main_css/js/reload.js

@@ -0,0 +1,3 @@
+function reload() {
+    location.href.endsWith('#reload') ? location.reload(true) : location.href = '#reload';
+}

+ 10 - 0
views/main_css/js/req_browser_alarm.js

@@ -0,0 +1,10 @@
+// https://programmingsummaries.tistory.com/379
+function req_alarm() {
+    Notification.requestPermission(function (result) {
+        if(result === 'denied') {
+            document.cookie = 'topic_req=false;';
+        } else {
+            document.cookie = 'topic_req=false;';
+        }
+    });
+}

+ 11 - 0
views/main_css/js/topic_load.js

@@ -12,6 +12,17 @@ function topic_load(name, sub, num) {
                 if(this.responseText) {
                 if(this.responseText) {
                     doc_data.innerHTML += '<hr class="main_hr">(New)<hr class="main_hr">';
                     doc_data.innerHTML += '<hr class="main_hr">(New)<hr class="main_hr">';
 
 
+                    // https://programmingsummaries.tistory.com/379
+                    var options = {
+                        body: 'New topic'
+                    }
+                   
+                    var notification = new Notification("openNAMU", options);
+                    
+                    setTimeout(function () {
+                        notification.close();
+                    }, 5000);
+
                     clearInterval(test);
                     clearInterval(test);
                 }
                 }
             }
             }