From 54a1bcd6e3567e4fbedfe434e639754d35455951 Mon Sep 17 00:00:00 2001 From: xiaofei Date: Sun, 20 Mar 2022 17:01:25 +0800 Subject: [PATCH 1/2] update --- activity/unicom/unicomDxlottery.py | 66 ++++++++++ activity/unicom/unicomWomail.py | 202 +++++++++++++++++++++++++++++ 2 files changed, 268 insertions(+) create mode 100644 activity/unicom/unicomDxlottery.py create mode 100644 activity/unicom/unicomWomail.py diff --git a/activity/unicom/unicomDxlottery.py b/activity/unicom/unicomDxlottery.py new file mode 100644 index 0000000..c8ce31b --- /dev/null +++ b/activity/unicom/unicomDxlottery.py @@ -0,0 +1,66 @@ +# -*- coding: utf8 -*- +# import json +import requests +from random import randint, choice +from utils import jsonencode as json +from utils.toutiao_reward import TouTiao +from utils.unicomLogin import UnicomClient +from utils.msmds import encrypt_mobile + +class Dxlottery(UnicomClient): + def __init__(self, mobile, password): + super(Dxlottery, self).__init__(mobile, password) + self.session.headers = requests.structures.CaseInsensitiveDict({ + "Accept": "application/json, text/javascript, */*; q=0.01", + "Origin": "https://img.client.10010.com", + "User-Agent": self.useragent, + "Content-Type": "application/x-www-form-urlencoded", + "Referer": "https://img.client.10010.com/", + "X-Requested-With": "com.sinovatech.unicom.ui", + }) + self.toutiao = TouTiao(mobile) + + def winterTwoStatus(self): + status = True + url = 'https://m.client.10010.com/welfare-mall-front/mobile/winterTwo/winterTwoShop/v1' + resp = self.session.post(url=url) + data = resp.json() + print(json.dumps(data)) + if data['resdata']['code'] != '0000': + print('获取东奥积分活动状态失败', data['resdata']['desc']) + else: + status = True + print('获取东奥积分活动状态成功 已连续领取%s天' %(data['resdata']['signDays'])) + return status + + def winterTwoGetIntegral(self): + url = 'https://m.client.10010.com/welfare-mall-front/mobile/winterTwo/getIntegral/v1' + resp = self.session.post(url=url) + data = resp.json() + print(json.dumps(data)) + if data['resdata']['code'] != '0000': + print('冬奥积分活动领取失败', data['resdata']['desc']) + else: + self.recordLog('冬奥积分活动领取成功') + print('冬奥积分活动领取成功') + + def dxIntegralEveryDay(self): + url = 'https://m.client.10010.com/welfare-mall-front/mobile/integral/gettheintegral/v1' + resp = self.session.post(url=url) + data = resp.json() + print(json.dumps(data)) + if data['code'] != '0': + print('获取东奥积分活动状态失败', data['msg']) + else: + self.recordLog('每日定向积分领取成功') + print('每日定向积分领取成功') + + def run(self): + if not self.winterTwoStatus(): + self.winterTwoGetIntegral() + self.winterTwoStatus() + self.flushTime(5) + self.dxIntegralEveryDay() + +if __name__ == '__main__': + pass diff --git a/activity/unicom/unicomWomail.py b/activity/unicom/unicomWomail.py new file mode 100644 index 0000000..403a600 --- /dev/null +++ b/activity/unicom/unicomWomail.py @@ -0,0 +1,202 @@ +# -*- coding: utf8 -*- +# import json +import re +import requests +from random import randint, randrange +from utils import jsonencode as json +from utils.toutiao_reward import TouTiao +from utils.unicomLogin import UnicomClient +from utils.jifen import encrypt_req_params, encrypt_free_login_params +from urllib import parse + + +class DailyWomail(UnicomClient): + def __init__(self, mobile, password): + super(DailyWomail, self).__init__(mobile, password) + self.session.headers = requests.structures.CaseInsensitiveDict({ + "user-agent": self.useragent, + "X-Requested-With": "com.sinovatech.unicom.ui" + }) + self.toutiao = TouTiao(mobile) + + def openPlatLineNew(self, to_url): + info = None + url = f'https://m.client.10010.com/mobileService/openPlatform/openPlatLineNew.htm?to_url={to_url}' + headers = { + "Origin": "https://img.client.10010.com", + } + resp = self.session.get( + url=url, headers=headers, allow_redirects=False) + # print(resp.status_code) + # print(resp.headers) + if not resp.status_code == 302: + return info + url = resp.headers['Location'] + resp = self.session.get( + url=url, headers=headers, allow_redirects=False) + # print(resp.status_code) + # print(resp.headers) + if not resp.status_code == 302: + return info + + url = resp.headers['Location'] + url = parse.unquote(url) + # 'https://womail.richpush.cn/cn/lottery/wap/index.html?mobile=khVmIRIT8EA6JncSqolrSg==&redirectUrl=https://mail.wo.cn/coremail/cmcu_addon/sso_redirect.jsp?sid=HAIVeoSSLYYgqXICdExfoeXzHdYDxDkh&url=https://mail.wo.cn/coremail/hxphone/sso.html#/frame/folder/1?sid=HAIVeoSSLYYgqXICdExfoeXzHdYDxDkh' + p = '^(?P[^?]+)\?mobile=(?P.+)&redirectUrl=(?P.+)&url=(?P.+)$' + m = re.match(p, url) + if not m: + return info + info = m.groupdict() + resp = self.session.get( + url=url, headers=headers, allow_redirects=False) + print(resp.status_code) + print(resp.headers) + info.update({'url': url}) + return info + + def loginCallback(self, info): + headers = { + "referer": info['url'], + } + data = {'mobile': info['mobile']} + data = parse.urlencode(data) + url = f'https://womail.richpush.cn/cn/lottery/login/callback.do?{data}' + resp = self.session.get( + url=url, data=data, headers=headers) + # print(resp.status_code) + # print(resp.headers) + print(resp.content) + + def userInfo(self, info): + headers = { + "referer": info['url'], + } + url = f'https://womail.richpush.cn/cn/lottery/login/userInfo.do' + resp = self.session.get( + url=url, headers=headers) + # print(resp.status_code) + # print(resp.headers) + data = resp.json() + print(json.dumps(data, ensure_ascii=False, indent=2)) + + def chance(self, info): + headers = { + "referer": info['url'], + } + url = f'https://womail.richpush.cn/cn/lottery/user/chance.do' + resp = self.session.get( + url=url, headers=headers) + # print(resp.status_code) + # print(resp.headers) + data = resp.json() + print(json.dumps(data, ensure_ascii=False, indent=2)) + return data['result'] + + def overtask(self, info): + headers = { + "referer": info['url'], + } + url = f'https://womail.richpush.cn/cn/lottery/user/overtask.do' + resp = self.session.get( + url=url, headers=headers) + # print(resp.status_code) + # print(resp.headers) + data = resp.json() + print(json.dumps(data, ensure_ascii=False, indent=2)) + over_tasks = [] + for task in data['result']: + over_tasks.append(task['taskName']) + return over_tasks + + def start(self, info): + headers = { + "referer": info['url'], + } + url = f'https://womail.richpush.cn/cn/lottery/user/start.do' + resp = self.session.get( + url=url, headers=headers) + # print(resp.status_code) + # print(resp.headers) + data = resp.json() + print(json.dumps(data, ensure_ascii=False, indent=2)) + return data['result'] + + def end(self, info): + headers = { + "referer": info['url'], + } + data = {'score': randrange(250, 400, 10)} + data = parse.urlencode(data) + url = f'https://womail.richpush.cn/cn/lottery/user/end.do?{data}' + resp = self.session.get( + url=url, headers=headers) + # print(resp.status_code) + # print(resp.headers) + data = resp.json() + print(json.dumps(data, ensure_ascii=False, indent=2)) + return data['result'] + + def lotteryDraw(self, info): + headers = { + "referer": info['url'], + } + url = f'https://womail.richpush.cn/cn/lottery/draw/draw.do' + resp = self.session.get( + url=url, headers=headers) + # print(resp.status_code) + # print(resp.headers) + data = resp.json() + print(json.dumps(data, ensure_ascii=False, indent=2)) + if data['result']['prizeTitle']: + prize = data['result']['prizeTitle'] + self.recordLog(f'{prize}') + + def doTask(self, info, taskname): + headers = { + "referer": info['url'], + } + data = {'taskName': taskname} + data = parse.urlencode(data) + url = f'https://womail.richpush.cn/cn/lottery/user/doTask.do?{data}' + resp = self.session.get( + url=url, headers=headers) + # print(resp.status_code) + # print(resp.headers) + data = resp.json() + print(json.dumps(data, ensure_ascii=False, indent=2)) + return data['result'] + + def run(self): + to_url = f'https://user.mail.wo.cn/cu-email/mobile/jump/1' + info = self.openPlatLineNew(to_url) + print(info) + if not info: + return + self.loginCallback(info) + self.userInfo(info) + chance = self.chance(info) + for i in range(chance): + self.start(info) + self.flushTime(randrange(25, 30)) + self.end(info) + self.flushTime(1) + self.lotteryDraw(info) + over_tasks = self.overtask(info) + for task in ["loginmail", "knowmail", "wodisk", "orderbill", "guide"]: + if task in over_tasks: + print(f'{task}已完成!') + continue + print(f'{task}进行中...') + self.doTask(info, task) + self.flushTime(randrange(3, 10)) + chance = self.chance(info) + for i in range(chance): + self.start(info) + self.flushTime(randrange(25, 30)) + self.end(info) + self.flushTime(1) + self.lotteryDraw(info) + + +if __name__ == '__main__': + pass From 4e47cc71626de729794017e7e31587e354d73548 Mon Sep 17 00:00:00 2001 From: xiaofei Date: Sun, 20 Mar 2022 17:04:19 +0800 Subject: [PATCH 2/2] update --- activity/unicom/unicomWomail.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activity/unicom/unicomWomail.py b/activity/unicom/unicomWomail.py index 403a600..fd1e07e 100644 --- a/activity/unicom/unicomWomail.py +++ b/activity/unicom/unicomWomail.py @@ -42,7 +42,7 @@ def openPlatLineNew(self, to_url): url = resp.headers['Location'] url = parse.unquote(url) # 'https://womail.richpush.cn/cn/lottery/wap/index.html?mobile=khVmIRIT8EA6JncSqolrSg==&redirectUrl=https://mail.wo.cn/coremail/cmcu_addon/sso_redirect.jsp?sid=HAIVeoSSLYYgqXICdExfoeXzHdYDxDkh&url=https://mail.wo.cn/coremail/hxphone/sso.html#/frame/folder/1?sid=HAIVeoSSLYYgqXICdExfoeXzHdYDxDkh' - p = '^(?P[^?]+)\?mobile=(?P.+)&redirectUrl=(?P.+)&url=(?P.+)$' + p = '^(?P[^?]+)\?mobile=(?P.+)&redirectUrl=(?P.+)&url=(?P.+)$' m = re.match(p, url) if not m: return info