Parcourir la source

버전 재도입

Surplus_Up (2DU) il y a 8 ans
Parent
commit
c0e696c2fb
2 fichiers modifiés avec 146 ajouts et 124 suppressions
  1. 146 122
      app.py
  2. 0 2
      func.py

+ 146 - 122
app.py

@@ -19,7 +19,8 @@ import sys
 from func import *
 
 # 버전 표기
-r_ver = 'v3.0.5-Master-' + re.sub('^[0-9]{2}', '', str(int(datetime.datetime.fromtimestamp(os.path.getmtime('app.py')).strftime('%Y%m%d'))))
+r_ver = 'v3.0.5-Master-10'
+c_ver = '30510'
 print('Version : ' + r_ver)
 
 # set.json 설정 확인
@@ -44,6 +45,11 @@ except:
             
             pass
 
+if os.path.exists(set_data['db'] + '.db'):
+    setup_tool = 0
+else:
+    setup_tool = 1
+
 # 디비 연결
 conn = sqlite3.connect(set_data['db'] + '.db', check_same_thread = False)
 curs = conn.cursor()
@@ -85,143 +91,159 @@ curs.execute('create table if not exists acl(test text)')
 curs.execute('create table if not exists inter(test text)')
 curs.execute('create table if not exists html_filter(test text)')
 
-create_data = {}
-
-create_data['all_data'] = ['data', 'history', 'rd', 'user', 'ban', 'topic', 'stop', 'rb', 'back', 'agreedis', 'custom', 'other', 'alist', 're_admin', 'alarm', 'ua_d', 'filter', 'scan', 'acl', 'inter', 'html_filter']
-
-create_data['data'] = ['title', 'data']
-create_data['history'] = ['id', 'title', 'data', 'date', 'ip', 'send', 'leng', 'hide']
-create_data['rd'] = ['title', 'sub', 'date', 'band']
-create_data['user'] = ['id', 'pw', 'acl', 'date', 'email', 'skin']
-create_data['ban'] = ['block', 'end', 'why', 'band', 'login']
-create_data['topic'] = ['id', 'title', 'sub', 'data', 'date', 'ip', 'block', 'top']
-create_data['stop'] = ['title', 'sub', 'close']
-create_data['rb'] = ['block', 'end', 'today', 'blocker', 'why', 'band']
-create_data['back'] = ['title', 'link', 'type']
-create_data['agreedis'] = ['title', 'sub']
-create_data['custom'] = ['user', 'css']
-create_data['other'] = ['name', 'data']
-create_data['alist'] = ['name', 'acl']
-create_data['re_admin'] = ['who', 'what', 'time']
-create_data['alarm'] = ['name', 'data', 'date']
-create_data['ua_d'] = ['name', 'ip', 'ua', 'today', 'sub']
-create_data['filter'] = ['name', 'regex', 'sub']
-create_data['scan'] = ['user', 'title']
-create_data['acl'] = ['title', 'dec', 'dis', 'why']
-create_data['inter'] = ['title', 'link']
-create_data['html_filter'] = ['html']
-
-for create_table in create_data['all_data']:
-    for create in create_data[create_table]:
+if setup_tool == 0:
+    curs.execute('select data from other where name = "ver"')
+    ver_set_data = curs.fetchall()
+    if not ver_set_data:
+        setup_tool = 2
+    else:
+        if c_ver > ver_set_data[0][0]:
+            setup_tool = 2
+
+if setup_tool != 0:
+    # create table
+    create_data = {}
+
+    create_data['all_data'] = ['data', 'history', 'rd', 'user', 'ban', 'topic', 'stop', 'rb', 'back', 'agreedis', 'custom', 'other', 'alist', 're_admin', 'alarm', 'ua_d', 'filter', 'scan', 'acl', 'inter', 'html_filter']
+
+    create_data['data'] = ['title', 'data']
+    create_data['history'] = ['id', 'title', 'data', 'date', 'ip', 'send', 'leng', 'hide']
+    create_data['rd'] = ['title', 'sub', 'date', 'band']
+    create_data['user'] = ['id', 'pw', 'acl', 'date', 'email', 'skin']
+    create_data['ban'] = ['block', 'end', 'why', 'band', 'login']
+    create_data['topic'] = ['id', 'title', 'sub', 'data', 'date', 'ip', 'block', 'top']
+    create_data['stop'] = ['title', 'sub', 'close']
+    create_data['rb'] = ['block', 'end', 'today', 'blocker', 'why', 'band']
+    create_data['back'] = ['title', 'link', 'type']
+    create_data['agreedis'] = ['title', 'sub']
+    create_data['custom'] = ['user', 'css']
+    create_data['other'] = ['name', 'data']
+    create_data['alist'] = ['name', 'acl']
+    create_data['re_admin'] = ['who', 'what', 'time']
+    create_data['alarm'] = ['name', 'data', 'date']
+    create_data['ua_d'] = ['name', 'ip', 'ua', 'today', 'sub']
+    create_data['filter'] = ['name', 'regex', 'sub']
+    create_data['scan'] = ['user', 'title']
+    create_data['acl'] = ['title', 'dec', 'dis', 'why']
+    create_data['inter'] = ['title', 'link']
+    create_data['html_filter'] = ['html']
+
+    for create_table in create_data['all_data']:
+        for create in create_data[create_table]:
+            try:
+                curs.execute('select ' + create + ' from ' + create_table + ' limit 1')
+            except:
+                curs.execute("alter table " + create_table + " add " + create + " text default ''")
+        
         try:
