Przeglądaj źródła

이미지 라이선스 분류 기능 추가

Surplus_Up (2DU) 6 lat temu
rodzic
commit
e8dc4fb6c2

+ 3 - 3
app.py

@@ -301,15 +301,15 @@ def alarm_del():
 def alarm():
     return alarm_2(conn)
 
-@app.route('/<regex("inter_wiki|edit_top|(?:edit|email|file|name)_filter"):tools>')
+@app.route('/<regex("inter_wiki|edit_top|image_license|(?:edit|email|file|name)_filter"):tools>')
 def inter_wiki(tools = None):
     return inter_wiki_2(conn, tools)
 
-@app.route('/<regex("del_(?:inter_wiki|edit_top|(?:edit|email|file|name)_filter)"):tools>/<name>')
+@app.route('/<regex("del_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name)_filter)"):tools>/<name>')
 def inter_wiki_del(tools = None, name = None):
     return inter_wiki_del_2(conn, tools, name)
 
-@app.route('/<regex("plus_(?:inter_wiki|edit_top|(?:edit|email|file|name)_filter)"):tools>', methods=['POST', 'GET'])
+@app.route('/<regex("plus_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name)_filter)"):tools>', methods=['POST', 'GET'])
 @app.route('/<regex("plus_edit_filter"):tools>/<name>', methods=['POST', 'GET'])
 def inter_wiki_plus(tools = None, name = None):
     return inter_wiki_plus_2(conn, tools, name)

+ 3 - 0
language/en-US.json

@@ -171,6 +171,7 @@
         "history_delete" : "History delete",
         "markup" : "Markup",
         "title" : "Title",
+        "direct_input" : "Direct input",
         "_comment_2.1_" : "Filter",
             "_comment_2.1.1_" : "List",
                 "interwiki_list" : "Interwiki(s) list",
@@ -179,6 +180,7 @@
                 "edit_filter_list" : "Contents filter(s) list",
                 "file_filter_list" : "File name filter(s) list",
                 "edit_tool_list" : "Edit tool(s) list",
+                "image_license_list" : "Image license(s) list",
             "_comment_2.1.2_" : "Add",
                 "interwiki_add" : "Interwiki add",
                 "edit_filter_add" : "Contents filter add",
@@ -186,6 +188,7 @@
                 "email_filter_add" : "Email filter add",
                 "file_filter_add" : "File name filter add",
                 "edit_tool_add" : "Edit tool add",
+                "image_license_add" : "Image license add",
         "_comment_2.2_" : "Setting",
             "setting" : "Setting",
             "restart_required" : "Restart required",

+ 6 - 3
language/ko-KR.json

@@ -120,7 +120,7 @@
     "now_password": "현재 비밀번호",
     "same_file_error": "똑같은 이름의 파일이 존재합니다.",
     "same_id_exist_error": "이미 같은 이름의 계정이 있습니다.",
-    "max_file_size": "파일 최대 파일 크기",
+    "max_file_size": "최대 파일 크기",
     "new_password": "새 비밀번호",
     "authority_use_list": "권한 사용 목록",
     "alarm": "알림",
@@ -278,7 +278,7 @@
     "1_day": "1일",
     "regex_error": "정규표현식에 오류가 있습니다.",
     "backup_interval": "백업 주기",
-    "license": "저작권",
+    "license": "라이선스",
     "hide_release": "숨김 해제",
     "360_day": "360일",
     "inter_error": "내부 오류.",
@@ -292,5 +292,8 @@
     "markup": "문법",
     "title": "제목",
     "edit_tool_list": "편집 도구 목록",
-    "edit_tool_add": "편집 도구 추가"
+    "edit_tool_add": "편집 도구 추가",
+    "image_license_list": "이미지 라이선스 목록",
+    "image_license_add": "이미지 라이선스 추가",
+    "direct_input": "직접 입력"
 }

+ 43 - 8
route/func_upload.py

@@ -47,13 +47,22 @@ def func_upload_2(conn):
             
         ip = ip_check()
 
-        if flask.request.form.get('f_lice', None):
-            lice = flask.request.form.get('f_lice', None)
-        else:
-            if custom()[2] == 0:
-                lice = ip
+        if flask.request.form.get('f_lice_sel', 'direct_input') == 'direct_input':
+            if flask.request.form.get('f_lice', None):
+                lice = flask.request.form.get('f_lice', None)
             else:
-                lice = '[[user:' + ip + ']]'
+                if custom()[2] == 0:
+                    lice = ip
+                else:
+                    lice = '[[user:' + ip + ']]'
+
+            lice += '[[category:direct_input]]'
+        else:
+            lice = flask.request.form.get('f_lice_sel', None)
+            if flask.request.form.get('f_lice', None):
+                lice += ' : '  + flask.request.form.get('f_lice', None)
+
+            lice += '[[category:' + re.sub('\]', '_', flask.request.form.get('f_lice_sel', None)) + ']]'
             
         if os.path.exists(os.path.join(app_var['path_data_image'], e_data)):
             os.remove(os.path.join(app_var['path_data_image'], e_data))
