├── 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 | [](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 | }
--------------------------------------------------------------------------------