-            curs.execute('select ' + create + ' from ' + create_table + ' limit 1')
+            curs.execute('select test from ' + create_table + ' limit 1')
+            curs.execute("alter table " + create_table + " drop test")
         except:
-            curs.execute("alter table " + create_table + " add " + create + " text default ''")
-    
-    try:
-        curs.execute('select test from ' + create_table + ' limit 1')
-        curs.execute("alter table " + create_table + " drop test")
-    except:
-        pass
+            pass
 
-# owner 존재 확인
-curs.execute('select name from alist where acl = "owner"')
-if not curs.fetchall():
-    curs.execute('delete from alist where name = "owner"')
-    curs.execute('insert into alist (name, acl) values ("owner", "owner")')
+    # update
+    update()
 
-# 포트 점검
-curs.execute('select data from other where name = "port"')
-rep_data = curs.fetchall()
-if not rep_data:
-    while 1:
-        print('Port : ', end = '')
-        
-        rep_port = int(input())
-        if rep_port:
-            curs.execute('insert into other (name, data) values ("port", ?)', [rep_port])
-            
-            break
+    if setup_tool == 1:
+        # owner 존재 확인
+        curs.execute('select name from alist where acl = "owner"')
+        if not curs.fetchall():
+            curs.execute('delete from alist where name = "owner"')
+            curs.execute('insert into alist (name, acl) values ("owner", "owner")')
+
+        # 포트 점검
+        curs.execute('select data from other where name = "port"')
+        rep_data = curs.fetchall()
+        if not rep_data:
+            while 1:
+                print('Port : ', end = '')
+                
+                rep_port = int(input())
+                if rep_port:
+                    curs.execute('insert into other (name, data) values ("port", ?)', [rep_port])
+                    
+                    break
+                else:
+                    pass
         else:
+            rep_port = rep_data[0][0]
+            
+            print('Port : ' + str(rep_port))
+
+        # robots.txt 점검
+        try:
+            if not os.path.exists('robots.txt'):
+                curs.execute('select data from other where name = "robot"')
+                robot_test = curs.fetchall()
+                if robot_test:
+                    fw_test = open('./robots.txt', 'w')
+                    fw_test.write(re.sub('\r\n', '\n', robot_test[0][0]))
+                    fw_test.close()
+                else:
+                    fw_test = open('./robots.txt', 'w')
+                    fw_test.write('User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/')
+                    fw_test.close()
+
+                    curs.execute('insert into other (name, data) values ("robot", "User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/")')
+                
+                print('robots.txt create')
+        except:
             pass
-else:
-    rep_port = rep_data[0][0]
-    
-    print('Port : ' + str(rep_port))
 
