mirror of
https://github.com/xingsu1021/pthelper.git
synced 2026-10-31 20:53:49 +08:00
修正hdsky,新增手动签到
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# pull official base image
|
||||
FROM a76yyyy/ddddocr:latest
|
||||
FROM python:3.9-alpine
|
||||
|
||||
# set environment variables
|
||||
ENV PYTHONDONTWRITEBYTECODE 1
|
||||
@@ -10,13 +10,20 @@ ENV APP_HOME=/home/data/www
|
||||
RUN mkdir -p $APP_HOME
|
||||
WORKDIR $APP_HOME
|
||||
|
||||
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && apk update
|
||||
RUN apk add --update-cache nginx tzdata && \
|
||||
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && apk del tzdata && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
COPY requirements_alpine.txt requirements.txt
|
||||
COPY requirements.txt .
|
||||
|
||||
#将需要的包体全部打包成直接安装的包whl
|
||||
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/
|
||||
|
||||
COPY conf/nginx.conf /etc/nginx/nginx.conf
|
||||
COPY conf/vhost.conf /etc/nginx/conf.d/vhost.conf
|
||||
COPY conf/supervisord.conf /etc/supervisord.conf
|
||||
|
||||
COPY start.sh /usr/local/bin/start.sh
|
||||
RUN chmod +x /usr/local/bin/start.sh
|
||||
|
||||
|
||||
43
Dockerfile.alpine.old
Normal file
43
Dockerfile.alpine.old
Normal file
@@ -0,0 +1,43 @@
|
||||
# pull official base image
|
||||
FROM a76yyyy/ddddocr:latest
|
||||
|
||||
# set environment variables
|
||||
ENV PYTHONDONTWRITEBYTECODE 1
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
|
||||
# create the appropriate directories
|
||||
ENV APP_HOME=/home/data/www
|
||||
RUN mkdir -p $APP_HOME
|
||||
WORKDIR $APP_HOME
|
||||
|
||||
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
|
||||
COPY requirements_alpine.txt requirements.txt
|
||||
|
||||
#将需要的包体全部打包成直接安装的包whl
|
||||
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/
|
||||
|
||||
COPY start.sh /usr/local/bin/start.sh
|
||||
RUN chmod +x /usr/local/bin/start.sh
|
||||
|
||||
# copy project
|
||||
COPY . $APP_HOME
|
||||
|
||||
RUN ln -s /home/data/www/db /db && \
|
||||
ln -s /home/data/www/logs /logs && \
|
||||
ln -s /home/data/www/backups /backups && \
|
||||
rm -rf conf && \
|
||||
rm -rf docker-compose.yml && \
|
||||
rm -rf Dockerfile && \
|
||||
rm -rf README.md && \
|
||||
rm -rf requirements.txt && \
|
||||
rm -rf db/* logs/* backups/* \
|
||||
rm -rf .git*
|
||||
|
||||
EXPOSE 80
|
||||
#apt-get安装路径
|
||||
#CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
|
||||
#pip安装路径
|
||||
#CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf"]
|
||||
|
||||
CMD ["/usr/local/bin/start.sh"]
|
||||
@@ -50,7 +50,10 @@ def signIngress(site_name, site_name_cn, site_url, site_cookie):
|
||||
elif site_name == 'open':
|
||||
flag, data = opencd(site_name, site_name_cn, site_url, site_cookie)
|
||||
elif site_name == 'hdsky':
|
||||
flag, data = hdsky(site_name, site_name_cn, site_url, site_cookie)
|
||||
try:
|
||||
flag, data = hdsky(site_name, site_name_cn, site_url, site_cookie)
|
||||
except:
|
||||
return False,'数据异常'
|
||||
elif site_name == 'haidan':
|
||||
flag, data = haidan(site_name, site_name_cn, site_url, site_cookie)
|
||||
elif site_name == 'ptsbao':
|
||||
@@ -963,14 +966,13 @@ def opencd(site_name, site_name_cn, site_url, site_cookie):
|
||||
|
||||
logger.info('--------------%s开始签到----------------' % site_name)
|
||||
|
||||
status = False
|
||||
ocr = ddddocr.DdddOcr(show_ad=False,old=True)
|
||||
try:
|
||||
#验证码签到执行3次验证
|
||||
for i in range(3):
|
||||
#验证成功退出
|
||||
if status or i > 2:
|
||||
break
|
||||
if i > 2:
|
||||
return False, "%s(%s) 错误:连续3次验证码失败" % (site_name,site_name_cn)
|
||||
|
||||
response = requests.get("https://open.cd/plugin_sign-in.php", headers=headers, timeout=10)
|
||||
if response.status_code == 200:
|
||||
@@ -1009,11 +1011,10 @@ def opencd(site_name, site_name_cn, site_url, site_cookie):
|
||||
signindays = result['signindays']
|
||||
integral = result['integral']
|
||||
msg = "%s(%s) 连续签到%s,本次获得%s" % (site_name,site_name_cn, signindays,integral)
|
||||
status = True
|
||||
return True, msg
|
||||
else:
|
||||
msg = "%s(%s) 签到失败:%s" % (site_name,site_name_cn, result['msg'])
|
||||
if status or i > 2:
|
||||
if i > 2:
|
||||
return False, msg
|
||||
|
||||
else:
|
||||
@@ -1054,16 +1055,18 @@ def hdsky(site_name, site_name_cn, site_url, site_cookie):
|
||||
image_code_name = os.path.join(settings.TMP_LOG_DIR,'hdsky_code.png')
|
||||
|
||||
logger.info('--------------%s开始签到----------------' % site_name)
|
||||
status = False
|
||||
|
||||
ocr = ddddocr.DdddOcr(show_ad=False,old=True)
|
||||
try:
|
||||
#验证码签到执行3次验证
|
||||
for i in range(3):
|
||||
#验证成功退出
|
||||
if status or i > 2:
|
||||
break
|
||||
if i > 2:
|
||||
print('i--------->',i)
|
||||
return False, "%s(%s) 错误:连续3次验证码失败" % (site_name,site_name_cn)
|
||||
|
||||
response = requests.post(sign_url, headers=headers, data=data, timeout=10)
|
||||
logger.info(response.text)
|
||||
if response.status_code == 200:
|
||||
result = json.loads(response.text)
|
||||
if result['success']:
|
||||
@@ -1085,22 +1088,31 @@ def hdsky(site_name, site_name_cn, site_url, site_cookie):
|
||||
'imagestring': data_ocr
|
||||
}
|
||||
response = requests.post("https://hdsky.me/showup.php", headers=headers, data=data, timeout=10)
|
||||
logger.info(response.text)
|
||||
try:
|
||||
result = json.loads(response.text)
|
||||
|
||||
if result['success']:
|
||||
msg = "%s(%s) 连续签到%s" % (site_name,site_name_cn, result['message'])
|
||||
status = True
|
||||
return True, msg
|
||||
else:
|
||||
if 'date_unmatch' == result['message']:
|
||||
msg = "%s(%s) 您今天已经签到过了,请勿重复签到" % (site_name,site_name_cn)
|
||||
status = True
|
||||
return True, msg
|
||||
#false的情况存在无message
|
||||
if 'message' in result:
|
||||
if 'date_unmatch' == result['message']:
|
||||
msg = "%s(%s) 您今天已经签到过了,请勿重复签到" % (site_name,site_name_cn)
|
||||
return True, msg
|
||||
else:
|
||||
#invalid_imagehash说明数据验证码错误
|
||||
msg = "%s(%s) 错误:%s" % (site_name,site_name_cn, result['message'])
|
||||
|
||||
#超过2次退出
|
||||
if i > 2:
|
||||
return False,msg
|
||||
else:
|
||||
#invalid_imagehash说明数据验证码错误
|
||||
msg = "%s(%s) 错误:%s" % (site_name,site_name_cn, result['message'])
|
||||
if status or i > 2:
|
||||
return False,msg
|
||||
#无消息目前确认为已经签到,其它后续在确认
|
||||
msg = "%s(%s) 您今天已经签到过了,请勿重复签到" % (site_name,site_name_cn)
|
||||
return True, msg
|
||||
|
||||
except:
|
||||
msg = "%s(%s) 登录网站失败,cookie已经失效" % (site_name,site_name_cn)
|
||||
return False, msg
|
||||
|
||||
@@ -14,6 +14,7 @@ urlpatterns = [
|
||||
path('backup', views_request.backup),
|
||||
#补签
|
||||
path('signagain', views_request.signAgain),
|
||||
path('signcheck', views_request.signCheck),
|
||||
|
||||
]
|
||||
|
||||
|
||||
@@ -110,3 +110,39 @@ def signAgain(request):
|
||||
response_data={"code":0,"msg":data }
|
||||
|
||||
return JsonResponse(response_data)
|
||||
|
||||
#==================
|
||||
@login_required
|
||||
def signCheck(request):
|
||||
"""
|
||||
校验
|
||||
"""
|
||||
if request.method == "POST":
|
||||
action = request.POST.get('action')
|
||||
_id = request.POST.get('id','')
|
||||
|
||||
if action != 'check' or _id == "":
|
||||
response_data={"code":0,"msg":"未知操作" }
|
||||
|
||||
return JsonResponse(response_data)
|
||||
|
||||
#获取配置的站点信息
|
||||
site_info = SiteInfo.objects.get(id=_id)
|
||||
|
||||
site_name = site_info.siteconfig_name
|
||||
site_cookie = site_info.cookie
|
||||
#获取站点配置信息
|
||||
site_config = SiteConfig.objects.get(name=site_name)
|
||||
site_url = site_config.index_url
|
||||
site_name_cn = site_config.name_cn
|
||||
|
||||
#统一签到入口
|
||||
flag, data = signIngress(site_name, site_name_cn, site_url, site_cookie)
|
||||
|
||||
#print(site_name,data)
|
||||
if flag:
|
||||
response_data={"code":1,"msg":data }
|
||||
else:
|
||||
response_data={"code":0,"msg":data }
|
||||
|
||||
return JsonResponse(response_data)
|
||||
@@ -46,13 +46,14 @@ def sign(crontab_id):
|
||||
#'cookie': site_cookie
|
||||
#}
|
||||
#统一签到入口
|
||||
flag, data = signIngress(site_name, site_name_cn, site_url, site_cookie)
|
||||
flag, data = signIngress(site_name, site_name_cn, site_url, site_cookie)
|
||||
|
||||
#print(site_name,data)
|
||||
try:
|
||||
Log.objects.create(name = '签到',type_id = 1000, crontab_id = crontab_id, site_name=site_name, message = data, status = flag)
|
||||
except:
|
||||
logger.error("%s(%s)数据返回出错" % (site_name, site_name_cn))
|
||||
#防止返回数据错误导致异常退出
|
||||
continue
|
||||
|
||||
send_data.append(data)
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
<script type="text/html" id="siteinfoTableBar">
|
||||
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="checkSign">验证和签到</a>
|
||||
</script>
|
||||
|
||||
|
||||
@@ -112,7 +113,35 @@
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}else if(layEvent === 'checkSign'){
|
||||
|
||||
//var csrftoken = getCookie('csrftoken');
|
||||
layer.confirm('确定校验此配置 ' + data.siteconfig_name + '?',{icon: 0, title: '提示', shadeClose: true},
|
||||
function (i) {
|
||||
layer.close(i);
|
||||
layer.load(2);
|
||||
$.ajax({
|
||||
url : "common/signcheck",
|
||||
type: 'POST',
|
||||
dataType : "json",
|
||||
data: {'id':data.id, 'action':'check',csrfmiddlewaretoken: '{{ csrf_token }}' },
|
||||
// beforeSend: function(request) {
|
||||
// //django需要csrf验证,Forbidden (CSRF cookie not set.):
|
||||
// request.setRequestHeader("X-CSRFToken", csrftoken);
|
||||
// },
|
||||
success : function(d) {
|
||||
layer.closeAll('loading');
|
||||
if (d.code == 1) {
|
||||
table.reload('siteinfoTable', {});
|
||||
layer.msg(d.msg, {icon: 1});
|
||||
} else {
|
||||
layer.msg(d.msg, {icon: 2});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//显示表单弹窗
|
||||
|
||||
Reference in New Issue
Block a user