降低代码重复率

This commit is contained in:
Jing Ling
2019-12-23 23:06:07 +08:00
parent 9752e49e2a
commit ac15eb567b
+21 -49
View File
@@ -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,8 +51,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'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,'
@@ -62,8 +69,6 @@ class Database(object):
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):
""" """
@@ -98,14 +103,10 @@ 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}"')
except Exception as e: if len(results) != 0:
logger.log('ERROR', e.args)
else:
if len(result) != 0:
return True return True
else: else:
return False return False
@@ -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'delete from "{table_name}" where '
f'subdomain is null or valid == 0') 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()