Add type param to dbexport.py

This commit is contained in:
JrD
2020-07-12 23:34:10 +08:00
parent a63134245b
commit ccb105b87b
2 changed files with 42 additions and 22 deletions
+24 -4
View File
@@ -19,13 +19,14 @@ def domain_to_table(table):
return table.replace('.', '_') + "_now_result" return table.replace('.', '_') + "_now_result"
def export(target, db=None, alive=False, limit=None, path=None, format='csv', show=False): def export(target, type='target', db=None, alive=False, limit=None, path=None, format='csv', show=False):
""" """
OneForAll export from database module OneForAll export from database module
Example: Example:
python3 dbexport.py --target name --format csv --dir= ./result.csv python3 dbexport.py --target name --format csv --dir= ./result.csv
python3 dbexport.py --db result.db --target name --show False python3 dbexport.py --db result.db --target name --show False
python3 dbexport.py --target table_name --tb True --show False
Note: Note:
--alive True/False Only export alive subdomains or not (default False) --alive True/False Only export alive subdomains or not (default False)
@@ -33,6 +34,7 @@ def export(target, db=None, alive=False, limit=None, path=None, format='csv', sh
--path Result directory (default directory is ./results) --path Result directory (default directory is ./results)
:param str target: Table to be exported :param str target: Table to be exported
:param str type: Type of target
:param str db: Database path to be exported (default ./results/result.sqlite3) :param str db: Database path to be exported (default ./results/result.sqlite3)
:param bool alive: Only export the results of alive subdomains (default False) :param bool alive: Only export the results of alive subdomains (default False)
:param str limit: Export limit (default None) :param str limit: Export limit (default None)
@@ -41,6 +43,7 @@ def export(target, db=None, alive=False, limit=None, path=None, format='csv', sh
:param bool show: Displays the exported data in terminal (default False) :param bool show: Displays the exported data in terminal (default False)
""" """
if type == 'target':
database = Database(db) database = Database(db)
domains = utils.get_domains(target) domains = utils.get_domains(target)
datas = [] datas = []
@@ -51,15 +54,32 @@ def export(target, db=None, alive=False, limit=None, path=None, format='csv', sh
if rows is None: if rows is None:
continue continue
format = utils.check_format(format, len(rows)) format = utils.check_format(format, len(rows))
path = utils.check_path(path, target, format)
if show: if show:
print(rows.dataset) print(rows.dataset)
data = rows.export(format)
utils.save_data(path, data)
logger.log('ALERT', f'The subdomain result for {table_name}: {path}')
data = rows.as_dict() data = rows.as_dict()
datas.extend(data) datas.extend(data)
database.close() database.close()
if datas: if len(domains) > 1:
utils.export_all(alive, format, path, datas) utils.export_all(alive, format, path, datas)
elif type == 'table':
database = Database(db)
rows = database.export_data(target, alive, limit)
format = utils.check_format(format, len(rows))
path = utils.check_path(path, target, format)
if show:
print(rows.dataset)
data = rows.export(format)
database.close()
utils.save_data(path, data)
logger.log('ALERT', f'The subdomain result for {target}: {path}')
data_dict = rows.as_dict()
return data_dict
if __name__ == '__main__': if __name__ == '__main__':
# fire.Fire(export) fire.Fire(export)
export('example.com') # export('example.com')
+1 -1
View File
@@ -129,7 +129,7 @@ class OneForAll(object):
:rtype: list :rtype: list
""" """
db = Database() db = Database()
data = dbexport.export(table, alive=self.alive, format=self.format) data = dbexport.export(table, type='table', alive=self.alive, format=self.format)
db.drop_table(self.new_table) db.drop_table(self.new_table)
db.rename_table(self.domain, self.new_table) db.rename_table(self.domain, self.new_table)
db.close() db.close()