forked from smallfawn/decode_action
-
Notifications
You must be signed in to change notification settings - Fork 0
/
output.py
150 lines (150 loc) · 6.98 KB
/
output.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
import requests
import os
import time
import random
from urllib.parse import urlparse,parse_qs,quote
import re
code="点点赚"
ver="1.1"
envname="yuanshen_ddz"
split_chars=['@','&','\n']
debug=False
debugcookie=""
def env(*args,**kwargs):
def split_cookies(cookie,split_chars):
for sep in split_chars:
if sep in cookie:
return cookie.split(sep)
return[cookie]
def scmain(cookies):
for i,cookie in enumerate(cookies,1):
print(f"--------开始第{i}个账号--------")
main=yuanshen(cookie)
main.main()
print(f"--------第{i}个账号执行完毕--------")
time.sleep(random.randint(10,20))
if not os.getenv(envname)and not debug:
print(f"请先设置环境变量[{envname}]")
exit()
cookie=os.getenv(envname,"")
if debug:
cookie=debugcookie
try:
print(requests.get("https://gitee.com/HuaJiB/yuanshen34/raw/master/pubilc.txt").text,"\n\n\n")
except:
print("网络异常,链接公告服务器失败(gitee),请检查网络")
exit()
cookies=split_cookies(cookie,split_chars)
account_count=len(cookies)
print(f"一共获取到{account_count}个账号")
print(f"=========🔔开始执行[{code}][{ver}]=========\n")
start_time=time.time()
if debug:
scmain(cookies)
else:
try:
scmain(cookies,*args,**kwargs)
except Exception as e:
print(f"脚本执行出错: {e}")
end_time=time.time()
execution_time=end_time-start_time
print(f"\n============🔔脚本[{code}]执行结束============")
print(f"本次脚本总运行时间: [{execution_time:.2f}] 秒")
class yuanshen:
def __init__(self,cookie)->None:
self.headers={"Host":"40417611257.sx.shuxiangby.cn","Connection":"keep-alive","Accept":"*/*","User-Agent":"Mozilla/5.0 (Linux; Android 14; 23113RKC6C Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/122.0.6261.120 Mobile Safari/537.36 XWEB/1220099 MMWEBSDK/20240404 MMWEBID/98 MicroMessenger/8.0.49.2600(0x28003133) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64","X-Requested-With":"XMLHttpRequest","Referer":"http://40417611257.sx.shuxiangby.cn/index/mob/index.html","Accept-Encoding":"gzip, deflate","Accept-Language":"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"}
self.headers2={"Host":"40417611257.sx.shuxiangby.cn","Connection":"keep-alive","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Linux; Android 14; 23113RKC6C Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/122.0.6261.120 Mobile Safari/537.36 XWEB/1220099 MMWEBSDK/20240404 MMWEBID/98 MicroMessenger/8.0.49.2600(0x28003133) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/wxpic,image/tpg,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","X-Requested-With":"com.tencent.mm","Referer":"http://40417611257.sx.shuxiangby.cn/index/mob/mine.html","Accept-Encoding":"gzip, deflate","Accept-Language":"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"}
self.cookie={"user_openid":f"{cookie.split('#')[0]}","uid":f"{cookie.split('#')[1]}","PHPSESSID":f"{cookie.split('#')[2]}"}
self.uid=cookie.split('#')[1]
def extract_url(self,url):
parsed_url=urlparse(url)
full_domain=parsed_url.netloc
query_params=url.split('?')[1]
if not query_params:
query_params=None
return full_domain,query_params
def push(self):
url=f"https://wxpusher.zjiecode.com/api/send/message/?appToken={appToken}&topicId={topicIds}&content=检测文章%0A请在20秒内完成验证!%0A%3Cbody+onload%3D%22window.location.href%3D%27{quote(self.acturl)}%27%22%3E"
r=requests.get(url).json()
print(f"🎉️账号检测文章推送结果{r}")
def getreadurl(self):
url="http://40417611257.sx.shuxiangby.cn/index/mob/get_read_qr.html"
r=requests.get(url,headers=self.headers,cookies=self.cookie).json()
if r['code']==1:
url_pattern=r"http[s]?://[^\s]+"
urls=re.findall(url_pattern,r['web_url'])
self.domain,self.readcode=self.extract_url(urls[0])
if urls:
print(f"🔔获取到阅读链接: [{self.domain}][{self.readcode}]")
self.readh={"Host":f"{self.domain}","Connection":"keep-alive","Content-Length":"47","Accept":"*/*","X-Requested-With":"XMLHttpRequest","User-Agent":"Mozilla/5.0 (Linux; Android 14; 23113RKC6C Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/122.0.6261.120 Mobile Safari/537.36 XWEB/1220099 MMWEBSDK/20240404 MMWEBID/5295 MicroMessenger/8.0.49.2600(0x28003159) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8","Origin":f"http://{self.domain}","Referer":f"http://{self.domain}/?{self.readcode}","Accept-Encoding":"gzip, deflate","Accept-Language":"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"}
return True
else:
print("❌️未获取到阅读链接")
return False
else:
print(f"❌️未获取到阅读链接[{r}]")
return False
def read(self):
url=f"http://{self.domain}/index/index/get_article.html"
url2=f"http://{self.domain}/index/index/auth_record.html"
cookie={"thinkphp_show_page_trace":"0|0"}
while True:
data={'code':self.readcode,'uid':self.uid}
r=requests.post(url,headers=self.readh,data=data,cookies=cookie).json()
if r['code']==1:
self.acturl=r["data"]["info"]["link2"]
rid=int(r['data']['info']['rid'])
print(f"🎉获取文章成功: [{r['msg']}]")
if 'addtime' not in r['data']['info']:
print("遇到检测文章 推送ing...")
self.push()
time.sleep(random.randint(18,28))
else:
time.sleep(random.randint(9,18))
else:
print(f"❌️获取文章失败: [{r}]")
break
data={'rid':rid,'time_is_gou':1}
r=requests.post(url2,headers=self.readh,data=data,cookies=cookie).json()
if r['code']==1:
print(f"🎉第[{r['txt']}]篇文章阅读成功")
else:
print(f"❌️阅读文章失败: [{r['msg']}]")
if '完成' in r['msg']:
url=f"http://{self.domain}/index/index/read_result.html"
data={'code':self.readcode}
r=requests.post(url,headers=self.readh,data=data,cookies=cookie).json()
if r['code']==1:
print(f"🔔结束阅读成功: [{r['msg']}]")
else:
print(f"❌️结束阅读失败: [{r}]")
break
time.sleep(random.randint(2,5))
def userinfo(self):
url='http://40417611257.sx.shuxiangby.cn/index/mob/index.html'
r=requests.get(url,headers=self.headers2,cookies=self.cookie)
if r.status_code==200:
match=re.search(r'(?<=可用积分:)\d+',r.text)
if match:
points=int(match.group())
print(f"🔔当前账号剩余积分:[{points}]=[{points/10000}]元💵")
else:
print("❌️没有获取到积分❌️")
def main(self):
if not self.getreadurl():
return
time.sleep(random.randint(3,5))
self.read()
time.sleep(random.randint(3,5))
print("======================================")
self.userinfo()
if __name__=='__main__':
appToken=''
topicIds=''
if not appToken or not topicIds:
appToken=os.getenv("yuanshen_apptoken")
topicIds=os.getenv("yuanshen_topicid")
if not appToken or not topicIds:
print("请先配置appToken和topicIds")
exit()
env()