-# robots.txt 점검
-try:
-    if not os.path.exists('robots.txt'):
-        curs.execute('select data from other where name = "robot"')
-        robot_test = curs.fetchall()
-        if robot_test:
-            fw_test = open('./robots.txt', 'w')
-            fw_test.write(re.sub('\r\n', '\n', robot_test[0][0]))
-            fw_test.close()
+        # 비밀 키 점검
+        curs.execute('select data from other where name = "key"')
+        rep_data = curs.fetchall()
+        if not rep_data:
+            while 1:
+                print('Secret Key : ', end = '')
+                
+                rep_key = str(input())
+                if rep_key:
+                    curs.execute('insert into other (name, data) values ("key", ?)', [rep_key])
+                    
+                    break
+                else:
+                    pass
         else:
-            fw_test = open('./robots.txt', 'w')
-            fw_test.write('User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/')
-            fw_test.close()
+            rep_key = rep_data[0][0]
 
-            curs.execute('insert into other (name, data) values ("robot", "User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/")')
-        
-        print('robots.txt create')
-except:
-    pass
+            print('Secret Key : ' + rep_key)
 
-# 비밀 키 점검
-curs.execute('select data from other where name = "key"')
-rep_data = curs.fetchall()
-if not rep_data:
-    while 1:
-        print('Secret Key : ', end = '')
-        
-        rep_key = str(input())
-        if rep_key:
-            curs.execute('insert into other (name, data) values ("key", ?)', [rep_key])
-            
-            break
+        # 언어 점검
+        curs.execute("select data from other where name = 'language'")
+        rep_data = curs.fetchall()
+        if not rep_data:
+            while 1:
+                print('Language [ko-KR, en-US] : ', end = '')
+                support_language = ['ko-KR', 'en-US']
+                
+                rep_language = str(input())
+                if rep_language in support_language:
+                    curs.execute("insert into other (name, data) values ('language', ?)", [rep_language])
+                    
+                    break
+                else:
+                    pass
         else:
-            pass
-else:
-    rep_key = rep_data[0][0]
-
-    print('Secret Key : ' + rep_key)
+            rep_language = rep_data[0][0]
+            
+            print('Language : ' + str(rep_language))
 
-# 언어 점검
-curs.execute("select data from other where name = 'language'")
-rep_data = curs.fetchall()
-if not rep_data:
-    while 1:
-        print('Language [ko-KR, en-US] : ', end = '')
-        support_language = ['ko-KR', 'en-US']
-        
-        rep_language = str(input())
-        if rep_language in support_language:
-            curs.execute("insert into other (name, data) values ('language', ?)", [rep_language])
+        # image folder create
+        if not os.path.exists('image'):
+            os.makedirs('image')
             
-            break
-        else:
-            pass
-else:
-    rep_language = rep_data[0][0]
-    
-    print('Language : ' + str(rep_language))
+        # views folder create
+        if not os.path.exists('views'):
+            os.makedirs('views')
+
+# ver 갱신
+curs.execute('delete from alist where name = "ver"')
+curs.execute('insert into alist (name, acl) values ("ver", ?)', [c_ver])
 
 json_data = open(os.path.join('language', rep_language + '.json'), 'rt', encoding='utf-8').read()
 lang_data = json.loads(json_data)
 
-# update
-update()
-
-# image folder create
-if not os.path.exists('image'):
-    os.makedirs('image')
-    
-# views folder create
-if not os.path.exists('views'):
-    os.makedirs('views')
-
 # backup set
 def back_up():
     try:
@@ -250,6 +272,8 @@ if back_time != 0:
 else:
     print('Back Up OFF')
 
+conn.commit()
+
 @app.route('/del_alarm')
 def del_alarm():
     curs.execute("delete from alarm where name = ?", [ip_check()])
@@ -1001,7 +1025,7 @@ def indexing():
 
     conn.commit()
     
-    return redirect('/')        
+    return redirect('/')     
 
 @app.route('/re_start', methods=['POST', 'GET'])
 def re_start():

+ 0 - 2
func.py

@@ -116,8 +116,6 @@ def update():
     except:
         pass
 
-    conn.commit()
-
 def captcha_post(re_data, num = 1):
     if num == 1:
         if custom()[2] == 0 and captcha_get() != '':