@@ -61,12 +70,21 @@ def func_upload_2(conn):
             data.save(os.path.join(app_var['path_data_image'], e_data))
         else:
             data.save(os.path.join(app_var['path_data_image'], e_data))
+
+        file_d = '[[file:' + name + ']][br][br]{{{[[file:' + name + ']]}}}[br][br]' + lice
         
-        curs.execute("insert into data (title, data) values (?, ?)", ['file:' + name, '[[file:' + name + ']][br][br]{{{[[file:' + name + ']]}}}[br][br]' + lice])
+        curs.execute("insert into data (title, data) values (?, ?)", ['file:' + name, file_d])
         curs.execute("insert into acl (title, decu, dis, why, view) values (?, 'admin', '', '', '')", ['file:' + name])
 
+        render_set(
+            title = name,
+            data = file_d,
+            num = 1
+        )
+
         history_plus(
-            'file:' + name, '[[file:' + name + ']][br][br]{{{[[file:' + name + ']]}}}[br][br]' + lice,
+            'file:' + name,
+            file_d,
             get_time(), 
             ip, 
             '(upload)',
@@ -77,16 +95,33 @@ def func_upload_2(conn):
         
         return redirect('/w/file:' + name)      
     else:
+        license_list = '''
+            <option value="direct_input">''' + load_lang('direct_input') + '''</option>
+        '''
+
+        curs.execute("select html from html_filter where kind = 'image_license'")
+        db_data = curs.fetchall()
+        for i in db_data:
+            license_list += '''
+                <option value="''' + i[0] + '''">''' + i[0] + '''</option>
+            '''
+
         return easy_minify(flask.render_template(skin_check(), 
             imp = [load_lang('upload'), wiki_set(), custom(), other2([0, 0])],
             data =  '''
                 <a href="/file_filter">(''' + load_lang('file_filter_list') + ''')</a>
                 <hr class=\"main_hr\">
+                ''' + load_lang('max_file_size') + ''' : ''' + wiki_set(3) + '''MB
+                <hr class=\"main_hr\">
                 <form method="post" enctype="multipart/form-data" accept-charset="utf8">
                     <input type="file" name="f_data">
                     <hr class=\"main_hr\">
                     <input placeholder="''' + load_lang('file_name') + '''" name="f_name" type="text">
                     <hr class=\"main_hr\">
+                    <select name="f_lice_sel">
+                        ''' + license_list + '''
+                    </select>
+                    <hr class=\"main_hr\">
                     <input placeholder="''' + load_lang('license') + '''" name="f_lice" type="text">
                     <hr class=\"main_hr\">
                     ''' + captcha_get() + '''

+ 14 - 0
route/inter_wiki.py

@@ -49,6 +49,20 @@ def inter_wiki_2(conn, tools):
         div = ''
 
         curs.execute("select html from html_filter where kind = 'file'")
+    elif tools == 'file_filter':
+        del_link = 'del_file_filter'
+        plus_link = 'plus_file_filter'
+        title = load_lang('file_filter_list')
+        div = ''
+
+        curs.execute("select html from html_filter where kind = 'file'")  
+    elif tools == 'image_license':
+        del_link = 'del_image_license'
+        plus_link = 'plus_image_license'
+        title = load_lang('image_license_list')
+        div = ''
+
+        curs.execute("select html from html_filter where kind = 'image_license'")  
     else:
         del_link = 'del_edit_top'
         plus_link = 'plus_edit_top'

+ 2 - 0
route/inter_wiki_del.py

@@ -14,6 +14,8 @@ def inter_wiki_del_2(conn, tools, name):
             curs.execute("delete from html_filter where html = ? and kind = 'file'", [name])
         elif tools == 'del_email_filter':
             curs.execute("delete from html_filter where html = ? and kind = 'email'", [name])
+        elif tools == 'del_image_license':
+            curs.execute("delete from html_filter where html = ? and kind = 'image_license'", [name])    
         else:
             curs.execute("delete from html_filter where html = ? and kind = 'edit_top'", [name])
         

+ 7 - 0
route/inter_wiki_plus.py

@@ -52,6 +52,10 @@ def inter_wiki_plus_2(conn, tools, name):
                 admin_check(None, 'email_filter edit')
                 
                 type_d = 'email'
+            elif tools == 'plus_image_license':
+                admin_check(None, 'image_license edit')
+                
+                type_d = 'image_license'
             else:
                 admin_check(None, 'edit_top edit')
                 
@@ -122,6 +126,9 @@ def inter_wiki_plus_2(conn, tools, name):
         elif tools == 'plus_email_filter':
             title = load_lang('email_filter_add')
             form_data = '<input placeholder="' + load_lang('email') + '" type="text" name="title">'
+        elif tools == 'plus_image_license':
+            title = load_lang('image_license_add')
+            form_data = '<input placeholder="' + load_lang('license') + '" type="text" name="title">'
         else:
             title = load_lang('edit_tool_add')
             form_data = '''

+ 1 - 0
route/main_manager.py

@@ -43,6 +43,7 @@ def main_manager_2(conn, num, r_ver):
                     <ul>
                         <li><a href="/inter_wiki">''' + load_lang('interwiki_list') + '''</a></li>
                         <li><a href="/edit_top">''' + load_lang('edit_tool_list') + '''</a></li>
+                        <li><a href="/image_license">''' + load_lang('image_license_list') + '''</a></li>
                         <li><a href="/email_filter">''' + load_lang('email_filter_list') + '''</a></li>
                         <li><a href="/name_filter">''' + load_lang('id_filter_list') + '''</a></li>
                         <li><a href="/file_filter">''' + load_lang('file_filter_list') + '''</a></li>

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "master" : {
-        "r_ver" : "v3.1.2-master-24",
+        "r_ver" : "v3.1.2-stable-99",
         "c_ver" : "400003",
         "s_ver" : "2"
     }, "stable" : {

+ 53 - 3
views/easter_egg.html

@@ -1,3 +1,53 @@
-<iframe style="width: 100%; height: 500px;" src="https://jcw87.github.io/c2-sans-fight/"></iframe>
-<br>
-<a id="out_link" href="https://jcw87.github.io/c2-sans-fight/">https://jcw87.github.io/c2-sans-fight/</a>
+<iframe width="560" height="315" src="https://www.youtube.com/embed/7wzZbLKnUuA" allowfullscreen></iframe>
+<hr class="main_hr">
+<pre>
+    Nagareteku toki no naka de demo kedarusa ga hora guruguru mawatte
+    Watashi kara hanareru kokoro mo mienai wa sou shiranai
+    
+    Jibun kara ugoku koto mo naku toki no sukima ni nagasare tsuzukete
+    Shiranai wa mawari no koto nado watashi wa watashi sore dake
+    
+    Yume miteru? Nani mo mitenai? Kataru mo muda na jibun no kotoba
+    Kanashimu nante tsukareru dake yo nani mo kanjizu sugoseba ii no
+    
+    Tomadou kotoba ataerarete mo jibun no kokoro tada uwa no sora
+    Moshi watashi kara ugoku no naraba subete kaeru no nara kuro ni suru
+    
+    Konna jibun ni mirai wa aru no? Konna sekai ni watashi wa iru no?
+    Ima setsunai no? Ima kanashii no? Jibun no koto mo wakaranai mama
+    
+    Ayumu koto sae tsukareru dake yo hito no koto nado shiri mo shinaiwa
+    Konna watashi mo kawareru no nara moshi kawareru no nara shiro ni naru?
+    
+    Nagareteku toki no naka de demo kedarusa ga hora guruguru mawatte
+    Watashi kara hanareru kokoro mo mienaiwa sou shiranai
+    
+    Jibun kara ugoku koto mo naku toki no sukima ni nagasare tsuzukete
+    Shiranai wa mawari no koto nado watashi wa watashi sore dake
+    
+    Yume miteru? Nani mo mitenai? Kataru mo muda na jibun no kotoba
+    Kanashimu nante tsukareru dake yo nani mo kanjizu sugoseba ii no
+    
+    Tomadou kotoba ataerarete mo jibun no kokoro tada uwa no sora
+    Moshi watashi kara ugoku no naraba subete kaeru no nara kuro ni suru
+    
+    Muda na jikan ni mirai wa aru no? Konna tokoro ni watashi wa iru no?
+    Watashi no koto o iitai naraba kotoba ni suru no nara "roku de nashi"
+    
+    Konna tokoro ni watashi wa iru no? Konna jikan ni watashi wa iru no?
+    Konna watashi mo kawareru no nara moshi kawareru no nara shiro ni naru?
+    
+    Ima yume miteru? Nani mo mitenai? Kataru mo muda na jibun no kotoba?
+    Kanashimu nante tsukareru dake yo nani mo kanjizu sugoseba ii no
+    
+    Tomadou kotoba ataerarete mo jibun no kokoro tada uwa no sora
+    Moshi watashi kara ugoku no naraba subete kaeru no nara kuro ni suru
+    
+    Ugoku no naraba ugoku no naraba subete kowasu wa subete kowasu wa
+    Kanashimu naraba kanashimu naraba watashi no kokoro shiroku kawareru?
+    
+    Anata no koto mo watashi no koto mo subete no koto mo mada shiranai no
+    Omoi mabuta wo aketa no naraba subete kowasu no nara kuro ni nare!!!
+
+    <a href="https://touhou.fandom.com/wiki/Lyrics:_Bad_Apple!!">Ref - Touhou wiki</a>
+</pre>