ソースを参照

Merge pull request #1077 from 2du/dev

Dev
잉여개발기 (SPDV) 5 年 前
コミット
a669ea106f

+ 1 - 0
requirements.txt

@@ -3,5 +3,6 @@ flask-Reggie
 tornado
 requests
 pymysql
+Pillow
 diff-match-patch
 pysha3; python_version < "3.6"

+ 5 - 1
route/main_image_view.py

@@ -6,9 +6,13 @@ def main_image_view_2(conn, name, app_var):
 
     mime_type = re.search(r'([^.]+)$', name)
     if mime_type:
+        mime_type = mime_type.group(1).lower()
+        if mime_type == 'svg':
+            mime_type = 'svg+xml'
+        
         return flask.send_from_directory(
             './' + app_var['path_data_image'], name, 
-            mimetype = 'image/' + mime_type.group(1).lower()
+            mimetype = 'image/' + mime_type
         )
     else:
         return main_error_404.main_error_404_2(conn)

+ 12 - 17
route/main_views.py

@@ -11,26 +11,21 @@ def main_views_2(conn, name):
         file_name = file_name.group(1)
         dir_name = './views/' + re.sub(r'\.{2,}', '', re.sub(r'([^/]+)$', '', name))
 
-        mime_type = re.search(r'([^.]+)$', file_name)
-        image_type = [
-            '.jpeg', 
-            '.jpg', 
-            '.gif', 
-            '.png', 
-            '.webp'
-        ]
-        if mime_type:
-            mime_type = mime_type.group(1).lower()
+        mime_type = file_name.split('.')
+        if len(mime_type) < 2:
+            mime_type = 'text/plain'
+        else:
+            mime_type = mime_type[len(mime_type) - 1].lower()
+            image_type = ['jpeg', 'jpg', 'gif', 'png', 'webp']
             if mime_type in image_type:
                 mime_type = 'image/' + mime_type
+            elif mime_type == 'js':
+                mime_type = 'text/javascript'
+            elif mime_type == 'txt':
+                mime_type = 'text/plain'
             else:
-                if mime_type == 'js':
-                    mime_type = 'text/javascript'
-                else:
-                    mime_type = 'text/' + mime_type
-        else:
-            mime_type = 'text/plain'
-
+                mime_type = 'text/' + mime_type
+        
         return flask.send_from_directory(
             dir_name, file_name, 
             mimetype = mime_type

+ 1 - 0
route/tool/func.py

@@ -24,6 +24,7 @@ for i in range(0, 2):
         import zipfile
         import shutil
         import threading
+        import PIL
         import logging
         import random
         import flask

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.2.0-stable-13 (beta-56) (dev-2021-03-13-01)",
+        "r_ver" : "v3.2.0-stable-13 (beta-57) (dev-2021-03-16-01)",
         "c_ver" : "3205500",
         "s_ver" : "11"
     }

+ 34 - 17
views/main_css/file/easter_egg.html

@@ -1,23 +1,40 @@
 <div id="easter_egg"></div>
 <script>
