修改BUG:http请求过多导致服务器防火墙拒绝连接
This commit is contained in:
57
Thread.py
57
Thread.py
@@ -1,6 +1,11 @@
|
||||
import pymysql, threading, time
|
||||
from queue import Queue
|
||||
from Tools import config, download_image, Hash, remove_image, compare, Image, imagehash, os, logging, clean_image
|
||||
|
||||
import requests
|
||||
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from Tools import config, Hash, Image, imagehash, os, logging, download_image, remove_image, clean_image, compare
|
||||
|
||||
|
||||
class MySQLConnectionPool:
|
||||
def __init__(self):
|
||||
@@ -56,11 +61,14 @@ class UploadThread(threading.Thread):
|
||||
|
||||
def run(self):
|
||||
logging.debug(f'我是上传线程{self.uploadqqnumber}')
|
||||
if download_image(self.uploadqqnumber):
|
||||
Hash(self.conn).tomysql(self.uploadqqnumber)
|
||||
logging.info(f'上传成功: {self.uploadqqnumber}')
|
||||
remove_image(self.uploadqqnumber)
|
||||
self.pool.release_connection(self.conn)
|
||||
with ThreadPoolExecutor() as executor:
|
||||
future = executor.submit(download_image, f'{self.uploadqqnumber}')
|
||||
res = future.result() # 等待结果并获取返回值
|
||||
if res:
|
||||
Hash(self.conn).tomysql(self.uploadqqnumber)
|
||||
logging.info(f'上传成功: {self.uploadqqnumber}')
|
||||
remove_image(self.uploadqqnumber)
|
||||
self.pool.release_connection(self.conn)
|
||||
|
||||
|
||||
class FindThread(threading.Thread):
|
||||
@@ -78,7 +86,6 @@ class FindThread(threading.Thread):
|
||||
self.pool.release_connection(self.conn)
|
||||
|
||||
|
||||
|
||||
class ByNetFindThread(threading.Thread):
|
||||
def __init__(self, TargetImageHash, findqqnumber):
|
||||
super().__init__()
|
||||
@@ -86,19 +93,23 @@ class ByNetFindThread(threading.Thread):
|
||||
self.findqqnumber = findqqnumber
|
||||
|
||||
def run(self):
|
||||
logging.debug(f'查找的QQ号是: {self.findqqnumber}')
|
||||
if download_image(self.findqqnumber):
|
||||
FindImage = Image.open(str(f'./img/{self.findqqnumber}.jpg'))
|
||||
if FindImage.mode == 'P' and 'transparency' in FindImage.info:
|
||||
FindImage = FindImage.convert('RGBA')
|
||||
FindImageHash = bytes.fromhex(str(imagehash.average_hash(FindImage)))
|
||||
res = compare(self.TargetImageHash, FindImageHash)
|
||||
if res-99.9 >= 0 :
|
||||
logging.info(f'找到QQ号了:{self.findqqnumber}')
|
||||
if os.path.exists(f'./img/congratulations_{self.findqqnumber}.jpg'):
|
||||
os.remove(f'./img/congratulations_{self.findqqnumber}.jpg')
|
||||
os.rename(f'./img/{self.findqqnumber}.jpg',f'./img/congratulations_{self.findqqnumber}.jpg')
|
||||
clean_image()
|
||||
os._exit(0)
|
||||
logging.info(f'[{self.findqqnumber}]的相似度是:{res}%')
|
||||
remove_image(self.findqqnumber)
|
||||
|
||||
with ThreadPoolExecutor() as executor:
|
||||
future = executor.submit(download_image, f'{self.findqqnumber}')
|
||||
res = future.result() # 等待结果并获取返回值
|
||||
logging.debug(f'查找的QQ号是: {self.findqqnumber}, res: {res}')
|
||||
if res:
|
||||
FindImage = Image.open(str(f'./img/{self.findqqnumber}.jpg'))
|
||||
if FindImage.mode == 'P' and 'transparency' in FindImage.info:
|
||||
FindImage = FindImage.convert('RGBA')
|
||||
FindImageHash = bytes.fromhex(str(imagehash.average_hash(FindImage)))
|
||||
res = compare(self.TargetImageHash, FindImageHash)
|
||||
if res-99.9 >= 0 :
|
||||
logging.info(f'找到QQ号了:{self.findqqnumber}')
|
||||
if os.path.exists(f'./img/congratulations_{self.findqqnumber}.jpg'):
|
||||
os.remove(f'./img/congratulations_{self.findqqnumber}.jpg')
|
||||
os.rename(f'./img/{self.findqqnumber}.jpg',f'./img/congratulations_{self.findqqnumber}.jpg')
|
||||
clean_image()
|
||||
os._exit(0)
|
||||
logging.info(f'[{self.findqqnumber}]的相似度是:{res}%')
|
||||
remove_image(self.findqqnumber)
|
||||
|
||||
Reference in New Issue
Block a user