mirror of
https://github.com/shmilylty/OneForAll.git
synced 2026-10-25 00:56:14 +08:00
降低代码重复率
This commit is contained in:
@@ -35,6 +35,14 @@ class Database(object):
|
|||||||
logger.log('DEBUG', f'使用数据库: {db_path}')
|
logger.log('DEBUG', f'使用数据库: {db_path}')
|
||||||
return db.get_connection()
|
return db.get_connection()
|
||||||
|
|
||||||
|
def query(self, sql):
|
||||||
|
try:
|
||||||
|
results = self.conn.query(sql)
|
||||||
|
except Exception as e:
|
||||||
|
logger.log('ERROR', e.args)
|
||||||
|
else:
|
||||||
|
return results
|
||||||
|
|
||||||
def create_table(self, table_name):
|
def create_table(self, table_name):
|
||||||
"""
|
"""
|
||||||
创建表结构
|
创建表结构
|
||||||
@@ -43,27 +51,24 @@ class Database(object):
|
|||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'正在创建{table_name}表')
|
logger.log('DEBUG', f'正在创建{table_name}表')
|
||||||
try:
|
self.query(f'create table if not exists "{table_name}" ('
|
||||||
self.conn.query(f'create table if not exists "{table_name}" ('
|
f'id integer primary key,'
|
||||||
f'id integer primary key,'
|
f'url text,'
|
||||||
f'url text,'
|
f'subdomain text,'
|
||||||
f'subdomain text,'
|
f'port int,'
|
||||||
f'port int,'
|
f'ips text,'
|
||||||
f'ips text,'
|
f'status int,'
|
||||||
f'status int,'
|
f'reason text,'
|
||||||
f'reason text,'
|
f'valid int,'
|
||||||
f'valid int,'
|
f'new int,'
|
||||||
f'new int,'
|
f'title text,'
|
||||||
f'title text,'
|
f'banner text,'
|
||||||
f'banner text,'
|
f'header text,'
|
||||||
f'header text,'
|
f'response text,'
|
||||||
f'response text,'
|
f'module text,'
|
||||||
f'module text,'
|
f'source text,'
|
||||||
f'source text,'
|
f'elapsed float,'
|
||||||
f'elapsed float,'
|
f'count int)')
|
||||||
f'count int)')
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
|
|
||||||
def save_db(self, table_name, results, module_name=None):
|
def save_db(self, table_name, results, module_name=None):
|
||||||
"""
|
"""
|
||||||
@@ -74,7 +79,7 @@ class Database(object):
|
|||||||
:param str module_name: 模块名
|
:param str module_name: 模块名
|
||||||
"""
|
"""
|
||||||
logger.log('DEBUG', f'正在将{module_name}模块发现{table_name}的子域'
|
logger.log('DEBUG', f'正在将{module_name}模块发现{table_name}的子域'
|
||||||
'结果存入数据库')
|
'结果存入数据库')
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
if results:
|
if results:
|
||||||
try:
|
try:
|
||||||
@@ -98,17 +103,13 @@ class Database(object):
|
|||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'正在查询是否存在{table_name}表')
|
logger.log('DEBUG', f'正在查询是否存在{table_name}表')
|
||||||
try:
|
results = self.query(f'select count() from sqlite_master '
|
||||||
result = self.conn.query(f'select count() from sqlite_master '
|
f'where type = "table" and '
|
||||||
f'where type = "table" and '
|
f'name = "{table_name}"')
|
||||||
f'name = "{table_name}"')
|
if len(results) != 0:
|
||||||
except Exception as e:
|
return True
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
else:
|
else:
|
||||||
if len(result) != 0:
|
return False
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def copy_table(self, table_name, bak_table_name):
|
def copy_table(self, table_name, bak_table_name):
|
||||||
"""
|
"""
|
||||||
@@ -120,12 +121,9 @@ class Database(object):
|
|||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
bak_table_name = bak_table_name.replace('.', '_')
|
bak_table_name = bak_table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'正在将{table_name}表复制到{bak_table_name}新表')
|
logger.log('DEBUG', f'正在将{table_name}表复制到{bak_table_name}新表')
|
||||||
try:
|
self.query(f'drop table if exists "{bak_table_name}"')
|
||||||
self.conn.query(f'drop table if exists "{bak_table_name}"')
|
self.query(f'create table "{bak_table_name}" '
|
||||||
self.conn.query(f'create table "{bak_table_name}" '
|
f'as select * from "{table_name}"')
|
||||||
f'as select * from "{table_name}"')
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
|
|
||||||
def clear_table(self, table_name):
|
def clear_table(self, table_name):
|
||||||
"""
|
"""
|
||||||
@@ -135,10 +133,7 @@ class Database(object):
|
|||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'正在清空{table_name}表中的数据')
|
logger.log('DEBUG', f'正在清空{table_name}表中的数据')
|
||||||
try:
|
self.query(f'delete from "{table_name}"')
|
||||||
self.conn.query(f'delete from "{table_name}"')
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
|
|
||||||
def drop_table(self, table_name):
|
def drop_table(self, table_name):
|
||||||
"""
|
"""
|
||||||
@@ -148,10 +143,7 @@ class Database(object):
|
|||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'正在删除{table_name}表')
|
logger.log('DEBUG', f'正在删除{table_name}表')
|
||||||
try:
|
self.query(f'drop table if exists "{table_name}"')
|
||||||
self.conn.query(f'drop table if exists "{table_name}"')
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
|
|
||||||
def rename_table(self, table_name, new_table_name):
|
def rename_table(self, table_name, new_table_name):
|
||||||
"""
|
"""
|
||||||
@@ -163,11 +155,8 @@ class Database(object):
|
|||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
new_table_name = new_table_name.replace('.', '_')
|
new_table_name = new_table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'正在将{table_name}表重命名为{table_name}表')
|
logger.log('DEBUG', f'正在将{table_name}表重命名为{table_name}表')
|
||||||
try:
|
self.query(f'alter table "{table_name}" '
|
||||||
self.conn.query(f'alter table "{table_name}" '
|
f'rename to "{new_table_name}"')
|
||||||
f'rename to "{new_table_name}"')
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
|
|
||||||
def deduplicate_subdomain(self, table_name):
|
def deduplicate_subdomain(self, table_name):
|
||||||
"""
|
"""
|
||||||
@@ -177,12 +166,9 @@ class Database(object):
|
|||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'正在去重{table_name}表中的子域')
|
logger.log('DEBUG', f'正在去重{table_name}表中的子域')
|
||||||
try:
|
self.query(f'delete from "{table_name}" where '
|
||||||
self.conn.query(
|
f'id not in (select min(id) '
|
||||||
f'delete from "{table_name}" where id not in (select min(id) '
|
f'from "{table_name}" group by subdomain)')
|
||||||
f'from "{table_name}" group by subdomain)')
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
|
|
||||||
def remove_invalid(self, table_name):
|
def remove_invalid(self, table_name):
|
||||||
"""
|
"""
|
||||||
@@ -192,12 +178,8 @@ class Database(object):
|
|||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'正在去除{table_name}表中的无效子域')
|
logger.log('DEBUG', f'正在去除{table_name}表中的无效子域')
|
||||||
try:
|
self.query(f'delete from "{table_name}" where '
|
||||||
self.conn.query(
|
f'subdomain is null or valid == 0')
|
||||||
f'delete from "{table_name}" where '
|
|
||||||
f'subdomain is null or valid == 0')
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
|
|
||||||
def get_data(self, table_name):
|
def get_data(self, table_name):
|
||||||
"""
|
"""
|
||||||
@@ -207,12 +189,7 @@ class Database(object):
|
|||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
logger.log('DEBUG', f'获取{table_name}表中的所有数据')
|
logger.log('DEBUG', f'获取{table_name}表中的所有数据')
|
||||||
try:
|
return self.query(f'select * from "{table_name}"')
|
||||||
rows = self.conn.query(f'select * from "{table_name}"')
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
else:
|
|
||||||
return rows
|
|
||||||
|
|
||||||
def export_data(self, table_name, valid):
|
def export_data(self, table_name, valid):
|
||||||
"""
|
"""
|
||||||
@@ -228,12 +205,7 @@ class Database(object):
|
|||||||
where = f' where valid = {valid}'
|
where = f' where valid = {valid}'
|
||||||
query += where
|
query += where
|
||||||
logger.log('DEBUG', f'获取{table_name}表中的所有数据')
|
logger.log('DEBUG', f'获取{table_name}表中的所有数据')
|
||||||
try:
|
return self.query(query)
|
||||||
rows = self.conn.query(query)
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
else:
|
|
||||||
return rows
|
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self.conn.close()
|
self.conn.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user