mirror of
https://github.com/TG-Twilight/AWAvenue-Ads-Rule.git
synced 2025-11-04 14:49:47 +08:00
将配置独立为一个文件
This commit is contained in:
parent
3ed413b4b6
commit
0e0c07a09c
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
out
|
out
|
||||||
script/__pycache__
|
__pycache__
|
||||||
|
*/__pycache__
|
||||||
28
config.py
Normal file
28
config.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
SCRIPT_PATH = os.path.join(os.getcwd(), "script") # 插件文件夹
|
||||||
|
RULE_PATH = os.path.join(os.getcwd(), "rule") # 规则文件夹
|
||||||
|
OUT_PATH = os.getcwd() + "/out" # 输出文件夹
|
||||||
|
domain_file=RULE_PATH + "/domain.txt" # 规则文件
|
||||||
|
regex_file=RULE_PATH + "/domain_regex.txt" # 正则规则文件
|
||||||
|
ip_file=RULE_PATH + "/ip.txt" # IP规则文件
|
||||||
|
ip6_file=RULE_PATH + "/ip6.txt" # IPv6规则文件
|
||||||
|
|
||||||
|
if not os.path.exists(OUT_PATH) or not os.path.exists(OUT_PATH):
|
||||||
|
print("插件或者规则目录不存在!")
|
||||||
|
exit(1)
|
||||||
|
if not os.path.exists(OUT_PATH):
|
||||||
|
os.makedirs(OUT_PATH)
|
||||||
|
|
||||||
|
class RuleList:
|
||||||
|
# 初始化规则列表
|
||||||
|
def __init__(self, domain_file, regex_file, ip_file, ip6_file):
|
||||||
|
with open(domain_file, 'r') as file:
|
||||||
|
self.domain_list = sorted(set(line.strip() for line in file))
|
||||||
|
with open(regex_file, 'r') as file:
|
||||||
|
self.regex_list = sorted(set(line.strip() for line in file))
|
||||||
|
with open(ip_file, 'r') as file:
|
||||||
|
self.ip_list = sorted(set(line.strip() for line in file))
|
||||||
|
with open(ip6_file, 'r') as file:
|
||||||
|
self.ip6_list = sorted(set(line.strip() for line in file))
|
||||||
|
rule = RuleList(domain_file, regex_file, ip_file, ip6_file)
|
||||||
30
main.py
30
main.py
@ -1,15 +1,10 @@
|
|||||||
import os
|
import os
|
||||||
import importlib
|
import importlib
|
||||||
import subprocess
|
import subprocess
|
||||||
|
from config import *
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
SCRIPT_PATH = os.path.join(os.getcwd(), "script") # 插件文件夹
|
|
||||||
RULE_PATH = os.path.join(os.getcwd(), "rule") # 规则文件夹
|
|
||||||
OUT_PATH = os.getcwd() + "/out" # 输出文件夹
|
|
||||||
domain_file=RULE_PATH + "/domain.txt" # 规则文件
|
|
||||||
regex_file=RULE_PATH + "/domain_regex.txt" # 正则规则文件
|
|
||||||
ip_file=RULE_PATH + "/ip.txt" # IP规则文件
|
|
||||||
ip6_file=RULE_PATH + "/ip6.txt" # IPv6规则文件
|
|
||||||
|
|
||||||
def get_latest_git_tag(): # 获取最新的git tag
|
def get_latest_git_tag(): # 获取最新的git tag
|
||||||
process = subprocess.Popen('git tag', stdout=subprocess.PIPE, shell=True)
|
process = subprocess.Popen('git tag', stdout=subprocess.PIPE, shell=True)
|
||||||
@ -54,12 +49,15 @@ def RunScript():
|
|||||||
full_plugins_name = f"script.{plugins_name}" # 拼接完整的插件名
|
full_plugins_name = f"script.{plugins_name}" # 拼接完整的插件名
|
||||||
|
|
||||||
try:
|
try:
|
||||||
plugins = importlib.import_module(full_plugins_name).build(rule) # 传入规则列表(RuleList)类的实例
|
plugins = importlib.import_module(full_plugins_name).build(rule) # 传入规则列表(config.RuleList)类的实例
|
||||||
print(f"{plugins_name}转换成功")
|
|
||||||
|
|
||||||
|
if plugins['list'] == True:
|
||||||
|
print(f"{plugins_name}转换成功")
|
||||||
|
return
|
||||||
# 判断插件是否有list、total、suffix、comment四个属性
|
# 判断插件是否有list、total、suffix、comment四个属性
|
||||||
if len(plugins) == 4:
|
if len(plugins) == 4:
|
||||||
WriteFile(plugins_name, plugins['list'], plugins['suffix'], plugins['comment'], str(plugins['total']))
|
WriteFile(plugins_name, plugins['list'], plugins['suffix'], plugins['comment'], str(plugins['total']))
|
||||||
|
print(f"{plugins_name}转换成功")
|
||||||
else:
|
else:
|
||||||
print(f"转换插件:{plugins_name}执行失败: 缺少必要属性")
|
print(f"转换插件:{plugins_name}执行失败: 缺少必要属性")
|
||||||
|
|
||||||
@ -68,20 +66,6 @@ def RunScript():
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if not os.path.exists(OUT_PATH):
|
|
||||||
os.makedirs(OUT_PATH)
|
|
||||||
|
|
||||||
class RuleList:
|
|
||||||
# 初始化规则列表
|
|
||||||
def __init__(self, domain_file, regex_file, ip_file, ip6_file):
|
|
||||||
with open(domain_file, 'r') as file:
|
|
||||||
self.domain_list = sorted(set(line.strip() for line in file))
|
|
||||||
with open(regex_file, 'r') as file:
|
|
||||||
self.regex_list = sorted(set(line.strip() for line in file))
|
|
||||||
with open(ip_file, 'r') as file:
|
|
||||||
self.ip_list = sorted(set(line.strip() for line in file))
|
|
||||||
with open(ip6_file, 'r') as file:
|
|
||||||
self.ip6_list = sorted(set(line.strip() for line in file))
|
|
||||||
rule = RuleList(domain_file, regex_file, ip_file, ip6_file)
|
|
||||||
|
|
||||||
RunScript()
|
RunScript()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user