diff --git a/output.py b/output.py index b01913366..8b1378917 100644 --- a/output.py +++ b/output.py @@ -1,150 +1 @@ -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() +