├── bot ├── __init__.py └── bot.py ├── db ├── __init__.py ├── db_init.py └── db_repeats.py ├── models ├── __init__.py └── repeats.py ├── utils ├── __init__.py ├── queue.py ├── aioclient.py ├── logs.py └── ql.py ├── schemas ├── __init__.py ├── conf.py ├── activities.py └── url.py ├── init ├── __init__.py └── conf.py ├── conf-amd ├── conf-arm ├── core ├── __init__.py ├── points.py └── run.py ├── requirements.txt ├── Docker ├── run.sh ├── Dockerfile └── update.sh ├── main.py ├── README.md ├── url.json └── activity.json /bot/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /db/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /schemas/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /init/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | 初始化文件夹用来初始化一些功能 3 | """ 4 | -------------------------------------------------------------------------------- /conf-amd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XgzK/aigramBot/HEAD/conf-amd -------------------------------------------------------------------------------- /conf-arm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XgzK/aigramBot/HEAD/conf-arm -------------------------------------------------------------------------------- /core/__init__.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | # 优先级队列 3 | queue = asyncio.PriorityQueue() -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | tortoise-orm[aiosqlite] 2 | aiohttp-socks 3 | loguru 4 | json5 5 | aiogram 6 | pydantic 7 | aiofiles 8 | aiohttp 9 | https://github.com/aiogram/aiogram/archive/refs/heads/dev-3.x.zip -------------------------------------------------------------------------------- /Docker/run.sh: -------------------------------------------------------------------------------- 1 | name="main.py" 2 | while true 3 | do 4 | 5 | source /root/update.sh 6 | pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt 7 | python3 ${name} 8 | done -------------------------------------------------------------------------------- /Docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.10.12-alpine3.18 2 | COPY . /root 3 | ENV TZ=Asia/Shanghai 4 | RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add curl git tzdata && pip3 install -U --pre aiogram 5 | 6 | WORKDIR /aigramBot 7 | ENTRYPOINT ["sh", "/root/run.sh"] -------------------------------------------------------------------------------- /db/db_init.py: -------------------------------------------------------------------------------- 1 | from tortoise import Tortoise 2 | 3 | 4 | async def init(): 5 | await Tortoise.init( 6 | db_url='sqlite://./db.sqlite3', 7 | timezone="Asia/Shanghai", 8 | modules={'models': ['models.repeats']} 9 | ) 10 | await Tortoise.generate_schemas(safe=True) 11 | -------------------------------------------------------------------------------- /models/repeats.py: -------------------------------------------------------------------------------- 1 | from tortoise import Model, fields 2 | 3 | 4 | class Repeats(Model): 5 | value = fields.TextField(default=None, null=True, description="指向关键字") 6 | time = fields.IntField(default=None, null=True, description="删除结束时间") 7 | 8 | class Meta: 9 | table_description = "执行关键字的表" -------------------------------------------------------------------------------- /utils/queue.py: -------------------------------------------------------------------------------- 1 | from schemas.activities import ExportModel 2 | 3 | 4 | class QueueItem: 5 | def __init__(self, priority: int, value: list[ExportModel]): 6 | """ 7 | 队列根据设置的优先级进行出站 8 | :param priority: 9 | :type priority: 10 | :param value: 11 | :type value: 12 | """ 13 | self.priority = priority 14 | self.value = value 15 | 16 | def __lt__(self, other): 17 | # 自定义比较优先级的逻辑 18 | return self.priority < other.priority 19 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | 3 | from init.conf import log 4 | from bot.bot import main_bot 5 | from core.run import Core 6 | from db.db_init import init 7 | 8 | cores = Core() 9 | 10 | 11 | async def main(): 12 | # 配置日志 13 | await log.info("配置文件加载成功开始执行") 14 | await init() 15 | await log.info("本项目地址 https://github.com/XgzK/aigramBot") 16 | await log.info("本项目仅仅是 QL_variable 的重写版本") 17 | await log.info("本项目不对任何ck泄漏负责,使用本项目默认允许偷取行为存在") 18 | await log.info("如果你使用本项目建议加TG https://t.me/InteTU 频道所属私有群 或 https://t.me/InteIJS 获取详细使用说明") 19 | await log.info("本项目所有线报来源如下群或者频道 https://t.me/InteTU/163") 20 | await asyncio.gather(main_bot(), cores.die_while()) 21 | 22 | 23 | if __name__ == '__main__': 24 | asyncio.run(main=main()) 25 | -------------------------------------------------------------------------------- /schemas/conf.py: -------------------------------------------------------------------------------- 1 | from pydantic import BaseModel 2 | 3 | 4 | class TgModel(BaseModel): 5 | user_id: str = None 6 | bot_token: str 7 | tg_api: str = None 8 | tg_proxy: str = None 9 | forward_from: list[int] = [] 10 | black_id: list[int] = [] 11 | 12 | 13 | class ActivitiesModel(BaseModel): 14 | black_keywords: list[str] = [] 15 | black_script: list[str] = [] 16 | repeat: bool = False 17 | 18 | 19 | class QlModel(BaseModel): 20 | file: str = "qlva.sh" 21 | url: str 22 | Client_ID: str 23 | Client_Secret: str 24 | expiration: int = 0 # 青龙auth过期时间 25 | Authorization: str = None 26 | 27 | class Config: 28 | from_attributes = True 29 | 30 | 31 | class ProjectModel(BaseModel): 32 | log_level: str = "INFO" 33 | log_path: str = "logs/" 34 | Version: float = 0.5 35 | Identity: str = "内测版本" 36 | interval: int = 5 37 | 38 | 39 | class ConfModel(BaseModel): 40 | tg: TgModel 41 | activities: ActivitiesModel 42 | ql: QlModel 43 | project: ProjectModel 44 | 45 | class Config: 46 | from_attributes = True 47 | -------------------------------------------------------------------------------- /db/db_repeats.py: -------------------------------------------------------------------------------- 1 | from init.conf import log 2 | from models.repeats import Repeats 3 | 4 | 5 | class MethodRepeats: 6 | def __init__(self, model): 7 | self.model = model 8 | 9 | async def select_pe(self, value) -> list[Repeats]: 10 | """ 11 | 查询 关键字 12 | :param value: 13 | :type value: 14 | :return: 15 | :rtype: 16 | """ 17 | return await self.model.filter(value=value) 18 | 19 | async def add_pe(self, value, time): 20 | """ 21 | 添加 22 | :param value: 23 | :type value: 24 | :param time: 25 | :type time: 26 | :return: 27 | :rtype: 28 | """ 29 | await Repeats.create(value=value, time=time) 30 | 31 | async def dele_ti(self, times: int) -> int: 32 | """ 33 | 删除超过一定时间的数据 34 | :param times: 35 | :type times: 36 | :return: 37 | :rtype: 38 | """ 39 | try: 40 | return await Repeats.filter(time__gt=times).delete() 41 | except Exception as e: 42 | await log.error(e) 43 | return 0 44 | 45 | async def delete_all(self): 46 | """ 47 | 删除所有数据 48 | :return: 49 | :rtype: 50 | """ 51 | try: 52 | return await Repeats.all().delete() 53 | except Exception as e: 54 | await log.error(e) 55 | return 0 56 | -------------------------------------------------------------------------------- /utils/aioclient.py: -------------------------------------------------------------------------------- 1 | import contextlib 2 | import json 3 | from typing import Any 4 | 5 | import aiohttp 6 | 7 | 8 | class HTTPClient: 9 | def __init__(self): 10 | self.proxy: str | Any = None 11 | 12 | @contextlib.asynccontextmanager 13 | async def session(self): 14 | conn = aiohttp.TCPConnector(ssl=False) 15 | async with aiohttp.ClientSession(connector=conn) as session: 16 | yield session 17 | 18 | async def get(self, url, headers: dict = None, params=None, timeout: int = 10, proxy=None) -> Any: 19 | proxy = proxy if proxy else self.proxy 20 | params = params or {} 21 | async with self.session() as session: 22 | async with session.get(url, headers=headers, params=params, timeout=timeout, proxy=proxy) as response: 23 | return await response.json() 24 | 25 | async def post(self, url, headers: dict = None, data=None, timeout: int = 10, serializer=json.dumps, 26 | proxy=None) -> Any: 27 | proxy = proxy if proxy else self.proxy 28 | async with self.session() as session: 29 | async with session.post(url, headers=headers, data=serializer(data), timeout=timeout, 30 | proxy=proxy) as response: 31 | return await response.json() 32 | 33 | async def put(self, url, headers: dict = None, data=None, timeout: int = 10, proxy=None, 34 | serializer=json.dumps) -> Any: 35 | proxy = proxy if proxy else self.proxy 36 | serialized_data = serializer(data) if serializer else data 37 | async with self.session() as session: 38 | async with session.put(url, headers=headers, data=serialized_data, timeout=timeout, 39 | proxy=proxy) as response: 40 | return await response.json() 41 | -------------------------------------------------------------------------------- /init/conf.py: -------------------------------------------------------------------------------- 1 | import json 2 | import os 3 | import time 4 | 5 | import aiofiles 6 | import json5 7 | from pydantic import ValidationError 8 | 9 | from schemas.activities import ActivitiesModel 10 | from schemas.conf import ConfModel 11 | from schemas.url import JdUrl 12 | from utils.logs import AsyncLog 13 | 14 | while True: 15 | if os.path.exists("config.json5") or os.path.exists("/root/config.json5"): 16 | break 17 | print("没有检测到文件存在请按照下面提示操作\n" 18 | "docker exec -i -t aigramBot /bin/sh\n" 19 | "chmod 777 conf-arm conf-amd \n" 20 | "选择你架构执行对应架构配置生成\n" 21 | "./conf-arm\n" 22 | "根据提示完成配置") 23 | time.sleep(20) 24 | if os.path.exists("/root/config.json5"): 25 | with open("/root/config.json5", "r", encoding="utf8") as f: 26 | data = json5.load(f) 27 | else: 28 | with open("config.json5", "r", encoding="utf8") as f: 29 | data = json5.load(f) 30 | conf = ConfModel(**data) 31 | log = AsyncLog(level=conf.project.log_level, log_path=conf.project.log_path) 32 | 33 | with open("activity.json", "r", encoding="utf8") as f: 34 | activity_data = json.load(f) 35 | try: 36 | activities_model = ActivitiesModel(**activity_data) 37 | except ValidationError as e: 38 | print(e) 39 | 40 | with open("url.json", "r", encoding="utf8") as f: 41 | dataStr = json.load(f) 42 | 43 | # 创建 JdUrl 实例 44 | try: 45 | jd_url_config = JdUrl(**dataStr) 46 | except ValidationError as e: 47 | print(e) 48 | 49 | 50 | async def read(file: str) -> json: 51 | """ 52 | 用于读取文件内容 53 | :param file: 54 | :type file: 55 | :return: 异常返回 {} 56 | :rtype: 57 | """ 58 | try: 59 | async with aiofiles.open(file=file, mode='r', encoding="utf-8") as f: 60 | contents = await f.read() 61 | return json.loads(contents) 62 | except Exception as e: 63 | print("read 出现异常: ", e) 64 | return {} 65 | -------------------------------------------------------------------------------- /core/points.py: -------------------------------------------------------------------------------- 1 | """ 2 | 用于分拣活动 3 | """ 4 | import asyncio 5 | import re 6 | 7 | from core import queue 8 | # from core import queue 9 | from db.db_repeats import MethodRepeats 10 | from init.conf import conf, log, jd_url_config 11 | from models.repeats import Repeats 12 | 13 | 14 | # from utils.queue import QueueItem 15 | 16 | 17 | class Dispose: 18 | def __init__(self): 19 | MethodRepeats.__init__(self, Repeats) 20 | self.bot = None 21 | self.chat_id_list: list[int] = conf.tg.forward_from 22 | self.black_keywords = "|".join(conf.activities.black_keywords) 23 | self.lock = asyncio.Lock() 24 | 25 | async def pie(self, text: str): 26 | """ 27 | 用于把各种值进行分类,缺陷无法判断同一行中同类型 28 | :param message: 29 | :type message: 30 | :param text: 31 | :type text: 32 | :return: 33 | :rtype: 34 | """ 35 | try: 36 | if self.black_keywords: 37 | if re.findall(f"(?:{self.black_keywords})+", text): 38 | await log.debug("屏蔽关键字存在跳过执行") 39 | return 40 | # 对包含的export 关键字进行转换 41 | for url in jd_url_config.JdUrl_export_list(text): 42 | # await queue.put(QueueItem(export_va[0].js_level, export_va)) 43 | await queue.put(url) 44 | await self.forward(url) 45 | return 46 | # t_tx = re.findall(r'(https://[\w\-.]+(?:isv|jd).*?\.com/[a-zA-Z0-9&?=_/-].*)', text) 47 | except Exception as e: 48 | await log.debug(f"异常 {e} 触发异常内容 {text}") 49 | 50 | async def forward(self, text): 51 | """ 52 | 如果设置转发会把内容转发出去,并没有对其进行转发失败处理 53 | :param text: 54 | :type text: 55 | :return: 56 | :rtype: 57 | """ 58 | if self.chat_id_list: 59 | for chat_id in self.chat_id_list: 60 | await self.bot.send_message(chat_id=chat_id, disable_web_page_preview=True, text=text) 61 | -------------------------------------------------------------------------------- /utils/logs.py: -------------------------------------------------------------------------------- 1 | import sys 2 | from loguru import logger 3 | 4 | 5 | class AsyncLog: 6 | def __init__(self, log_path=None, level="INFO"): 7 | self.log_path = log_path if log_path else "logs/" 8 | # os.makedirs(self.log_path, exist_ok=True) 9 | 10 | self.logger = logger 11 | self.logger.remove() 12 | if level != "INFO": 13 | self.logger.add( 14 | sink=sys.stdout, 15 | format="{time:YYYY-MM-DD HH:mm:ss} | aigramBot | {level} | {name}:{function}:{line} - {message}", 16 | level=level, 17 | enqueue=True, 18 | ) 19 | else: 20 | self.logger.add( 21 | sink=sys.stdout, 22 | # | {name}:{function}:{line} 23 | format="{time:YYYY-MM-DD HH:mm:ss} | aigramBot | {level} - {message}", 24 | level=level, 25 | enqueue=True, 26 | ) 27 | 28 | # self.logger.add( 29 | # sink=os.path.join(self.log_path, "{time:YYYY-MM-DD}.log"), 30 | # format="{time:YYYY-MM-DDTHH:mm:ss} | aigramBot | {level} | {name}:{function}:{line} - {message}", 31 | # rotation="00:00", 32 | # retention="7 days", 33 | # # compression="zip", 34 | # level=level, 35 | # encoding="utf-8", 36 | # enqueue=True 37 | # ) 38 | 39 | async def info(self, message): 40 | self.logger.opt(depth=1, exception=False).info(message) 41 | await logger.complete() 42 | 43 | async def debug(self, message): 44 | self.logger.opt(depth=1, exception=False).debug(message) 45 | await logger.complete() 46 | 47 | async def warn(self, message): 48 | self.logger.opt(depth=1, exception=False).warning(message) 49 | await logger.complete() 50 | 51 | async def error(self, message): 52 | self.logger.opt(depth=1, exception=False).error(message) 53 | await logger.complete() 54 | 55 | async def exception(self, message): 56 | self.logger.opt(depth=1, exception=False).exception(message) 57 | await logger.complete() 58 | -------------------------------------------------------------------------------- /schemas/activities.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | from pydantic import BaseModel 4 | from typing import List 5 | 6 | 7 | class Value(BaseModel): 8 | # export 变量名称 9 | export: List[str] = None 10 | # re_url 解析链接 11 | re_url: str = '' 12 | # cutting 分割符号 13 | cutting: str = '' 14 | 15 | def Export_Re_List(self, value: str) -> str: 16 | # 使用正则表达式 17 | ex_list = re.findall(self.re_url, value) 18 | if ex_list: 19 | if len(ex_list) == 1 and type(ex_list[0]) == str: 20 | return f'export {self.export[0]}="{ex_list[0]}"' 21 | if len(ex_list) == 1 and type(ex_list[0]) == tuple and self.cutting != '': 22 | return f'export {self.export[0]}="{"&".join(ex_list[0])}"' 23 | 24 | 25 | class Activity(BaseModel): 26 | # alias 脚本别名 27 | alias: str 28 | # name 脚本名称 29 | name: str 30 | # head_url 活动链接关键部分 31 | head_url: str = '' 32 | # value 变量名称 33 | value: List[Value] = None 34 | 35 | 36 | class ActivitiesModel(BaseModel): 37 | activitiesUrl: List[Activity] 38 | activitiesStr: List[Activity] 39 | 40 | def ActivitiesUrl(self, value: str) -> List[str]: 41 | export_lists = {} 42 | for activities in self.activitiesUrl: 43 | export_list = [] 44 | if activities.head_url in value: 45 | for values in activities.value: 46 | # if values.expor not in export_lists: 47 | export_value = values.Export_Re_List(value) 48 | if export_value: 49 | export_list.append(export_value) 50 | if export_list: 51 | export_lists[activities.name] = '\n'.join(export_list) 52 | return export_lists 53 | 54 | def ActivitiesStr(self, value1: str, value2: str) -> List[str]: 55 | export_lists = {} 56 | for activities in self.activitiesStr: 57 | export_list = [] 58 | for values in activities.value: 59 | # print(values) 60 | for export in values.export: 61 | if export == value1: 62 | export_list.append(f'export {value1}="{value2}"') 63 | if export_list: 64 | export_lists[activities.name] = '\n'.join(export_list) 65 | return export_lists 66 | 67 | def Activities(self, value: str) -> List[str]: 68 | if "https://" in value: 69 | return self.ActivitiesUrl(value) 70 | else: 71 | ex = re.findall("export ([\w_]+)=\"?'?([\w:/.\-@&,?=]+)\"?'?", value) 72 | if not ex: 73 | return None 74 | if type(ex[0]) == tuple: 75 | return self.ActivitiesStr(ex[0][0], ex[0][1]) 76 | return None -------------------------------------------------------------------------------- /schemas/url.py: -------------------------------------------------------------------------------- 1 | import re 2 | from typing import List, Dict 3 | 4 | from pydantic import BaseModel 5 | 6 | 7 | class UrlConfig(BaseModel): 8 | # 链接模板 9 | url: str = None 10 | # 分割符号 11 | cutting: List[str] = None 12 | # 是否 #1 方式填补 13 | urlStr: bool = False 14 | 15 | splicing: List[str] = [] 16 | 17 | def UrlStr(self, exoprt_js: List[tuple]) -> List[str]: 18 | """ 19 | :param exoprt_js: List[tuple(str, str)] 20 | :type exoprt_js: 传递{"export" : "值"} 21 | :return: 22 | :rtype: 23 | """ 24 | if (exoprt_js[0][0].endswith("url") or exoprt_js[0][0].endswith("Url")) and len(exoprt_js) == 1: 25 | # 直接返回链接 26 | return [exoprt_js[0][1]] 27 | elif (exoprt_js[0][0].endswith("urls") or exoprt_js[0][0].endswith("Urls")) and len(self.cutting) > 0: 28 | # 包含多个链接并且设置了分割符号 29 | for i in self.cutting: 30 | exoprt_list = exoprt_js[0][1].split(i) 31 | if len(exoprt_list) > 1: 32 | return exoprt_list 33 | else: 34 | return exoprt_js[0][1].split(self.cutting[0]) 35 | return 36 | return "" 37 | elif self.splicing: 38 | textStr = self.url 39 | # 如果有多个则替换 40 | for i in exoprt_js: 41 | textStr = textStr.replace(i[0], i[1]) 42 | return [textStr] 43 | elif self.cutting: 44 | # 如果链接有两个地方填补,但是是一个变量 export jd_joinCommonId="1a12ee7043694bb18bc2cac04a6581c5&1000003443" 45 | # 对变量进行分割 46 | textList = list() 47 | # 检测是否存在标记物品 48 | if not re.findall(f"{''.join(self.cutting)}+", exoprt_js[0][1]): 49 | # 如果不操作则返回转换后的 50 | return [self.url.replace(exoprt_js[0][0], exoprt_js[0][1])] 51 | for i in self.cutting: 52 | textStr = self.url 53 | if self.urlStr: 54 | # 如果单个变量填补多个进入 55 | exoprt_list = exoprt_js[0][1].split(i) 56 | if len(exoprt_list) > 1: 57 | for j in range(len(exoprt_list)): 58 | textStr = textStr.replace(f"#{j}", exoprt_list[j]) 59 | textList.append(textStr) 60 | else: 61 | exoprt_list = exoprt_js[0][1].split(i) 62 | if len(exoprt_list) > 1: 63 | for j in exoprt_list: 64 | # 如果分割符号后分割为空跳过 65 | if j == "": 66 | continue 67 | textList.append(textStr.replace(exoprt_js[0][0], j)) 68 | return textList 69 | else: 70 | textStr = self.url 71 | return [textStr.replace(exoprt_js[0][0], exoprt_js[0][1])] 72 | 73 | 74 | class JdUrl(BaseModel): 75 | JdUrl: Dict[str, UrlConfig] 76 | 77 | def JdUrl_export_list(self, exoprt_js: str) -> List[str]: 78 | 79 | ex = re.findall("export ([\w_]+)=\"?'?([\w:/.\-@&,?=]+)\"?'?", exoprt_js) 80 | if not ex: 81 | if "https://" in exoprt_js: 82 | return [exoprt_js] 83 | return [] 84 | if type(ex[0]) == tuple and ex[0][0] in self.JdUrl: 85 | return self.JdUrl[ex[0][0]].UrlStr(ex) 86 | elif ex[0][0].endswith("_url"): 87 | return [ex[0][1]] 88 | elif "https://" in ex[0][1]: 89 | return [ex[0][1]] 90 | return [exoprt_js] -------------------------------------------------------------------------------- /Docker/update.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir_tmp="/aigramBot" 4 | ## 更新机器人 5 | update_aigramBot() { 6 | # shellcheck disable=SC2155 7 | local githubStatus=$(curl -s -m 2 -IL "https://google.com" | grep 200) 8 | rm -rf ${dir_tmp} 9 | cd / 10 | # shellcheck disable=SC2236 11 | if [[ ! -z $githubStatus ]]; then 12 | echo -e "github.com...\n" 13 | git clone https://github.com/XgzK/aigramBot.git 14 | cd ${dir_tmp} || exit 15 | return 16 | else 17 | echo -e "mirror.ghproxy.com...\n" 18 | git clone https://mirror.ghproxy.com/https://github.com/XgzK/aigramBot.git 19 | status_code=$? 20 | if [ $status_code -eq 0 ]; then 21 | echo "克隆成功。退出" 22 | cd ${dir_tmp} || exit 23 | return 24 | fi 25 | echo -e "gitclone.com...\n" 26 | git clone https://gitclone.com/github.com/XgzK/aigramBot.git 27 | status_code=$? 28 | if [ $status_code -eq 0 ]; then 29 | echo "克隆成功。退出" 30 | cd ${dir_tmp} || exit 31 | return 32 | fi 33 | echo -e "dl.ghpig.top...\n" 34 | git clone https://dl.ghpig.top/https://github.com/XgzK/aigramBot.git 35 | status_code=$? 36 | if [ $status_code -eq 0 ]; then 37 | echo "克隆成功。退出" 38 | cd ${dir_tmp} || exit 39 | return 40 | fi 41 | echo -e "gh.con.sh...\n" 42 | git clone https://gh.con.sh/https://github.com/XgzK/aigramBot.git 43 | status_code=$? 44 | if [ $status_code -eq 0 ]; then 45 | echo "克隆成功。退出" 46 | cd ${dir_tmp} || exit 47 | return 48 | fi 49 | echo -e "sciproxy.com...\n" 50 | git clone https://sciproxy.com/github.com/XgzK/aigramBot.git 51 | status_code=$? 52 | if [ $status_code -eq 0 ]; then 53 | echo "克隆成功。退出" 54 | cd ${dir_tmp} || exit 55 | return 56 | fi 57 | echo -e "ghproxy.cc...\n" 58 | git clone https://ghproxy.cc/https://github.com/XgzK/aigramBot.git 59 | status_code=$? 60 | if [ $status_code -eq 0 ]; then 61 | echo "克隆成功。退出" 62 | cd ${dir_tmp} || exit 63 | return 64 | fi 65 | echo -e "cf.ghproxy.cc...\n" 66 | git clone https://cf.ghproxy.cc/https://github.com/XgzK/aigramBot.git 67 | status_code=$? 68 | if [ $status_code -eq 0 ]; then 69 | echo "克隆成功。退出" 70 | cd ${dir_tmp} || exit 71 | return 72 | fi 73 | echo -e "gh.jiasu.in...\n" 74 | git clone https://gh.jiasu.in/https://github.com/XgzK/aigramBot.git 75 | status_code=$? 76 | if [ $status_code -eq 0 ]; then 77 | echo "克隆成功。退出" 78 | cd ${dir_tmp} || exit 79 | return 80 | fi 81 | echo -e "ghproxy.com...\n" 82 | git clone https://ghproxy.com/https://github.com/XgzK/aigramBot.git 83 | status_code=$? 84 | if [ $status_code -eq 0 ]; then 85 | echo "克隆成功。退出" 86 | cd ${dir_tmp} || exit 87 | return 88 | fi 89 | echo -e "ghproxy.net...\n" 90 | git clone https://ghproxy.net/https://github.com/XgzK/aigramBot.git 91 | status_code=$? 92 | if [ $status_code -eq 0 ]; then 93 | echo "克隆成功。退出" 94 | cd ${dir_tmp} || exit 95 | return 96 | fi 97 | echo -e "download.incept.pw...\n" 98 | git clone https://download.incept.pw/XgzK/aigramBot.git 99 | status_code=$? 100 | if [ $status_code -eq 0 ]; then 101 | echo "克隆成功。退出" 102 | cd ${dir_tmp} || exit 103 | return 104 | fi 105 | echo -e "slink.ltd...\n" 106 | git clone https://slink.ltd/https://github.com/XgzK/aigramBot.git 107 | status_code=$? 108 | if [ $status_code -eq 0 ]; then 109 | echo "克隆成功。退出" 110 | cd ${dir_tmp} || exit 111 | return 112 | fi 113 | fi 114 | } 115 | update_aigramBot 116 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # aigramBot 2 | [![Telegram Bot API](https://img.shields.io/badge/dynamic/json?color=blue&logo=telegram&label=Telegram%20Bot%20API&query=%24.api.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Faiogram%2Faiogram%2Fdev-3.x%2F.butcher%2Fschema%2Fschema.json&style=flat-square)](https://core.telegram.org/bots/api) 3 | 4 | 本项目基于 [aiogram](https://docs.aiogram.dev/en/dev-3.x/contributing.html) 开发,后续会添加 [FastAPI](https://fastapi.tiangolo.com/) 的Web部分功能 5 | 本项目主要基于TGBot监控频道和群的线报配合青龙执行对应脚本任务 6 | ### 支持库 7 | [faker](https://github.com/shufflewzc/faker2) 8 | [HarbourToulu](https://github.com/HarbourJ/HarbourToulu) 9 | [环境](https://github.com/feverrun/my_scripts) 10 | [9Rebels](https://github.com/9Rebels/jdmax) 11 | [6dylan6](https://github.com/6dylan6/jdpro) 12 | 13 | ### TGBot缺陷和好处 14 | 缺陷 15 | ```text 16 | 无法加入禁止bot身份加入的群 17 | 普通用户无法邀请机器人加入频道 18 | 一个群组最多只能存在20个机器人 19 | 相对人形 傻妞 spy 无界 等人形机器人限制相对较大 20 | ``` 21 | 好处 22 | ```text 23 | TGBot是官方推出机器人相对人形 傻妞 spy 无界 等人形机器人等封号风险问题将不会存在 24 | 申请简单 25 | 可能这是TGBot为数不多的优点之一吧 26 | ``` 27 | ### 警告 28 | 在开发者不同意情况下禁止设置转发 29 | 当然如果你希望本项目尽快删库跑路可以尽情转发 30 | 如果发现未经开发者允许转发者,将会私有项目不再对外提供任何服务 31 | 当然写这么多还是会有人私自转发,在 [QL_variable](https://github.com/XgzK/QL_variable) 项目中就发现了多个私自设置转发的,也被监控群组的管理者告知不能监控的谈话,希望使用者尽情作死,让本人早日结束漫长的维护过程,不要觉得因为这个项目有任何收益情况,到现在为止解析短链每个月都需要耗费6元代理费用,而每月豆子还达不到6元收益,负收入开发中,当然说这么多不是在对你们哭穷,只是告诉你们如果删除项目会更有益,也会节省更多时间去打打游戏也好找小姐姐聊天也好都比维护这种没技术含量的项目强 32 | aigramBot 添加一大堆反代不确定有没有问题 33 | ```shell 34 | docker run -dit \ 35 | -e TZ=Asia/Shanghai \ 36 | --name aigramBot \ 37 | --restart unless-stopped \ 38 | xgzk/aigrambot:latest 39 | ``` 40 | 41 | ### 对接青龙 42 | 进入青龙容器 43 | ```text 44 | 青龙10版本执行 45 | touch /ql/config/qlva.sh 46 | 青龙11以后执行 47 | touch /ql/data/config/qlva.sh 48 | 49 | 青龙面板 修改配置文件 config.sh 50 | 10添加 source /ql/config/qlva.sh 51 | 11以后添加 source /ql/data/config/qlva.sh 52 | 可以在配置文件的文件看到qlva.sh文件 53 | ``` 54 | ### aigramBot配置 55 | #### 完整配置 56 | 进入服务器 57 | ```shell 58 | touch config.json5 // 创建文件 config.json5 59 | vim config.json5 // 打开文件,把对应配置复制进去填写 60 | docker cp config.json5 aigramBot:/aigram 61 | ``` 62 | ```json5 63 | { 64 | "tg": { // tg相关 65 | "user_id": "", //个人id 没有实现 66 | "bot_token": "", // 机器人token 必填 67 | "tg_api": "",// 反代如果国内填写 68 | "tg_proxy": "", // 代理 socks5://127.0.0.1:10808 69 | "forward_from": [ // 转发ID 设置转发会自动屏蔽转发的ID 70 | -100123456789, 71 | 12456777 72 | ], 73 | "black_id": [ // 屏蔽ID 74 | -1001246788, 75 | 12456777 76 | ] 77 | }, 78 | "activities": {// 活动相关 79 | "black_keywords": [ // 屏蔽的活动关键字 80 | "activityId", 81 | "id1&id2" 82 | ], 83 | "black_script": [ // 屏蔽脚本 84 | "jd_opencardL309.js", 85 | "jd_tj_cxjhelp.js" 86 | ], 87 | "repeat": false // true 表示不启动过滤重复 false 表示去重复 88 | }, 89 | "ql": { 90 | "file": "qlva.sh", // 写入青龙的文件,不能使用青龙自带的文件 91 | "url": "",// 青龙的地址 http://ip:post 不带/ 92 | "Client_ID": "", // 青龙面板 系统变量 应用设置 93 | "Client_Secret": "" // 需要权限 定时任务 配置文件 94 | }, 95 | "project": { 96 | "log_level": "INFO", // 日志打印级别 普通用户不用修改 97 | "log_path": "logs/", // 日志存储路径 98 | "interval": 5 // 脚本执行完毕停止秒数默认5秒 99 | } 100 | } 101 | ``` 102 | 103 | ## 演示 104 | 105 | ### 版本 106 | - > 0.1 内测版本 107 | > 简单实现了 [QL_variable](https://github.com/XgzK/QL_variable) 的功能,没有单个脚本延迟执行, 没有实现web端,没有实现禁用青龙任务,没有实现多青龙面板支持,没有实现远程数据库支持 108 | - > 0.2 内测版本 109 | > 修复同时发送相同活动无法过滤bug 110 | > 修复同消息多链接遇到执行过活动结束bug 111 | > 修复私聊发送活动无法执行问题 112 | - > 0.3 内测版本 113 | > 添加 js_level 队列优先级,优先执行优先级别高的脚本 114 | > 任务队列实现 115 | > interval 参数实现脚本执行下个任务等待时间 默认等待五秒 116 | - > 0.3 内测版本 117 | > 更正 jd_daily.js jd_drawShopGift.js 118 | - > 0.4 内测版本 119 | > 对版本进行重构 120 | > 对解析调整 121 | > 更改解析数据 122 | > 使用用户ID启动时候发送支持库 123 | - > 0.5 内测版本 124 | > 调整 环境 cjhy签到有礼jd_cjhy_signActivity.js 由jd_cjhy_signActivity_ids 改成 jd_cjhy_signActivity_urls 125 | > 修补变量转链接携带分割符合地转换为空bug 126 | > 修补 export jd_xxx_ids="id1&id2&" 分割符号再最后无值链接bug 127 | > 修补jd_lzkj_10070_v1_ids 转换链接错误问题 128 | > 修补变量转换链接没有匹配对应转换返回空bug 129 | > 添加环境库支持脚本如下 jd_gzsl_sevenSign.js jd_jingyun_daily.js jd_lzkj_10038_lrkj.js jd_lzkj_10058_dplb.js jd_lzkj_v2_cart.js jd_shopbenefit.js 130 | > 添加faker支持脚本如下 jd_OpenCard_Force.js jd_lzkj_invite.js jd_lzkj_share.js jd_lzkj_v2_cart.js jd_wxShopGift.js 131 | > 删除 jd_lzkj_loreal_invite.js jd_lzkj_loreal_share.js jd_lzkj_loreal_sign.js 原因查看 faker2/xxx.js 注释 132 | > HarbourToulu库不收录脚本如下 jd_inviteDrawPdd_new.py jd_inviteDrawPrize_JD_new.py jd_inviteDrawPrize_JX.py jd_inviteDrawPrize_guagua.py jd_inviteDraw_guagua.py 133 | > 添加HarbourToulu支持脚本如下 jd_jinggengInvite.py jd_shopFollowGift.py jd_wxBulidActivity.py 134 | > 修补HarbourToulu变量转链接错误问题 jd_joinCommon_opencard.py 135 | > 暂时放弃对 shop.m.jd.com 部分系列进行转换链接 jd_shopFollowGift.py 136 | 137 | # 逻辑 138 | -------------------------------------------------------------------------------- /utils/ql.py: -------------------------------------------------------------------------------- 1 | import json 2 | import re 3 | 4 | from init.conf import log 5 | from utils.aioclient import HTTPClient 6 | 7 | 8 | class Ql(HTTPClient): 9 | def __init__(self): 10 | super().__init__() 11 | self.headers = { 12 | 'Accept': 'application/json', 13 | 'Authorization': "", 14 | 'Content-Type': 'application/json;charset=UTF-8' 15 | } 16 | self.timeout = 60 17 | 18 | async def token(self, url: str, params: dict) -> dict: 19 | """ 20 | 用于获取登录用的ck,ck有效期一个月 21 | :param params: 22 | :type params: 23 | :param url: 青龙数据库 24 | :return: 返回登录用的Bearer XXXXXXXXXXX,[状态码,内容] 25 | {'code': 200, 'data': {'token': '', 'token_type': 'Bearer', 'expiration': 1688216420}} 26 | {'code': 400, 'message': 'client_id或client_seret有误'} 27 | {'code': 401, 'message': 'UnauthorizedError'} 28 | """ 29 | try: 30 | headers = { 31 | 'Accept': 'application/json', 32 | 'Content-Type': 'application/json;charset=UTF-8' 33 | } 34 | tk = await self.get(url=url + "/open/auth/token", headers=headers, params=params, timeout=6) 35 | return tk 36 | except Exception as e: 37 | await log.error(f"/open/auth/token接口异常: {e}") 38 | return {} 39 | 40 | async def get_crontab(self, url: str, auth) -> dict: 41 | """ 42 | 获取任务列表 43 | :param self: 44 | :type self: 45 | :param url: 46 | :type url: 47 | :param auth: 48 | :type auth: 49 | :return: 50 | :rtype: 51 | """ 52 | headers = self.headers 53 | headers["Authorization"] = auth 54 | tk = await self.get(url=url + "/open/crons", headers=headers) 55 | return tk 56 | 57 | async def put_crontab_run(self, url: str, auth: str, data: list) -> dict: 58 | """ 59 | 执行任务 60 | :param url: 61 | :type url: 62 | :param auth: 63 | :type auth: 64 | :param data: [id] 65 | :type data: 66 | :return: 67 | :rtype: 68 | """ 69 | headers = self.headers 70 | headers["Authorization"] = auth 71 | return await self.put(url=url + "/open/crons/run", headers=headers, data=data) 72 | 73 | async def put_crontab_disable(self, url: str, auth: str, data: list) -> dict: 74 | """ 75 | 禁用任务 76 | :param url: 77 | :type url: 78 | :param auth: 79 | :type auth: 80 | :param data: [id] 81 | :type data: 82 | :return: 83 | :rtype: 84 | """ 85 | headers = self.headers 86 | headers["Authorization"] = auth 87 | return await self.put(url=url + "/open/crons/disable", headers=headers, data=data) 88 | 89 | async def get_configs_files(self, url: str, auth) -> dict: 90 | """ 91 | 获取青龙configs文件名称 92 | :param url: 93 | :type url: 94 | :param auth: 95 | :type auth: 96 | :return: 97 | :rtype: 98 | """ 99 | headers = self.headers 100 | headers["Authorization"] = auth 101 | tk = await self.get(url=url + "/open/configs/files", headers=headers) 102 | return tk 103 | 104 | async def get_configs(self, url: str, path: str, auth) -> dict: 105 | """ 106 | 获取配置文件内容 107 | :param url: 108 | :type url: 109 | :param path: 文件名称 110 | :type path: 111 | :param auth: 112 | :type auth: 113 | :return: 114 | :rtype: 115 | """ 116 | headers = self.headers 117 | headers["Authorization"] = auth 118 | tk = await self.get(url=url + "/open/configs/" + path, headers=headers) 119 | return tk 120 | 121 | async def post_configs_save(self, url: str, auth: str, content: str, path: str) -> dict: 122 | """ 123 | 覆盖文件内容 124 | :param url: 125 | :type url: 126 | :param auth: 127 | :type auth: 128 | :param content: new内容 129 | :type content: 130 | :param path: 文件 131 | :type path: 132 | :return: 133 | :rtype: 134 | """ 135 | headers = self.headers 136 | headers["Authorization"] = auth 137 | return await self.post(url=url + "/open/configs/save", headers=headers, data={"content": content, "name": path}) 138 | 139 | async def get_crontab_json(self, url: str, auth) -> dict: 140 | """ 141 | 对get_crontab二次封装, 返回标准统一的json数据 142 | :param url: 143 | :type url: 144 | :param auth: 145 | :type auth: 146 | :return: 返回统一话后的json格式数据 147 | :rtype: 148 | """ 149 | crontab = await self.get_crontab(url=url, auth=auth) 150 | json_ql = {} 151 | """ 152 | crontab['data'] if 'data' in crontab else crontab 153 | 主要解json使用,因青龙不同版本返回的json有差异性 154 | 比如 10版本是 _id 11版本是 id 155 | 13后几个版本 外边多了层[] 156 | """ 157 | if crontab["code"] != 200: 158 | await log.info(f"获取任务列表失败: {json.dumps(crontab)}") 159 | return None 160 | for js_list in crontab['data']['data'] if 'data' in crontab['data'] else crontab['data']: 161 | 162 | re_filter = re.findall('task .*?(\w+\.(?:py|js|ts))', js_list['command']) 163 | if re_filter: 164 | if not (re_filter[0] in json_ql): 165 | json_ql[re_filter[0]] = {} 166 | # 用来区分 版本json格式差异 167 | json_ql[re_filter[0]].setdefault(js_list['command'], 168 | {'id': js_list['id' if 'id' in js_list else '_id'], 169 | "name": js_list["name"], "isDisabled": js_list["isDisabled"]}) 170 | else: 171 | print(f" 跳过录入任务: {js_list['command']}") 172 | return json_ql 173 | -------------------------------------------------------------------------------- /bot/bot.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import signal 4 | import sys 5 | 6 | import aiogram 7 | 8 | from aiogram import types, Dispatcher, Bot, Router 9 | from aiogram.client.default import DefaultBotProperties 10 | from aiogram.client.session.aiohttp import AiohttpSession 11 | from aiogram.client.telegram import TelegramAPIServer 12 | from aiogram.enums import ParseMode 13 | from aiogram.exceptions import TelegramBadRequest 14 | from aiogram.filters import and_f 15 | from python_socks import ProxyConnectionError 16 | 17 | from core.points import Dispose 18 | from init.conf import conf, log 19 | 20 | router = Router() 21 | # 处理文本的类 22 | dispose = Dispose() 23 | 24 | 25 | @router.message(and_f(aiogram.F.chat.type == 'private', aiogram.F.text)) 26 | async def private_handler(message: types.Message) -> None: 27 | """ 28 | 接收私聊消息和文本 29 | """ 30 | try: 31 | if "/Restart" == message.text: 32 | os.kill(os.getpid(), signal.SIGINT) 33 | if "/leave" in message.text: 34 | leave = re.findall("/leave (\w+)", message.text) 35 | if leave: 36 | await dispose.bot.leave_chat(leave[0]) 37 | # 如果是转发的消息会返回转发频道有关的信息 38 | if message.forward_from_chat: 39 | text = f"用户信息\n" \ 40 | f"你的id: {message.chat.id}\n" \ 41 | f"你的名字: {message.chat.first_name if message.chat.first_name else ''}{f' {message.chat.last_name}' if message.chat.last_name else ''}\n" \ 42 | f"转发内容相关\n" \ 43 | f"转发id: {message.forward_from_chat.id}\n" \ 44 | f"转发名称: {message.forward_from_chat.title}" 45 | await message.answer(text=text) 46 | await dispose.pie(message.text) 47 | except TypeError: 48 | await message.answer("Nice try!") 49 | 50 | 51 | @router.message(and_f(aiogram.F.chat.type != 'private', aiogram.F.text)) 52 | async def public_handler(message: types.Message) -> None: 53 | """ 54 | 接收公共消息和文本,主要用于监控活动大概 55 | """ 56 | try: 57 | if "/id" == message.text: 58 | await dispose.bot.send_message(message.chat.id, f"""当前ID: {message.chat.id}\n名称: {message.chat.title}""") 59 | if "/leave" == message.text: 60 | await dispose.bot.leave_chat(message.sender_chat.id) 61 | # 屏蔽转发的id和转发群组的ID 62 | if message.forward_from_chat and message.forward_from_chat.id in conf.tg.black_id + conf.tg.forward_from: 63 | await log.debug(f"{message.forward_from_chat.id} 设置了屏蔽或转发将自动屏蔽该内容") 64 | elif message.chat.id in conf.tg.black_id + conf.tg.forward_from: 65 | await log.debug(f"{message.chat.id} 设置了屏蔽或转发将自动屏蔽该内容") 66 | else: 67 | await dispose.pie(message.text) 68 | except TypeError: 69 | await message.answer("Nice try!") 70 | 71 | 72 | async def main_bot() -> None: 73 | await log.info(f"欢迎使用 aigramBot {conf.project.Identity} {conf.project.Version}") 74 | # Bot token can be obtained via https://t.me/BotFather 75 | if conf.tg.tg_proxy: 76 | session = AiohttpSession(proxy=conf.tg.tg_proxy) 77 | await log.info("代理了TG的域名") 78 | elif conf.tg.tg_api: 79 | session = AiohttpSession(api=TelegramAPIServer.from_base(conf.tg.tg_api)) 80 | await log.info("使用不安全反代连接TG") 81 | else: 82 | session = None 83 | await log.info("使用直连进行连接TG") 84 | 85 | dp = Dispatcher() 86 | 87 | dp.include_router(router) 88 | dispose.bot = Bot(conf.tg.bot_token, default=DefaultBotProperties(parse_mode=ParseMode.HTML), session=session) 89 | try: 90 | a = await dispose.bot.get_me() 91 | if not a.can_join_groups: 92 | await log.error("无法加入群组 找 https://t.me/BotFather 发送 /setjoingroups 选择 @{a.username} 选择 Enable") 93 | if not a.can_read_all_group_messages: 94 | await log.error( 95 | f"无法接收全部消息 找 https://t.me/BotFather 发送 /setprivacy 选择 @{a.username} 选择 DISABLED") 96 | await log.info(f"机器人名称: @{a.username} 已经上线") 97 | # 启动时候发送基础通知 98 | if conf.tg.user_id: 99 | try: 100 | await dispose.bot.send_message(conf.tg.user_id, """支持库 101 | faker系列 频道 102 | 环境 频道 103 | 9Rebels 104 | 6dylan6 频道 105 | HarbourToulu 频道 106 | /Restart 私发给机器人可以重启机器人 107 | /leave 群ID 私发可以退出群聊""") 108 | except TelegramBadRequest as e: 109 | await log.error(f"填写的用户ID错误: {e}") 110 | elif conf.tg.forward_from: 111 | for chat in conf.tg.forward_from: 112 | try: 113 | await dispose.bot.send_message(chat, """支持库 114 | faker系列 频道 115 | 环境 频道 116 | 9Rebels 117 | 6dylan6 频道 118 | HarbourToulu 频道 119 | /Restart 私发给机器人可以重启机器人 120 | /leave 群ID 私发可以退出群聊""") 121 | except TelegramBadRequest as e: 122 | await log.error(f"填写的 {chat} 转发ID错误: {e}") 123 | except ProxyConnectionError as e: 124 | await log.error(f"无法链接到网络: {e}") 125 | sys.exit(1) 126 | # And the run events dispatching 127 | await dp.start_polling(dispose.bot, polling_timeout=99) 128 | -------------------------------------------------------------------------------- /core/run.py: -------------------------------------------------------------------------------- 1 | """ 2 | 一直死循环执行 3 | """ 4 | import asyncio 5 | import re 6 | import time 7 | from typing import Dict 8 | 9 | from pydantic import ValidationError 10 | 11 | from core import queue 12 | from db.db_repeats import MethodRepeats 13 | from init.conf import conf, log, activities_model 14 | from models.repeats import Repeats 15 | from schemas.conf import QlModel 16 | from utils.ql import Ql 17 | 18 | 19 | class Core(Ql, MethodRepeats): 20 | 21 | def __init__(self): 22 | try: 23 | self.ql = QlModel.model_validate(conf.ql) 24 | except ValidationError as exc: 25 | print("Core 读取出现异常: ", exc.json()) 26 | self.interval = conf.project.interval 27 | super().__init__() 28 | self.queue = queue 29 | self.expired: int = int(time.time()) + 3600 30 | self.new_time: int = 0 # ql下次任务列表获取时间 31 | self.ql_json: dict = {} 32 | self.ql_tf = False 33 | self.black_script = conf.activities.black_script 34 | self.Delay_dict = dict() 35 | MethodRepeats.__init__(self, Repeats) 36 | 37 | async def die_while(self): 38 | """ 39 | 死循环获取队列任务 40 | :return: 41 | :rtype: 42 | """ 43 | # 删除所有数据 44 | await self.delete_all() 45 | while True: 46 | get_queue = await self.queue.get() 47 | if not get_queue: 48 | continue 49 | # 过滤重复 50 | if not await self.repeat(get_queue): 51 | continue 52 | 53 | # 对链接进行转换 54 | name_js = activities_model.Activities(get_queue) 55 | if not name_js: 56 | await log.debug(f"没有适配脚本: {get_queue}") 57 | # 开始执行后续任务 58 | if not await self.detection(): 59 | continue 60 | await self.ql_task_run(name_js) 61 | await asyncio.sleep(2) 62 | 63 | async def detection(self): 64 | """ 65 | 检测是否缺失 66 | :return: 67 | :rtype: 68 | """ 69 | if self.ql.url == "" or not self.ql.url: 70 | await log.info("填写青龙配置缺失") 71 | return False 72 | ti = int(time.time()) 73 | # 先检测是否过期或者或者需要获取青龙的 74 | if self.ql.expiration <= ti: 75 | await log.info(f"获取青龙auth 青龙返回有效时间 {self.ql.expiration} 当前时间 {ti}") 76 | params = { 77 | 'client_id': self.ql.Client_ID, 78 | 'client_secret': self.ql.Client_Secret 79 | } 80 | # 如果过期将会重新获取 81 | ql_tk = await self.token(self.ql.url, params) 82 | if ql_tk == {} or ql_tk['code'] != 200: 83 | await log.error(f"获取青龙tk异常: {ql_tk}") 84 | return False 85 | # 写入模型中 86 | self.ql.Authorization = f"{ql_tk['data']['token_type']} {ql_tk['data']['token']}" 87 | if int(ql_tk['data']['expiration']) > int(time.time()): 88 | self.ql.expiration = int(ql_tk['data']['expiration']) 89 | else: 90 | self.ql.expiration = int(time.time()) + 3600 91 | 92 | # 获取青龙的任务列表 93 | if self.new_time <= ti: 94 | await log.info("获取任务列表") 95 | ql_json = await self.get_crontab_json(url=self.ql.url, auth=self.ql.Authorization) 96 | if ql_json is None: 97 | return False 98 | self.ql_json = ql_json 99 | self.new_time = ti + 3600 100 | # 检测青龙配置文件是否存在 101 | if not self.ql_tf: 102 | ql_path = await self.get_configs_files(url=self.ql.url, auth=self.ql.Authorization) 103 | if ql_path['code'] != 200: 104 | pass 105 | for file in ql_path['data']: 106 | if file['title'] == self.ql.file: 107 | self.ql_tf = True 108 | return True 109 | await log.error(f"青龙配置文件中没有检测到 {self.ql.file} 文件 请参考说明文档有关青龙设置部分") 110 | return False 111 | return True 112 | 113 | async def ql_task_run(self, get_queue: Dict) -> bool: 114 | """ 115 | 执行青龙任务 116 | :param get_queue: 117 | :type get_queue: 118 | :return: 119 | :rtype: 120 | """ 121 | # 用于记录没有存在的脚本 122 | list_js = "" 123 | for js_queue in get_queue: 124 | if js_queue in self.black_script: 125 | await log.info(f"{js_queue} 脚本已被屏蔽") 126 | continue 127 | # 监测脚本是否存在 128 | if js_queue not in self.ql_json: 129 | list_js += f"{js_queue} " 130 | continue 131 | # 获取脚本信息 132 | name_json = self.ql_json.get(js_queue) 133 | await log.info(f"开始写入青龙配置文件 执行的脚本: {list(name_json.keys())[0]} 写入值{get_queue[js_queue]}") 134 | try: 135 | # 写入配置文件中 136 | save = await self.post_configs_save(url=self.ql.url, auth=self.ql.Authorization, 137 | content=get_queue[js_queue], path=self.ql.file) 138 | if save['code'] != 200: 139 | await log.error(f"青龙返回状态码异常 {save}") 140 | return False 141 | run = await self.put_crontab_run(url=self.ql.url, auth=self.ql.Authorization, 142 | data=[name_json.get(list(name_json.keys())[0])['id']]) 143 | if run['code'] != 200: 144 | await log.error(f"青龙返回状态码异常 {run}") 145 | return False 146 | await log.info(f"发送执行命令成功 脚本名称: {list(name_json.keys())[0]} 参数 {get_queue[js_queue]}") 147 | except Exception as e: 148 | await log.error(f"执行青龙发送异常: {e}") 149 | return True 150 | # 进入这里就是没有找到 151 | await log.info(f"{list_js} 系列脚本都没有找到") 152 | return False 153 | 154 | async def repeat(self, text: str) -> bool: 155 | """ 156 | 用来监测是否执行过对应的值过滤重复内容 157 | :param text: 158 | :type text: 159 | :return: 160 | :rtype: 161 | """ 162 | # 过滤去重复 163 | if conf.activities.repeat: 164 | return True 165 | # # 如果超过时间则删除 166 | if self.expired < int(time.time()): 167 | await self.dele_ti(int(time.time())) 168 | self.expired = int(time.time()) + 3600 169 | # 检测是否存在 ,如果是链接则使用正则获取其关键字 170 | re_per = re.findall("(?:activityId|configCode|actId|code|token|shopId|venderId|id)=(\w+)&?", text) 171 | if not re_per: 172 | re_per = re.findall("export [\w_]+=\"?'?([\w:/.\-@&,?=]+)\"?'?", text) 173 | if not re_per: 174 | return True 175 | 176 | if re_per: 177 | se_re = await self.select_pe(value=re_per[0]) 178 | if se_re: 179 | await log.info(f"{re_per[0]} 已经执行过了") 180 | return False 181 | else: 182 | await self.add_pe(value=re_per[0], time=int(time.time()) + 3600) 183 | return True 184 | return True 185 | -------------------------------------------------------------------------------- /url.json: -------------------------------------------------------------------------------- 1 | { 2 | "JdUrl": { 3 | "DPCJID": { 4 | "url": "https://shop.m.jd.com/shop/lottery?shopId=DPCJID", 5 | "cutting": [ 6 | "&" 7 | ] 8 | }, 9 | "jd_inv_authorCode": { 10 | "url": "https://prodev.m.jd.com/mall/active/index.html?code=jd_inv_authorCode" 11 | }, 12 | "jinggengInviteJoin": { 13 | "url": "https://jinggeng-isv.isvjcloud.com/ql/front/showInviteJoin?id=#0&user_id=#1", 14 | "urlStr": true, 15 | "cutting": [ 16 | "&" 17 | ] 18 | }, 19 | "jd_joinCommonId": { 20 | "url": "https://lzdz1-isv.isvjcloud.com/dingzhi/joinCommon/activity??activityId=#0&venderId=#1", 21 | "urlStr": true, 22 | "cutting": [ 23 | "&" 24 | ] 25 | }, 26 | "jd_wxBulidActivityId": { 27 | "url": "https://lzkj-isv.isvjcloud.com/wxBuildActivity/activity?activityId=jd_wxBulidActivityId" 28 | }, 29 | "jd_shopCollectGiftId": { 30 | "url": "https://shop.m.jd.com/shop/home?shopId=jd_shopCollectGiftId" 31 | }, 32 | "jd_shopLeagueId": { 33 | "url": "https://lzdz1-isv.isvjd.com/dingzhi/shop/league/activity?activityId=jd_shopLeagueId" 34 | }, 35 | "jd_wxBirthGiftsId": { 36 | "url": "https://cjhy-isv.isvjcloud.com/mc/wxMcLevelAndBirthGifts/activity?activityId=jd_wxBirthGiftsId" 37 | }, 38 | "jd_wxCompleteInfoId": { 39 | "url": "https://cjhy-isv.isvjcloud.com/wx/completeInfoActivity/view/activity?activityId=#0&venderId=#1", 40 | "urlStr": true, 41 | "cutting": [ 42 | "&" 43 | ] 44 | }, 45 | "jd_wxShopFollowId": { 46 | "url": "https://lzkj-isv.isvjcloud.com/wxShopFollowActivity/activity?activityId=jd_wxShopFollowId" 47 | }, 48 | "jd_wxShopGiftId": { 49 | "url": "https://lzkj-isv.isvjcloud.com/wxShopGift/activity?activityId=jd_wxShopGiftId" 50 | }, 51 | "VENDER_ID": { 52 | "url": "https://cjhy-isv.isvjcloud.com/wxInviteActivity/openCard/invitee/442818?activityId=VENDER_ID", 53 | "cutting": [ 54 | "&" 55 | ] 56 | }, 57 | "jd_cjhy_completeInfoActivity_Ids": { 58 | "url": "https://cjhy-isv.isvjcloud.com/wx/completeInfoActivity/view/activity?activityId=jd_cjhy_completeInfoActivity_Ids", 59 | "cutting": [ 60 | "&" 61 | ] 62 | }, 63 | "jd_cjhy_daily_ids": { 64 | "url": "https://cjhy-isv.isvjcloud.com/activity/daily/wx/indexPage1?activityId=jd_cjhy_daily_ids", 65 | "cutting": [ 66 | "&" 67 | ] 68 | }, 69 | "jd_cjhy_signActivity_urls": { 70 | "cutting": [ 71 | "@" 72 | ] 73 | }, 74 | "jd_cjhy_wxCollectionActivityId": { 75 | "url": "https://cjhy-isv.isvjcloud.com/wxCollectionActivity/activity?activityId=jd_cjhy_wxCollectionActivityId", 76 | "cutting": [ 77 | "&" 78 | ] 79 | }, 80 | "jd_cjhy_wxDrawActivity_Id": { 81 | "url": "https://cjhy-isv.isvjcloud.com/wxDrawActivity/activity?activityId=jd_cjhy_wxDrawActivity_Id", 82 | "cutting": [ 83 | "&" 84 | ] 85 | }, 86 | "jd_cjhy_wxGameActivity_activityId": { 87 | "url": "https://cjhy-isv.isvjcloud.com/wxGameActivity/activity?activityId=jd_cjhy_wxGameActivity_activityId", 88 | "cutting": [ 89 | "&" 90 | ] 91 | }, 92 | "jd_cjhy_wxKnowledgeActivity_activityId": { 93 | "url": "https://cjhy-isv.isvjcloud.com/wxKnowledgeActivity/activity?activityId=jd_cjhy_wxKnowledgeActivity_activityId", 94 | "cutting": [ 95 | "&" 96 | ] 97 | }, 98 | "jd_cjhy_wxMcLevelAndBirthGifts_ids": { 99 | "url": "https://cjhy-isv.isvjcloud.com/mc/wxMcLevelAndBirthGifts/activity?activityId=jd_cjhy_wxMcLevelAndBirthGifts_ids", 100 | "cutting": [ 101 | "&" 102 | ] 103 | }, 104 | "jd_cjhy_wxShopFollowActivity_activityId": { 105 | "url": "https://cjhy-isv.isvjcloud.com/wxShopFollowActivity/activity?activityId=jd_cjhy_wxShopFollowActivity_activityId", 106 | "cutting": [ 107 | "&" 108 | ] 109 | }, 110 | "jd_cjhy_wxShopGift_ids": { 111 | "url": "https://cjhy-isv.isvjcloud.com/wxShopGift/activity?activityId=jd_cjhy_wxShopGift_ids", 112 | "cutting": [ 113 | "&" 114 | ] 115 | }, 116 | "jd_cjhydz_wxTeam_Id": { 117 | "url": "https://cjhydz-isv.isvjcloud.com/wxTeam/activity?activityId=jd_cjhydz_wxTeam_Id" 118 | }, 119 | "DPQDTK": { 120 | "url": "https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=DPQDTK", 121 | "cutting": [ 122 | "&" 123 | ] 124 | }, 125 | "dpqd_token_own": { 126 | "url": "https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=dpqd_token_own", 127 | "cutting": [ 128 | "&" 129 | ] 130 | }, 131 | "jd_dpqd_monitor_token": { 132 | "url": "https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=jd_dpqd_monitor_token", 133 | "cutting": [ 134 | "&", 135 | "@", 136 | "," 137 | ] 138 | }, 139 | "jd_lzkj_10006_v1_ids": { 140 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interaction/v1/index?activityType=10006&activityId=jd_lzkj_10006_v1_ids" 141 | }, 142 | "jd_lzkj_10033_zdgf_Ids": { 143 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10033&activityId=jd_lzkj_10033_zdgf_Ids&nodeId=101001&prd=cjwx", 144 | "cutting": [ 145 | "&" 146 | ] 147 | }, 148 | "jd_lzkj_10038_lrkj_activityId": { 149 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10038&activityId=jd_lzkj_10038_lrkj_activityId&nodeId=101001&prd=cjwx", 150 | "cutting": [ 151 | "&" 152 | ] 153 | }, 154 | "jd_lzkj_10043_fxyl_activityId": { 155 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10043&activityId=jd_lzkj_10043_fxyl_activityId&nodeId=101001&prd=cjwx" 156 | }, 157 | "jd_lzkj_10044_tpyl_Ids": { 158 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10044&activityId=jd_lzkj_10044_tpyl_Ids&nodeId=101001&prd=cjwx", 159 | "cutting": [ 160 | "&" 161 | ] 162 | }, 163 | "jd_lzkj_10047_glyl_Id": { 164 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10047&activityId=jd_lzkj_10047_tpyl_Ids&nodeId=101001&prd=cjwx", 165 | "cutting": [ 166 | "&" 167 | ] 168 | }, 169 | "jd_lzkj_10053_gzspyl_activityId": { 170 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10053&activityId=jd_lzkj_10053_gzspyl_activityId&nodeId=101001&prd=cjwx", 171 | "cutting": [ 172 | "&" 173 | ] 174 | }, 175 | "jd_lzkj_10058_dplb_activityId": { 176 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10058&activityId=jd_lzkj_10058_dplb_activityId&nodeId=101001&prd=cjwx" 177 | }, 178 | "jd_lzkj_10069_gzyl_activityId": { 179 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10069&activityId=jd_lzkj_10069_gzyl_activityId&nodeId=101001&prd=cjwx" 180 | }, 181 | "jd_lzkj_10070_v1_ids": { 182 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interaction/v1/index?activityType=10070&activityId=jd_lzkj_10070_v1_idsx" 183 | }, 184 | "jd_lzkj_10070_yqhyrh_activityId": { 185 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10070&activityId=jd_lzkj_10070_yqhyrh_activityId&nodeId=101001&prd=cjwx" 186 | }, 187 | "jd_lzkj_10079_jfdh_Ids": { 188 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10079&activityId=jd_lzkj_10079_jfdh_Ids", 189 | "cutting": [ 190 | "&" 191 | ] 192 | }, 193 | "jd_lzkj_100_draw_urls": { 194 | "cutting": [ 195 | "@" 196 | ] 197 | }, 198 | "jd_lzkj_daily_ids": { 199 | "url": "https://lzkj-isv.isvjcloud.com/activity/daily/wx/indexPage?activityId=jd_lzkj_daily_ids", 200 | "cutting": [ 201 | "&" 202 | ] 203 | }, 204 | "JD_Lottery": { 205 | "url": "https://jdjoy.jd.com/module/task/draw/get?configCode=JD_Lottery" 206 | }, 207 | "jd_lzkj_sevenDay_ids": { 208 | "url": "https://lzkj-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=jd_lzkj_sevenDay_ids", 209 | "cutting": [ 210 | "&" 211 | ] 212 | }, 213 | "jd_lzkj_signActivity2_ids": { 214 | "url": "https://lzkj-isv.isvjcloud.com/sign/signActivity2?activityId=jd_lzkj_signActivity2_ids", 215 | "cutting": [ 216 | "&" 217 | ] 218 | }, 219 | "jd_lzkj_v2_birthday_urls": { 220 | "cutting": [ 221 | "@" 222 | ] 223 | }, 224 | "jd_lzkj_v2_completeInfo_urls": { 225 | "cutting": [ 226 | "@" 227 | ] 228 | }, 229 | "jd_lzkj_v2_draw_urls": { 230 | "cutting": [ 231 | "@" 232 | ] 233 | }, 234 | "jd_lzkj_v2_draw_url": { 235 | "cutting": [ 236 | "@" 237 | ] 238 | }, 239 | "jd_jingyun_sign_urls": { 240 | "cutting": [ 241 | "@" 242 | ] 243 | }, 244 | "jd_lzkj_v2_sign_urls": { 245 | "cutting": [ 246 | "@" 247 | ] 248 | }, 249 | "jd_lzkj_v2_sign_url": { 250 | "cutting": [ 251 | "@" 252 | ] 253 | }, 254 | "jd_lzkj_wxCollectionActivityId": { 255 | "url": "https://lzkj-isv.isvjcloud.com/wxCollectionActivity/activity2?activityId=jd_lzkj_wxCollectionActivityId", 256 | "cutting": [ 257 | "&" 258 | ] 259 | }, 260 | "jd_lzkj_wxDrawActivity_Id": { 261 | "url": "https://lzkj-isv.isvjcloud.com/lzclient/1685415463857/cjwx/common/entry.html?activityId=jd_lzkj_wxDrawActivity_Id", 262 | "cutting": [ 263 | "&" 264 | ] 265 | }, 266 | "jd_lzkj_wxShopFollowActivity_activityId": { 267 | "url": "https://lzkj-isv.isvjcloud.com/wxShopFollowActivity/activity?activityId=jd_lzkj_wxShopFollowActivity_activityId", 268 | "cutting": [ 269 | "&" 270 | ] 271 | }, 272 | "jd_lzkj_wxShopGift_ids": { 273 | "url": "https://lzkj-isv.isvjcloud.com/wxShopGift/activity?activityId=jd_lzkj_wxShopGift_ids", 274 | "cutting": [ 275 | "&" 276 | ] 277 | }, 278 | "DPLHTY": { 279 | "url": "https://jinggengjcq-isv.isvjcloud.com/jdbeverage/pages/oC202301010wee/oC202301010wee?actId=DPLHTY", 280 | "cutting": [ 281 | "&" 282 | ] 283 | }, 284 | "jd_lzdz1_joinCommon_Id": { 285 | "url": "https://lzdz1-isv.isvjcloud.com/dingzhi/joinCommon/activity/activity?activityId=jd_lzdz1_joinCommon_Id" 286 | }, 287 | "jd_sendbeans_urls": { 288 | "cutting": [ 289 | "@" 290 | ] 291 | }, 292 | "jd_shop_draw_ids": { 293 | "url": "https://shop.m.jd.com/shop/lottery?shopId=jd_shop_draw_ids", 294 | "cutting": [ 295 | "&" 296 | ] 297 | }, 298 | "jd_txzj_cart_item_id": { 299 | "url": "https://txzj-isv.isvjcloud.com/cart_item/home?a=jd_txzj_cart_item_id" 300 | }, 301 | "jd_txzj_collect_item_id": { 302 | "url": "https://txzj-isv.isvjcloud.com/collect_item/home?a=jd_txzj_collect_item_id" 303 | }, 304 | "jd_txzj_lottery_item_id": { 305 | "url": "https://txzj-isv.isvjcloud.com/lottery/home?a=jd_txzj_lottery_item_id" 306 | }, 307 | "jd_txzj_sign_in_id": { 308 | "url": "https://txzj-isv.isvjcloud.com/sign_in/home?a=jd_txzj_sign_in_id", 309 | "cutting": [ 310 | "&" 311 | ] 312 | }, 313 | "jd_wxBuildActivity_activityId": { 314 | "url": "https://lzkj-isv.isvjcloud.com/wxBuildActivity/activity?activityId=jd_wxBuildActivity_activityId" 315 | }, 316 | "jd_wxCartKoi_activityId": { 317 | "url": "https://lzkjdz-isv.isvjcloud.com/wxCartKoi/cartkoi/activity?activityId=jd_wxCartKoi_activityId" 318 | }, 319 | "jd_wxCollectCard_activityId": { 320 | "url": "https://lzkjdz-isv.isvjcloud.com/wxCollectCard/activity/activity?activityId=jd_wxCollectCard_activityId" 321 | }, 322 | "ACTIVITY_ID": { 323 | "url": "https://lzkj-isv.isvjcloud.com/wxgame/activity?activityId=ACTIVITY_ID" 324 | }, 325 | "jd_wxFansInterActionActivity_activityId": { 326 | "url": "https://lzkjdz-isv.isvjd.com/wxFansInterActionActivity/activity?activityId=jd_wxFansInterActionActivity_activityId" 327 | }, 328 | "jd_wxKnowledgeActivity_activityUrl": { 329 | "urlStr": true 330 | }, 331 | "jd_wxMcLevelAndBirthGifts_activityId": { 332 | "url": "https://lzkjdz-isv.isvjd.com/wxSecond/activity/activity?activityId=jd_wxSecond_activityId" 333 | }, 334 | "jd_wxSecond_activityId": { 335 | "url": "https://lzkjdz-isv.isvjd.com/wxSecond/activity/activity?activityId=jd_wxSecond_activityId" 336 | }, 337 | "jd_wxShareActivity_activityId": { 338 | "url": "https://lzkjdz-isv.isvjcloud.com/wxShareActivity/activity?activityId=jd_wxShareActivity_activityId" 339 | }, 340 | "jd_wxUnPackingActivity_activityId": { 341 | "url": "https://lzkjdz-isv.isvjd.com/wxUnPackingActivity/activity/activity?activityId=jd_wxUnPackingActivity_activityId" 342 | }, 343 | "jd_wxgame_activityId": { 344 | "url": "https://lzkj-isv.isvjd.com/wxgame/activity/activity?activityId=jd_wxgame_activityId" 345 | }, 346 | "jd_opencard_shopleague_id": { 347 | "url": "https://lzdz1-isv.isvjd.com/dingzhi/shop/league/activity?activityId=jd_opencard_shopleague_id" 348 | }, 349 | "jd_prodev_actCode": { 350 | "url": "https://prodev.m.jd.com/mall/active/index.html?code=jd_prodev_actCode" 351 | }, 352 | "jd_shopLottery_venderIds": { 353 | "url": "https://shop.m.jd.com/shop/lottery?venderIds=jd_shopLottery_venderIds", 354 | "cutting": [ 355 | "," 356 | ] 357 | }, 358 | "jd_wx_drawCenter_activityId": { 359 | "url": "https://lzkj-isv.isvjd.com/drawCenter/activity/activity?activityId=jd_wx_drawCenter_activityId" 360 | }, 361 | "jd_dpqd_tokens": { 362 | "url": "https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=jd_dpqd_tokens", 363 | "cutting": [ 364 | ",", 365 | "@", 366 | "&" 367 | ] 368 | }, 369 | "jd_dpqd_token": { 370 | "url": "https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=jd_dpqd_token" 371 | }, 372 | "jd_drawCenter_activityId": { 373 | "url": "https://lzkj-isv.isvjd.com/drawCenter/activity/activity?activityId=jd_drawCenter_activityId" 374 | }, 375 | "jd_lzaddCart_activityId": { 376 | "url": "https://lzkj-isv.isvjcloud.com/wxCollectionActivity/activity2/b252840a3f9a426480f0e0d7df9b3942?activityId=jd_lzaddCart_activityId" 377 | }, 378 | "jd_fxyl_activityId": { 379 | "url": "https://lzkjdz-isv.isvjcloud.com/wxShareActivity/activity?activityId=jd_fxyl_activityId" 380 | }, 381 | "jd_cjhy_sevenDay_ids": { 382 | "url": "https://cjhy-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=jd_cjhy_sevenDay_ids", 383 | "cutting": [ 384 | "&" 385 | ] 386 | }, 387 | "jd_jingyun_plusGift_urls": { 388 | "cutting": [ 389 | "@" 390 | ] 391 | }, 392 | "jd_jingyun_partitionTeam_urls": { 393 | "cutting": [ 394 | "@" 395 | ] 396 | }, 397 | "jd_jingyun_draw_urls": { 398 | "cutting": [ 399 | "@" 400 | ] 401 | }, 402 | "jd_gzsl_contact_urls": { 403 | "cutting": [ 404 | "@" 405 | ] 406 | }, 407 | "jd_cjhy_wxShopGift_ids": { 408 | "url": "https://lzkj-isv.isvjcloud.com/wxShopGift/activity?activityId=jd_cjhy_wxShopGift_ids", 409 | "cutting": [ 410 | "&" 411 | ] 412 | }, 413 | "jd_lzkj_10047_glyl_Ids": { 414 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10047&activityId=jd_lzkj_10047_glyl_Ids&nodeId=101001&prd=cjwx", 415 | "cutting": [ 416 | "&" 417 | ] 418 | }, 419 | "jd_lzkj_10068_yqgzdpyl_activityId": { 420 | "url": "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10068&activityId=jd_lzkj_10068_yqgzdpyl_activityId&nodeId=101001&prd=cjwx" 421 | }, 422 | "jd_lzkj_100_jgyl_urls": { 423 | "cutting": [ 424 | "@" 425 | ] 426 | }, 427 | "jd_lzkj_100_sign_urls": { 428 | "cutting": [ 429 | "@" 430 | ] 431 | }, 432 | "jd_prodev_id": { 433 | "url": "https://pro.m.jd.com/mall/active/dVF7gQUVKyUcuSsVhuya5d2XD4F/index.html?code=jd_prodev_id" 434 | }, 435 | "jd_liveLottery_ids": { 436 | "url": "https://h5.m.jd.com/dev/3pbY8ZuCx4ML99uttZKLHC2QcAMn/live.html?id=jd_liveLottery_ids", 437 | "cutting": [ 438 | "@", 439 | "," 440 | ] 441 | }, 442 | "jd_opencard_force_venderId": { 443 | "url": "https://shopmember.m.jd.com/shopcard/?venderId=jd_opencard_force_venderId" 444 | }, 445 | "jd_opencard_venderId": { 446 | "url": "https://shopmember.m.jd.com/shopcard/?venderId=jd_opencard_venderId", 447 | "cutting": [ 448 | "," 449 | ] 450 | }, 451 | "jd_shopbenefit_venderId": { 452 | "url": "https://shopmember.m.jd.com/shopbenefit/?shopId=jd_shopbenefit_venderId&venderId=jd_shopbenefit_venderId", 453 | "cutting": [ 454 | "&" 455 | ] 456 | }, 457 | "jd_wxSign_sevenDay_cjhy_Ids": { 458 | "url": "https://cjhy-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=jd_wxSign_sevenDay_cjhy_Ids", 459 | "cutting": [ 460 | "," 461 | ] 462 | }, 463 | "jd_wxSign_sign_cjhy_Ids": { 464 | "url": "https://cjhy-isv.isvjcloud.com/sign/signActivity?activityId=jd_wxSign_sign_cjhy_Ids", 465 | "cutting": [ 466 | "," 467 | ] 468 | }, 469 | "jd_wxSign_sevenDay_lzkj_Ids": { 470 | "url": "https://lzkj-isv.isvjd.com/sign/sevenDay/signActivity?activityId=jd_wxSign_sevenDay_lzkj_Ids", 471 | "cutting": [ 472 | "," 473 | ] 474 | }, 475 | "jd_wxSign_sign_lzkj_Ids": { 476 | "url": "https://lzkj-isv.isvjd.com/sign/signActivity2?activityId=jd_wxSign_sign_lzkj_Ids", 477 | "cutting": [ 478 | "," 479 | ] 480 | }, 481 | "LZKJ_SEVENDAY": { 482 | "url": "https://lzkj-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=LZKJ_SEVENDAY", 483 | "cutting": [ 484 | "," 485 | ] 486 | }, 487 | "LZKJ_SIGN": { 488 | "url": "https://lzkj-isv.isvjcloud.com/sign/signActivity2?activityId=LZKJ_SIGN", 489 | "cutting": [ 490 | "," 491 | ] 492 | }, 493 | "CJHY_SEVENDAY": { 494 | "url": "https://cjhy-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=CJHY_SEVENDAY", 495 | "cutting": [ 496 | "," 497 | ] 498 | }, 499 | "CJHY_SIGN": { 500 | "url": "https://cjhy-isv.isvjcloud.com/sign/signActivity?activityId=CJHY_SIGN", 501 | "cutting": [ 502 | "," 503 | ] 504 | }, 505 | "jd_wxSignPoint_sign_lzkj_Ids": { 506 | "url": "https://lzkj-isv.isvjd.com/sign/signActivity2?activityId=jd_wxSignPoint_sign_lzkj_Ids", 507 | "cutting": [ 508 | "," 509 | ] 510 | }, 511 | "jd_wxSignPoint_sevenDay_lzkj_Ids": { 512 | "url": "https://lzkj-isv.isvjd.com/sign/sevenDay/signActivity?activityId=jd_wxSignPoint_sevenDay_lzkj_Ids", 513 | "cutting": [ 514 | "," 515 | ] 516 | }, 517 | "jd_wxSignPoint_sign_cjhy_Ids": { 518 | "url": "https://cjhy-isv.isvjcloud.com/sign/signActivity?activityId=jd_wxSignPoint_sign_cjhy_Ids", 519 | "cutting": [ 520 | "," 521 | ] 522 | }, 523 | "jd_wxSignPoint_sevenDay_cjhy_Ids": { 524 | "url": "https://cjhy-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=jd_wxSignPoint_sevenDay_cjhy_Ids", 525 | "cutting": [ 526 | "," 527 | ] 528 | }, 529 | "LZKJ_SEVENDAY_JF": { 530 | "url": "https://lzkj-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=LZKJ_SEVENDAY_JF", 531 | "cutting": [ 532 | "," 533 | ] 534 | }, 535 | "LZKJ_SIGN_JF": { 536 | "url": "https://lzkj-isv.isvjcloud.com/sign/signActivity2?activityId=LZKJ_SIGN_JF", 537 | "cutting": [ 538 | "," 539 | ] 540 | }, 541 | "CJHY_SEVENDAY_JF": { 542 | "url": "https://cjhy-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=CJHY_SEVENDAY_JF", 543 | "cutting": [ 544 | "," 545 | ] 546 | }, 547 | "CJHY_SIGN_JF": { 548 | "url": "https://cjhy-isv.isvjcloud.com/sign/signActivity?activityId=CJHY_SIGN_JF", 549 | "cutting": [ 550 | "," 551 | ] 552 | }, 553 | "jd_gzsl_sevenSign_urls": { 554 | "cutting": [ 555 | "@" 556 | ] 557 | }, 558 | "jd_jingyun_daily_urls": { 559 | "cutting": [ 560 | "@" 561 | ] 562 | }, 563 | "jd_lzkj_10058_dplb_urls": { 564 | "cutting": [ 565 | "@" 566 | ] 567 | }, 568 | "jd_lzkj_v2_cart_urls": { 569 | "cutting": [ 570 | "@" 571 | ] 572 | } 573 | } 574 | } -------------------------------------------------------------------------------- /activity.json: -------------------------------------------------------------------------------- 1 | { 2 | "activitiesUrl": [ 3 | { 4 | "alias": "通用开卡-joinCommon系列", 5 | "name": "jd_joinCommon_opencard.py", 6 | "head_url": "dingzhi/joinCommon", 7 | "value": [ 8 | { 9 | "export": ["jd_joinCommonId"], 10 | "re_url": "activityId=(\\w+)&venderId=(\\d+)", 11 | "cutting": "&" 12 | } 13 | ] 14 | }, 15 | { 16 | "alias": "jinggeng邀请入会有礼", 17 | "name": "jd_jinggengInvite.py", 18 | "head_url": "ql/front/showInviteJoin", 19 | "value": [ 20 | { 21 | "export": ["jinggengInviteJoin"], 22 | "re_url": "id=(\\w+)&user_id=(\\d+)", 23 | "cutting": "&" 24 | } 25 | ] 26 | }, 27 | { 28 | "alias": "邀请好友入会(超级无线)", 29 | "name": "jd_lzkj_invite.js", 30 | "head_url": "prod/cc/interactsaas", 31 | "value": [ 32 | { 33 | "export": ["jd_lzkj_invite_url"], 34 | "re_url": "(https.*?activityType=(?:10070|10006).*)" 35 | } 36 | ] 37 | }, 38 | { 39 | "alias": "店铺会员权益礼包", 40 | "name": "jd_shopbenefit.js", 41 | "head_url": "com/shopbenefit", 42 | "value": [ 43 | { 44 | "export": ["jd_shopbenefit_venderId"], 45 | "re_url": "venderId=(\\w+)", 46 | "cutting": "&" 47 | } 48 | ] 49 | }, 50 | { 51 | "alias": "店铺抽奖", 52 | "name": "jd_shop_draw.js", 53 | "head_url": "shop/lottery", 54 | "value": [ 55 | { 56 | "export": ["jd_shop_draw_ids"], 57 | "re_url": "shopId=(\\w+)", 58 | "cutting": "&" 59 | } 60 | ] 61 | }, 62 | { 63 | "alias": "gzsl 七日签到", 64 | "name": "jd_gzsl_sevenSign.js", 65 | "head_url": "wuxian/mobileForApp/dist2", 66 | "value": [ 67 | { 68 | "export": ["jd_gzsl_sevenSign_urls"], 69 | "re_url": "(.+)", 70 | "cutting": "@" 71 | } 72 | ] 73 | }, 74 | { 75 | "alias": "jingyun 会员每日限时抢", 76 | "name": "jd_gzsl_sevenSign.js", 77 | "head_url": "h5/pages/dailyLimitedTimeGrab", 78 | "value": [ 79 | { 80 | "export": ["jd_jingyun_daily_urls"], 81 | "re_url": "(.+)", 82 | "cutting": "@" 83 | } 84 | ] 85 | }, 86 | { 87 | "alias": "lzkj_10038邀请好友帮砍价", 88 | "name": "jd_lzkj_10038_lrkj.js", 89 | "head_url": "prod/cc/interactsaas", 90 | "value": [ 91 | { 92 | "export": ["jd_lzkj_10038_lrkj_activityId"], 93 | "re_url": "prod/cc/interactsaas.*?activityType=10038.*activityId=(\\w+)" 94 | } 95 | ] 96 | }, 97 | { 98 | "alias": "lzkj_10058店铺礼包", 99 | "name": "jd_lzkj_10058_dplb.js", 100 | "head_url": "prod/cc/interactsaas", 101 | "value": [ 102 | { 103 | "export": ["jd_lzkj_10058_dplb_urls"], 104 | "re_url": "(https://.*?activityType=10058.*)" 105 | } 106 | ] 107 | }, 108 | { 109 | "alias": "lzkj_v2 加购", 110 | "name": "jd_lzkj_v2_cart.js", 111 | "head_url": "prod/cc/interaction/v2/10024", 112 | "value": [ 113 | { 114 | "export": ["jd_lzkj_v2_cart_urls"], 115 | "re_url": "(https://.*?prod/cc/interaction/v2/10024.*)" 116 | }, 117 | { 118 | "export": ["jd_lzkj_v2_cart_url"], 119 | "re_url": "(https://.*?prod/cc/interaction/v2/10024.*)" 120 | } 121 | ] 122 | }, 123 | { 124 | "alias": "店铺抽奖-JK", 125 | "name": "jd_dpcj.py", 126 | "head_url": "shop/lottery", 127 | "value": [ 128 | { 129 | "export": ["DPCJID"], 130 | "re_url": "shopId=(\\d+)" 131 | } 132 | ] 133 | }, 134 | { 135 | "alias": "邀好友赢大礼", 136 | "name": "jd_inviteFriendsGift.py", 137 | "head_url": "mall/active", 138 | "value": [ 139 | { 140 | "export": ["jd_inv_authorCode"], 141 | "re_url": "code=(\\w+)" 142 | } 143 | ] 144 | }, 145 | { 146 | "alias": "jd_lzkjInteract邀请有礼", 147 | "name": "jd_lzkjInteract.py", 148 | "head_url": "prod/cc/interactsaas", 149 | "value": [ 150 | { 151 | "export": ["jd_lzkjInteractUrl"], 152 | "re_url": "(https://.*?activityType=10006.*)" 153 | } 154 | ] 155 | }, 156 | { 157 | "alias": "jd_lzkjInteract加购有礼", 158 | "name": "jd_lzkjInteractAddCart.py", 159 | "head_url": "prod/cc/interactsaas", 160 | "value": [ 161 | { 162 | "export": ["jd_lzkjInteractUrl"], 163 | "re_url": "(https://.*?activityType=10024.*)" 164 | } 165 | ] 166 | }, 167 | { 168 | "alias": "jd_lzkjInteract关注有礼", 169 | "name": "jd_lzkjInteractFollow.py", 170 | "head_url": "prod/cc/interactsaas", 171 | "value": [ 172 | { 173 | "export": ["jd_lzkjInteractFollowUrl"], 174 | "re_url": "(https.*?activityType=(?:10069|10053).*)" 175 | } 176 | ] 177 | }, 178 | { 179 | "alias": "店铺会员礼包-监控脚本", 180 | "name": "jd_shopCollectGift.py", 181 | "head_url": "shop/home", 182 | "value": [ 183 | { 184 | "export": ["jd_shopCollectGiftId"], 185 | "re_url": "shopId=(\\w+)" 186 | } 187 | ] 188 | }, 189 | { 190 | "alias": "通用开卡-超店shopLeague系列", 191 | "name": "jd_shopLeague_opencard.py", 192 | "head_url": "dingzhi/shop/league", 193 | "value": [ 194 | { 195 | "export": ["jd_shopLeagueId"], 196 | "re_url": "activityId=(\\w+)" 197 | } 198 | ] 199 | }, 200 | { 201 | "alias": "生日等级礼包-监控脚本", 202 | "name": "jd_wxBirthGifts.py", 203 | "head_url": "mc/wxMcLevelAndBirthGifts", 204 | "value": [ 205 | { 206 | "export": ["jd_wxBirthGiftsId"], 207 | "re_url": "activityId=(\\w+)" 208 | } 209 | ] 210 | }, 211 | { 212 | "alias": "盖楼有礼-JK", 213 | "name": "jd_wxBulidActivity.py", 214 | "head_url": "wxBuildActivity", 215 | "value": [ 216 | { 217 | "export": ["jd_wxBulidActivityId"], 218 | "re_url": "activityId=(\\w+)" 219 | } 220 | ] 221 | }, 222 | { 223 | "alias": "加购有礼-JK", 224 | "name": "jd_wxCollectionActivity.py", 225 | "head_url": "wxCollectionActivity", 226 | "value": [ 227 | { 228 | "export": ["jd_wxCollectionActivityUrl"], 229 | "re_url": "(.+)" 230 | } 231 | ] 232 | }, 233 | { 234 | "alias": "完善信息有礼-监控脚本", 235 | "name": "jd_wxCompleteInfo.py", 236 | "head_url": "wx/completeInfoActivity", 237 | "value": [ 238 | { 239 | "export": ["jd_wxCompleteInfoId"], 240 | "re_url": "activityId=(\\w+)&venderId=(\\w+)", 241 | "cutting": "&" 242 | } 243 | ] 244 | }, 245 | { 246 | "alias": "关注店铺有礼-JK", 247 | "name": "jd_wxShopFollow.py", 248 | "head_url": "wxShopFollowActivity", 249 | "value": [ 250 | { 251 | "export": ["jd_wxShopFollowId"], 252 | "re_url": "activityId=(\\w+)" 253 | } 254 | ] 255 | }, 256 | { 257 | "alias": "店铺特效关注有礼-JK", 258 | "name": "jd_wxShopGift.py", 259 | "head_url": "wxShopGift", 260 | "value": [ 261 | { 262 | "export": ["jd_wxShopGiftId"], 263 | "re_url": "activityId=(\\w+)" 264 | } 265 | ] 266 | }, 267 | { 268 | "alias": "完善信息有礼(超级会员)", 269 | "name": "jd_completeInfoActivity.js", 270 | "head_url": "wx/completeInfoActivity", 271 | "value": [ 272 | { 273 | "export": ["jd_completeInfoActivity_activityUrl"], 274 | "re_url": "(.+)" 275 | } 276 | ] 277 | }, 278 | { 279 | "alias": "每日抢好礼(超级无线/超级会员)", 280 | "name": "jd_daily.js", 281 | "head_url": "activity/daily", 282 | "value": [ 283 | { 284 | "export": ["jd_daily_activityUrl"], 285 | "re_url": "(.+)" 286 | } 287 | ] 288 | }, 289 | { 290 | "alias": "批量店铺签到", 291 | "name": "jd_dpqd_main.js", 292 | "head_url": "babelDiy/Zeus", 293 | "value": [ 294 | { 295 | "export": ["jd_dpqd_tokens"], 296 | "re_url": "token=(\\w+)", 297 | "cutting": "&" 298 | } 299 | ] 300 | }, 301 | { 302 | "alias": "常规店铺签到监控", 303 | "name": "jd_dpqd_monitor.js", 304 | "head_url": "babelDiy/Zeus", 305 | "value": [ 306 | { 307 | "export": ["jd_dpqd_monitor_token"], 308 | "re_url": "token=(\\w+)", 309 | "cutting": "&" 310 | } 311 | ] 312 | }, 313 | { 314 | "alias": "店铺抽奖中心(超级无线)", 315 | "name": "jd_drawCenter.js", 316 | "head_url": "drawCenter", 317 | "value": [ 318 | { 319 | "export": ["jd_drawCenter_activityId"], 320 | "re_url": "activityId=(\\w+)" 321 | } 322 | ] 323 | }, 324 | { 325 | "alias": "关注有礼(无线营销)", 326 | "name": "jd_gzsl_contactWare.js", 327 | "head_url": "wuxian/user/contactWare", 328 | "value": [ 329 | { 330 | "export": ["jd_gzsl_contactWare_activityUrl"], 331 | "re_url": "(.+)" 332 | } 333 | ] 334 | }, 335 | { 336 | "alias": "幸运大转盘(无线营销)", 337 | "name": "jd_gzsl_getLottery.js", 338 | "head_url": "wuxian/user/getLottery", 339 | "value": [ 340 | { 341 | "export": ["jd_gzsl_getLottery_activityUrl"], 342 | "re_url": "(.+)" 343 | } 344 | ] 345 | }, 346 | { 347 | "alias": "店铺礼包(无线营销)", 348 | "name": "jd_gzsl_shopGiftBag.js", 349 | "head_url": "wuxian/mobileForApp/dist", 350 | "value": [ 351 | { 352 | "export": ["jd_gzsl_shopGiftBag_activityUrl"], 353 | "re_url": "(.+)" 354 | } 355 | ] 356 | }, 357 | { 358 | "alias": "积分兑换(京耕)", 359 | "name": "jd_jinggeng_exchangeActDetail.js", 360 | "head_url": "ql/front/exchangeActDetail", 361 | "value": [ 362 | { 363 | "export": ["jd_jinggeng_exchangeActDetail_url"], 364 | "re_url": "(.+)" 365 | } 366 | ] 367 | }, 368 | { 369 | "alias": "盖楼有礼(京耕)", 370 | "name": "jd_jinggeng_floor.js", 371 | "head_url": "ql/front/floor", 372 | "value": [ 373 | { 374 | "export": ["jd_jinggeng_floor_activityUrl"], 375 | "re_url": "(.+)" 376 | }, 377 | { 378 | "export": ["jd_jinggeng_floor_url"], 379 | "re_url": "(.+)" 380 | } 381 | ] 382 | }, 383 | { 384 | "alias": "惊喜开盲盒(京耕)", 385 | "name": "jd_jinggeng_loadBlindBox.js", 386 | "head_url": "ql/front/loadBlindBox", 387 | "value": [ 388 | { 389 | "export": ["jd_jinggeng_loadBlindBox_activityUrl"], 390 | "re_url": "(.+)" 391 | } 392 | ] 393 | }, 394 | { 395 | "alias": "加购有礼(京耕)", 396 | "name": "jd_jinggeng_showCart.js", 397 | "head_url": "ql/front/showCart", 398 | "value": [ 399 | { 400 | "export": ["jd_jinggeng_showCart_activityUrl"], 401 | "re_url": "(.+)" 402 | } 403 | ] 404 | }, 405 | { 406 | "alias": "积分抽奖(京耕)", 407 | "name": "jd_jinggeng_showDrawOne.js", 408 | "head_url": "ql/front/showDrawOne", 409 | "value": [ 410 | { 411 | "export": ["jd_jinggeng_showDrawOne_activityUrl"], 412 | "re_url": "(.+)" 413 | } 414 | ] 415 | }, 416 | { 417 | "alias": "关注店铺有礼(京耕)", 418 | "name": "jd_jinggeng_showFavoriteShop.js", 419 | "head_url": "ql/front/showFavoriteShop", 420 | "value": [ 421 | { 422 | "export": ["jd_jinggeng_showFavoriteShop_activityUrl"], 423 | "re_url": "(.+)" 424 | } 425 | ] 426 | }, 427 | { 428 | "alias": "邀请入会赢好礼(京耕)", 429 | "name": "jd_jinggeng_showInviteJoin.js", 430 | "head_url": "ql/front/showInviteJoin", 431 | "value": [ 432 | { 433 | "export": ["jd_jinggeng_showInviteJoin_activityUrl"], 434 | "re_url": "(.+)" 435 | } 436 | ] 437 | }, 438 | { 439 | "alias": "组队瓜分奖品(京耕)", 440 | "name": "jd_jinggeng_showPartition.js", 441 | "head_url": "ql/front/showPartition", 442 | "value": [ 443 | { 444 | "export": ["jd_jinggeng_showPartition_activityUrl"], 445 | "re_url": "(.+)" 446 | } 447 | ] 448 | }, 449 | { 450 | "alias": "完善有礼(京耕)", 451 | "name": "jd_jinggeng_showPerfectInformation.js", 452 | "head_url": "ql/front/showPerfectInformation", 453 | "value": [ 454 | { 455 | "export": ["jd_jinggeng_showPerfectInformation_activityUrl"], 456 | "re_url": "(.+)" 457 | } 458 | ] 459 | }, 460 | { 461 | "alias": "签到有礼(京耕)", 462 | "name": "jd_jinggeng_showSign.js", 463 | "head_url": "ql/front/showSign", 464 | "value": [ 465 | { 466 | "export": ["jd_jinggeng_showSign_activityUrl"], 467 | "re_url": "(.+)" 468 | } 469 | ] 470 | }, 471 | { 472 | "alias": "幸运抽奖(京耕)", 473 | "name": "jd_jinggeng_showTaskDraw.js", 474 | "head_url": "ql/front/showTaskDraw", 475 | "value": [ 476 | { 477 | "export": ["jd_jinggeng_showTaskDraw_activityUrl"], 478 | "re_url": "(.+)" 479 | } 480 | ] 481 | }, 482 | { 483 | "alias": "店铺抽奖(超级无线/超级会员)", 484 | "name": "jd_luck_draw.js", 485 | "head_url": "lzclient", 486 | "value": [ 487 | { 488 | "export": ["LUCK_DRAW_URL"], 489 | "re_url": "(.+)" 490 | } 491 | ] 492 | }, 493 | { 494 | "alias": "店铺抽奖(超级无线/超级会员)", 495 | "name": "jd_luck_draw.js", 496 | "head_url": "wxDrawActivity", 497 | "value": [ 498 | { 499 | "export": ["LUCK_DRAW_URL"], 500 | "re_url": "(.+)" 501 | } 502 | ] 503 | }, 504 | { 505 | "alias": "店铺抽奖(超级无线/超级会员)", 506 | "name": "jd_luck_draw.js", 507 | "head_url": "wxDrawActivity", 508 | "value": [ 509 | { 510 | "export": ["LUCK_DRAW_URL"], 511 | "re_url": "(.+)" 512 | } 513 | ] 514 | }, 515 | { 516 | "alias": "LZ加购有礼通用活动", 517 | "name": "jd_lzaddCart.js", 518 | "head_url": "wxCollectionActivity", 519 | "value": [ 520 | { 521 | "export": ["jd_lzaddCart_activityId"], 522 | "re_url": "activityId=(\\w+)" 523 | } 524 | ] 525 | }, 526 | { 527 | "alias": "加购有礼(超级无线)", 528 | "name": "jd_lzkj_cart.js", 529 | "head_url": "wxCollectionActivity", 530 | "value": [ 531 | { 532 | "export": ["jd_lzkj_cart_url"], 533 | "re_url": "(https://.*?activityType=10024.*)" 534 | } 535 | ] 536 | }, 537 | { 538 | "alias": "每日抢好礼(超级无线)", 539 | "name": "jd_lzkj_dailyGrabs.js", 540 | "head_url": "prod/cc/interactsaas", 541 | "value": [ 542 | { 543 | "export": ["jd_lzkj_dailyGrabs_url"], 544 | "re_url": "(https://.*?activityType=10022.*)" 545 | } 546 | ] 547 | }, 548 | { 549 | "alias": "签到有礼(超级无线)", 550 | "name": "jd_lzkj_daySign.js", 551 | "head_url": "prod/cc/interactsaas", 552 | "value": [ 553 | { 554 | "export": ["jd_lzkj_daySign_url"], 555 | "re_url": "(https://.*?activityType=(?:10023|10040).*)" 556 | } 557 | ] 558 | }, 559 | { 560 | "alias": "幸运抽奖(超级无线)", 561 | "name": "jd_lzkj_draw.js", 562 | "head_url": "prod/cc/interactsaas", 563 | "value": [ 564 | { 565 | "export": ["jd_lzkj_draw_url"], 566 | "re_url": "(https://.*?activityType=(?:10001|10004|10020|10021|10026|10031|10041|10042|10046|10054|10062|10063|10073|10080).*)" 567 | } 568 | ] 569 | }, 570 | { 571 | "alias": "关注商品有礼(超级无线)", 572 | "name": "jd_lzkj_followGoods.js", 573 | "head_url": "prod/cc/interactsaas", 574 | "value": [ 575 | { 576 | "export": ["jd_lzkj_followGoods_url"], 577 | "re_url": "(https://.*?activityType=10053.*)" 578 | } 579 | ] 580 | }, 581 | { 582 | "alias": "邀请关注店铺有礼(超级无线)", 583 | "name": "jd_lzkj_inviteFollowShop.js", 584 | "head_url": "prod/cc/interactsaas", 585 | "value": [ 586 | { 587 | "export": ["jd_lzkj_inviteFollowShop_url"], 588 | "re_url": "(https://.*?activityType=10068.*)" 589 | } 590 | ] 591 | }, 592 | { 593 | "alias": "知识超人(超级无线)", 594 | "name": "jd_lzkj_know.js", 595 | "head_url": "prod/cc/interactsaas", 596 | "value": [ 597 | { 598 | "export": ["jd_lzkj_know_url"], 599 | "re_url": "(https://.*?activityType=10039.*)" 600 | } 601 | ] 602 | }, 603 | { 604 | "alias": "关注店铺有礼(超级无线)", 605 | "name": "jd_lzkj_lkFollowShop.js", 606 | "head_url": "prod/cc/interactsaas", 607 | "value": [ 608 | { 609 | "export": ["jd_lzkj_lkFollowShop_url"], 610 | "re_url": "(https://.*?activityType=10069.*)" 611 | } 612 | ] 613 | }, 614 | { 615 | "alias": "组队瓜分奖品(超级无线)", 616 | "name": "jd_lzkj_organizeTeam.js", 617 | "head_url": "prod/cc/interactsaas", 618 | "value": [ 619 | { 620 | "export": ["jd_lzkj_organizeTeam_url"], 621 | "re_url": "(https://.*?activityType=10033.*)" 622 | } 623 | ] 624 | }, 625 | { 626 | "alias": "完善有礼(超级无线)", 627 | "name": "jd_lzkj_perfectInfo.js", 628 | "head_url": "prod/cc/interactsaas", 629 | "value": [ 630 | { 631 | "export": ["jd_lzkj_perfectInfo_url"], 632 | "re_url": "(https://.*?activityType=10049.*)" 633 | } 634 | ] 635 | }, 636 | { 637 | "alias": "分享有礼(超级无线)", 638 | "name": "jd_lzkj_share.js", 639 | "head_url": "prod/cc/interactsaas", 640 | "value": [ 641 | { 642 | "export": ["jd_lzkj_share_url"], 643 | "re_url": "(https://.*?activityType=10043.*)" 644 | } 645 | ] 646 | }, 647 | { 648 | "alias": "积分兑换(超级无线)", 649 | "name": "jd_lzkj_pointsExchange.js", 650 | "head_url": "prod/cc/interactsaas", 651 | "value": [ 652 | { 653 | "export": ["jd_lzkj_pointsExchange_url"], 654 | "re_url": "(https://.*?activityType=10079.*)" 655 | } 656 | ] 657 | }, 658 | { 659 | "alias": "店铺礼包(超级无线)", 660 | "name": "jd_lzkj_shopGift.js", 661 | "head_url": "prod/cc/interactsaas", 662 | "value": [ 663 | { 664 | "export": ["jd_lzkj_shopGift_url"], 665 | "re_url": "(https://.*?activityType=10058.*)" 666 | } 667 | ] 668 | }, 669 | { 670 | "alias": "生日礼包(超级无线V2)", 671 | "name": "jd_lzkj_v2_birthday.js", 672 | "head_url": "prod/cc/interaction/v2", 673 | "value": [ 674 | { 675 | "export": ["jd_lzkj_v2_birthday_url"], 676 | "re_url": "(https://.*?prod/cc/interaction/v2/20002/.*)" 677 | }, 678 | { 679 | "export": ["jd_lzkj_v2_birthday_urls"], 680 | "re_url": "(.+)", 681 | "cutting": "@" 682 | } 683 | ] 684 | }, 685 | { 686 | "alias": "幸运抽奖(超级无线V2)", 687 | "name": "jd_lzkj_v2_draw.js", 688 | "head_url": "prod/cc/interaction/v2", 689 | "value": [ 690 | { 691 | "export": ["jd_lzkj_v2_draw_url"], 692 | "re_url": "(https://.*?prod/cc/interaction/v2/(?:10020|100021|10031|30003)/.*)", 693 | "cutting": "@" 694 | }, 695 | { 696 | "export": ["jd_lzkj_v2_draw_urls"], 697 | "re_url": "(https://.*?prod/cc/interaction/v2/(?:10020|100021|10031|30003)/.*)", 698 | "cutting": "@" 699 | } 700 | ] 701 | }, 702 | { 703 | "alias": "完善有礼(超级无线V2)", 704 | "name": "jd_lzkj_v2_perfectInfo.js", 705 | "head_url": "prod/cc/interaction/v2", 706 | "value": [ 707 | { 708 | "export": ["jd_lzkj_v2_perfectInfo_url"], 709 | "re_url": "(https://.*?prod/cc/interaction/v2/10049/.*)" 710 | } 711 | ] 712 | }, 713 | { 714 | "alias": "签到有礼(超级无线V2)", 715 | "name": "jd_lzkj_v2_sign.js", 716 | "head_url": "prod/cc/interaction/v2", 717 | "value": [ 718 | { 719 | "export": ["jd_lzkj_v2_sign_url"], 720 | "re_url": "(https://.*?prod/cc/interaction/v2/(?:10001|10004|10023|10040|10002|10003)/.*)", 721 | "cutting": "@" 722 | }, 723 | { 724 | "export": ["jd_lzkj_v2_sign_urls"], 725 | "re_url": "(https://.*?prod/cc/interaction/v2/(?:10001|10004|10023|10040|10002|10003)/.*)", 726 | "cutting": "@" 727 | } 728 | ] 729 | }, 730 | { 731 | "alias": "超店会员福利社通用开卡", 732 | "name": "jd_opencard_shopleague.js", 733 | "head_url": "dingzhi/shop/league", 734 | "value": [ 735 | { 736 | "export": ["jd_opencard_shopleague_id"], 737 | "re_url": "activityId=(\\w+)" 738 | } 739 | ] 740 | }, 741 | { 742 | "alias": "积分兑换京豆(超级会员)", 743 | "name": "jd_pointExgBeans.js", 744 | "head_url": "mc/wxPointShopView/pointExgBeans", 745 | "value": [ 746 | { 747 | "export": ["jd_pointExgBeans_activityUrl"], 748 | "re_url": "(.+)" 749 | } 750 | ] 751 | }, 752 | { 753 | "alias": "积分兑换红包(超级会员)", 754 | "name": "jd_pointExgHb.js", 755 | "head_url": "mc/wxPointShopView/pointExgHb", 756 | "value": [ 757 | { 758 | "export": ["jd_pointExgHb_activityUrl"], 759 | "re_url": "(.+)" 760 | } 761 | ] 762 | }, 763 | { 764 | "alias": "积分兑换红包(超级会员)", 765 | "name": "jd_pointExgShiWu.js", 766 | "head_url": "mc/wxPointShopView/pointExgShiWu", 767 | "value": [ 768 | { 769 | "export": ["jd_pointExgShiWu_activityUrl"], 770 | "re_url": "(.+)" 771 | } 772 | ] 773 | }, 774 | { 775 | "alias": "lz分享有礼", 776 | "name": "jd_share2.js", 777 | "head_url": "wxShareActivity", 778 | "value": [ 779 | { 780 | "export": ["jd_fxyl_activityId"], 781 | "re_url": "activityId=(\\w+)" 782 | } 783 | ] 784 | }, 785 | { 786 | "alias": "加购有礼(收藏大师)", 787 | "name": "jd_txzj_cart_item.js", 788 | "head_url": "cart_item/home", 789 | "value": [ 790 | { 791 | "export": ["jd_cart_item_activityUrl"], 792 | "re_url": "(.+)" 793 | }, 794 | { 795 | "export": ["jd_txzj_cart_item_id"], 796 | "re_url": "a=(\\w+)", 797 | "cutting": "&" 798 | } 799 | ] 800 | }, 801 | { 802 | "alias": "关注商品有礼(收藏大师)", 803 | "name": "jd_txzj_collect_item.js", 804 | "head_url": "collect_item/home", 805 | "value": [ 806 | { 807 | "export": ["jd_collect_item_activityUrl"], 808 | "re_url": "(.+)" 809 | }, 810 | { 811 | "export": ["jd_txzj_collect_item_id"], 812 | "re_url": "a=(\\w+)" 813 | } 814 | ] 815 | }, 816 | { 817 | "alias": "关注店铺有礼(收藏大师)", 818 | "name": "jd_txzj_collect_shop.js", 819 | "head_url": "collect_shop/home", 820 | "value": [ 821 | { 822 | "export": ["jd_collect_shop_activityUrl"], 823 | "re_url": "(.+)" 824 | } 825 | ] 826 | }, 827 | { 828 | "alias": "幸运抽奖(收藏大师)", 829 | "name": "jd_txzj_lottery.js", 830 | "head_url": "lottery/home", 831 | "value": [ 832 | { 833 | "export": ["jd_lottery_activityUrl"], 834 | "re_url": "(.+)" 835 | }, 836 | { 837 | "export": ["jd_txzj_lottery_id"], 838 | "re_url": "a=(\\w+)" 839 | } 840 | ] 841 | }, 842 | { 843 | "alias": "分享有礼(收藏大师)", 844 | "name": "jd_txzj_share_new.js", 845 | "head_url": "share_new/home", 846 | "value": [ 847 | { 848 | "export": ["jd_share_new_activityUrl"], 849 | "re_url": "(.+)" 850 | } 851 | ] 852 | }, 853 | { 854 | "alias": "店铺礼包(收藏大师)", 855 | "name": "jd_txzj_shop_gift.js", 856 | "head_url": "shop_gift", 857 | "value": [ 858 | { 859 | "export": ["jd_shop_gift_activityUrl"], 860 | "re_url": "(.+)" 861 | } 862 | ] 863 | }, 864 | { 865 | "alias": "签到有礼(收藏大师)", 866 | "name": "jd_txzj_sign_in.js", 867 | "head_url": "sign_in/home", 868 | "value": [ 869 | { 870 | "export": ["jd_sign_in_activityUrl"], 871 | "re_url": "(.+)" 872 | }, 873 | { 874 | "export": ["jd_txzj_sign_in_id"], 875 | "re_url": "a=(\\w+)" 876 | } 877 | ] 878 | }, 879 | { 880 | "alias": "盖楼有礼(超级无线)", 881 | "name": "jd_wxBuildActivity.js", 882 | "head_url": "wxBuildActivity", 883 | "value": [ 884 | { 885 | "export": ["jd_wxBuildActivity_activityId"], 886 | "re_url": "activityId=(\\w+)" 887 | } 888 | ] 889 | }, 890 | { 891 | "alias": "购物车锦鲤(超级无线)", 892 | "name": "jd_wxCartKoi.js", 893 | "head_url": "wxCartKoi/cartkoi", 894 | "value": [ 895 | { 896 | "export": ["jd_wxCartKoi_activityId"], 897 | "re_url": "activityId=(\\w+)" 898 | } 899 | ] 900 | }, 901 | { 902 | "alias": "集卡有礼(超级无线)", 903 | "name": "jd_wxCollectCard.js", 904 | "head_url": "wxCollectCard", 905 | "value": [ 906 | { 907 | "export": ["jd_wxCollectCard_activityId"], 908 | "re_url": "activityId=(\\w+)" 909 | } 910 | ] 911 | }, 912 | { 913 | "alias": "加购有礼(超级无线/超级会员)", 914 | "name": "jd_wxCollectionActivity.js", 915 | "head_url": "wxCollectionActivity", 916 | "value": [ 917 | { 918 | "export": ["jd_wxCollectionActivity_activityUrl"], 919 | "re_url": "(.+)" 920 | } 921 | ] 922 | }, 923 | { 924 | "alias": "加购物车抽奖", 925 | "name": "jd_wxCollectionActivity2.js", 926 | "head_url": "wxgame", 927 | "value": [ 928 | { 929 | "export": ["ACTIVITY_ID"], 930 | "re_url": "activityId=(\\w+)" 931 | } 932 | ] 933 | }, 934 | { 935 | "alias": "粉丝互动(超级无线)", 936 | "name": "jd_wxFansInterActionActivity.js", 937 | "head_url": "wxFansInterActionActivity", 938 | "value": [ 939 | { 940 | "export": ["jd_wxFansInterActionActivity_activityId"], 941 | "re_url": "activityId=(\\w+)" 942 | } 943 | ] 944 | }, 945 | { 946 | "alias": "游戏赢大礼(超级无线/超级会员)", 947 | "name": "jd_wxGameActivity.js", 948 | "head_url": "wxGameActivity", 949 | "value": [ 950 | { 951 | "export": ["jd_wxGameActivity_activityUrl"], 952 | "re_url": "(.+)" 953 | } 954 | ] 955 | }, 956 | { 957 | "alias": "知识超人(超级无线/超级会员)", 958 | "name": "jd_wxKnowledgeActivity.js", 959 | "head_url": "wxKnowledgeActivity", 960 | "value": [ 961 | { 962 | "export": ["jd_wxKnowledgeActivity_activityUrl"], 963 | "re_url": "(.+)" 964 | } 965 | ] 966 | }, 967 | { 968 | "alias": "生日礼包/会员等级礼包(超级会员)", 969 | "name": "jd_wxMcLevelAndBirthGifts.js", 970 | "head_url": "mc/wxMcLevelAndBirthGifts", 971 | "value": [ 972 | { 973 | "export": ["jd_wxMcLevelAndBirthGifts_activityId"], 974 | "re_url": "activityId=(\\w+)" 975 | }, 976 | { 977 | "export": ["jd_wxMcLevelAndBirthGifts_activityUrl"], 978 | "re_url": "(.+)" 979 | } 980 | ] 981 | }, 982 | { 983 | "alias": "读秒拼手速(超级无线)", 984 | "name": "jd_wxSecond.js", 985 | "head_url": "wxSecond", 986 | "value": [ 987 | { 988 | "export": ["jd_wxSecond_activityId"], 989 | "re_url": "activityId=(\\w+)" 990 | } 991 | ] 992 | }, 993 | { 994 | "alias": "分享有礼(超级无线)", 995 | "name": "jd_wxShareActivity.js", 996 | "head_url": "wxShareActivity", 997 | "value": [ 998 | { 999 | "export": ["jd_wxShareActivity_activityId"], 1000 | "re_url": "activityId=(\\w+)" 1001 | } 1002 | ] 1003 | }, 1004 | { 1005 | "alias": "关注店铺有礼(超级无线/超级会员)", 1006 | "name": "jd_wxShopFollowActivity.js", 1007 | "head_url": "wxShopFollowActivity", 1008 | "value": [ 1009 | { 1010 | "export": ["jd_wxShopFollowActivity_activityUrl"], 1011 | "re_url": "(.+)" 1012 | }, 1013 | { 1014 | "export": ["jd_wxShopFollowActivity_url"], 1015 | "re_url": "(.+)" 1016 | } 1017 | ] 1018 | }, 1019 | { 1020 | "alias": "让福袋飞(超级无线)", 1021 | "name": "jd_wxUnPackingActivity.js", 1022 | "head_url": "wxUnPackingActivity", 1023 | "value": [ 1024 | { 1025 | "export": ["jd_wxUnPackingActivity_activityId"], 1026 | "re_url": "activityId=(\\w+)" 1027 | } 1028 | ] 1029 | }, 1030 | { 1031 | "alias": "无线游戏(超级无线)", 1032 | "name": "jd_wxgame.js", 1033 | "head_url": "wxgame/activity", 1034 | "value": [ 1035 | { 1036 | "export": ["jd_wxgame_activityId"], 1037 | "re_url": "activityId=(\\w+)" 1038 | } 1039 | ] 1040 | }, 1041 | { 1042 | "alias": "入会开卡领取礼包通用", 1043 | "name": "jd_card_force.js", 1044 | "head_url": "wxInviteActivity/openCard", 1045 | "value": [ 1046 | { 1047 | "export": ["VENDER_ID"], 1048 | "re_url": "activityId=(\\w+)", 1049 | "cutting": "&" 1050 | } 1051 | ] 1052 | }, 1053 | { 1054 | "alias": "cjhy完善信息", 1055 | "name": "jd_cjhy_completeInfoActivity.js", 1056 | "head_url": "wx/completeInfoActivity/view", 1057 | "value": [ 1058 | { 1059 | "export": ["jd_cjhy_completeInfoActivity_Ids"], 1060 | "re_url": "activityId=(\\w+)", 1061 | "cutting": "&" 1062 | } 1063 | ] 1064 | }, 1065 | { 1066 | "alias": "cjhy每日抢", 1067 | "name": "jd_cjhy_daily.js", 1068 | "head_url": "activity/daily/wx", 1069 | "value": [ 1070 | { 1071 | "export": ["jd_cjhy_daily_ids"], 1072 | "re_url": "activityId=(\\w+)", 1073 | "cutting": "&" 1074 | } 1075 | ] 1076 | }, 1077 | { 1078 | "alias": "cjhy七日签到", 1079 | "name": "jd_cjhy_sevenDay.js", 1080 | "head_url": "sign/sevenDay/signActivity", 1081 | "value": [ 1082 | { 1083 | "export": ["jd_cjhy_sevenDay_ids"], 1084 | "re_url": "activityId=(\\w+)", 1085 | "cutting": "&" 1086 | } 1087 | ] 1088 | }, 1089 | { 1090 | "alias": "cjhy签到有礼", 1091 | "name": "jd_cjhy_signActivity.js", 1092 | "head_url": "sign/signActivity", 1093 | "value": [ 1094 | { 1095 | "export": ["jd_cjhy_signActivity_urls"], 1096 | "re_url": "(.+)", 1097 | "cutting": "@" 1098 | } 1099 | ] 1100 | }, 1101 | { 1102 | "alias": "cjhy加购物车抽奖", 1103 | "name": "jd_cjhy_wxCollectionActivity.js", 1104 | "head_url": "wxCollectionActivity", 1105 | "value": [ 1106 | { 1107 | "export": ["jd_cjhy_wxCollectionActivityId"], 1108 | "re_url": "activityId=(\\w+)", 1109 | "cutting": "&" 1110 | } 1111 | ] 1112 | }, 1113 | { 1114 | "alias": "cjhy幸运抽奖", 1115 | "name": "jd_cjhy_wxDrawActivity.js", 1116 | "head_url": "wxDrawActivity", 1117 | "value": [ 1118 | { 1119 | "export": ["jd_cjhy_wxDrawActivity_Id"], 1120 | "re_url": "activityId=(\\w+)", 1121 | "cutting": "&" 1122 | } 1123 | ] 1124 | }, 1125 | { 1126 | "alias": "cjhy游戏活动", 1127 | "name": "jd_cjhy_wxGameActivity.js", 1128 | "head_url": "wxGameActivity", 1129 | "value": [ 1130 | { 1131 | "export": ["jd_cjhy_wxGameActivity_activityId"], 1132 | "re_url": "activityId=(\\w+)", 1133 | "cutting": "&" 1134 | } 1135 | ] 1136 | }, 1137 | { 1138 | "alias": "cjhy知识超人", 1139 | "name": "jd_cjhy_wxKnowledgeActivity.js", 1140 | "head_url": "wxKnowledgeActivity", 1141 | "value": [ 1142 | { 1143 | "export": ["jd_cjhy_wxKnowledgeActivity_activityId"], 1144 | "re_url": "activityId=(\\w+)", 1145 | "cutting": "&" 1146 | } 1147 | ] 1148 | }, 1149 | { 1150 | "alias": "cjhy会员等级与生日礼", 1151 | "name": "jd_cjhy_wxMcLevelAndBirthGifts.js", 1152 | "head_url": "mc/wxMcLevelAndBirthGifts", 1153 | "value": [ 1154 | { 1155 | "export": ["jd_cjhy_wxMcLevelAndBirthGifts_ids"], 1156 | "re_url": "activityId=(\\w+)", 1157 | "cutting": "&" 1158 | } 1159 | ] 1160 | }, 1161 | { 1162 | "alias": "cjhy积分兑换京豆", 1163 | "name": "jd_cjhy_wxPointShopView.js", 1164 | "head_url": "mc/wxPointShopView/pointExgBeans", 1165 | "value": [ 1166 | { 1167 | "export": ["jd_cjhy_wxPointShopView_url"], 1168 | "re_url": "(.+)" 1169 | } 1170 | ] 1171 | }, 1172 | { 1173 | "alias": "cjhy关注店铺有礼", 1174 | "name": "jd_cjhy_wxShopFollowActivity.js", 1175 | "head_url": "wxShopFollowActivity", 1176 | "value": [ 1177 | { 1178 | "export": ["jd_cjhy_wxShopFollowActivity_activityId"], 1179 | "re_url": "activityId=(\\w+)", 1180 | "cutting": "&" 1181 | } 1182 | ] 1183 | }, 1184 | { 1185 | "alias": "cjhy店铺礼包", 1186 | "name": "jd_cjhy_wxShopGift.js", 1187 | "head_url": "wxShopGift", 1188 | "value": [ 1189 | { 1190 | "export": ["jd_cjhy_wxShopGift_ids"], 1191 | "re_url": "activityId=(\\w+)", 1192 | "cutting": "&" 1193 | } 1194 | ] 1195 | }, 1196 | { 1197 | "alias": "cj组队瓜分", 1198 | "name": "jd_cjhydz_wxTeam.js", 1199 | "head_url": "wxTeam", 1200 | "value": [ 1201 | { 1202 | "export": ["jd_cjhydz_wxTeam_Id"], 1203 | "re_url": "activityId=(\\w+)" 1204 | } 1205 | ] 1206 | }, 1207 | { 1208 | "alias": "店铺签到-定时", 1209 | "name": "jd_dpqd_own.js", 1210 | "head_url": "babelDiy/Zeus", 1211 | "value": [ 1212 | { 1213 | "export": ["dpqd_token_own"], 1214 | "re_url": "token=(\\w+)", 1215 | "cutting": "&" 1216 | } 1217 | ] 1218 | }, 1219 | { 1220 | "alias": "gzsl 关注店铺有礼", 1221 | "name": "jd_gzsl_contact.js", 1222 | "head_url": "wuxian/user/contact", 1223 | "value": [ 1224 | { 1225 | "export": ["jd_gzsl_contact_urls"], 1226 | "re_url": "(.+)", 1227 | "cutting": "@" 1228 | }, 1229 | { 1230 | "export": ["jd_gzsl_contact_url"], 1231 | "re_url": "(.+)" 1232 | } 1233 | ] 1234 | }, 1235 | { 1236 | "alias": "gzsl 关注店铺有礼", 1237 | "name": "jd_gzsl_contact.js", 1238 | "head_url": "wuxian/mobileForApp", 1239 | "value": [ 1240 | { 1241 | "export": ["jd_gzsl_contact_urls"], 1242 | "re_url": "(.+)", 1243 | "cutting": "@" 1244 | }, 1245 | { 1246 | "export": ["jd_gzsl_contact_url"], 1247 | "re_url": "(.+)" 1248 | } 1249 | ] 1250 | }, 1251 | { 1252 | "alias": "jingyun 抽奖", 1253 | "name": "jd_jingyun_draw.js", 1254 | "head_url": "h5/pages/turntable", 1255 | "value": [ 1256 | { 1257 | "export": ["jd_jingyun_draw_urls"], 1258 | "re_url": "(.+)", 1259 | "cutting": "@" 1260 | } 1261 | ] 1262 | }, 1263 | { 1264 | "alias": "jingyun 组队", 1265 | "name": "jd_jingyun_partitionTeam.js", 1266 | "head_url": "h5/pages/partitionTeam", 1267 | "value": [ 1268 | { 1269 | "export": ["jd_jingyun_partitionTeam_urls"], 1270 | "re_url": "(.+)", 1271 | "cutting": "@" 1272 | } 1273 | ] 1274 | }, 1275 | { 1276 | "alias": "jingyun 加购", 1277 | "name": "jd_jingyun_plusGift.js", 1278 | "head_url": "h5/pages/plusGift", 1279 | "value": [ 1280 | { 1281 | "export": ["jd_jingyun_plusGift_urls"], 1282 | "re_url": "(.+)", 1283 | "cutting": "@" 1284 | } 1285 | ] 1286 | }, 1287 | { 1288 | "alias": "jingyun 签到", 1289 | "name": "jd_jingyun_sign.js", 1290 | "head_url": "h5/pages/SignIn", 1291 | "value": [ 1292 | { 1293 | "export": ["jd_jingyun_sign_urls"], 1294 | "re_url": "(.+)", 1295 | "cutting": "@" 1296 | } 1297 | ] 1298 | }, 1299 | { 1300 | "alias": "jingyun 签到", 1301 | "name": "jd_jingyun_sign.js", 1302 | "head_url": "h5/pages/SignIn2", 1303 | "value": [ 1304 | { 1305 | "export": ["jd_jingyun_sign_urls"], 1306 | "re_url": "(.+)", 1307 | "cutting": "@" 1308 | } 1309 | ] 1310 | }, 1311 | { 1312 | "alias": "jingyun 签到", 1313 | "name": "jd_jingyun_sign.js", 1314 | "head_url": "h5/pages/sevenDaysin", 1315 | "value": [ 1316 | { 1317 | "export": ["jd_jingyun_sign_urls"], 1318 | "re_url": "(.+)", 1319 | "cutting": "@" 1320 | } 1321 | ] 1322 | }, 1323 | { 1324 | "alias": "jingyun 签到", 1325 | "name": "jd_jingyun_sign.js", 1326 | "head_url": "h5/pages/sevenDaysin2", 1327 | "value": [ 1328 | { 1329 | "export": ["jd_jingyun_sign_urls"], 1330 | "re_url": "(.+)", 1331 | "cutting": "@" 1332 | } 1333 | ] 1334 | }, 1335 | { 1336 | "alias": "JD抽奖机", 1337 | "name": "jd_lottery.js", 1338 | "head_url": "module/task/draw", 1339 | "value": [ 1340 | { 1341 | "export": ["JD_Lottery"], 1342 | "re_url": "configCode=(\\w+)", 1343 | "cutting": "@" 1344 | } 1345 | ] 1346 | }, 1347 | { 1348 | "alias": "joy抽奖机通用", 1349 | "name": "jd_lotterys.js", 1350 | "head_url": "module/task/draw", 1351 | "value": [ 1352 | { 1353 | "export": ["JD_Lottery"], 1354 | "re_url": "configCode=(\\w+)", 1355 | "cutting": "@" 1356 | } 1357 | ] 1358 | }, 1359 | { 1360 | "alias": "lzkj_10006_v1邀请入会有礼", 1361 | "name": "jd_lzkj_10006_v1.js", 1362 | "head_url": "prod/cc/interaction/v1", 1363 | "value": [ 1364 | { 1365 | "export": ["jd_lzkj_10006_v1_ids"], 1366 | "re_url": "prod/cc/interaction/v1.*?activityType=10006.*activityId=(\\w+)" 1367 | } 1368 | ] 1369 | }, 1370 | { 1371 | "alias": "lzkj_10033组队瓜分", 1372 | "name": "jd_lzkj_10033_zdgf.js", 1373 | "head_url": "prod/cc/interactsaas", 1374 | "value": [ 1375 | { 1376 | "export": ["jd_lzkj_10033_zdgf_Ids"], 1377 | "re_url": "prod/cc/interactsaas.*?activityType=10033.*activityId=(\\w+)", 1378 | "cutting": "&" 1379 | } 1380 | ] 1381 | }, 1382 | { 1383 | "alias": "lzkj_10043分享有礼", 1384 | "name": "jd_lzkj_10043_fxyl.js", 1385 | "head_url": "prod/cc/interactsaas", 1386 | "value": [ 1387 | { 1388 | "export": ["jd_lzkj_10043_fxyl_activityId"], 1389 | "re_url": "prod/cc/interactsaas.*?activityType=10043.*activityId=(\\w+)" 1390 | } 1391 | ] 1392 | }, 1393 | { 1394 | "alias": "lzkj_10044投票有礼抽奖", 1395 | "name": "jd_lzkj_10044_tpyl.js", 1396 | "head_url": "prod/cc/interactsaas", 1397 | "value": [ 1398 | { 1399 | "export": ["jd_lzkj_10044_tpyl_Ids"], 1400 | "re_url": "prod/cc/interactsaas.*?activityType=10044.*activityId=(\\w+)", 1401 | "cutting": "&" 1402 | } 1403 | ] 1404 | }, 1405 | { 1406 | "alias": "lzkj_10047盖楼有礼", 1407 | "name": "jd_lzkj_10047_glyl.js", 1408 | "head_url": "prod/cc/interactsaas", 1409 | "value": [ 1410 | { 1411 | "export": ["jd_lzkj_10047_glyl_Ids"], 1412 | "re_url": "prod/cc/interactsaas.*?activityType=10047.*activityId=(\\w+)", 1413 | "cutting": "&" 1414 | } 1415 | ] 1416 | }, 1417 | { 1418 | "alias": "lzkj_10053关注商品有礼", 1419 | "name": "jd_lzkj_10053_gzspyl.js", 1420 | "head_url": "prod/cc/interactsaas", 1421 | "value": [ 1422 | { 1423 | "export": ["jd_lzkj_10053_gzspyl_activityId"], 1424 | "re_url": "prod/cc/interactsaas.*?activityType=10053.*activityId=(\\w+)", 1425 | "cutting": "&" 1426 | } 1427 | ] 1428 | }, 1429 | { 1430 | "alias": "lzkj_10058店铺礼包", 1431 | "name": "jd_lzkj_10058_dplb.js", 1432 | "head_url": "prod/cc/interactsaas", 1433 | "value": [ 1434 | { 1435 | "export": ["jd_lzkj_10058_dplb_activityId"], 1436 | "re_url": "prod/cc/interactsaas.*?activityType=10058.*activityId=(\\w+)" 1437 | } 1438 | ] 1439 | }, 1440 | { 1441 | "alias": "lzkj_10068邀请关注店铺有礼", 1442 | "name": "jd_lzkj_10068_yqgzdpyl.js", 1443 | "head_url": "prod/cc/interactsaas", 1444 | "value": [ 1445 | { 1446 | "export": ["jd_lzkj_10068_yqgzdpyl_activityId"], 1447 | "re_url": "prod/cc/interactsaas.*?activityType=10068.*activityId=(\\w+)" 1448 | } 1449 | ] 1450 | }, 1451 | { 1452 | "alias": "lzkj_10069关注店铺有礼", 1453 | "name": "jd_lzkj_10069_gzyl.js", 1454 | "head_url": "prod/cc/interactsaas", 1455 | "value": [ 1456 | { 1457 | "export": ["jd_lzkj_10069_gzyl_activityId"], 1458 | "re_url": "prod/cc/interactsaas.*?activityType=10069.*activityId=(\\w+)" 1459 | } 1460 | ] 1461 | }, 1462 | { 1463 | "alias": "lzkj_10070_v1邀请好友入会", 1464 | "name": "jd_lzkj_10070_v1.js", 1465 | "head_url": "prod/cc/interaction/v1", 1466 | "value": [ 1467 | { 1468 | "export": ["jd_lzkj_10070_v1_ids"], 1469 | "re_url": "prod/cc/interaction/v1.*?activityType=10070.*activityId=(\\w+)" 1470 | } 1471 | ] 1472 | }, 1473 | { 1474 | "alias": "lzkj_10070邀请好友入会", 1475 | "name": "jd_lzkj_10070_yqhyrh.js", 1476 | "head_url": "prod/cc/interactsaas", 1477 | "value": [ 1478 | { 1479 | "export": ["jd_lzkj_10070_yqhyrh_activityId"], 1480 | "re_url": "prod/cc/interactsaas.*?activityType=10070.*activityId=(\\w+)" 1481 | } 1482 | ] 1483 | }, 1484 | { 1485 | "alias": "lzkj_10079积分兑换", 1486 | "name": "jd_lzkj_10079_jfdh.js", 1487 | "head_url": "prod/cc/interactsaas", 1488 | "value": [ 1489 | { 1490 | "export": ["jd_lzkj_10079_jfdh_Ids"], 1491 | "re_url": "prod/cc/interactsaas.*?activityType=10079.*activityId=(\\w+)", 1492 | "cutting": "&" 1493 | } 1494 | ] 1495 | }, 1496 | { 1497 | "alias": "lzkj_100 抽奖", 1498 | "name": "jd_lzkj_100_draw.js", 1499 | "head_url": "prod/cc/interactsaas", 1500 | "value": [ 1501 | { 1502 | "export": ["jd_lzkj_100_draw_urls"], 1503 | "re_url": "(https://.*?activityType=(?:10001|10004|10020|10021|10026|10031|10041|10042|10046|10054|10062|10063|10073|10080).*)", 1504 | "cutting": "@" 1505 | } 1506 | ] 1507 | }, 1508 | { 1509 | "alias": "lzkj 100 加购有礼", 1510 | "name": "jd_lzkj_100_jgyl.js", 1511 | "head_url": "prod/cc/interactsaas", 1512 | "value": [ 1513 | { 1514 | "export": ["jd_lzkj_100_jgyl_urls"], 1515 | "re_url": "(.*activityType=10024.*)", 1516 | "cutting": "@" 1517 | } 1518 | ] 1519 | }, 1520 | { 1521 | "alias": "lzkj 100 签到", 1522 | "name": "jd_lzkj_100_sign.js", 1523 | "head_url": "prod/cc/interactsaas", 1524 | "value": [ 1525 | { 1526 | "export": ["jd_lzkj_100_sign_urls"], 1527 | "re_url": "prod/cc/interactsaas.*?activityType=(?:10001|10004|10002|10003|10023|10040).*activityId=(\\w+)", 1528 | "cutting": "@" 1529 | } 1530 | ] 1531 | }, 1532 | { 1533 | "alias": "lzkj每日抢", 1534 | "name": "jd_lzkj_daily.js", 1535 | "head_url": "activity/daily/wx/indexPage", 1536 | "value": [ 1537 | { 1538 | "export": ["jd_lzkj_daily_ids"], 1539 | "re_url": "activityId=(\\w+)", 1540 | "cutting": "&" 1541 | } 1542 | ] 1543 | }, 1544 | { 1545 | "alias": "lzkj七日签到", 1546 | "name": "jd_lzkj_sevenDay.js", 1547 | "head_url": "sign/sevenDay/signActivity", 1548 | "value": [ 1549 | { 1550 | "export": ["jd_lzkj_sevenDay_ids"], 1551 | "re_url": "activityId=(\\w+)", 1552 | "cutting": "&" 1553 | } 1554 | ] 1555 | }, 1556 | { 1557 | "alias": "lzkj签到有礼", 1558 | "name": "jd_lzkj_signActivity2.js", 1559 | "head_url": "sign/signActivity2", 1560 | "value": [ 1561 | { 1562 | "export": ["jd_lzkj_signActivity2_ids"], 1563 | "re_url": "activityId=(\\w+)", 1564 | "cutting": "&" 1565 | } 1566 | ] 1567 | }, 1568 | { 1569 | "alias": "lzkj加购物车抽奖", 1570 | "name": "jd_lzkj_wxCollectionActivity.js", 1571 | "head_url": "wxCollectionActivity", 1572 | "value": [ 1573 | { 1574 | "export": ["jd_lzkj_wxCollectionActivityId"], 1575 | "re_url": "activityId=(\\w+)", 1576 | "cutting": "&" 1577 | } 1578 | ] 1579 | }, 1580 | { 1581 | "alias": "lzkj v2 完善信息", 1582 | "name": "jd_lzkj_v2_completeInfo.js", 1583 | "head_url": "prod/cc/interaction/v2", 1584 | "value": [ 1585 | { 1586 | "export": ["jd_lzkj_v2_completeInfo_urls"], 1587 | "re_url": "(.*prod/cc/interaction/v2/10049/1002.*)", 1588 | "cutting": "@" 1589 | } 1590 | ] 1591 | }, 1592 | { 1593 | "alias": "lzkj幸运抽奖", 1594 | "name": "jd_lzkj_wxDrawActivity.js", 1595 | "head_url": "lzclient", 1596 | "value": [ 1597 | { 1598 | "export": ["jd_lzkj_wxDrawActivity_Id"], 1599 | "re_url": "(.*prod/cc/interaction/v2/2000(?:20002|3)/1001.*)", 1600 | "cutting": "&" 1601 | } 1602 | ] 1603 | }, 1604 | { 1605 | "alias": "lzkj关注店铺有礼", 1606 | "name": "jd_lzkj_wxShopFollowActivity.js", 1607 | "head_url": "wxShopFollowActivity", 1608 | "value": [ 1609 | { 1610 | "export": ["jd_lzkj_wxShopFollowActivity_activityId"], 1611 | "re_url": "activityId=(\\w+)", 1612 | "cutting": "&" 1613 | } 1614 | ] 1615 | }, 1616 | { 1617 | "alias": "lzkj店铺礼包", 1618 | "name": "jd_lzkj_wxShopGift.js", 1619 | "head_url": "wxShopGift", 1620 | "value": [ 1621 | { 1622 | "export": ["jd_lzkj_wxShopGift_ids"], 1623 | "re_url": "activityId=(\\w+)", 1624 | "cutting": "&" 1625 | } 1626 | ] 1627 | }, 1628 | { 1629 | "alias": "大牌联合通用", 1630 | "name": "jd_opencardDPLHTY.js", 1631 | "head_url": "jdbeverage/pages", 1632 | "value": [ 1633 | { 1634 | "export": ["DPLHTY"], 1635 | "re_url": "actId=(\\w+)", 1636 | "cutting": "&" 1637 | } 1638 | ] 1639 | }, 1640 | { 1641 | "alias": "邀好友赢大礼", 1642 | "name": "jd_prodev.js", 1643 | "head_url": "mall/active", 1644 | "value": [ 1645 | { 1646 | "export": ["jd_prodev_id"], 1647 | "re_url": "code=(\\w+)" 1648 | }, 1649 | { 1650 | "export": ["jd_prodev_actCode"], 1651 | "re_url": "code=(\\w+)" 1652 | } 1653 | ] 1654 | }, 1655 | { 1656 | "alias": "京东直播互动抽奖", 1657 | "name": "jd_liveLottery.js", 1658 | "head_url": "dev/", 1659 | "value": [ 1660 | { 1661 | "export": ["jd_liveLottery_ids"], 1662 | "re_url": "https://h5.*id=(\\w+)", 1663 | "cutting": "@" 1664 | } 1665 | ] 1666 | }, 1667 | { 1668 | "alias": "入会礼包", 1669 | "name": "jd_opencard_gift.js", 1670 | "head_url": "shopcard", 1671 | "value": [ 1672 | { 1673 | "export": ["jd_opencard_venderId"], 1674 | "re_url": "venderId=(\\w+)", 1675 | "cutting": "@" 1676 | } 1677 | ] 1678 | }, 1679 | { 1680 | "alias": "翻牌签到", 1681 | "name": "jd_sendbeans.js", 1682 | "head_url": "jump/index", 1683 | "value": [ 1684 | { 1685 | "export": ["jd_sendbeans_url"], 1686 | "re_url": "(,*)", 1687 | "cutting": "@" 1688 | }, 1689 | { 1690 | "export": ["jd_sendbeans_urls"], 1691 | "re_url": "(,*)", 1692 | "cutting": "@" 1693 | } 1694 | ] 1695 | }, 1696 | { 1697 | "alias": "店铺刮刮乐(刮一刮)", 1698 | "name": "jd_shop_lottery.js", 1699 | "head_url": "shop/lottery", 1700 | "value": [ 1701 | { 1702 | "export": ["jd_shopLottery_venderIds"], 1703 | "re_url": "venderId=(\\w+)", 1704 | "cutting": "," 1705 | } 1706 | ] 1707 | }, 1708 | { 1709 | "alias": "常规卡通用", 1710 | "name": "jd_opencard_common.js", 1711 | "head_url": "dingzhi/joinCommon", 1712 | "value": [ 1713 | { 1714 | "export": ["jd_lzdz1_joinCommon_Id"], 1715 | "re_url": "activityId=(\\w+)", 1716 | "cutting": "," 1717 | } 1718 | ] 1719 | }, 1720 | { 1721 | "alias": "组队瓜分奖品(超级无线/超级会员)", 1722 | "name": "jd_wxTeam.js", 1723 | "head_url": "wxTeam/activity", 1724 | "value": [ 1725 | { 1726 | "export": ["jd_wxTeam_url"], 1727 | "re_url": "(.+)" 1728 | }, 1729 | { 1730 | "export": ["jd_wxTeam_activityUrl"], 1731 | "re_url": "(.+)" 1732 | } 1733 | ] 1734 | }, 1735 | { 1736 | "alias": "批量店铺签到(超级无线/超级会员)", 1737 | "name": "jd_wxSign.js", 1738 | "head_url": "sign/signActivity2", 1739 | "value": [ 1740 | { 1741 | "export": ["jd_wxSign_sign_lzkj_Ids"], 1742 | "re_url": "https://lzkj.*?activityId=(\\w+)", 1743 | "cutting": "," 1744 | } 1745 | ] 1746 | }, 1747 | { 1748 | "alias": "批量店铺签到(超级无线/超级会员)", 1749 | "name": "jd_wxSign.js", 1750 | "head_url": "sign/sevenDay/signActivity", 1751 | "value": [ 1752 | { 1753 | "export": ["jd_wxSign_sevenDay_lzkj_Ids"], 1754 | "re_url": "https://lzkj.*?activityId=(\\w+)", 1755 | "cutting": "," 1756 | } 1757 | ] 1758 | }, 1759 | { 1760 | "alias": "批量店铺签到(超级无线/超级会员)", 1761 | "name": "jd_wxSign.js", 1762 | "head_url": "sign/signActivity", 1763 | "value": [ 1764 | { 1765 | "export": ["jd_wxSign_sign_cjhy_Ids"], 1766 | "re_url": "https://cjhy.*?activityId=(\\w+)", 1767 | "cutting": "," 1768 | } 1769 | ] 1770 | }, 1771 | { 1772 | "alias": "批量店铺签到(超级无线/超级会员)", 1773 | "name": "jd_wxSign.js", 1774 | "head_url": "sign/sevenDay/signActivity", 1775 | "value": [ 1776 | { 1777 | "export": ["jd_wxSign_sevenDay_cjhy_Ids"], 1778 | "re_url": "https://cjhy.*?activityId=(\\w+)", 1779 | "cutting": "," 1780 | } 1781 | ] 1782 | }, 1783 | { 1784 | "alias": "店铺礼包(超级无线/超级会员)", 1785 | "name": "jd_wxShopGift.js", 1786 | "head_url": "wxShopGift/activity", 1787 | "value": [ 1788 | { 1789 | "export": ["jd_wxShopGift_activityUrl"], 1790 | "re_url": "(.+)" 1791 | }, 1792 | { 1793 | "export": ["jd_wxShopGift_url"], 1794 | "re_url": "(.+)" 1795 | } 1796 | ] 1797 | }, 1798 | { 1799 | "alias": "无线店铺签到(超级无线/超级会员)", 1800 | "name": "jd_shopSign.js", 1801 | "head_url": "sign/sevenDay", 1802 | "value": [ 1803 | { 1804 | "export": ["jd_shopSign_activityUrl"], 1805 | "re_url": "(.+)" 1806 | } 1807 | ] 1808 | }, 1809 | { 1810 | "alias": "无线店铺签到(超级无线/超级会员)", 1811 | "name": "jd_shopSign.js", 1812 | "head_url": "sign/signActivity", 1813 | "value": [ 1814 | { 1815 | "export": ["jd_shopSign_activityUrl"], 1816 | "re_url": "(.+)" 1817 | } 1818 | ] 1819 | }, 1820 | { 1821 | "alias": "超级无线店铺签到", 1822 | "name": "jd_sevenDay.js", 1823 | "head_url": "sign/sevenDay/signActivity", 1824 | "value": [ 1825 | { 1826 | "export": ["LZKJ_SEVENDAY"], 1827 | "re_url": "https://lzk.*?activityId=(\\w+)" 1828 | } 1829 | ] 1830 | }, 1831 | { 1832 | "alias": "超级无线店铺签到", 1833 | "name": "jd_sevenDay.js", 1834 | "head_url": "sign/signActivity2", 1835 | "value": [ 1836 | { 1837 | "export": ["LZKJ_SIGN"], 1838 | "re_url": "https://lzk.*?activityId=(\\w+)" 1839 | } 1840 | ] 1841 | }, 1842 | { 1843 | "alias": "超级无线店铺签到", 1844 | "name": "jd_sevenDay.js", 1845 | "head_url": "sign/sevenDay/signActivity", 1846 | "value": [ 1847 | { 1848 | "export": ["CJHY_SEVENDAY"], 1849 | "re_url": "https://cjhy.*?activityId=(\\w+)" 1850 | } 1851 | ] 1852 | }, 1853 | { 1854 | "alias": "超级无线店铺签到", 1855 | "name": "jd_sevenDay.js", 1856 | "head_url": "sign/signActivity", 1857 | "value": [ 1858 | { 1859 | "export": ["CJHY_SIGN"], 1860 | "re_url": "https://cjhy.*?activityId=(\\w+)" 1861 | } 1862 | ] 1863 | }, 1864 | { 1865 | "alias": "gzsl-幸运抽奖", 1866 | "name": "jd_gzsl_lottery.js", 1867 | "head_url": "wuxian/mobileForApp", 1868 | "value": [ 1869 | { 1870 | "export": ["jd_gzsl_lottery_url"], 1871 | "re_url": "(.+)" 1872 | } 1873 | ] 1874 | }, 1875 | { 1876 | "alias": "惊喜开盲盒(京耕)", 1877 | "name": "jd_jinggeng_blindBox.js", 1878 | "head_url": "ql/front/loadBlindBox", 1879 | "value": [ 1880 | { 1881 | "export": ["jd_jinggeng_blindBox_url"], 1882 | "re_url": "(.+)" 1883 | } 1884 | ] 1885 | }, 1886 | { 1887 | "alias": "加购有礼(京耕)", 1888 | "name": "jd_jinggeng_cart.js", 1889 | "head_url": "ql/front/showCart", 1890 | "value": [ 1891 | { 1892 | "export": ["jd_jinggeng_cart_url"], 1893 | "re_url": "(.+)" 1894 | } 1895 | ] 1896 | }, 1897 | { 1898 | "alias": "积分抽奖(京耕)", 1899 | "name": "jd_jinggeng_drawOne.js", 1900 | "head_url": "ql/front/showDrawOne", 1901 | "value": [ 1902 | { 1903 | "export": ["jd_jinggeng_drawOne_url"], 1904 | "re_url": "(.+)" 1905 | } 1906 | ] 1907 | }, 1908 | { 1909 | "alias": "关注店铺有礼(京耕)", 1910 | "name": "jd_jinggeng_favoriteShop.js", 1911 | "head_url": "ql/front/showFavoriteShop", 1912 | "value": [ 1913 | { 1914 | "export": ["jd_jinggeng_favoriteShop_url"], 1915 | "re_url": "(.+)" 1916 | } 1917 | ] 1918 | }, 1919 | { 1920 | "alias": "完善有礼(京耕)", 1921 | "name": "jd_jinggeng_perfectInformation.js", 1922 | "head_url": "ql/front/showPerfectInformation", 1923 | "value": [ 1924 | { 1925 | "export": ["jd_jinggeng_perfectInformation_url"], 1926 | "re_url": "(.+)" 1927 | } 1928 | ] 1929 | }, 1930 | { 1931 | "alias": "签到有礼(京耕)", 1932 | "name": "jd_jinggeng_sign.js", 1933 | "head_url": "ql/front/showSign", 1934 | "value": [ 1935 | { 1936 | "export": ["jd_jinggeng_sign_url"], 1937 | "re_url": "(.+)" 1938 | } 1939 | ] 1940 | }, 1941 | { 1942 | "alias": "幸运抽奖(京耕)", 1943 | "name": "jd_jinggeng_taskDraw.js", 1944 | "head_url": "ql/front/showTaskDraw", 1945 | "value": [ 1946 | { 1947 | "export": ["jd_jinggeng_taskDraw_url"], 1948 | "re_url": "(.+)" 1949 | } 1950 | ] 1951 | }, 1952 | { 1953 | "alias": "加购有礼(超级无线)", 1954 | "name": "jd_lzkj_loreal_cart.js", 1955 | "head_url": "prod/cc/interactsaas", 1956 | "value": [ 1957 | { 1958 | "export": ["jd_lzkj_loreal_cart_url"], 1959 | "re_url": "(.*.*activityType=10024.*)" 1960 | } 1961 | ] 1962 | }, 1963 | { 1964 | "alias": "每日抢好礼(超级无线)", 1965 | "name": "jd_lzkj_loreal_dailyGrabs.js", 1966 | "head_url": "prod/cc/interactsaas", 1967 | "value": [ 1968 | { 1969 | "export": ["jd_lzkj_loreal_dailyGrabs_url"], 1970 | "re_url": "(.*activityType=10022.*)" 1971 | } 1972 | ] 1973 | }, 1974 | { 1975 | "alias": "签到有礼(超级无线)", 1976 | "name": "jd_lzkj_loreal_daySign.js", 1977 | "head_url": "prod/cc/interactsaas", 1978 | "value": [ 1979 | { 1980 | "export": ["jd_lzkj_loreal_daySign_url"], 1981 | "re_url": "(.*activityType=(?:10023|10040).*)" 1982 | } 1983 | ] 1984 | }, 1985 | { 1986 | "alias": "幸运抽奖(超级无线)", 1987 | "name": "jd_lzkj_loreal_draw.js", 1988 | "head_url": "prod/cc/interactsaas", 1989 | "value": [ 1990 | { 1991 | "export": ["jd_lzkj_draw_url"], 1992 | "re_url": "(https://.*?activityType=(?:10001|10004|10020|10021|10026|10031|10041|10042|10046|10054|10062|10063|10073|10080).*)" 1993 | }, 1994 | { 1995 | "export": ["jd_lzkj_loreal_draw_url"], 1996 | "re_url": "(https://.*?activityType=(?:10001|10004|10020|10021|10026|10031|10041|10042|10046|10054|10062|10063|10073|10080).*)" 1997 | } 1998 | ] 1999 | }, 2000 | { 2001 | "alias": "关注商品有礼(超级无线)", 2002 | "name": "jd_lzkj_loreal_followGoods.js", 2003 | "head_url": "prod/cc/interactsaas", 2004 | "value": [ 2005 | { 2006 | "export": ["jd_lzkj_loreal_followGoods_url"], 2007 | "re_url": "(https://.*?activityType=10053.*)" 2008 | } 2009 | ] 2010 | }, 2011 | { 2012 | "alias": "邀请好友入会(超级无线)", 2013 | "name": "jd_lzkj_loreal_invite.js", 2014 | "head_url": "prod/cc/interactsaas", 2015 | "value": [ 2016 | { 2017 | "export": ["jd_lzkj_loreal_followGoods_url"], 2018 | "re_url": "(https://.*?activityType=(?:10070|10006).*)" 2019 | } 2020 | ] 2021 | }, 2022 | { 2023 | "alias": "邀请关注店铺有礼(超级无线)", 2024 | "name": "jd_lzkj_loreal_inviteFollowShop.js", 2025 | "head_url": "prod/cc/interactsaas", 2026 | "value": [ 2027 | { 2028 | "export": ["jd_lzkj_loreal_inviteFollowShop_url"], 2029 | "re_url": "(https://.*?activityType=10068.*)" 2030 | } 2031 | ] 2032 | }, 2033 | { 2034 | "alias": "知识超人(超级无线)", 2035 | "name": "jd_lzkj_loreal_know.js", 2036 | "head_url": "prod/cc/interactsaas", 2037 | "value": [ 2038 | { 2039 | "export": ["jd_lzkj_loreal_know_url"], 2040 | "re_url": "(https://.*?activityType=10039.*)" 2041 | } 2042 | ] 2043 | }, 2044 | { 2045 | "alias": "关注店铺有礼(超级无线)", 2046 | "name": "jd_lzkj_loreal_lkFollowShop.js", 2047 | "head_url": "prod/cc/interactsaas", 2048 | "value": [ 2049 | { 2050 | "export": ["jd_lzkj_loreal_lkFollowShop_url"], 2051 | "re_url": "(https://.*?activityType=10069.*)" 2052 | } 2053 | ] 2054 | }, 2055 | { 2056 | "alias": "组队瓜分奖品(超级无线)", 2057 | "name": "jd_lzkj_loreal_organizeTeam.js", 2058 | "head_url": "prod/cc/interactsaas", 2059 | "value": [ 2060 | { 2061 | "export": ["jd_lzkj_loreal_organizeTeam_url"], 2062 | "re_url": "(https://.*?activityType=10033.*)" 2063 | } 2064 | ] 2065 | }, 2066 | { 2067 | "alias": "完善有礼(超级无线)", 2068 | "name": "jd_lzkj_loreal_perfectInfo.js", 2069 | "head_url": "prod/cc/interactsaas", 2070 | "value": [ 2071 | { 2072 | "export": ["jd_lzkj_loreal_perfectInfo_url"], 2073 | "re_url": "(https://.*?activityType=10049.*)" 2074 | } 2075 | ] 2076 | }, 2077 | { 2078 | "alias": "分享有礼(超级无线)", 2079 | "name": "jd_lzkj_loreal_share.js", 2080 | "head_url": "prod/cc/interactsaas", 2081 | "value": [ 2082 | { 2083 | "export": ["jd_lzkj_loreal_share_url"], 2084 | "re_url": "(https://.*?activityType=10043.*)" 2085 | } 2086 | ] 2087 | }, 2088 | { 2089 | "alias": "积分兑换(超级无线)", 2090 | "name": "jd_lzkj_loreal_pointsExchange.js", 2091 | "head_url": "prod/cc/interactsaas", 2092 | "value": [ 2093 | { 2094 | "export": ["jd_lzkj_loreal_pointsExchange_url"], 2095 | "re_url": "(https://.*?activityType=10079.*)" 2096 | } 2097 | ] 2098 | }, 2099 | { 2100 | "alias": "店铺礼包(超级无线)", 2101 | "name": "jd_lzkj_loreal_shopGift.js", 2102 | "head_url": "prod/cc/interactsaas", 2103 | "value": [ 2104 | { 2105 | "export": ["jd_lzkj_loreal_shopGift_url"], 2106 | "re_url": "(https://.*?activityType=10058.*)" 2107 | } 2108 | ] 2109 | }, 2110 | { 2111 | "alias": "积分兑换E卡(超级会员)", 2112 | "name": "jd_pointExgECard.js", 2113 | "head_url": "mc/wxPointShopView/pointExgECard", 2114 | "value": [ 2115 | { 2116 | "export": ["jd_pointExgECard_activityUrl"], 2117 | "re_url": "(.+)" 2118 | } 2119 | ] 2120 | }, 2121 | { 2122 | "alias": "批量店铺积分签到(超级无线/超级会员)", 2123 | "name": "jd_wxSignPoint.js", 2124 | "head_url": "sign/signActivity2", 2125 | "value": [ 2126 | { 2127 | "export": ["jd_wxSignPoint_sign_lzkj_Ids"], 2128 | "re_url": "(https://lzkj.*?/sign/signActivity2?activityId=(\\w+))" 2129 | } 2130 | ] 2131 | }, 2132 | { 2133 | "alias": "批量店铺积分签到(超级无线/超级会员)", 2134 | "name": "jd_wxSignPoint.js", 2135 | "head_url": "sign/sevenDay/signActivity", 2136 | "value": [ 2137 | { 2138 | "export": ["jd_wxSignPoint_sign_lzkj_Ids"], 2139 | "re_url": "(https://lzkj.*?/sign/sevenDay/signActivity?activityId=(\\w+))" 2140 | } 2141 | ] 2142 | }, 2143 | { 2144 | "alias": "批量店铺积分签到(超级无线/超级会员)", 2145 | "name": "jd_wxSignPoint.js", 2146 | "head_url": "sign/signActivity", 2147 | "value": [ 2148 | { 2149 | "export": ["jd_wxSignPoint_sign_cjhy_Ids"], 2150 | "re_url": "(https://cjhy.*?/sign/signActivity?activityId=(\\w+))" 2151 | } 2152 | ] 2153 | }, 2154 | { 2155 | "alias": "批量店铺积分签到(超级无线/超级会员)", 2156 | "name": "jd_wxSignPoint.js", 2157 | "head_url": "sevenDay/signActivity", 2158 | "value": [ 2159 | { 2160 | "export": ["jd_wxSignPoint_sevenDay_cjhy_Ids"], 2161 | "re_url": "(https://cjhy.*?/sevenDay/signActivity?activityId=(\\w+))" 2162 | } 2163 | ] 2164 | }, 2165 | { 2166 | "alias": "完善信息有礼(超级会员)", 2167 | "name": "jd_wx_completeInfoActivity.js", 2168 | "head_url": "wx/completeInfoActivity", 2169 | "value": [ 2170 | { 2171 | "export": ["jd_wx_completeInfoActivity_activityUrl"], 2172 | "re_url": "(.+)" 2173 | } 2174 | ] 2175 | }, 2176 | { 2177 | "alias": "每日抢好礼(超级无线/超级会员)", 2178 | "name": "jd_wx_daily.js", 2179 | "head_url": "activity/daily/wx/indexPage", 2180 | "value": [ 2181 | { 2182 | "export": ["jd_wx_daily_url"], 2183 | "re_url": "(.+)" 2184 | } 2185 | ] 2186 | }, 2187 | { 2188 | "alias": "店铺抽奖(超级无线/超级会员)", 2189 | "name": "jd_wx_draw.js", 2190 | "head_url": "lzclient", 2191 | "value": [ 2192 | { 2193 | "export": ["jd_wx_draw_url"], 2194 | "re_url": "(.+)" 2195 | } 2196 | ] 2197 | }, 2198 | { 2199 | "alias": "店铺抽奖(超级无线/超级会员)", 2200 | "name": "jd_wx_draw.js", 2201 | "head_url": "wxDrawActivity/activity", 2202 | "value": [ 2203 | { 2204 | "export": ["jd_wx_draw_url"], 2205 | "re_url": "(.+)" 2206 | } 2207 | ] 2208 | }, 2209 | { 2210 | "alias": "店铺抽奖中心(超级无线)", 2211 | "name": "jd_wx_drawCenter.js", 2212 | "head_url": "drawCenter/activity", 2213 | "value": [ 2214 | { 2215 | "export": ["jd_wx_drawCenter_activityId"], 2216 | "re_url": "activityId=(\\w+)" 2217 | } 2218 | ] 2219 | }, 2220 | { 2221 | "alias": "店铺签到监控(超级无线/超级会员)", 2222 | "name": "jd_wx_shopSign.js", 2223 | "head_url": "sign/sevenDay/signActivity", 2224 | "value": [ 2225 | { 2226 | "export": ["jd_wx_shopSign_activityUrl"], 2227 | "re_url": "(.+)" 2228 | } 2229 | ] 2230 | }, 2231 | { 2232 | "alias": "店铺签到监控(超级无线/超级会员)", 2233 | "name": "jd_wx_shopSign.js", 2234 | "head_url": "sign/signActivity2", 2235 | "value": [ 2236 | { 2237 | "export": ["jd_wx_shopSign_activityUrl"], 2238 | "re_url": "(.+)" 2239 | } 2240 | ] 2241 | }, 2242 | { 2243 | "alias": "店铺签到监控(超级无线/超级会员)", 2244 | "name": "jd_wx_shopSign.js", 2245 | "head_url": "sign/sevenDay/signActivity", 2246 | "value": [ 2247 | { 2248 | "export": ["jd_wx_shopSign_activityUrl"], 2249 | "re_url": "(.+)" 2250 | } 2251 | ] 2252 | }, 2253 | { 2254 | "alias": "店铺签到监控(超级无线/超级会员)", 2255 | "name": "jd_wx_shopSign.js", 2256 | "head_url": "sign/signActivity", 2257 | "value": [ 2258 | { 2259 | "export": ["jd_wx_shopSign_activityUrl"], 2260 | "re_url": "(.+)" 2261 | } 2262 | ] 2263 | }, 2264 | { 2265 | "alias": "店铺签到监控(超级无线/超级会员)", 2266 | "name": "jd_wx_shopSign.js", 2267 | "head_url": "prod/cc/cjwx/sign/signActivity2", 2268 | "value": [ 2269 | { 2270 | "export": ["jd_wx_shopSign_activityUrl"], 2271 | "re_url": "(.+)" 2272 | } 2273 | ] 2274 | }, 2275 | { 2276 | "alias": "超级无线店铺签到(积分)", 2277 | "name": "jd_wxsign_jf.js", 2278 | "head_url": "sign/sevenDay/signActivity", 2279 | "value": [ 2280 | { 2281 | "export": ["LZKJ_SEVENDAY_JF"], 2282 | "re_url": "(https://lzkj.*?activityId=(\\w+))", 2283 | "cutting": "," 2284 | } 2285 | ] 2286 | }, 2287 | { 2288 | "alias": "超级无线店铺签到(积分)", 2289 | "name": "jd_wxsign_jf.js", 2290 | "head_url": "sign/signActivity2", 2291 | "value": [ 2292 | { 2293 | "export": ["LZKJ_SIGN_JF"], 2294 | "re_url": "(https://lzkj.*?activityId=(\\w+))", 2295 | "cutting": "," 2296 | } 2297 | ] 2298 | }, 2299 | { 2300 | "alias": "超级无线店铺签到(积分)", 2301 | "name": "jd_wxsign_jf.js", 2302 | "head_url": "sign/sevenDay/signActivity", 2303 | "value": [ 2304 | { 2305 | "export": ["CJHY_SEVENDAY_JF"], 2306 | "re_url": "(https://cjhy.*?activityId=(\\w+))", 2307 | "cutting": "," 2308 | } 2309 | ] 2310 | }, 2311 | { 2312 | "alias": "超级无线店铺签到(积分)", 2313 | "name": "jd_wxsign_jf.js", 2314 | "head_url": "sign/signActivity", 2315 | "value": [ 2316 | { 2317 | "export": ["CJHY_SIGN_JF"], 2318 | "re_url": "(https://cjhy.*?activityId=(\\w+))", 2319 | "cutting": "," 2320 | } 2321 | ] 2322 | }, 2323 | { 2324 | "alias": "粉丝福利红包", 2325 | "name": "jd_fansDraw.js", 2326 | "head_url": "fansactiveall", 2327 | "value": [ 2328 | { 2329 | "export": ["jd_fansDraw_activityUrl"], 2330 | "re_url": "(.+)" 2331 | } 2332 | ] 2333 | } 2334 | ], 2335 | "activitiesStr": [ 2336 | { 2337 | "alias": "强制入会", 2338 | "name": "jd_drawShopGift.js", 2339 | "head_url": "com/shopcard", 2340 | "value": [ 2341 | { 2342 | "export": ["jd_opencard_force_venderId"], 2343 | "re_url": "venderId=(\\w+)" 2344 | } 2345 | ] 2346 | }, 2347 | { 2348 | "alias": "店铺关注有礼", 2349 | "name": "jd_drawShopGift.js", 2350 | "value": [ 2351 | { 2352 | "export": ["jd_drawShopGift_argv"] 2353 | } 2354 | ] 2355 | }, 2356 | { 2357 | "alias": "PRO抽奖机抽奖", 2358 | "name": "jd_pro_lottery.js", 2359 | "head_url": "", 2360 | "value": [ 2361 | { 2362 | "export": ["jd_pro_lottery_id"], 2363 | "re_url": "" 2364 | } 2365 | ] 2366 | }, 2367 | { 2368 | "alias": "PRO抽奖机任务", 2369 | "name": "jd_pro_lottery_task.js", 2370 | "head_url": "", 2371 | "value": [ 2372 | { 2373 | "export": ["jd_pro_lottery_task_id"], 2374 | "re_url": "" 2375 | } 2376 | ] 2377 | }, 2378 | { 2379 | "alias": "微信红包团", 2380 | "name": "jd_wechat_openGroup.js", 2381 | "head_url": "", 2382 | "value": [ 2383 | { 2384 | "export": ["jd_wechat_openGroup_id"], 2385 | "re_url": "" 2386 | } 2387 | ] 2388 | }, 2389 | { 2390 | "alias": "直播抽奖", 2391 | "name": "jd_live_lottery.js", 2392 | "head_url": "", 2393 | "value": [ 2394 | { 2395 | "export": ["jd_live_ids"], 2396 | "re_url": "", 2397 | "cutting": "&" 2398 | } 2399 | ] 2400 | }, 2401 | { 2402 | "alias": "超店通用", 2403 | "name": "jd_opencard_shopLeague.js", 2404 | "head_url": "", 2405 | "value": [ 2406 | { 2407 | "export": ["jd_lzdz1_shopLeague_Id"], 2408 | "re_url": "" 2409 | } 2410 | ] 2411 | }, 2412 | { 2413 | "alias": "大牌联合浏览通用", 2414 | "name": "jd_opencard_viewshop.js", 2415 | "head_url": "", 2416 | "value": [ 2417 | { 2418 | "export": ["DPLHTY_VIEWSHOP_ID"], 2419 | "re_url": "", 2420 | "cutting": "&" 2421 | } 2422 | ] 2423 | }, 2424 | { 2425 | "alias": "店铺礼包", 2426 | "name": "jd_shopGifts.js", 2427 | "head_url": "", 2428 | "value": [ 2429 | { 2430 | "export": ["jd_shopGifts_ids"], 2431 | "re_url": "", 2432 | "cutting": "&" 2433 | } 2434 | ] 2435 | }, 2436 | { 2437 | "alias": "大牌联合浏览豆专用", 2438 | "name": "jd_dplh_viewShop.js", 2439 | "head_url": "", 2440 | "value": [ 2441 | { 2442 | "export": ["jd_dplh_viewShop_ids"], 2443 | "re_url": "", 2444 | "cutting": "@" 2445 | } 2446 | ] 2447 | }, 2448 | { 2449 | "alias": "关注有礼-JK", 2450 | "name": "jd_shopFollowGift.py", 2451 | "head_url": "", 2452 | "value": [ 2453 | { 2454 | "export": ["jd_shopFollowGiftId"], 2455 | "re_url": "", 2456 | "cutting": "&" 2457 | } 2458 | ] 2459 | } 2460 | ] 2461 | } --------------------------------------------------------------------------------