未验证 提交 bdbf3bd0 编写于 作者: Z Zain 提交者: GitHub

Merge pull request #25 from Daphel/develop

优化推送
#coding:utf-8 #coding:utf-8
''' '''
@author: ZainCheung @author: ZainCheung
@LastEditors: ZainCheung @LastEditors: Daphel
@description:网易云音乐全自动每日打卡云函数版 @description:网易云音乐全自动每日打卡云函数版
@Date: 2020-06-25 14:28:48 @Date: 2020-06-25 14:28:48
@LastEditTime: 2020-06-26 17:38:18 @LastEditTime: 2020-08-20 10:16:15
''' '''
from configparser import ConfigParser from configparser import ConfigParser
from threading import Timer from threading import Timer
...@@ -15,6 +15,7 @@ import datetime ...@@ -15,6 +15,7 @@ import datetime
import time import time
import json import json
import logging import logging
import math
logger = logging.getLogger() logger = logging.getLogger()
grade = [10,40,70,130,200,400,1000,3000,8000,20000] grade = [10,40,70,130,200,400,1000,3000,8000,20000]
...@@ -41,7 +42,7 @@ class Task(object): ...@@ -41,7 +42,7 @@ class Task(object):
return response return response
''' '''
''' '''
def login(self): def login(self):
data = {"uin":self.uin,"pwd":self.pwd,"r":random.random()} data = {"uin":self.uin,"pwd":self.pwd,"r":random.random()}
...@@ -56,10 +57,9 @@ class Task(object): ...@@ -56,10 +57,9 @@ class Task(object):
if code==200: if code==200:
self.error = '' self.error = ''
else: else:
self.error = '登失败,请检查账号' self.error = '登失败,请检查账号'
self.cookies = response.cookies.get_dict() self.cookies = response.cookies.get_dict()
self.log('登陆成功') self.log('登录成功')
logger.info("登陆成功")
''' '''
每日签到 每日签到
...@@ -70,10 +70,8 @@ class Task(object): ...@@ -70,10 +70,8 @@ class Task(object):
data = json.loads(response.text) data = json.loads(response.text)
if data['code'] == 200: if data['code'] == 200:
self.log('签到成功') self.log('签到成功')
logger.info('签到成功')
else: else:
self.log('重复签到') self.log('重复签到')
logger.info('重复签到')
''' '''
每日打卡300首歌 每日打卡300首歌
...@@ -94,7 +92,6 @@ class Task(object): ...@@ -94,7 +92,6 @@ class Task(object):
self.level = data['level'] self.level = data['level']
self.listenSongs = data['listenSongs'] self.listenSongs = data['listenSongs']
self.log('获取用户详情成功') self.log('获取用户详情成功')
logger.info('获取用户详情成功')
''' '''
Server推送 Server推送
...@@ -108,10 +105,8 @@ class Task(object): ...@@ -108,10 +105,8 @@ class Task(object):
data = json.loads(response.text) data = json.loads(response.text)
if data['errno'] == 0: if data['errno'] == 0:
self.log('用户:' + self.name + ' Server酱推送成功') self.log('用户:' + self.name + ' Server酱推送成功')
logger.info('用户:' + self.name + ' Server酱推送成功')
else: else:
self.log('用户:' + self.name + ' Server酱推送失败,请检查sckey是否正确') self.log('用户:' + self.name + ' Server酱推送失败,请检查sckey是否正确')
logger.info('用户:' + self.name + ' Server酱推送失败,请检查sckey是否正确')
''' '''
自定义要推送到微信的内容 自定义要推送到微信的内容
...@@ -130,26 +125,33 @@ class Task(object): ...@@ -130,26 +125,33 @@ class Task(object):
self.tip = '还需听歌' + str(count-self.listenSongs) + '首即可升级' self.tip = '还需听歌' + str(count-self.listenSongs) + '首即可升级'
break break
else: else:
self.tip = '你已经听够20000首歌曲,如果登天数达到800天即可满级' self.tip = '你已经听够20000首歌曲,如果登天数达到800天即可满级'
else: else:
self.tip = '恭喜你已经满级!' self.tip = '恭喜你已经满级!'
if self.error == '': if self.error == '':
state = '目前已完成签到,300百首歌也已听完' state = ("- 目前已完成签到\n"
self.title = '网易云听歌任务已完成' "- 今日共打卡" + str(self.dakanum) + "次\n"
"- 今日共播放" + str(self.dakaSongs) + "首歌\n"
"- 还需要打卡" + str(self.day) +"天")
self.title = ("网易云今日打卡" + str(self.dakaSongs) + "首,已播放" + str(self.listenSongs) + "首")
else: else:
state = self.error state = self.error
self.title = '网易云听歌任务出现问题!' self.title = '网易云听歌任务出现问题!'
self.content = ("> tip:等级数据每天下午2点更新 \n\n" self.content = (
"------\n" "------\n"
"| 用户名 | " + str(self.name) + " |\n" "#### 账户信息\n"
"| -------- | :----------------: |\n" "- 用户名称:" + str(self.name) + "\n"
"| 当前等级 | " + str(self.level) + "级 |\n" "- 当前等级:" + str(self.level) + "级\n"
"| 累计播放 | " + str(self.listenSongs) + "首 |\n" "- 累计播放:" + str(self.listenSongs) + "首\n"
"| 升级提示 | " + self.tip + " |\n" "- 升级提示:" + self.tip + "\n\n"
"------\n" "------\n"
"### 任务状态\n" + str(state) + "\n\n" "#### 任务状态\n" + str(state) + "\n\n"
"### 考研倒计时\n距考研还有" + str(date) + "天,主人要加油学习啊\n" "------\n"
"### 今日一句\n" + one + "\n\n") "#### 打卡日志\n" + self.dakaSongs_list + "\n\n"
"------\n"
"#### 考研倒计时\n- 距考研还有" + str(date) + "天,主人要加油学习啊!\n\n"
"------\n"
"#### 今日一句\n- " + one + "\n\n")
''' '''
打印日志 打印日志
...@@ -157,28 +159,43 @@ class Task(object): ...@@ -157,28 +159,43 @@ class Task(object):
def log(self, text): def log(self, text):
time_stamp = datetime.datetime.now() time_stamp = datetime.datetime.now()
print(time_stamp.strftime('%Y.%m.%d-%H:%M:%S') + ' ' + str(text)) print(time_stamp.strftime('%Y.%m.%d-%H:%M:%S') + ' ' + str(text))
self.time =time_stamp.strftime('%H:%M:%S')
self.list.append("- [" + self.time + "] " + str(text) + "\n\n")
''' '''
开始执行 开始执行
''' '''
def start(self): def start(self):
try: try:
self.list = []
self.list.append("- 初始化完成\n\n")
self.login() self.login()
self.sign() self.sign()
self.detail() self.detail()
for i in range(1,3): counter = self.listenSongs
for i in range(1,10):
self.daka() self.daka()
self.log('用户:' + self.name + ' 第' + str(i) + '次打卡成功,即将休眠30秒') #self.log('用户:' + self.name + ' 第' + str(i) + '次打卡成功,即将休眠10秒')
logger.info('用户:' + self.name + ' 第' + str(i) + '次打卡成功,即将休眠30秒') self.log('第' + str(i) + '次打卡成功,即将休眠10秒')
time.sleep(10) time.sleep(10)
self.dakanum = i
self.detail()
self.dakaSongs = self.listenSongs - counter
self.log('今日已打卡播放' + str(self.dakaSongs) + '首')
if self.dakaSongs == 300:
break
if self.listenSongs >= 20000:
self.day = 0
else:
self.day = math.ceil((20000 - self.listenSongs)/300)
self.list.append("- 打卡结束,消息推送\n\n")
self.dakaSongs_list = ''.join(self.list)
self.server() self.server()
except: except:
self.log('用户任务执行中断,请检查账号密码是否正确') self.log('用户任务执行中断,请检查账号密码是否正确')
logger.error('用户任务执行中断,请检查账号密码是否正确========================================')
else: else:
self.log('用户:' + self.name + ' 今日任务已完成') self.log('用户:' + self.name + ' 今日任务已完成')
logger.info('用户:' + self.name + ' 今日任务已完成========================================')
''' '''
初始化:读取配置,配置文件为init.config 初始化:读取配置,配置文件为init.config
...@@ -246,13 +263,13 @@ def taskPool(): ...@@ -246,13 +263,13 @@ def taskPool():
logger.info('多人开关已打开,即将执行进行多人任务') logger.info('多人开关已打开,即将执行进行多人任务')
account = loadJson("account.json") account = loadJson("account.json")
for man in account: for man in account:
logger.info('账号: ' + man['account'] + ' 开始执行========================================') logger.info('账号: ' + man['account'] + ' 开始执行\n========================================')
task = Task(man['account'], man['password'], man['sckey']) task = Task(man['account'], man['password'], man['sckey'])
task.start() task.start()
time.sleep(10) time.sleep(10)
logger.info('所有账号已全部完成任务,服务进入休眠中,等待明天重新启动') logger.info('所有账号已全部完成任务,服务进入休眠中,等待明天重新启动')
else : else :
logger.info('账号: ' + config['uin'] + ' 开始执行========================================') logger.info('账号: ' + config['uin'] + ' 开始执行\n========================================')
if config['md5Switch'] is True: if config['md5Switch'] is True:
logger.info('MD5开关已打开,即将开始为你加密,密码不会上传至服务器,请知悉') logger.info('MD5开关已打开,即将开始为你加密,密码不会上传至服务器,请知悉')
config['pwd'] = md5(config['pwd']) config['pwd'] = md5(config['pwd'])
......
#coding:utf-8 #coding:utf-8
''' '''
@author: ZainCheung @author: ZainCheung
@LastEditors: ZainCheung @LastEditors: Daphel
@description:网易云音乐全自动每日打卡300首歌升级账号等级,使用前请先到init.config文件配置 @description:网易云音乐全自动每日打卡300首歌升级账号等级,使用前请先到init.config文件配置
@Date: 2020-06-25 14:28:48 @Date: 2020-06-25 14:28:48
@LastEditTime: 2020-06-26 17:38:18 @LastEditTime: 2020-08-20 09:50:18
''' '''
from configparser import ConfigParser from configparser import ConfigParser
from threading import Timer from threading import Timer
...@@ -15,6 +15,7 @@ import datetime ...@@ -15,6 +15,7 @@ import datetime
import time import time
import json import json
import logging import logging
import math
logFile = open("run.log", encoding="utf-8", mode="a") logFile = open("run.log", encoding="utf-8", mode="a")
logging.basicConfig(stream=logFile, format="%(asctime)s %(name)s:%(levelname)s:%(message)s", datefmt="%Y-%m-%d %H:%M:%S", level=logging.INFO) logging.basicConfig(stream=logFile, format="%(asctime)s %(name)s:%(levelname)s:%(message)s", datefmt="%Y-%m-%d %H:%M:%S", level=logging.INFO)
...@@ -42,7 +43,7 @@ class Task(object): ...@@ -42,7 +43,7 @@ class Task(object):
return response return response
''' '''
''' '''
def login(self): def login(self):
data = {"uin":self.uin,"pwd":self.pwd,"r":random.random()} data = {"uin":self.uin,"pwd":self.pwd,"r":random.random()}
...@@ -57,10 +58,10 @@ class Task(object): ...@@ -57,10 +58,10 @@ class Task(object):
if code==200: if code==200:
self.error = '' self.error = ''
else: else:
self.error = '登失败,请检查账号' self.error = '登失败,请检查账号'
self.cookies = response.cookies.get_dict() self.cookies = response.cookies.get_dict()
self.log('登成功') self.log('登成功')
logging.info("登成功") logging.info("登成功")
''' '''
每日签到 每日签到
...@@ -131,26 +132,35 @@ class Task(object): ...@@ -131,26 +132,35 @@ class Task(object):
self.tip = '还需听歌' + str(count-self.listenSongs) + '首即可升级' self.tip = '还需听歌' + str(count-self.listenSongs) + '首即可升级'
break break
else: else:
self.tip = '你已经听够20000首歌曲,如果登天数达到800天即可满级' self.tip = '你已经听够20000首歌曲,如果登天数达到800天即可满级'
else: else:
self.tip = '恭喜你已经满级!' self.tip = '恭喜你已经满级!'
if self.error == '': if self.error == '':
state = '目前已完成签到,300百首歌也已听完' state = ("- 目前已完成签到\n"
self.title = '网易云听歌任务已完成' "- 今日共打卡" + str(self.dakanum) + "次\n"
"- 今日共播放" + str(self.dakaSongs) + "首歌\n"
"- 还需要打卡" + str(self.day) +"天")
self.title = ("网易云今日打卡" + str(self.dakaSongs) + "首,已播放" + str(self.listenSongs) + "首")
else: else:
state = self.error state = self.error
self.title = '网易云听歌任务出现问题!' self.title = '网易云听歌任务出现问题!'
self.content = ("> tip:等级数据每天下午2点更新 \n\n" self.content = (
"------\n" "------\n"
"| 用户名 | " + str(self.name) + " |\n" "#### 账户信息\n"
"| -------- | :----------------: |\n" "- 用户名称:" + str(self.name) + "\n"
"| 当前等级 | " + str(self.level) + "级 |\n" "- 当前等级:" + str(self.level) + "级\n"
"| 累计播放 | " + str(self.listenSongs) + "首 |\n" "- 累计播放:" + str(self.listenSongs) + "首\n"
"| 升级提示 | " + self.tip + " |\n" "- 升级提示:" + self.tip + "\n\n"
"------\n" "------\n"
"### 任务状态\n" + str(state) + "\n\n" "#### 任务状态\n" + str(state) + "\n\n"
"### 考研倒计时\n距考研还有" + str(date) + "天,主人要加油学习啊\n" "------\n"
"### 今日一句\n" + one + "\n\n") "#### 注意事项\n- 网易云音乐等级数据每天下午2点更新 \n\n"
"------\n"
"#### 打卡日志\n" + self.dakaSongs_list + "\n\n"
"------\n"
"#### 考研倒计时\n- 距考研还有" + str(date) + "天,主人要加油学习啊!\n\n"
"------\n"
"#### 今日一句\n- " + one + "\n\n")
''' '''
打印日志 打印日志
...@@ -158,20 +168,42 @@ class Task(object): ...@@ -158,20 +168,42 @@ class Task(object):
def log(self, text): def log(self, text):
time_stamp = datetime.datetime.now() time_stamp = datetime.datetime.now()
print(time_stamp.strftime('%Y.%m.%d-%H:%M:%S') + ' ' + str(text)) print(time_stamp.strftime('%Y.%m.%d-%H:%M:%S') + ' ' + str(text))
self.time =time_stamp.strftime('%H:%M:%S')
self.list.append("- [" + self.time + "] " + str(text) + "\n\n")
''' '''
开始执行 开始执行
''' '''
def start(self): def start(self):
try: try:
self.list = []
self.list.append("- 初始化完成\n\n")
self.login() self.login()
self.sign() self.sign()
self.detail() self.detail()
for i in range(1,4): counter = self.listenSongs
self.list.append("- 开始打卡\n\n")
for i in range(1,10):
self.daka() self.daka()
self.log('用户:' + self.name + ' 第' + str(i) + '次打卡成功,即将休眠30秒') # self.log('用户:' + self.name + ' 第' + str(i) + '次打卡成功,即将休眠30秒')
self.log('第' + str(i) + '次打卡成功')
logging.info('用户:' + self.name + ' 第' + str(i) + '次打卡成功,即将休眠30秒') logging.info('用户:' + self.name + ' 第' + str(i) + '次打卡成功,即将休眠30秒')
time.sleep(30) time.sleep(10)
self.dakanum =i
self.detail()
self.dakaSongs = self.listenSongs - counter
self.log('今日已打卡' + str(self.dakaSongs) + '首')
if self.dakaSongs == 300:
break
if self.listenSongs >= 20000:
self.day = 0
else:
self.day = math.ceil((20000 - self.listenSongs)/300)
self.list.append("- 打卡结束\n\n")
self.list.append("- 消息推送\n\n")
self.dakaSongs_list = ''.join(self.list)
self.server() self.server()
except: except:
self.log('用户任务执行中断,请检查账号密码是否正确') self.log('用户任务执行中断,请检查账号密码是否正确')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册