├── label.txt ├── decode ├── decoded_gzib_content.txt ├── base64_decrypt.py ├── decodedBz2.py ├── decodedLzma.py ├── decodedGzip.py ├── 品赞代理签到.py └── decodedZlib.py ├── 胖乖 └── 胖乖生活日志清理.py ├── .gitignore ├── 使用教程.md ├── 微信阅读 ├── 恰恰续期.py └── kl_阅读.py ├── 代理签到白名单 └── 携趣ip白名单.py ├── 电信 ├── 瑞数通杀.js ├── ruishucookie.py └── Ruishu.py ├── 现金毛 ├── 宝藏森林.js └── 羌医代码版本.py ├── README.md ├── 签到本 ├── 天翼云盘签到.js ├── 王老吉签到1.0.py ├── 赚榜.py └── 天翼云盘.py ├── 其他 ├── 果派.py ├── 东方财富2.py ├── 伊利甄选.py ├── 聚赏圈(1).py ├── 骗子小丽.py └── 江淮卡友.py ├── util └── IP代理自动加白名单.py ├── 微信小程序 ├── 雀巢.js └── 金典有机生活.py ├── 聚换 ├── 聚换_2.0.py └── 免责声明.md ├── 快手极速版200 ├── pdd砍手付费 │ └── 慢脚双端-Max.py ├── Lindong付费 │ └── 喜番_ENC.py └── 免费 │ └── ksjsbmax.js └── 扫瓶盖 ├── 体质瓶盖.py └── RIO强爽自动扫码抽奖评价.java /label.txt: -------------------------------------------------------------------------------- 1 | 欢迎关注公众号【极客快乐营】 2 | 公众号二维码: 3 | https://free-img.400040.xyz/4/2025/06/30/686174d049215.png 4 | -------------------------------------------------------------------------------- /decode/decoded_gzib_content.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KingJin-web/zy/HEAD/decode/decoded_gzib_content.txt -------------------------------------------------------------------------------- /胖乖/胖乖生活日志清理.py: -------------------------------------------------------------------------------- 1 | # 如果出现每日积分为2,或者运行脚本自动跳过任务,运行该脚本之后再运行主脚本即可 2 | # cron = 01 00 * * * # 每天凌晨0点区分开始执行任务 3 | 4 | import os 5 | import time 6 | 7 | # 设定要删除的脚本路径和名称 8 | script_path = 'pgsh.json' 9 | 10 | # 检查文件是否存在 11 | if os.path.exists(script_path): 12 | os.remove(script_path) 13 | print(f"脚本 {script_path} 已删除。") 14 | else: 15 | print(f"脚本 {script_path} 不存在。") -------------------------------------------------------------------------------- /decode/base64_decrypt.py: -------------------------------------------------------------------------------- 1 | import base64 2 | 3 | def decrypt(encoded_code): 4 | return base64.b64decode(encoded_code).decode('utf-8') 5 | 6 | # 替换为实际的Base64编码字符串 7 | encoded_code = "" 8 | 9 | decrypted_code = decrypt(encoded_code) 10 | 11 | 12 | print("解密后的代码:") 13 | print(decrypted_code) 14 | 15 | # 保存到文件以便查看 16 | with open('decoded_source.py', 'w', encoding='utf-8') as f: 17 | f.write(decrypted_code) 18 | print("\n源代码已保存到 decoded_source.py") 19 | # 如果需要执行解密后的代码(谨慎操作) 20 | # exec(decrypted_code) -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | push.sh 7 | /encryptor/ 8 | /a_test/ 9 | test/ 10 | 本地运行/ 11 | 源码/ 12 | ### STS ### 13 | .apt_generated 14 | .classpath 15 | .factorypath 16 | .project 17 | .settings 18 | .springBeans 19 | .sts4-cache 20 | 21 | ### IntelliJ IDEA ### 22 | .idea 23 | *.iws 24 | *.iml 25 | *.ipr 26 | 27 | ### NetBeans ### 28 | /nbproject/private/ 29 | /nbbuild/ 30 | /dist/ 31 | /nbdist/ 32 | /.nb-gradle/ 33 | build/ 34 | !**/src/main/**/build/ 35 | !**/src/test/**/build/ 36 | 37 | ### VS Code ### 38 | .vscode/ 39 | -------------------------------------------------------------------------------- /decode/decodedBz2.py: -------------------------------------------------------------------------------- 1 | import bz2 2 | import base64 3 | 4 | # 提取并解码base64部分 5 | encoded_data = "" 6 | # 解密 7 | # 解密 bz2.decompress(base64.b64decode("xxx"))) 8 | try: 9 | # 解码base64 10 | decoded_data = base64.b64decode(encoded_data) 11 | 12 | # 解压缩bz2 13 | decompressed_data = bz2.decompress(decoded_data) 14 | 15 | # 转换为字符串并打印 16 | source_code = decompressed_data.decode('utf-8') 17 | print("解密后的源代码:") 18 | print(source_code) 19 | 20 | # 保存到文件以便查看 21 | with open('decoded_source.py', 'w', encoding='utf-8') as f: 22 | f.write(source_code) 23 | print("\n源代码已保存到 decoded_source.py") 24 | 25 | except Exception as e: 26 | print(f"解密过程中出错: {e}") 27 | # 28 | # import bz2, base64, zlib, lzma 29 | # 30 | # exec(bz2.decompress(base64.b64decode( 31 | # ))) 32 | # -------------------------------------------------------------------------------- /decode/decodedLzma.py: -------------------------------------------------------------------------------- 1 | import base64 2 | import lzma 3 | 4 | # 将这里的 "xxx" 替换为实际的 base64 编码字符串 5 | encoded_data = "" 6 | # 解密 lzma.decompress(base64.b64decode("xxx"))) 7 | try: 8 | # 解码 base64 9 | decoded_bytes = base64.b64decode(encoded_data) 10 | 11 | # 解压缩 lzma 12 | decompressed_data = lzma.decompress(decoded_bytes) 13 | 14 | # 尝试以 UTF-8 编码转换为字符串 15 | try: 16 | decoded_text = decompressed_data.decode('utf-8') 17 | print("解密后的内容 (UTF-8):") 18 | print(decoded_text) 19 | except UnicodeDecodeError: 20 | # 尝试以 GBK 编码转换为字符串 21 | try: 22 | decoded_text = decompressed_data.decode('gbk') 23 | print("解密后的内容 (GBK):") 24 | print(decoded_text) 25 | except UnicodeDecodeError: 26 | print("无法以常见编码方式解码为文本,显示原始字节数据:") 27 | print(decompressed_data) 28 | 29 | # 保存解密后的内容到文件 30 | with open('decoded_lzma_content.txt', 'wb') as f: 31 | f.write(decompressed_data) 32 | print("\n解密内容已保存到 decoded_lzma_content.txt") 33 | 34 | except Exception as e: 35 | print(f"解密过程中发生错误: {e}") -------------------------------------------------------------------------------- /decode/decodedGzip.py: -------------------------------------------------------------------------------- 1 | import base64 2 | import gzip 3 | 4 | # 将这里的 "xxx" 替换为实际的 base64 编码字符串 5 | encoded_data = "" 6 | 7 | 8 | # 解密 lzma.decompress(base64.b64decode("xxx"))) 9 | try: 10 | # 解码 base64 11 | decoded_bytes = base64.b64decode(encoded_data) 12 | 13 | # 解压缩 lzma 14 | decompressed_data = gzip.decompress(decoded_bytes) 15 | 16 | # 尝试以 UTF-8 编码转换为字符串 17 | try: 18 | decoded_text = decompressed_data.decode('utf-8') 19 | print("解密后的内容 (UTF-8):") 20 | print(decoded_text) 21 | except UnicodeDecodeError: 22 | # 尝试以 GBK 编码转换为字符串 23 | try: 24 | decoded_text = decompressed_data.decode('gbk') 25 | print("解密后的内容 (GBK):") 26 | print(decoded_text) 27 | except UnicodeDecodeError: 28 | print("无法以常见编码方式解码为文本,显示原始字节数据:") 29 | print(decompressed_data) 30 | 31 | # 保存解密后的内容到文件 32 | with open('decoded_gzib_content.txt', 'wb') as f: 33 | f.write(decompressed_data) 34 | print("\n解密内容已保存到 decoded_gzib_content.txt") 35 | 36 | except Exception as e: 37 | print(f"解密过程中发生错误: {e}") -------------------------------------------------------------------------------- /使用教程.md: -------------------------------------------------------------------------------- 1 | ## 自用收集感谢打赏 2 | 3 | ![image-20250225134115409](https://img.hnking.cn//blog/202502251341542.png) 4 | 5 | 6 | 7 | # 订阅 8 | 订阅管理 --> 新建订阅 9 | ![image-20250309140727600](https://img.hnking.cn//blog/202503091407750.png) 10 | 11 | # 拉库 12 | ![image-20250309140949912](https://img.hnking.cn//blog/202503091409073.png) 13 | 14 | ## py 依赖 15 | ``` 16 | pycryptodome 17 | pytz 18 | typescript 19 | httpx 20 | success 21 | --upgrade pip 22 | pip 23 | redis 24 | jieba 25 | canvas 26 | requests 27 | ping3 28 | PyExecJS 29 | 30 | ``` 31 | ## node 依赖 32 | 33 | ``` 34 | ds 35 | json5 36 | js-base64 37 | require 38 | tough-cookie 39 | jsdom 40 | global-agent 41 | @types/node 42 | typescript 43 | dotenv 44 | jsdom -g 45 | form-data 46 | png-js 47 | ts-md5 48 | tslib 49 | jieba 50 | ws@7.4.3 51 | axios 52 | date-fns 53 | moment 54 | prettytable 55 | fs 56 | crypto-js 57 | ts-node 58 | depend 59 | ds 60 | jsdom 61 | requests 62 | npm 63 | node-jsencrypt 64 | -g npm 65 | cjs 66 | upgrade pip 67 | common 68 | qs 69 | ql 70 | crypto -g 71 | -g typescipt 72 | https 73 | proxy 74 | agent 75 | 76 | ``` 77 | -------------------------------------------------------------------------------- /微信阅读/恰恰续期.py: -------------------------------------------------------------------------------- 1 | import time, json, random, requests, os 2 | 3 | def getHomeInfo(): 4 | """获取首页信息""" 5 | url = 'https://read.tslu.cn/abaaba/getHomeInfo/' 6 | headers = { 7 | 'Host': 'read.tslu.cn', 8 | 'Connection': 'keep-alive', 9 | 'Accept': 'application/json, text/javascript, */*; q=0.01', 10 | 'User-Agent': UA_USER_AGENT, 11 | 'Origin': 'http://we.e9l.cn', 12 | 'Sec-Fetch-Site': 'cross-site', 13 | 'Sec-Fetch-Mode': 'cors', 14 | 'Sec-Fetch-Dest': 'empty', 15 | 'Referer': 'http://we.e9l.cn/', 16 | 'Accept-Encoding': 'gzip, deflate, br', 17 | 'Accept-Language': 'zh-CN,zh;q=0.9', 18 | } 19 | params = {'token': TOKEN} 20 | 21 | try: 22 | response = requests.get(url, headers=headers, params=params).json() 23 | if response.get('code') == 0: 24 | home_data = response.get('data', {}) 25 | print( 26 | f"首页信息 - 用户ID: {home_data.get('id', '未知')} | 累计阅读: {home_data.get('dayreads', 0)}天 | 金币: {home_data.get('gold', 0)}") 27 | return home_data 28 | else: 29 | print(f"首页信息获取失败: {response.get('msg', '未知错误')}") 30 | except Exception as e: 31 | print(f"首页信息请求异常: {str(e)}") 32 | return None 33 | 34 | 35 | UA_USER_AGENT = os.getenv("qqyd_ua") 36 | QQ_TOKEN = os.getenv('QQ_TOKEN') 37 | TOKENS = QQ_TOKEN.split('#') 38 | for TOKEN in TOKENS: 39 | getHomeInfo() -------------------------------------------------------------------------------- /代理签到白名单/携趣ip白名单.py: -------------------------------------------------------------------------------- 1 | # cron: 10 */2 * * * 2 | # new Env('携趣IP白名单'); 3 | import os 4 | 5 | # 长期套餐大额流量电话卡办理地址:https://img.hnking.cn//blog/202504141427660.png 6 | ## 携趣代理地址 https://www.xiequ.cn/index.html?d630539f 7 | 8 | # 携趣环境变量 export XIEQU='UID=xxx;UKEY=xxx' 9 | 10 | 11 | import requests 12 | import hashlib 13 | import urllib.parse 14 | 15 | 16 | 17 | 18 | # def get_current_ip(): 19 | # response = requests.get('https://myip.ipip.net/json') 20 | # data = response.json() 21 | # return data['data']['ip'] 22 | def get_current_ip(): 23 | """获取当前 IP 地址""" 24 | try: 25 | response = requests.get('https://httpbin.org/ip') 26 | response.raise_for_status() 27 | res = response.json().get('origin') 28 | return res 29 | except requests.exceptions.RequestException as e: 30 | print(f"Failed to fetch the current IP: {e}") 31 | return get_current_ip2() 32 | 33 | 34 | # https://ip.3322.net 35 | 36 | def get_current_ip2(): 37 | api_url = f"https://ip.3322.net" 38 | try: 39 | response = requests.get(api_url) 40 | response.raise_for_status() 41 | return response.text 42 | except requests.exceptions.RequestException as e: 43 | print(f"Failed to fetch information for IP: {e}") 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | def update_xiequ_white_list(ip, XIEQU_UID, XIEQU_UKEY): 53 | if XIEQU_UID and XIEQU_UKEY: 54 | url = f'http://op.xiequ.cn/IpWhiteList.aspx?uid={XIEQU_UID}&ukey={XIEQU_UKEY}&act=get' 55 | response = requests.get(url) 56 | data = response.text 57 | print(data) 58 | arr = data.split(',') 59 | print(arr) 60 | if ip in arr: 61 | return '携趣白名单ip未变化' 62 | if ip not in arr: 63 | requests.get(f'http://op.xiequ.cn/IpWhiteList.aspx?uid={XIEQU_UID}&ukey={XIEQU_UKEY}&act=del&ip=all') 64 | response = requests.get( 65 | f'http://op.xiequ.cn/IpWhiteList.aspx?uid={XIEQU_UID}&ukey={XIEQU_UKEY}&act=add&ip={ip}') 66 | return '更新xiequ白名单成功' if response.status_code == 200 else '更新xiequ白名单出错' 67 | else: 68 | return '携趣白名单ip未变化' 69 | 70 | 71 | def main(): 72 | ip = get_current_ip() 73 | 74 | 75 | print('当前ip地址:', ip) 76 | print(''' 77 | ## 携趣代理地址 https://www.xiequ.cn/index.html?d630539f 78 | # 携趣环境变量 export XIEQU='UID=xxx;UKEY=xxx' 79 | 80 | ''') 81 | # 从青龙面板 获取变量 82 | # export XIEQU='UID=xxx;UKEY=xxx' 83 | 84 | XIEQU_UID = '' # 填入携趣的 UID 85 | XIEQU_UKEY = '' # 填入携趣的 UKEY 86 | 87 | 88 | XIEQU = os.getenv('XIEQU') 89 | if XIEQU != None: 90 | XIEQU_UID = XIEQU.split(';')[0].split('=')[1] 91 | XIEQU_UKEY = XIEQU.split(';')[1].split('=')[1] 92 | 93 | 94 | print('更新当前IP:', ip) 95 | if XIEQU_UID != None and XIEQU_UKEY != None: 96 | print('更新携趣白名单结果:', update_xiequ_white_list(ip, XIEQU_UID, XIEQU_UKEY)) 97 | 98 | 99 | if __name__ == "__main__": 100 | main() 101 | -------------------------------------------------------------------------------- /电信/瑞数通杀.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | const $ = new Env("瑞数通杀"); 4 | 5 | */ 6 | delete __filename 7 | delete __dirname 8 | ActiveXObject = undefined 9 | 10 | window = global; 11 | 12 | 13 | content="content_code" 14 | 15 | 16 | navigator = {"platform": "Linux aarch64"} 17 | navigator = {"userAgent": "CtClient;11.0.0;Android;13;22081212C;NTIyMTcw!#!MTUzNzY"} 18 | 19 | location={ 20 | "href": "https://", 21 | "origin": "", 22 | "protocol": "", 23 | "host": "", 24 | "hostname": "", 25 | "port": "", 26 | "pathname": "", 27 | "search": "", 28 | "hash": "" 29 | } 30 | 31 | i = {length: 0} 32 | base = {length: 0} 33 | div = { 34 | getElementsByTagName: function (res) { 35 | console.log('div中的getElementsByTagName:', res) 36 | if (res === 'i') { 37 | return i 38 | } 39 | return '
' 40 | 41 | } 42 | } 43 | 44 | script = { 45 | 46 | } 47 | meta = [ 48 | {charset:"UTF-8"}, 49 | { 50 | content: content, 51 | getAttribute: function (res) { 52 | console.log('meta中的getAttribute:', res) 53 | if (res === 'r') { 54 | return 'm' 55 | } 56 | }, 57 | parentNode: { 58 | removeChild: function (res) { 59 | console.log('meta中的removeChild:', res) 60 | 61 | return content 62 | } 63 | }, 64 | 65 | } 66 | ] 67 | form = '
' 68 | 69 | 70 | window.addEventListener= function (res) { 71 | console.log('window中的addEventListener:', res) 72 | 73 | } 74 | 75 | 76 | document = { 77 | 78 | 79 | createElement: function (res) { 80 | console.log('document中的createElement:', res) 81 | 82 | 83 | if (res === 'div') { 84 | return div 85 | } else if (res === 'form') { 86 | return form 87 | } 88 | else{return res} 89 | 90 | 91 | 92 | 93 | }, 94 | addEventListener: function (res) { 95 | console.log('document中的addEventListener:', res) 96 | 97 | }, 98 | appendChild: function (res) { 99 | console.log('document中的appendChild:', res) 100 | return res 101 | }, 102 | removeChild: function (res) { 103 | console.log('document中的removeChild:', res) 104 | }, 105 | getElementsByTagName: function (res) { 106 | console.log('document中的getElementsByTagName:', res) 107 | if (res === 'script') { 108 | return script 109 | } 110 | if (res === 'meta') { 111 | return meta 112 | } 113 | if (res === 'base') { 114 | return base 115 | } 116 | }, 117 | getElementById: function (res) { 118 | console.log('document中的getElementById:', res) 119 | if (res === 'root-hammerhead-shadow-ui') { 120 | return null 121 | } 122 | } 123 | 124 | } 125 | 126 | setInterval = function () {} 127 | setTimeout = function () {} 128 | window.top = window 129 | 130 | 131 | 'ts_code' 132 | 133 | 134 | 135 | function main() { 136 | cookie = document.cookie.split(';')[0] 137 | return cookie 138 | } 139 | 140 | -------------------------------------------------------------------------------- /现金毛/宝藏森林.js: -------------------------------------------------------------------------------- 1 | var token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3ZWJtYW4ub3JhbmdlRmFuLmNuIiwiYXVkIjoid2VibWFuLm9yYW5nZUZhbi5jbiIsImlhdCI6MTc1MjY2MzMxOSwibmJmIjoxNzUyNjYzMzE5LCJleHAiOjE3NTI5MjI1MTksImV4dGVuZCI6eyJpZCI6MTA1MTgsImNsaWVudCI6Ik1PQklMRSIsImludml0ZV9jb2RlIjoiNTgwMjc5NSJ9fQ.MCOySWt1SsajNQXLfSqJioWohqgNvTTUfitJet8d74c" 2 | while (true) { 3 | var temp = http.postJson("https://app.hzp4687.com/app/fighting/attack", {}, { 4 | "headers": { 5 | "Accept-Encoding": "identity", 6 | "Content-Type": "application/json", 7 | "Authorization": "Bearer "+token,//eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3ZWJtYW4ub3JhbmdlRmFuLmNuIiwiYXVkIjoid2VibWFuLm9yYW5nZUZhbi5jbiIsImlhdCI6MTc1MjY2Mjg3NCwibmJmIjoxNzUyNjYyODc0LCJleHAiOjE3NTI5MjIwNzQsImV4dGVuZCI6eyJpZCI6MTA1MTgsImNsaWVudCI6Ik1PQklMRSIsImludml0ZV9jb2RlIjoiNTgwMjc5NSJ9fQ.re6oxabhegRMSOdGyGcKy8PWx0xJHYGPYwX2EXgE8jw", //"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3ZWJtYW4ub3JhbmdlRmFuLmNuIiwiYXVkIjoid2VibWFuLm9yYW5nZUZhbi5jbiIsImlhdCI6MTc1MjY2MjQ4NCwibmJmIjoxNzUyNjYyNDg0LCJleHAiOjE3NTI5MjE2ODQsImV4dGVuZCI6eyJpZCI6MTA1MTgsImNsaWVudCI6Ik1PQklMRSIsImludml0ZV9jb2RlIjoiNTgwMjc5NSJ9fQ.MwA1ty3JqI1McbiwUnZ0pLQ2wRMCcE2qY1NPvJo__XE", //"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3ZWJtYW4ub3JhbmdlRmFuLmNuIiwiYXVkIjoid2VibWFuLm9yYW5nZUZhbi5jbiIsImlhdCI6MTc1MjY2MTcyMSwibmJmIjoxNzUyNjYxNzIxLCJleHAiOjE3NTI5MjA5MjEsImV4dGVuZCI6eyJpZCI6MTA1MTgsImNsaWVudCI6Ik1PQklMRSIsImludml0ZV9jb2RlIjoiNTgwMjc5NSJ9fQ.VCc7DMDC68jafx0jxSDqexo1s1kaodXzWlMCkfjONyg", 8 | "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 12; PDYT20 Build/SP1A.210812.016)", 9 | "Host": "app.hzp4687.com", 10 | "Connection": "Keep-Alive", 11 | "Content-Length": "2" 12 | } 13 | }).body.json(); 14 | if (temp.code == 200) { 15 | log("打怪成功获得金币 >>> " + temp.data.reward_props[0].num + "|金币余额 >>> " + temp.data.after_props[0].num); 16 | } else { 17 | log("没体力了观看视频补充体力") 18 | var temp = http.postJson("https://app.hzp4687.com/app/player/recover_sta", {}, { 19 | "headers": { 20 | "Accept-Encoding": "identity", 21 | "Content-Type": "application/json", 22 | "Authorization":"Bearer "+token,//eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3ZWJtYW4ub3JhbmdlRmFuLmNuIiwiYXVkIjoid2VibWFuLm9yYW5nZUZhbi5jbiIsImlhdCI6MTc1MjY2Mjg3NCwibmJmIjoxNzUyNjYyODc0LCJleHAiOjE3NTI5MjIwNzQsImV4dGVuZCI6eyJpZCI6MTA1MTgsImNsaWVudCI6Ik1PQklMRSIsImludml0ZV9jb2RlIjoiNTgwMjc5NSJ9fQ.re6oxabhegRMSOdGyGcKy8PWx0xJHYGPYwX2EXgE8jw", //"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3ZWJtYW4ub3JhbmdlRmFuLmNuIiwiYXVkIjoid2VibWFuLm9yYW5nZUZhbi5jbiIsImlhdCI6MTc1MjY2MjQ4NCwibmJmIjoxNzUyNjYyNDg0LCJleHAiOjE3NTI5MjE2ODQsImV4dGVuZCI6eyJpZCI6MTA1MTgsImNsaWVudCI6Ik1PQklMRSIsImludml0ZV9jb2RlIjoiNTgwMjc5NSJ9fQ.MwA1ty3JqI1McbiwUnZ0pLQ2wRMCcE2qY1NPvJo__XE", 23 | "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 12; PDYT20 Build/SP1A.210812.016)", 24 | "Host": "app.hzp4687.com", 25 | "Connection": "Keep-Alive", 26 | "Content-Length": "2" 27 | } 28 | }).body.json(); 29 | if (temp.code == 200) { 30 | log("观看视频成功获得体力 >>> " + temp.data.sta); 31 | } else { 32 | log(temp.msg) 33 | break; 34 | } 35 | } 36 | sleep(1000) 37 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # 代理 3 | ### 光子 4 | 5 | 光子sk5代理100M,家宽代理 4.5一条 6 | [http://www.gzsk5.com/#/register?invitation=hnking2&shareid=516 ](http://www.gzsk5.com/#/register?invitation=hnking2&shareid=516 ) 7 | 8 | ### 极驰云 9 | [https://www.jichiy.com/views/login.html#?promotionCode=319256E847DF4C26986A63AC04155561](https://www.jichiy.com/views/login.html#?promotionCode=319256E847DF4C26986A63AC04155561) 10 | 11 | ### 天行 12 | 天行sk5代理 5一条 13 | [http://www.tianxingip.com/proxy/index/index/code/hnking/p/2847.html](http://www.tianxingip.com/proxy/index/index/code/hnking/p/2847.html) 14 | ### 谐趣 15 | 注册送10元免费使用长效独享代理一天 16 | [https://www.xiequ.cn/index.html?d630539f](https://www.xiequ.cn/index.html?d630539f) 17 | 18 | 19 | # 服务器大促 20 | 21 | 云服务器其实不管是新用户,还是老用户,其实都有比较大的优惠和折扣的,比如很少有原价续费或者原价购买服务器的情况,比如活动期间针对新用户或者是老用户都是有比较大的优惠的。这里将介绍各大厂商的现价优惠,`最后还有免费白嫖机` 22 | 23 | ## 1. 腾讯云 24 | 25 | ### 新用户专享,机不可失! 26 | 27 | 立即抢购轻量应用服务器,新用户专享0.5折秒杀优惠,仅限一次! 28 | 轻量 4核4G3M:每年仅需**38**元,3M带宽,40GB SSD盘,300GB月流量,轻松应对日常需求 29 | 30 | ![image-20250717210051739](https://img.hnking.cn//blog/202507172100848.png) 31 | 32 | 太难抢?没关系下方可直接购买性价比也很高。68/年的2核2G3M、78/年的4核4G3M 性价比也是极高 33 | 34 | ![image-20250717210531527](https://img.hnking.cn//blog/202507172105634.png) 35 | 36 | 活动地址: 37 | **https://curl.qcloud.com/qO3jAlGu** 38 | 39 | ### 红包叠加 40 | 41 | 复制粘贴到微信打开开红包叠加优惠 42 | 43 | ``` 44 | #小程序://腾讯云会员/c9m4Z7j7RAEShxn 45 | ``` 46 | 47 | ## 2. 阿里云 48 | 49 | 热推机型,99元和199元2款服务器,性价比非常高,可以闭眼入。不限流量,并且续费同价,续费不涨价,新老用户都能买。中高端配置的服务器,也有很大的优惠力度的。*现在新用户还有38/年的秒杀机型* 50 | 51 | ![image-20250603142100389](https://img.hnking.cn//blog/202507172041465.png) 52 | 53 | **69**元/年的2H2G200 峰值带宽轻量云也是很不错的 54 | 55 | 建议:买完马上续费一次,也是99元,明年还可以99元续费。点击下方链接领取八五折券折上折 56 | 57 | ![image-20250603142250185](https://img.hnking.cn//blog/202507172041647.png) 58 | 59 | 地址: 60 | **[http://util.hnking.cn/api/short/I8zePM](http://util.hnking.cn/api/short/I8zePM)** 61 | 62 | 备用地址: 63 | **[https://www.aliyun.com/minisite/goods?userCode=t6jlywqr](https://www.aliyun.com/minisite/goods?userCode=t6jlywqr)** 64 | 65 | ## 3. 京东云 66 | 67 | 爆款云主机2C2G3M 低至**55**元/年,即开即用,限量秒杀 (可选三年388元),轻量云主机2核4G5M配置**149**元/年,**618** 元/3年,还有很多价格都很合适的,包括云电脑,数据库等产品众多。 68 | ![image-20250717211323268](https://img.hnking.cn//blog/202507172113403.png) 69 | 70 | 地址: 71 | https://3.cn/-2mBxyyr 72 | 73 | # 4. 华为云 74 | 75 | 至高10000元云资源券活动入口 76 | 77 | ``` 78 | https://util.hnking.cn/api/short/TL61gy 79 | ``` 80 | 81 | 活动参加步骤 82 | 83 | 1.点击链接报名参加 → 2.领取微认证代金券 → 3.支付1元够买微认证 → 4.参加考试 → 5.通过考试积分兑换云资源代金券 → 6.云资源代金券购买服务器 84 | 85 | 活动详情请看 86 | 87 | ``` 88 | https://img.hnking.cn/ 89 | ``` 90 | 91 | 活动注意事项 92 | 93 | - 活动获取的云资源代金券,不能用于特价商品。即不能购买38/年-68/年等优惠的服务器。 94 | - 参加1门考试,通过得2积分兑换100元代金券;若参加7门得14积分,可兑换700元代金券。最高可得1000元代金券。每门大约20分钟,7门共需2-3小时。 95 | - 700元代金券可购买,2核2G2M服务器21个月;1000元购买30个月 96 | - 实名账号,PC端人脸摄像头考试。(可用手机虚拟摄像头) 97 | - 参加考试非常简单,把摄像头抬高。拿手机豆包拍照答题即可。小白也能完成。 98 | - 积分兑换代金券只能1次,参加完你的目标考试后再去兑换。注意兑换时间截止到8月12日:18:00。 99 | 100 | ## 五、免费活动 101 | 102 | ## 阿里云 103 | 104 | 活动链接 [http://util.hnking.cn/api/short/EGP0q8](http://util.hnking.cn/api/short/EGP0q8) 105 | 106 | 阿里云高校学生300元代金券开放领取 107 | 108 | 活动说明: 109 | 110 | - 本次代金券仅限活动页面指定服务使用; 111 | - 需通过支付宝完成学生认证,全日制或非全日制高校学生均可参与; 112 | - 上次领取时间满1年后才可再次领取,可查看历史记录确认; 113 | 114 | 注意事项: 115 | 116 | 领取后请尽快使用,以免过期! 117 | 118 | ![在这里插入图片描述](https://img.hnking.cn//blog/202507172041746.png) 119 | 还是非常香的 -------------------------------------------------------------------------------- /签到本/天翼云盘签到.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 变量名:CLOUD_189 3 | * 值:手机号#密码,多账号,直接换行或者重新弄一个变量,格式一样。 4 | * 需要安装的依赖 cloud189-sdk 5 | * 定时规则 6 | * 每天早上8点,跟晚上8点签到。 7 | * cron: 0 0 8,20 * * * 8 | */ 9 | const { CloudClient } = require("cloud189-sdk"); 10 | const fs = require('fs'); // 引入文件系统模块,用于写入日志 11 | 12 | const mask = (s, start, end) => s.split("").fill("*", start, end).join(""); 13 | 14 | const buildTaskResult = (res, result) => { 15 | const index = result.length; 16 | if (res.errorCode === "User_Not_Chance") { 17 | result.push(`第${index}次抽奖失败,次数不足`); 18 | } else { 19 | result.push(`第${index}次抽奖成功,抽奖获得${res.prizeName}`); 20 | } 21 | }; 22 | 23 | const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); 24 | const message = []; 25 | // 任务 1.签到 2.天天抽红包 3.自动备份抽红包 26 | const doTask = async (cloudClient) => { 27 | const result = []; 28 | const res1 = await cloudClient.userSign(); 29 | result.push( 30 | `${res1.isSign? "已经签到过了," : ""}签到获得${res1.netdiskBonus}M空间` 31 | ); 32 | await delay(5000); // 延迟5秒 33 | 34 | const res2 = await cloudClient.taskSign(); 35 | buildTaskResult(res2, result); 36 | 37 | await delay(5000); // 延迟5秒 38 | const res3 = await cloudClient.taskPhoto(); 39 | buildTaskResult(res3, result); 40 | 41 | await delay(5000); // 延迟5秒 42 | const res4 = await cloudClient.taskKJ(); 43 | buildTaskResult(res4, result); 44 | return result; 45 | }; 46 | 47 | const doFamilyTask = async (cloudClient) => { 48 | const { familyInfoResp } = await cloudClient.getFamilyList(); 49 | const result = []; 50 | if (familyInfoResp) { 51 | for (let index = 0; index < familyInfoResp.length; index += 1) { 52 | const { familyId } = familyInfoResp[index]; 53 | const res = await cloudClient.familyUserSign(familyId); 54 | result.push( 55 | "家庭任务" + 56 | `${res.signStatus? "已经签到过了," : ""}签到获得${ 57 | res.bonusSpace 58 | }M空间` 59 | ); 60 | } 61 | } 62 | return result; 63 | }; 64 | 65 | // 开始执行程序 66 | async function main(userName, password) { 67 | if (userName && password) { 68 | const userNameInfo = mask(userName, 3, 7); 69 | try { 70 | message.push(`账户 ${userNameInfo}开始执行`); 71 | console.log(`账户 ${userNameInfo}开始执行`); 72 | const cloudClient = new CloudClient(userName, password); 73 | await cloudClient.login(); 74 | const result = await doTask(cloudClient); 75 | result.forEach((r) => console.log(r)); 76 | const familyResult = await doFamilyTask(cloudClient); 77 | familyResult.forEach((r) => console.log(r)); 78 | 79 | console.log("任务执行完毕"); 80 | const { cloudCapacityInfo, familyCapacityInfo } = 81 | await cloudClient.getUserSizeInfo(); 82 | let txt = 83 | `个人:${( 84 | cloudCapacityInfo.totalSize / 85 | 1024 / 86 | 1024 / 87 | 1024 88 | ).toFixed(2)}G,家庭:${( 89 | familyCapacityInfo.totalSize / 90 | 1024 / 91 | 1024 / 92 | 1024 93 | ).toFixed(2)}G`; 94 | 95 | message.push(txt); 96 | console.log(txt); 97 | } catch (e) { 98 | console.error(e); 99 | if (e.code === "ECONNRESET") { 100 | throw e; 101 | } 102 | } finally { 103 | message.push(`账户 ${userNameInfo}执行完毕`); 104 | } 105 | } 106 | } 107 | 108 | (async () => { 109 | try { 110 | const c189s = process.env.CLOUD_189; 111 | if (!c189s) { 112 | console.log('未获取到天翼云盘 CLOUD_189'); 113 | return; 114 | } 115 | let account = c189s.split('\n'); 116 | 117 | 118 | 119 | for (const c189 of account) { 120 | let date = c189.split('#'); 121 | await main(date[0], date[1]); 122 | } 123 | } finally { 124 | console.log(message.join('\n')); 125 | // 将消息内容写入日志文件 126 | const logContent = message.join('\n'); 127 | fs.writeFileSync('天翼云盘签到日志.txt', logContent); 128 | } 129 | })(); 130 | -------------------------------------------------------------------------------- /其他/果派.py: -------------------------------------------------------------------------------- 1 | import os 2 | import json 3 | import time 4 | import requests 5 | 6 | 7 | class Run: 8 | def __init__(self, openid, task_id): 9 | self.TaskId = task_id 10 | self.openid = openid 11 | self.token = '' 12 | self.header = { 13 | 'Host': 'api.vip.xvnn.cn', 14 | 'Connection': 'keep-alive', 15 | 'Content-Length': '84', 16 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090719) XWEB/8431 Flue', 17 | 'Content-Type': 'application/json', 18 | 'Accept': 'application/json', 19 | 'Origin': 'https://fqzw0h.vip.xvnn.cn', 20 | 'Sec-Fetch-Site': 'same-site', 21 | 'Sec-Fetch-Mode': 'cors', 22 | 'Sec-Fetch-Dest': 'empty', 23 | 'Referer': 'https://fqzw0h.vip.xvnn.cn/', 24 | 'Accept-Language': 'zh-CN,zh;q=0.9' 25 | } 26 | 27 | def do_post(self, url, data): 28 | response = requests.post(url=url, data=json.dumps(data), headers=self.header) 29 | return response.json() 30 | 31 | def do_get(self, url): 32 | response = requests.get(url=url, headers=self.header, timeout=5) 33 | return response.json() 34 | def task_ok(self): 35 | # 获取userActivityId 36 | url = f'http://api.vip.xvnn.cn/api-user/v2/activityDetatil?id={self.TaskId}&withMaterial=1' 37 | response = self.do_get(url=url) 38 | if response["status"] == 'success': 39 | userActivityId = response["meta"]["joinInfo"]["userActivityId"] 40 | activity_id = response["data"]['activity_id'] 41 | question = response["data"]["materialDetail"]["questions"][0]["question"] 42 | answers = response["data"]["materialDetail"]["questions"][0]["answer"] 43 | for index, answer in enumerate(answers): 44 | if answer["result"] == "1": 45 | item = index 46 | break 47 | right_answer_text = "0_" + str(item) 48 | right_answer = [right_answer_text] 49 | print(f"本期答题得题目为: {question}, 正确答案为: {right_answer}") 50 | print(f"获取到了userActivityId为{userActivityId}, activity_id为{activity_id}") 51 | time.sleep(1) 52 | url = 'https://api.vip.xvnn.cn/api-user/v1/activityWatchVideoOver' 53 | body ={"userActivityId":userActivityId} 54 | response = self.do_post(url=url, data=body) 55 | if response["status"] == 'success': 56 | print("观看视频成功,1S后领取奖励") 57 | time.sleep(1) 58 | url = "https://api.vip.xvnn.cn/api-user/v1/receiveAwardAndWatchOver" 59 | body = {"activity_id": activity_id, "answers": right_answer} 60 | response = self.do_post(url=url, data=body) 61 | if response["status_code"] == 200: 62 | money = response["data"]["red_money"] 63 | print(f"领取奖励成功->{money}") 64 | else: 65 | print(f"领取奖励失败->{response}") 66 | else: 67 | print("观看视频失败") 68 | else: 69 | print("获取参数失败了") 70 | 71 | pass 72 | 73 | def do_task(self): 74 | # 登录获取token 75 | url = "https://api.vip.xvnn.cn/api-user/v2/getToken" 76 | body = { 77 | "wx_openid": self.openid, 78 | "id": self.TaskId 79 | } 80 | response = self.do_post(url=url, data=body) 81 | if response["status"] == 'success': 82 | data = response["data"] 83 | self.token = data["token"] 84 | self.header["Authorization"] = 'Bearer ' + self.token 85 | print(f"获取到了token->{self.token}") 86 | self.task_ok() 87 | else: 88 | print("获取token失败") 89 | 90 | if __name__ == '__main__': 91 | # openid 92 | users = os.environ.get("GuoUser") 93 | task_id = os.environ.get("GuoTaskId") 94 | # users = 'ojF6x6r86Ap-QMigu_Ia6NhQ-yps' + "\n" + "ojF6x6uvbWNHCMFQYZDaKIrb6i_A" 95 | # task_id = '3ef20677234150b7dca48ab44056ec6d' 96 | print("免费脚本发布QQ群:575922391 ") 97 | if users: 98 | user_list = users.split("\n") 99 | for openid in user_list: 100 | run = Run(openid=openid, task_id=task_id).do_task() 101 | else: 102 | print("暂未识别出用户信息") 103 | -------------------------------------------------------------------------------- /其他/东方财富2.py: -------------------------------------------------------------------------------- 1 | ''' 2 | export dfcf='CToken#UToken#EM-MD#GToken' 3 | 多账户@ 分割 账号后面不要有备注去掉 4 | 5 | ''' 6 | #有问题请及时联系大大鸣 v:xolag29638099 (有其他想要的脚本也可以联系,尽量试着写一写) 7 | #Expecting value: line 1 column 1 (char 0) 报错请求频繁 过段时间重试即可 8 | # 9 | # --------------------------------祈求区-------------------------------- 10 | # _ooOoo_ 11 | # o8888888o 12 | # 88" . "88 13 | # (| -_- |) 14 | # O\ = /O 15 | # ____/`---'\____ 16 | # . ' \\| |// `. 17 | # / \\||| : |||// \ 18 | # / _||||| -:- |||||- \ 19 | # | | \\\ - /// | | 20 | # | \_| ''\---/'' | | 21 | # \ .-\__ `-` ___/-. / 22 | # ___`. .' /--.--\ `. . __ 23 | # ."" '< `.___\_<|>_/___.' >'"". 24 | # | | : `- \`.;`\ _ /`;.`/ - ` : | | 25 | # \ \ `-. \_ __\ /__ _/ .-` / / 26 | # ======`-.____`-.___\_____/___.-`____.-'====== 27 | # `=---=' 28 | # 29 | # ............................................. 30 | # 佛祖保佑 永无BUG 31 | # 佛祖镇楼 BUG辟邪 32 | # --------------------------------代码区-------------------------------- 33 | import base64 34 | import zlib 35 | import lzma 36 | import bz2 37 | import gzip 38 | 39 | exec((lambda _: compile(_.decode(),'','exec'))(zlib.decompress(lzma.decompress(bz2.decompress(gzip.decompress(base64.b64decode(b'H4sIAImmB2gC/wG9CUL2QlpoOTFBWSZTWekKE4YAA/9/////////////////////////////////////7///////0AVe97lM49Xru6vd29c91rnvUk09I0ejUBp6myJoek2k9TJoaNPSMnkjajQHlB+qBtIGj0mJkek9TJpgmjT0jT1Mho0eoNHqfqmT0ZJoBiaMj01GelNNqabJNp6JqabUxqeppp5TxMpmiJNG1PU9T0npGQYQYmCabUw9U9EGhk9Q0zUbSYE9E0YIDAT1MRpo9RhMQHqaaDTT0aMTRM9MVPUw0HqmTTNT1MmjRgaRtJtGoyaA2SZPU0ITaT1AaNMhtQ009T1NPUabTSaB6QZ6oPU9I0NB6Rpp6nqZD0aT0nqPJM1NN6g9RPSfqTMoHiR4oaaA0eoZD1AB6nlPU9TTTT1HknlNNonqGmjNqmmnqfqaQepoJPUeo0aNHohtRp6j0j1PQmRp+qfqj1PKekZM01PEj01HqNqbSNjVDZT1DRtTIbKbUaeo9T1NAaaNHkgaZqH6KPKANGNTymj1M1A9TR6jT1DQbUbUNqPKaZNB6gdT8qbUaek9MUxpk1MnpPJPJMnoT0mnqPUyNHqDRpskHlG0h6EbUbSeo2oYjagZqbSNNBpiZBo9TRo009NR6ahtIGPUQ8o0ZpDBqaNMTJ6jamjyjTJkAgBhoEQMBP2oIbHABls0DKzs8TH3+yo3utM+Xhg53wCsM6qVH5m95AcfHNW3J3gpKbtoNRTL9AJwNzLpQTLJJBXA3ISxicpTuO/17Ydsnbeb2PMKemiP9WdTqxBD56vbkVcdygR4bZdpPOrGC28xAxpJX7HPwnCaeTIC0mxmXFMif0LgdIjZIxpnS5MneX4sPj19aWcSs8aRQJGQHfTK8dXU37AJ7XND3CEBKPrPAV+UtovqNkd4ymxd7bNiUYXe5pARGbLbM1lOgWSwFmqcF1LHNFshMzMcLeZJ0Ba52Mv68HaOYs2huRnzqH6cLrezjlA7t4Wwe7qwREpAOU68RZpp9Nzg4KisbSR6CosHMx0r5qM3CNA3+2UwnN3qsJ+d+0AhoikPHpmnrPJZCzANqUHqKHZRJPo9gyir7JxaKy3RtUW5+4gP9h2HGwWJXOXsLOED/LgvaTTjjUNDp4Nuq2JVu2YiKyNKF8Kbq+6uq2Uq9B1JAestA1lRc4K99do+0hnbcpPRnnY6WgwnPYKVw1Wax5pd199LE1guz4g/bMcQkdn6wJYOxPl8BFBCuQ3iehkavmQKpuXsX5KkH1sqrr7svK3h6jYZSpRH7CUuZAQWsxLVK9AV2kvEBNo3mpR0dTAYOYgG+57gh4ZgV6UYJk35fB3V8pARr0pFWQtMpRPf9SJtLbwuHP05jR2bMgD7alAXpV8FFvWCs72SdZensip10qDkxU0BpHKbVp/LAeauDGI2PQMlhIZwXI+61UJkqgygWze3dVbkHf3oPoV/XCGIGfyppWEbtEw44uZKlIeKIfaRNTtddybXDfBNzrwagiCFhXDofyVuCOEo+g0VC4+sugUpQ1Ha8iL39Tcp0UncjChw6pKCr6g5TalQhd40Qy7FIjRrf30zu9eLWxO91lTOzRvNuJGQjBTweVNIMdbeebSCA6ddZ1lwDH09goHc79r2QH9PZTHVI3xEkrAeeQzx87OvQyHmMicAZO4RfzUsS9G+ESUnltTSxJES77WN7a44o5I91vgYVb0N9flZ95KtsjsfXAHH4laT25ndRX1AkuW1iBZtcQbmqUECeCrexPbZDM3cQuU7Aqok001PS5oeQjHEJq7Gm+YLvywS2IWWTMi5DypBJYZiqzcwiDiEEbtAonypLcVHAiRlGCpGod44mTpREqfxXZjfhOkVNUhcMQyxidW3RLixdc4vITXUINdF8pix080r3TJEu3G72koKc7SJLBQQxtSW9X6GWbuFg0lRbwnFLkIgreppVcApVRcHUat3uLFa2Xw/55cGEq6qFRF1lCcmqn9BcMlC2vUpqowMde8Y1iNkLrVpKP4IcrYvxth25ZZDLC2JfvMrIYBfvljLEkqTULvD/MJ1l5PH+Q5MNlaPc8J2ki9zDqCvRfF9FGo2jV62ypBZQt8Yk8oyZiRKM7J9+JPUFvxBn7Ql+1ABDTRcu38ZYy5umnu7rNbV+VKawXZQmfTnYe7/tDg3EGoRTCYxoW+s94uky7AdxImaX9A/4jnWoji08QsXyQ8z7xw2VLPHLOYg5ovORIGvEr+456VCZlDs2DjKCp47OMDgBSbUC6SSsgxgUSfcmr4IIwDgWMWLBQksvUeUhm8KJ61DDVD7kJ0/LE1Y27T+aour5NZIOBA0fsKygdiDrYUlL90adk1o2276GfefB93RR8pLd4SMy1V0PSdX9SjoCexgoA3N8kS2qt64Z1W1GIGWAYibdGo+Nboq03b5YjrwRLkret+NmMyCVD7LEhGxovPJhwsWXz94J4AzApJgePm0Y/Ifn0xp6CVPpFg5Gr6TxDIJmtE/uIoK3t0ztO2Ag67vUS3K2bU6Yf89YP0V8hjTLNWpSu35R0oTU9HJGdZHAxRdO640gHyP56561T0T2Hh9Jllmct4Huz44QfOBJh6AZAZFetOO26kZZNF1vdJUNXNjgBehdKkdZS7OiuNywN7Fsfma+EqgY8DCGgZBK0owIaqgsXLTzaAoVJObdhaUQg8FZJyjfM1l7OWz1TGUiAoRLf7kQyWUHgpmNZvAaUv1q/b9WLjLKIc8ZWg3Z6VNGSDY+Ku8VCHlsPPVNQi0aZv8Jh0X5/4fyup25k8bgX2dPk78EsOGFDGKefSiueEkXCsmWB4JkRfoHDtzvJxhNx5CMT32fWVbuYrfCYO30rKvunTcv3R0ngmTUm0XSciepwN7C5hphgEYQr9wRki29+mQPmtR7VrmLU1t0AeDpQa/J2rrRlEOqYHZdJ/Wp+uBNXDMiVw2ppwz/PF90wxHiA+I/syrxQFI1AEG5YtLO4ErYingGZBTCrW6u7QprwHMqhqjLEgXGEogRmXFhAsz42XE0flXVt66qVstMARNvXGfM8pV+Gfp3y10dwc8NIWfG+8SQzg8AhuTjbwieRa+hFIhJSaD4zk4Lqsu6QrP/fdmwEwjcXqyhHG3hxewIPtAaTz2rnuS4FL6LjcDX3vOPUD/ECrPxi969jvj7ZvYq8eP3ADCsXUhaAT4M2IMl0jKzYoAFBIlEJhO6pxB1elmbUzRozaC6UxlhrURQCqfipzbUp66JQNsD0glD4brw9cipE6OAIMUWa5k+4iydUYUx/PrFw7IhSb5k48gTFXmTiFBdNaFtmlA/4u5IpwoSHSFCcMABjn8V70JAAA='))))))) 40 | -------------------------------------------------------------------------------- /其他/伊利甄选.py: -------------------------------------------------------------------------------- 1 | """ 2 | 实物收益参考:免单卷虚拟会员卷 3 | 1.#小程序://甄稀冰淇淋/Zr6Cnm6ShD5Z6up,进入活动授权登陆。 4 | 2.然后打开抓包软件,抓包之前关闭小程序重新进入下抓域名msmarket.msx.digitalyili.com的参数值。 5 | 提交格式:mobile#access-token 格式不对系统是无法提交的。 6 | *提交格式示列:150xxx192#xka9vTYME6TOoeGUjszAPJwwR70Vdwx1xbJnZHXYPz/p2+ZEvIMfn9Sw2n8GMc0nY8ZZPTlqf2Dwl2r76bGnWj88IkS8hLk9Un9jxxx 7 | export ylzx="mark#access-token" 8 | #小程序://甄稀冰淇淋/Zr6Cnm6ShD5Z6up 9 | """ 10 | #import notify 11 | import requests, json, re, os, sys, time, random, datetime, threading, execjs 12 | environ = "ylzx" 13 | name = "꧁༺ 伊利༒甄稀 ༻꧂" 14 | session = requests.session() 15 | #---------------------主代码区块--------------------- 16 | 17 | def run(arg1): 18 | header = { 19 | "Host": "msmarket.msx.digitalyili.com", 20 | "Content-Type": "application/json", 21 | "Connection": "keep-alive", 22 | "Accept": "*/*", 23 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b13)XWEB/11581", 24 | "access-token": arg1, 25 | "Sec-Fetch-Site": "same-site", 26 | "Sec-Fetch-Mode": "cors", 27 | "Sec-Fetch-Dest": "empty", 28 | "Accept-Language": "zh-CN,zh;q=0.9" 29 | } 30 | try: 31 | url = 'https://msmarket.msx.digitalyili.com/gateway/api/auth/account/user/info' 32 | response = session.get(url=url, headers=header).json() 33 | if not response["data"]: 34 | print(f'⭕异常:需更新token') 35 | return 36 | else: 37 | openId = response["data"]["openId"] 38 | headeract = { 39 | "Host": "zhenxiapp-admin.msxapi.digitalyili.com", 40 | "Content-Type": "application/json", 41 | "Connection": "keep-alive", 42 | "Accept": "*/*", 43 | "x-requested-with": "com.tencent.mm", 44 | "priority": "u=1, i", 45 | "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.103 Mobile Safari/537.36 XWEB/1300473 MMWEBSDK/20250201 MMWEBID/6533 MicroMessenger/8.0.57.2820(0x2800393F) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 miniProgram/wx21fd8b5d6d4cf1ca", 46 | "sec-ch-ua-mobile": "?1", 47 | "sec-ch-ua-platform": "Android", 48 | "sec-ch-ua": '"Chromium";v="130", "Android WebView";v="130", "Not?A_Brand";v="99"', 49 | "Sec-Fetch-Site": "same-site", 50 | "Sec-Fetch-Mode": "cors", 51 | "Sec-Fetch-Dest": "empty", 52 | "Accept-Language": "zh-CN,zh;q=0.9" 53 | } 54 | for i in range(3): 55 | url = ' https://zhenxiapp-admin.msxapi.digitalyili.com/api/draw_wh' 56 | response = session.post(url=url, headers=headeract,json={"openid":openId}).json() 57 | print(f'☁️抽奖:{response["data"]["prize_name"]}') 58 | url = 'https://zhenxiapp-admin.msxapi.digitalyili.com/api/draw_records_wh' 59 | response = session.post(url=url, headers=headeract,json={"openid":openId,"page":1,"pageSize":100}).json() 60 | if response["data"]: 61 | for item in response["data"]["data"]: 62 | prizeid = item["id"] 63 | status = item["status"] 64 | prize_name = item["prize_name"] 65 | if status == 1: 66 | url = 'https://zhenxiapp-admin.msxapi.digitalyili.com/api/set_coupon_wh' 67 | response = session.post(url=url, headers=headeract,json={"openid":openId,"record_id":prizeid}).json() 68 | if response["msg"] != 'success': 69 | print(f'⭕领取:{response["msg"]}') 70 | if not ("199-120" in prize_name): 71 | print(f'好券:{prize_name}') 72 | except Exception as e: 73 | print(e) 74 | 75 | def main(): 76 | 77 | 78 | global id, message 79 | message = [] 80 | if os.environ.get(environ): 81 | ck = os.environ.get(environ) 82 | else: 83 | ck = "" 84 | if ck == "": 85 | print("⭕请设置变量") 86 | sys.exit() 87 | ck_run = ck.split('\n') 88 | ck_run = [item for item in ck_run if item] 89 | print(f"{' ' * 7}{name}\n\n") 90 | for i, ck_run_n in enumerate(ck_run): 91 | try: 92 | mark,arg1 = ck_run_n.split('#',2) 93 | id = mark[:3] + "*****" + mark[-3:] 94 | print(f"账号 [{i + 1}/{len(ck_run)}]:{id}") 95 | run(arg1) 96 | time.sleep(random.randint(1, 2)) 97 | except Exception as e: 98 | print(e) 99 | print(f"\n\n-------- ☁️ 执 行 结 束 ☁️ --------\n\n") 100 | if message: 101 | output = '\n'.join(num for num in message) 102 | notify.send(name, output) 103 | 104 | if __name__ == '__main__': 105 | main() -------------------------------------------------------------------------------- /其他/聚赏圈(1).py: -------------------------------------------------------------------------------- 1 | #入口:聚赏圈 2 | #抓包mini.nxqingchuangkeji.com域名下的token填到环境变量JSQ中,多账号使用&分割 3 | 4 | import requests 5 | import os 6 | import json 7 | import time 8 | import random 9 | from datetime import datetime 10 | 11 | 12 | def get_proclamation(): 13 | print("a") 14 | # primary_url = "https://github.com/3288588344/toulu/raw/refs/heads/main/tl.txt" 15 | # backup_url = "https://tfapi.cn/TL/tl.json" 16 | # 17 | # headers = { 18 | # "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 19 | # } 20 | # 21 | # for url in [primary_url, backup_url]: 22 | # try: 23 | # response = requests.get(url, headers=headers, timeout=20) 24 | # if response.status_code == 200: 25 | # 26 | # print("📢 公告信息") 27 | # print("=" * 45) 28 | # print(response.text) 29 | # print("=" * 45 + "\n") 30 | # print(f"公告获取成功,开始执行任务...\n") 31 | # return 32 | # except requests.exceptions.RequestException as e: 33 | # print(f"获取公告时发生错误 (链接: {url}): {e}, 继续尝试下一个链接...") 34 | # 35 | # print("所有公告获取尝试均失败,继续执行任务...") 36 | 37 | 38 | def get_tokens_from_env(): 39 | 40 | tokens = os.getenv('JSQ', '').split('&') 41 | return tokens 42 | 43 | 44 | def fetch_user_info(token): 45 | 46 | url = "https://mini.nxqingchuangkeji.com/api/Useraectype/userBasicsInfo" 47 | headers = { 48 | "Host": "mini.nxqingchuangkeji.com", 49 | "token": token, 50 | "content-type": "application/json", 51 | "charset": "utf-8", 52 | "referer": "https://servicewechat.com/wx5804e8877027009c/10/page-frame.html", 53 | "accept-encoding": "gzip, deflate, br" 54 | } 55 | payload = {} 56 | 57 | try: 58 | response = requests.post(url, headers=headers, json=payload) 59 | if response.status_code == 200: 60 | user_data = response.json() 61 | if user_data.get("code") == 1: # 如果获取成功 62 | data = user_data.get("data", {}) 63 | nickname = data.get("nickname", "未知账户") 64 | money = data.get("money", "未知余额") 65 | return nickname, money 66 | return "未知账户", "未知余额" 67 | except Exception: 68 | return "未知账户", "未知余额" 69 | 70 | 71 | def send_sign_request(token): 72 | 73 | headers = { 74 | 'Host': 'mini.nxqingchuangkeji.com', 75 | 'token': token, 76 | 'content-type': 'application/json', 77 | 'charset': 'utf-8', 78 | 'referer': 'https://servicewechat.com/wx5804e8877027009c/10/page-frame.html', 79 | } 80 | 81 | data = '{"time": ' + str(int(time.time())) + '}' 82 | 83 | try: 84 | response = requests.post('https://mini.nxqingchuangkeji.com/api/sign/sign', headers=headers, data=data) 85 | return response.json() 86 | except Exception: 87 | return {"code": -1, "msg": "签到失败"} 88 | 89 | 90 | def claim_gold(token): 91 | 92 | data = { 93 | 'start_time': 1750994743, 94 | 'end_time': 1750994760, 95 | 'sign': '95b3cc356f28859b13178d76818595fa' 96 | } 97 | headers = { 98 | 'Host': 'mini.nxqingchuangkeji.com', 99 | 'token': token, 100 | 'content-type': 'application/json', 101 | 'charset': 'utf-8', 102 | 'referer': 'https://servicewechat.com/wx5804e8877027009c/10/page-frame.html', 103 | } 104 | try: 105 | response = requests.post('https://mini.nxqingchuangkeji.com/api/Advertising/keepAdvertisingGold', headers=headers, data=json.dumps(data)) 106 | return response.json() 107 | except Exception: 108 | return {"code": -1, "msg": "广告请求失败"} 109 | 110 | 111 | def main(): 112 | """主函数""" 113 | tokens = get_tokens_from_env() 114 | if not tokens: 115 | print("未设置JSQ环境变量") 116 | print("=" * 45) 117 | return 118 | 119 | for token in tokens: 120 | if not token: 121 | continue 122 | 123 | # 获取账户信息 124 | nickname, money = fetch_user_info(token) 125 | account_info = f"账户: {nickname}, 余额: {money}" 126 | 127 | # 执行签到 128 | sign_result = send_sign_request(token) 129 | if sign_result.get('code') == 1: 130 | print(f"{account_info} - 签到成功") 131 | print("=" * 45) 132 | else: 133 | print(f"{account_info} - 签到失败,原因:{sign_result.get('msg', '未知错误')}") 134 | print("=" * 45) 135 | 136 | # 执行看广告获取金币(20次,随机延迟) 137 | success_count = 0 138 | for i in range(20): 139 | ad_result = claim_gold(token) 140 | if ad_result.get('code') == 1 and ad_result.get('msg') == '领取奖励成功': 141 | success_count += 1 142 | print(f"{account_info} - 广告任务第 {i+1} 次成功") 143 | print("=" * 45) 144 | else: 145 | print(f"{account_info} - 广告任务第 {i+1} 次失败,原因:{ad_result.get('msg', '未知错误')}") 146 | time.sleep(random.uniform(5, 320)) 147 | 148 | print(f"{account_info} - 广告任务完成,成功 {success_count}/20 次") 149 | print("=" * 45) 150 | 151 | if __name__ == "__main__": 152 | start_time = datetime.now() 153 | 154 | 155 | get_proclamation() 156 | main() 157 | 158 | end_time = datetime.now() 159 | 160 | 161 | -------------------------------------------------------------------------------- /util/IP代理自动加白名单.py: -------------------------------------------------------------------------------- 1 | # cron: 10 */2 * * * 2 | # new Env('更新IP代理白名单'); 3 | import os 4 | 5 | # 长期套餐大额流量电话卡办理地址:https://img.hnking.cn//blog/202504141427660.png 6 | 7 | ## 携趣代理地址 https://www.xiequ.cn/index.html?d630539f 8 | ## 星空代理地址 https://www.xkdaili.com/ 9 | ## 巨量代理地址 https://www.juliangip.com/user/reg?inviteCode=1040216 10 | # 携趣环境变量 export XIEQU='UID=xxx;UKEY=xxx' 11 | # 星空环境变量 export XK='APIKEY=xxx;SIGN=xxx' 12 | # 巨量环境变量 export JULIANG='KEY=xxx;TRADE_NO=xxx' 13 | 14 | import requests 15 | import hashlib 16 | import urllib.parse 17 | 18 | 19 | 20 | class SignKit: 21 | 22 | @staticmethod 23 | def md5_sign(params, secret): 24 | sign_content = SignKit.get_sign_content(params) 25 | return hashlib.md5((sign_content + '&key=' + secret).encode('utf-8')).hexdigest() 26 | 27 | @staticmethod 28 | def get_sign_content(params): 29 | params.pop('sign', None) # 删除 sign 30 | sorted_params = sorted(params.items()) 31 | sign_content = '&'.join( 32 | [f"{k}={str(v)}" for k, v in sorted_params if str(v) is not None and not str(v).startswith('@')]) 33 | return sign_content 34 | 35 | 36 | # def get_current_ip(): 37 | # response = requests.get('https://myip.ipip.net/json') 38 | # data = response.json() 39 | # return data['data']['ip'] 40 | def get_current_ip(): 41 | """获取当前 IP 地址""" 42 | try: 43 | response = requests.get('https://httpbin.org/ip') 44 | response.raise_for_status() 45 | res = response.json().get('origin') 46 | return res 47 | except requests.exceptions.RequestException as e: 48 | print(f"Failed to fetch the current IP: {e}") 49 | return get_current_ip2() 50 | 51 | 52 | # https://ip.3322.net 53 | 54 | def get_current_ip2(): 55 | api_url = f"https://ip.3322.net" 56 | try: 57 | response = requests.get(api_url) 58 | response.raise_for_status() 59 | return response.text 60 | except requests.exceptions.RequestException as e: 61 | print(f"Failed to fetch information for IP: {e}") 62 | 63 | 64 | def update_juliang_white_list(ip, JULIANG_KEY, JULIANG_TRADE_NO): 65 | if JULIANG_KEY and JULIANG_TRADE_NO: 66 | params = { 67 | 'new_ip': ip, 68 | 'reset': '1', 69 | 'trade_no': JULIANG_TRADE_NO 70 | } 71 | sign = SignKit.md5_sign(params, JULIANG_KEY) 72 | query_string = urllib.parse.urlencode(params) + "&sign=" + sign 73 | 74 | url = f'http://v2.api.juliangip.com/dynamic/replaceWhiteIp?{query_string}' 75 | response = requests.get(url) 76 | return response.text 77 | 78 | 79 | def update_xk_white_list(ip, XK_APIKEY, XK_SIGN): 80 | if XK_APIKEY and XK_SIGN: 81 | url = f'http://api2.xkdaili.com/tools/XApi.ashx?apikey={XK_APIKEY}&type=addwhiteip&sign={XK_SIGN}&flag=8&ip={ip}' 82 | response = requests.get(url) 83 | return response.text 84 | 85 | 86 | def update_xiequ_white_list(ip, XIEQU_UID, XIEQU_UKEY): 87 | if XIEQU_UID and XIEQU_UKEY: 88 | url = f'http://op.xiequ.cn/IpWhiteList.aspx?uid={XIEQU_UID}&ukey={XIEQU_UKEY}&act=get' 89 | response = requests.get(url) 90 | data = response.text 91 | print(data) 92 | arr = data.split(',') 93 | print(arr) 94 | if ip in arr: 95 | return '携趣白名单ip未变化' 96 | if ip not in arr: 97 | requests.get(f'http://op.xiequ.cn/IpWhiteList.aspx?uid={XIEQU_UID}&ukey={XIEQU_UKEY}&act=del&ip=all') 98 | response = requests.get( 99 | f'http://op.xiequ.cn/IpWhiteList.aspx?uid={XIEQU_UID}&ukey={XIEQU_UKEY}&act=add&ip={ip}') 100 | return '更新xiequ白名单成功' if response.status_code == 200 else '更新xiequ白名单出错' 101 | else: 102 | return '携趣白名单ip未变化' 103 | 104 | 105 | def main(): 106 | ip = get_current_ip() 107 | 108 | 109 | print('当前ip地址:', ip) 110 | print('''#长期套餐大额流量电话卡办理地址:https://img.hnking.cn//blog/202504141427660.png 111 | ## 携趣代理地址 https://www.xiequ.cn/index.html?d630539f 112 | ## 星空代理地址 https://www.xkdaili.com/ 113 | ## 巨量代理地址 https://www.juliangip.com/user/reg?inviteCode=1040216 114 | # 携趣环境变量 export XIEQU='UID=xxx;UKEY=xxx' 115 | # 星空环境变量 export XK='APIKEY=xxx;SIGN=xxx' 116 | # 巨量环境变量 export JULIANG='KEY=xxx;TRADE_NO=xxx' 117 | ''') 118 | # 从青龙面板 获取变量 119 | # export XIEQU='UID=xxx;UKEY=xxx' 120 | # export XK='APIKEY=xxx;SIGN=xxx' 121 | # export JULIANG='KEY=xxx;TRADE_NO=xxx' 122 | JULIANG_KEY = '' # 填入巨量的 Key 123 | JULIANG_TRADE_NO = '' # 填入巨量的 Trade No 124 | XK_APIKEY = '' # 填入星空的 API Key 125 | XK_SIGN = '' # 填入星空的 Sign 126 | XIEQU_UID = '' # 填入携趣的 UID 127 | XIEQU_UKEY = '' # 填入携趣的 UKEY 128 | 129 | JULIANG = os.getenv('JULIANG') 130 | XK = os.getenv('XK') 131 | XIEQU = os.getenv('XIEQU') 132 | if XIEQU != None: 133 | XIEQU_UID = XIEQU.split(';')[0].split('=')[1] 134 | XIEQU_UKEY = XIEQU.split(';')[1].split('=')[1] 135 | if JULIANG != None: 136 | JULIANG_KEY = JULIANG.split(';')[0].split('=')[1] 137 | JULIANG_TRADE_NO = JULIANG.split(';')[1].split('=')[1] 138 | if XK != None: 139 | XK_APIKEY = XK.split(';')[0].split('=')[1] 140 | XK_SIGN = XK.split(';')[1].split('=')[1] 141 | 142 | print('更新当前IP:', ip) 143 | if JULIANG_KEY != None and JULIANG_TRADE_NO != None: 144 | print('更新巨量白名单结果:', update_juliang_white_list(ip, JULIANG_KEY, JULIANG_TRADE_NO)) 145 | if XK_APIKEY != None and XK_SIGN != None: 146 | print('更新星空白名单结果:', update_xk_white_list(ip, XK_APIKEY, XK_SIGN)) 147 | if XIEQU_UID != None and XIEQU_UKEY != None: 148 | print('更新携趣白名单结果:', update_xiequ_white_list(ip, XIEQU_UID, XIEQU_UKEY)) 149 | 150 | 151 | if __name__ == "__main__": 152 | main() 153 | -------------------------------------------------------------------------------- /微信小程序/雀巢.js: -------------------------------------------------------------------------------- 1 | // 大大鸣版 雀巢 2 | 3 | // 环境变量 NESTLE_TOKEN 抓取 Authorization 的值,例如:bearer 0610099d-550e-4e8d-9624-6840ff680812,只需要 bearer 后面的值 4 | /** 5 | * const $ = new Env('雀巢') 6 | * cron: 30 12 * * * (建议根据实际情况调整) 7 | * 变量:export NESTLE_TOKEN="Authorization" 8 | * 入口:#小程序://雀巢会员/O0NOfAHwAGV3tZb 9 | * 10 | */ 11 | 12 | //自己的User-Agent 不设置将会调用getRandomUserAgent随机分配 13 | // https://useragent.todaynav.com/ 微信打开此网站即可 14 | var User_Agent = ""; 15 | 16 | const axios = require("axios"); 17 | const $ = { 18 | name: "雀巢会员", 19 | wait: a => new Promise(e => setTimeout(e, a)), 20 | logErr: e => console.error(e), 21 | done: () => console.log("任务完成") 22 | }; 23 | const nestleList = process.env.NESTLE_TOKEN ? process.env.NESTLE_TOKEN.split(/[\n&]/) : []; 24 | 25 | let message = ""; 26 | 27 | function getRandomUserAgent() { 28 | if (User_Agent) { 29 | return User_Agent; 30 | } 31 | const a = ["Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"]; 32 | return a[Math.floor(Math.random() * a.length)]; 33 | } 34 | 35 | function getRandomWait(e, a) { 36 | return Math.floor(Math.random() * (a - e + 1) + e); 37 | } 38 | 39 | async function sendRequest(e, a, n, t = null) { 40 | try { 41 | const o = { 42 | url: e, 43 | method: a, 44 | headers: n, 45 | timeout: 1e4, 46 | validateStatus: () => true 47 | }; 48 | if (t && (a.toLowerCase() === "post" || a.toLowerCase() === "put")) { 49 | o.data = t; 50 | } 51 | const r = await axios(o); 52 | return r.data; 53 | } catch (e) { 54 | console.error("请求失败: " + e.message); 55 | return { 56 | errcode: 500, 57 | errmsg: "请求失败: " + e.message 58 | }; 59 | } 60 | } 61 | 62 | const headers = { 63 | "User-Agent": getRandomUserAgent(), 64 | "content-type": "application/json", 65 | referer: "https://servicewechat.com/wxc5db704249c9bb31/353/page-frame.html" 66 | }; 67 | (async () => { 68 | // printBanner(); 69 | console.log("\n已随机分配 User-Agent\n\n" + headers["User-Agent"]); 70 | for (let e = 0; e < nestleList.length; e++) { 71 | const n = e + 1; 72 | console.log("\n*****第[" + n + "]个" + "雀巢会员" + "账号*****"); 73 | headers.authorization = "Bearer " + nestleList[e]; 74 | message += "📣====雀巢会员账号[" + n + "]====📣\n"; 75 | await main(); 76 | await $.wait(Math.floor(Math.random() * 501 + 2e3)); 77 | } 78 | if (message) { 79 | console.log("\n执行结果汇总:\n" + message); 80 | } 81 | })()["catch"](e => console.error(e))["finally"](() => console.log("任务完成")); 82 | 83 | async function main() { 84 | await getUserInfo(); 85 | await everyDaySign() 86 | await $.wait(Math.floor(Math.random() * 1001 + 1e3)); 87 | await getTaskList(); 88 | await $.wait(Math.floor(Math.random() * 1001 + 1e3)); 89 | await getUserBalance(); 90 | } 91 | 92 | async function getUserInfo() { 93 | try { 94 | const e = await sendRequest("https://crm.nestlechinese.com/openapi/member/api/User/GetUserInfo", "get", headers); 95 | if (200 !== e.errcode) { 96 | return console.error("获取用户信息失败:" + e.errmsg); 97 | } 98 | const { 99 | nickname: n, 100 | mobile: t 101 | } = e.data; 102 | console.log("用户:" + n + "(" + t + ")"); 103 | message += "用户:" + n + "(" + t + ")\n"; 104 | } catch (e) { 105 | console.error("获取用户信息时发生异常 -> " + e); 106 | } 107 | } 108 | 109 | async function getTaskList() { 110 | try { 111 | const e = await sendRequest("https://crm.nestlechinese.com/openapi/activityservice/api/task/getlist", "post", headers); 112 | if (200 !== e.errcode) { 113 | return console.error("获取任务列表失败:" + e.errmsg); 114 | } 115 | for (const n of e.data) { 116 | console.log("开始【" + n.task_title + "】任务"); 117 | await doTask(n.task_guid); 118 | await $.wait(Math.floor(Math.random() * 501 + 2e3)); 119 | } 120 | } catch (e) { 121 | console.error("获取任务列表时发生异常 -> " + e); 122 | } 123 | } 124 | 125 | async function doTask(e) { 126 | try { 127 | const n = await sendRequest("https://crm.nestlechinese.com/openapi/activityservice/api/task/add", "post", headers, { 128 | task_guid: e 129 | }); 130 | if (201 == n.errcode) { 131 | return console.error("任务失败 -> " + n.errmsg + "\n"); 132 | } 133 | console.log("完成任务" + n.errcode + " -> " + n.errmsg + "\n"); 134 | } catch (e) { 135 | console.error("完成任务时发生异常 -> " + e); 136 | } 137 | } 138 | 139 | async function everyDaySign() { 140 | let data = JSON.stringify({ 141 | "rule_id": 1, 142 | "goods_rule_id": 1 143 | }); 144 | try { 145 | const e = await sendRequest("https://crm.nestlechinese.com/openapi/activityservice/api/sign2025/sign", "post", headers, data); 146 | if (200 !== e.errcode) { 147 | return console.error("用户每日签到失败:" + e.errmsg); 148 | } 149 | console.log("当前签到天数:" + e.data.sign_day); 150 | message += "当前签到天数:" + e.data.sign_day + "\n\n"; 151 | } catch (e) { 152 | console.error("用户每日签到发生异常 -> " + e); 153 | } 154 | } 155 | 156 | async function getUserBalance() { 157 | try { 158 | const e = await sendRequest("https://crm.nestlechinese.com/openapi/pointsservice/api/Points/getuserbalance", "post", headers); 159 | if (200 !== e.errcode) { 160 | return console.error("获取用户积分余额失败:" + e.errmsg); 161 | } 162 | console.log("当前巢币:" + e.data); 163 | message += "当前巢币:" + e.data + "\n\n"; 164 | } catch (e) { 165 | console.error("获取用户巢币时发生异常 -> " + e); 166 | } 167 | } -------------------------------------------------------------------------------- /电信/ruishucookie.py: -------------------------------------------------------------------------------- 1 | # ruishucookie.py 2 | import os 3 | import execjs 4 | import httpx 5 | httpx._config.DEFAULT_CIPHERS += ":ALL:@SECLEVEL=1" 6 | 7 | 8 | 9 | filename = 'Cache.js' 10 | if os.path.exists(filename): 11 | with open(filename, 'r', encoding='utf-8') as file: 12 | fileContent = file.read() 13 | else: 14 | fileContent = '' 15 | 16 | def initCookie(getUrl='https://wapact.189.cn:9001/gateway/standQuery/detailNew/exchange'): 17 | global js_code_ym, fileContent 18 | cookie = '' 19 | response = httpx.post(getUrl) 20 | content = response.text.split(' content="')[2].split('" r=')[0] 21 | code1 = response.text.split('$_ts=window')[1].split('