Procházet zdrojové kódy

그냥 스레드로 수정

ect (or 2du) před 8 roky
rodič
revize
e30e466d0f
4 změnil soubory, kde provedl 29 přidání a 37 odebrání
  1. 1 1
      app.py
  2. 15 28
      back_reset.py
  3. 8 6
      mark.py
  4. 5 2
      set_mark/macro.py

+ 1 - 1
app.py

@@ -46,7 +46,7 @@ except:
             pass
 
 # 디비 연결
-conn = sqlite3.connect(set_data['db'] + '.db')
+conn = sqlite3.connect(set_data['db'] + '.db', check_same_thread = False)
 curs = conn.cursor()
 
 # 스킨 불러오기 부분

+ 15 - 28
back_reset.py

@@ -1,41 +1,28 @@
 import json
 import sqlite3
-from multiprocessing import Process
+import threading
 from func import *
-from set_mark.mark import *
+from mark import namumark
 
 json_data = open('set.json').read()
 set_data = json.loads(json_data)
 
-conn = sqlite3.connect(set_data['db'] + '.db')
+conn = sqlite3.connect(set_data['db'] + '.db', check_same_thread = False)
 curs = conn.cursor()
 
-def go_namu(data):
-    for end in data:
-        print(end[0])
-        namumark(conn, end[0], end[1], 1, 0, 0)
+def parser(data):
+    namumark(conn, data[0], data[1], 1, 0, 0)
 
-if __name__=='__main__':
-    curs.execute("select title, data from data")
-    data = curs.fetchall()
-    print(int(len(data) / 4))
-    l = int(len(data) / 4)
+curs.execute("delete from back")
+conn.commit()
 
-    d1 = data[:l]
-    d2 = data[l:l * 2]
-    d3 = data[l * 2:l * 3]
-    d4 = data[l * 3:]
+curs.execute("select title, data from data")
+data = curs.fetchall()
 
-    curs.execute("delete from back")
-    conn.commit()
+for test in data:
+    print(test[0])
+    t = threading.Thread(target = parser, args = [test])
+    t.start()
+    t.join()
 
-    p1 = Process(target = go_namu, args = [d1])
-    p2 = Process(target = go_namu, args = [d2])
-    p3 = Process(target = go_namu, args = [d3])
-    p4 = Process(target = go_namu, args = [d4])
-    p1.start()
-    p2.start()
-    p3.start()
-    p4.start()
-    
-    conn.commit()
+conn.commit()

+ 8 - 6
mark.py

@@ -12,12 +12,13 @@ from set_mark.indent import indent
 from set_mark.footnote import footnote
 from set_mark.table import table
 from set_mark.end import end
+
 import re
 import html
 import sqlite3
 from urllib import parse
 import time
-import asyncio
+import threading
 
 def send_p(d):
     d = html.escape(d)
@@ -32,8 +33,9 @@ def send_p(d):
 def url_pas(data):
     return parse.quote(data).replace('/','%2F')
     
-async def plusing(conn, name, link, backtype):
+def plusing(conn, name, link, backtype):
     curs = conn.cursor()
+
     curs.execute("select title from back where title = ? and link = ? and type = ?", [link, name, backtype])
     if not curs.fetchall():
         curs.execute("insert into back (title, link, type) values (?, ?, ?)", [link, name, backtype])
@@ -74,11 +76,11 @@ def namumark(conn, title, data, num, in_c, toc_y):
     data = end(data, category)
     
     if(num == 1):        
-        asyncio.set_event_loop(asyncio.new_event_loop())
-        loop = asyncio.get_event_loop()
         for d4 in backlink:
-            loop.run_until_complete(plusing(conn, d4[0], d4[1], d4[2]))
-        loop.close()
+            t = threading.Thread(target = plusing, args = [conn, d4[0], d4[1], d4[2]])
+            t.start()
+            t.join()
+
         conn.commit()
         
     return data

+ 5 - 2
set_mark/macro.py

@@ -13,10 +13,13 @@ def get_time():
     return date
     
 def ip_check():
-    if ('Now' and 'DREAMER') in session and session['Now'] == 1:
+    if session and ('Now' and 'DREAMER') in session and session['Now'] == 1:
         ip = session['DREAMER']
     else:
-        ip = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
+        try:
+            ip = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
+        except:
+            ip = 'None'
 
     return str(ip)