-    var random_num = String(Math.floor(Math.random() * 7));
-    var random_code = '';
-    
-    if(random_num === '6') {
-        random_code = 'DzjjcMNrTHU';
-    } else if(random_num === '5') {
-        random_code = 'xpg2Ag-xt_c';
-    } else if(random_num === '4') {
-        random_code = 'IKIoAlhQV-c';
-    } else if(random_num === '3') {
-        random_code = 'MLOvyLsYJvo';
-    } else if(random_num === '2') {
-        random_code = 'Fsppuynb440';
-    } else if(random_num === '1') {
-        random_code = 'DbTIoBK9Wvo';
+    var random_code = [
+        'DzjjcMNrTHU', // 상해홍차관
+        'xpg2Ag-xt_c', // 죽취비상
+        'IKIoAlhQV-c', // 유령악단
+        'MLOvyLsYJvo', // 플라워링 나이트
+        'Fsppuynb440', // 우상에 세계를 맡기고
+        'DbTIoBK9Wvo', // 고향별이 비치는 바다
+        'nytZOF0hp_c', // 오늘 밤은 표일한 에고이스트
+        'I9GiwMcg424', // 브와르 마법 도서관
+        '8NQSBvzjWZk', // 배드애플
+        'uiqEO6BK7BM', // 달까지 닿아라 불사의 연기
+        'np7BG71YTIY', // 라스트 리모드
+        '8gaqt1AOyck', // 쇄월
+        'EsnW_hyI-V8', // 디자이어 드라이브
+        'es9twrnfZ_Q', // 유심지의 유정천
+    ];
+    var get_num = location.search.replace('[^0-9]+', '');
+    if(get_num !== '' && Number(get_num) < random_code.length) {
+        var random_num = Number(get_num);
     } else {
-        random_code = 'nytZOF0hp_c'
+        var random_num = Math.floor(Math.random() * random_code.length);
     }
+    var random_code_select = random_code[random_num];
 
-    document.getElementById('easter_egg').innerHTML = '<iframe style="width: 560px; height: 315px;" src="https://www.youtube.com/embed/' + random_code + '" allowfullscreen></iframe>';
+    var i = 0;
+    var add_link = '';
+    while(i < random_code.length) {
+        add_link += '<a href="?select=' + String(i) + '">(' + String(i) + ')</a> ';
+        i += 1;
+    }
+
+    document.getElementById('easter_egg').innerHTML = '' +
+        add_link +
+        '<hr class="main_hr">' +
+        '<iframe     style="width: 560px; height: 315px;" ' +
+                    'src="https://www.youtube.com/embed/' + random_code_select + '" allowfullscreen></iframe>' +
+        '';
 </script>

+ 1 - 65
views/main_css/js/load_onmark_render.js

@@ -509,71 +509,7 @@ function do_onmark_render(test_mode = 1, name_id = '', name_include = '', name_d
         var data = '\n' + document.getElementById(name_id).innerHTML.replace(/\r/g, '') + '\n';
     } else {
     	var data = '\n' + (
-`[Include(틀:SCP)]
-
-||<-2><table align=center> {{{+2 [[객체 등급]]}}} [br] Safe (안전) ||
-|| 주소 || [[http://www.scp-wiki.net/object-classes|원문]], [[http://ko.scp-wiki.net/object-classes|한국어]] ||
-
->안전 등급 SCP들은 변칙적이지만 쉽고 안전하게 격리가 가능하다. 이것은 주로 재단이 해당 SCP를 잘 충분히 연구하여 격리에 특별한 자원이 더 필요하지 않은 경지에 이르렀거나, 또는 변칙성이 특수한 작동기제에 의해서만 발현되는 경우에 해당한다. 하지만 SCP를 안전 등급으로 분류하는 것은, 그것을 다루거나 활성화시키는 것이 위협적이지 않다는 의미가 아니다.
-
-== 설명 ==
-[[SCP 재단]]의 SCP 분류 등급 중 하나. 일종의 최하위 등급으로, 여기에도 속하지 못한 SCP는 [[http://ko.scp-wiki.net/log-of-anomalous-items|변칙 개체]]로 취급받는다. [[유클리드 등급]]이나 [[케테르 등급]]과 비교하면 상대적으로 안전하지만, 이는 어디까지나 상대적으로 새로운 변칙성이나 위험성이 발견되면 유클리드나 케테르로 상향될 수 있다. 물론 반대로 유클리드 등급이나 케테르 등급이었던 SCP가 안전 등급이 되는 일도 있다.
-
-등급의 부여는 격리 난이도에 따라 결정되기에 위험성과는 별개지만, 특별히 재단을 잘 아는 사람이 아니라면 대부분은 안전은 안전, 유클리드는 좀 위험, 케테르는 매우 위험 정도로 이해하는 경우가 대부분이며, 실제로 특별한 경우가 아닌 이상 위험성과 격리 난이도는 정비례하기에 일부 예외를 제외한다면 큰 문제는 없다.
-
-== 목록 ==
-{{{#!folding 펼치기
-* [[SCP-005]]
-* [[SCP-006]]
-* [[SCP-010]]
-* [[SCP-011]]
-* [[SCP-013]]
-* [[SCP-014]]
-* [[SCP-021]]
-* [[SCP-025]]
-* [[SCP-028]]
-* [[SCP-030]]
-* [[SCP-031]]
-* [[SCP-034]]
-* [[SCP-036]]
-* [[SCP-038]]
-* [[SCP-041]]
-* [[SCP-042]]
-* [[SCP-043]]
-* [[SCP-044]]
-* [[SCP-045]]
-* [[SCP-051]]
-* [[SCP-054]]
-* [[SCP-057]]
-* [[SCP-061]]
-* [[SCP-063]]
-* [[SCP-064]]
-* [[SCP-067]]
-* [[SCP-068]]
-* [[SCP-069]]
-* [[SCP-070]]
-* [[SCP-072]]
-* [[SCP-085]]
-* [[SCP-086]]
-* [[SCP-088]]
-* [[SCP-091]]
-* [[SCP-092]]
-* [[SCP-095]]
-* [[SCP-098]]
-* [[SCP-099]]
-* [[SCP-105]]
-* [[SCP-107]]
-* [[SCP-108]]
-* [[SCP-111]]
-* [[SCP-113]]
-* [[SCP-115]]
-* [[SCP-120]]
-* [[SCP-127]]
-* [[SCP-131]]
-* [[SCP-132]]
-* [[SCP-133]]
-* [[SCP-134]]
-}}}`
+``
         ) + '\n';
     }
     var data_js = '';