Skip to content

Commit

Permalink
v0.5.10
Browse files Browse the repository at this point in the history
  • Loading branch information
winezer0 committed Jul 10, 2023
1 parent 36708d8 commit 4acd6c6
Show file tree
Hide file tree
Showing 11 changed files with 83 additions and 53 deletions.
6 changes: 3 additions & 3 deletions DynaScan.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import os

import setting_com
from time import sleep
import setting_dict
import setting_http
from libs.lib_dyna_rule.base_key_replace import replace_list_has_key_str
Expand All @@ -21,9 +20,10 @@
from libs.lib_file_operate.file_read import read_file_to_list
from libs.lib_file_operate.file_write import write_lines, write_path_list_to_frequency_file
from libs.lib_log_print.logger_printer import output, LOG_INFO, set_logger, LOG_ERROR, LOG_DEBUG
from libs.input_const import *
from libs.lib_args.input_const import *
from libs.lib_requests.check_protocol import check_host_list_proto, check_url_list_access
from libs.input_parse import args_parser, args_dict_handle, config_dict_add_args, config_dict_handle, show_config_dict
from libs.lib_args.input_parse import args_parser, args_dict_handle, config_dict_handle
from libs.lib_args.input_basic import config_dict_add_args
from libs.util_func import analysis_ends_url, exclude_history_urls, url_to_raw_rule_classify


Expand Down
Empty file added libs/lib_args/__init__.py
Empty file.
69 changes: 69 additions & 0 deletions libs/lib_args/input_basic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/usr/bin/env python
# encoding: utf-8
# 解析输入参数

import argparse
from libs.lib_log_print.logger_printer import output, LOG_ERROR, LOG_INFO


def extract_heads(param_len, param_dict):
# 实现提取字符串首字母的函数,作为参数名, 需要考虑重复问题
initials = [word[0] for word in param_len.split("_")] # 提取每个单词的首字母
initials = "".join(initials) # 将所有首字母拼接成一个字符串

# 需要 param_dict 字典的值是短参数名
if initials not in param_dict.values():
return initials
else:
# 处理重复项问题
i = 0
while True:
i += 1
new_initials = f"{initials}{i}"
if new_initials not in param_dict.values():
break
return new_initials


def config_dict_add_args(config_dict, args):
# 使用字典解压将参数 直接赋值给相应的全局变量
# 要求args参数命名要和字典的键 统一(完全相同或可以变为完全相同)
for param_name, param_value in vars(args).items():
var_name = f"GB_{param_name.upper()}"
try:
# globals()[var_name] = param_value # 赋值全局变量,仅本文件可用
# output(f"[*] INPUT:{var_name} -> {param_value}", level=LOG_ERROR)
config_dict[var_name] = param_value # 赋值全局字典,所有文件可用
if var_name not in config_dict.keys():
output(f"[-] 非预期参数将被赋值: {var_name} <--> {param_value}", level=LOG_ERROR)
except Exception as error:
output(f"[!] 更新参数发生错误: {error}", level=LOG_ERROR)
exit()
return


def show_config_dict(config_dict):
# 输出 config 字典
for index, param_name in enumerate(config_dict.keys()):
param_val = config_dict[param_name]
output(f"[*] Param_{index} {param_name} <--> {param_val}", level=LOG_INFO)


class StoreReverse(argparse.Action):
"""
基于默认值自动取反的动作, 如默认True,则返回false
"""

def __init__(self, option_strings, dest, default=False, required=False, help=None):
super(StoreReverse, self).__init__(
option_strings=option_strings,
dest=dest,
nargs=0,
const=True,
default=default,
required=required,
help=help
)

def __call__(self, parser, namespace, values, option_string=None):
setattr(namespace, self.dest, not self.default)
File renamed without changes.
46 changes: 4 additions & 42 deletions libs/input_parse.py → libs/lib_args/input_parse.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# 解析输入参数
import argparse
from pyfiglet import Figlet

from libs.lib_args.input_basic import extract_heads
from libs.lib_file_operate.file_path import get_sub_dirs
from libs.lib_log_print.logger_printer import output, LOG_ERROR, LOG_INFO
from libs.input_const import *
from libs.lib_log_print.logger_printer import output, LOG_ERROR
from libs.lib_args.input_const import *
from libs.lib_requests.requests_const import HTTP_USER_AGENTS
from libs.lib_requests.requests_tools import random_useragent, random_x_forwarded_for

Expand Down Expand Up @@ -216,25 +218,6 @@ def options_to_argument(args_options, argument_parser, config_dict, param_dict):
exit()


def extract_heads(param_len, param_dict):
# 实现提取字符串首字母的函数,作为参数名, 需要考虑重复问题
initials = [word[0] for word in param_len.split("_")] # 提取每个单词的首字母
initials = "".join(initials) # 将所有首字母拼接成一个字符串

# 需要 param_dict 字典的值是短参数名
if initials not in param_dict.values():
return initials
else:
# 处理重复项问题
i = 0
while True:
i += 1
new_initials = f"{initials}{i}"
if new_initials not in param_dict.values():
break
return new_initials


def vars_to_param(var_name):
# 实现全局变量到参数名的自动转换,和 config_dict_add_args中的修改过程相反
# 基于变量的值实现,要求 变量="变量", 如:GB_PROXIES="GB_PROXIES"
Expand All @@ -244,25 +227,4 @@ def vars_to_param(var_name):
return param_name


def config_dict_add_args(config_dict, args):
# 使用字典解压将参数 直接赋值给相应的全局变量
# 要求args参数命名要和字典的键 统一(完全相同或可以变为完全相同)
for param_name, param_value in vars(args).items():
var_name = f"GB_{param_name.upper()}"
try:
# globals()[var_name] = param_value # 赋值全局变量,仅本文件可用
# output(f"[*] INPUT:{var_name} -> {param_value}", level=LOG_ERROR)
config_dict[var_name] = param_value # 赋值全局字典,所有文件可用
if var_name not in config_dict.keys():
output(f"[-] 非预期参数将被赋值: {var_name} <--> {param_value}", level=LOG_ERROR)
except Exception as error:
output(f"[!] 更新参数发生错误: {error}", level=LOG_ERROR)
exit()
return


def show_config_dict(config_dict):
# 输出 config 字典
for index, param_name in enumerate(config_dict.keys()):
param_val = config_dict[param_name]
output(f"[*] Param_{index} {param_name} <--> {param_val}", level=LOG_INFO)
5 changes: 2 additions & 3 deletions libs/path_handle.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@
# encoding: utf-8
import os.path

from libs.input_const import *
from libs.lib_args.input_const import *
from libs.lib_dyna_rule.base_key_replace import replace_list_has_key_str
from libs.lib_dyna_rule.base_rule_parser import base_rule_render_list
from libs.lib_dyna_rule.dyna_rule_tools import get_key_list_with_frequency
from libs.lib_dyna_rule.set_basic_var import set_base_var_dict_frequency
from libs.lib_file_operate.file_path import get_dir_path_file_info_dict
from libs.lib_file_operate.file_read import read_files_to_frequency_dict
from libs.lib_log_print.logger_printer import output, LOG_INFO, LOG_ERROR, LOG_DEBUG
from libs.lib_log_print.logger_printer import output, LOG_INFO, LOG_ERROR
from libs.lib_url_analysis.url_handle import specify_ext_store, specify_ext_delete, replace_multi_slashes, \
remove_url_end_symbol, url_path_lowercase, url_path_chinese_encode, url_path_url_encode
from libs.lib_url_analysis.url_parser import combine_urls_and_paths
Expand Down
2 changes: 1 addition & 1 deletion setting_com.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# encoding: utf-8
from pathlib import Path
import time
from libs.input_const import *
from libs.lib_args.input_const import *
from libs.lib_file_operate.file_path import auto_make_dir


Expand Down
2 changes: 1 addition & 1 deletion setting_dict.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# encoding: utf-8
from libs.input_const import *
from libs.lib_args.input_const import *
from libs.lib_dyna_rule.dyna_rule_const import *


Expand Down
2 changes: 1 addition & 1 deletion setting_http.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# encoding: utf-8
from libs.input_const import *
from libs.lib_args.input_const import *


def init_custom(config):
Expand Down
2 changes: 1 addition & 1 deletion tools_字典内容整理.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import setting_com
import setting_dict
import setting_http
from libs.input_const import *
from libs.lib_args.input_const import *
from libs.lib_attribdict.config import CONFIG
from libs.lib_file_operate.file_coding import file_encoding
from libs.lib_file_operate.file_path import get_dir_path_file_info_dict
Expand Down
2 changes: 1 addition & 1 deletion tools_字典规则检查.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import setting_com
import setting_dict
import setting_http
from libs.input_const import *
from libs.lib_args.input_const import *
from libs.lib_attribdict.config import CONFIG
from libs.lib_dyna_rule.base_rule_parser import RuleParser
from libs.lib_file_operate.file_path import get_dir_path_file_info_dict, file_name_remove_ext_list, \
Expand Down

0 comments on commit 4acd6c6

Please sign in to comment.