mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-18 17:33:31 +00:00
luci-app-jd-dailybonus: Keep up to date from jerrykuku (#6296)
This commit is contained in:
parent
7daf3edcec
commit
4244e635c6
@ -1,71 +1,17 @@
|
||||
#
|
||||
# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-jd-dailybonus
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1.0.3
|
||||
PKG_RELEASE:=20210125
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/luci-app-jd-dailybonus
|
||||
SECTION:=luci
|
||||
CATEGORY:=LuCI
|
||||
SUBMENU:=3. Applications
|
||||
TITLE:=Luci for JD dailybonus Script
|
||||
PKGARCH:=all
|
||||
DEPENDS:=+node +wget +lua
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/conffiles
|
||||
/etc/config/jd-dailybonus
|
||||
endef
|
||||
|
||||
define Package/luci-app-jd-dailybonus/install
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_CONF) ./root/etc/config/jd-dailybonus $(1)/etc/config/jd-dailybonus
|
||||
LUCI_TITLE:=Luci for JD dailybonus Script
|
||||
LUCI_PKGARCH:=all
|
||||
LUCI_DEPENDS:=+node +wget +lua +libuci-lua
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./root/etc/init.d/* $(1)/etc/init.d/
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) ./root/etc/uci-defaults/* $(1)/etc/uci-defaults/
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/share/jd-dailybonus
|
||||
$(INSTALL_BIN) ./root/usr/share/jd-dailybonus/*.sh $(1)/usr/share/jd-dailybonus/
|
||||
$(INSTALL_DATA) ./root/usr/share/jd-dailybonus/*.js $(1)/usr/share/jd-dailybonus/
|
||||
$(INSTALL_DATA) ./root/usr/share/jd-dailybonus/*.lua $(1)/usr/share/jd-dailybonus/
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/share/rpcd/acl.d
|
||||
$(INSTALL_DATA) ./root/usr/share/rpcd/acl.d/* $(1)/usr/share/rpcd/acl.d
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/lib/node
|
||||
cp -pR ./root/usr/lib/node/* $(1)/usr/lib/node
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller
|
||||
$(INSTALL_DATA) ./luasrc/controller/* $(1)/usr/lib/lua/luci/controller/
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/jd-dailybonus
|
||||
$(INSTALL_DATA) ./luasrc/model/cbi/jd-dailybonus/* $(1)/usr/lib/lua/luci/model/cbi/jd-dailybonus/
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/jd-dailybonus
|
||||
$(INSTALL_DATA) ./luasrc/view/jd-dailybonus/* $(1)/usr/lib/lua/luci/view/jd-dailybonus/
|
||||
|
||||
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
|
||||
$(INSTALL_DATA) ./root/lib/upgrade/keep.d/* $(1)/lib/upgrade/keep.d/
|
||||
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,luci-app-jd-dailybonus))
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
@ -20,18 +20,11 @@ end
|
||||
|
||||
-- 执行程序
|
||||
function run()
|
||||
local e = {}
|
||||
local uci = luci.model.uci.cursor()
|
||||
local data = luci.http.formvalue()
|
||||
uci:tset('jd-dailybonus', '@global[0]', data)
|
||||
uci:commit('jd-dailybonus')
|
||||
luci.sys.call('lua /usr/share/jd-dailybonus/gen_cookieset.lua')
|
||||
luci.sys.call('/usr/share/jd-dailybonus/newapp.sh -r')
|
||||
luci.sys.call('/usr/share/jd-dailybonus/newapp.sh -a')
|
||||
e.error = 0
|
||||
|
||||
luci.http.prepare_content('application/json')
|
||||
luci.http.write_json(e)
|
||||
local running = luci.sys.call("busybox ps -w | grep JD_DailyBonus.js | grep -v grep >/dev/null") == 0
|
||||
if not running then
|
||||
luci.sys.call('/usr/share/jd-dailybonus/newapp.sh -r')
|
||||
end
|
||||
luci.http.write('')
|
||||
end
|
||||
|
||||
--检查更新
|
||||
@ -127,6 +120,9 @@ end
|
||||
|
||||
function get_log()
|
||||
local fs = require "nixio.fs"
|
||||
local log = fs.readfile("/var/log/jd_dailybonus.log") or ""
|
||||
luci.http.write(log)
|
||||
local e = {}
|
||||
e.running = luci.sys.call("busybox ps -w | grep JD_DailyBonus.js | grep -v grep >/dev/null") == 0
|
||||
e.log = fs.readfile("/var/log/jd_dailybonus.log") or ""
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
@ -1,16 +1,9 @@
|
||||
local fs = require "nixio.fs"
|
||||
|
||||
log = SimpleForm("logview")
|
||||
log.submit = false
|
||||
log.reset = false
|
||||
|
||||
-- [[ 日志显示 ]]--
|
||||
t = log:field(TextValue, "1", nil)
|
||||
t.rmempty = true
|
||||
t.rows = 30
|
||||
function t.cfgvalue()
|
||||
return fs.readfile("/var/log/jd_dailybonus.log") or ""
|
||||
end
|
||||
t.readonly="readonly"
|
||||
t = log:field(DummyValue, '', '')
|
||||
t.rawhtml = true
|
||||
t.template = 'jd-dailybonus/log'
|
||||
|
||||
return log
|
@ -1,4 +1,70 @@
|
||||
<%+cbi/valueheader%>
|
||||
<script src="https://cdn.jsdelivr.net/npm/qrcode_js@1.0.0/qrcode.min.js"></script>
|
||||
<style>
|
||||
#qrcontainer {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 5000;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: rgba(255, 255, 255, .8);
|
||||
text-align: center;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
#qrcontainer.hidden{
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#qrcontainer .qframe {
|
||||
background-color: #ffffff;
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
border: #6D8A88 1px solid;
|
||||
-webkit-box-shadow: 0px 0px 7px 3px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: 0px 0px 7px 3px rgba(0, 0, 0, 0.2);
|
||||
position: relative;
|
||||
}
|
||||
#qrcontainer .qframe #refresh_qrcode{
|
||||
width: 256px;
|
||||
height: 256px;
|
||||
position: absolute;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
left: 1rem;
|
||||
top: 1rem;
|
||||
color: #ffffff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
#qrcontainer .qframe #refresh_qrcode.hidden{
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
#qrcontainer .qframe #refresh_qrcode h3{
|
||||
font-weight: normal;
|
||||
}
|
||||
#qrcontainer .qframe #refresh_qrcode .refresh{
|
||||
display: block;
|
||||
background: #e4393c;
|
||||
width: 80px;
|
||||
height: 30px;
|
||||
margin: 0 auto;
|
||||
line-height: 30px;
|
||||
opacity: 1;
|
||||
z-index: 19;
|
||||
color: #fbfbfb;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
#qrcontainer .qframe .info {
|
||||
padding: 1rem 0 0 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<label class="cbi-value-title"><%= translate("获取Cookie") %></label>
|
||||
<div class="cbi-value-field">
|
||||
@ -10,5 +76,78 @@
|
||||
<%= translate("点击上面按钮使用京东手机app扫码获取Cookie")%>
|
||||
</div>
|
||||
</div>
|
||||
<div id="qrcontainer" class="hidden">
|
||||
<div class="qframe">
|
||||
<div id="refresh_qrcode" class="hidden">
|
||||
<div>
|
||||
<h3>二维码已失效</h3>
|
||||
<div class="refresh" onclick="get_code()">刷新</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="qrcode"></div>
|
||||
<div class="info">请使用京东手机APP扫码</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
const QRCODE_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","qrcode")%>';
|
||||
const CHECK_LOGIN_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","check_login")%>';
|
||||
|
||||
let ckid = 0;
|
||||
|
||||
//初始化二维码
|
||||
let cookieBtn = Array.prototype.slice.call(document.getElementsByClassName("cookie-button"));
|
||||
try {
|
||||
qrcode = new QRCode(document.getElementById("qrcode"),
|
||||
{
|
||||
text: "sample",
|
||||
correctLevel: QRCode.CorrectLevel.L
|
||||
});
|
||||
cookieBtn.forEach(e => {
|
||||
e.onclick = () => {
|
||||
ckid = e.getAttribute("data-rel");
|
||||
get_code();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
alert("网络离线状态无法使用二维码获取Cookie,请刷新后重试!")
|
||||
cookieBtn.forEach(e => {
|
||||
e.disabled = true;
|
||||
});
|
||||
}
|
||||
|
||||
//获取二维码
|
||||
function get_code(){
|
||||
XHR.get(QRCODE_URL, null, (x,d) => {
|
||||
document.getElementById("qrcontainer").classList.remove("hidden");
|
||||
document.getElementById("refresh_qrcode").classList.add("hidden");
|
||||
qrcode.clear();
|
||||
qrcode.makeCode(d.qrcode_url);
|
||||
checkLogin(d.check_url);
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
function checkLogin(check_url){
|
||||
let cname = ckid == 1?"cookie":"cookie2"
|
||||
XHR.poll(3, CHECK_LOGIN_URL, { check_url: check_url, id: cname }, (x, d) => {
|
||||
if (d.error == 0) {
|
||||
XHR.halt();
|
||||
XHR._q = [];
|
||||
document.getElementById("qrcontainer").classList.add("hidden");
|
||||
document.getElementById("refresh_qrcode").classList.add("hidden");
|
||||
let prefix_array = document.getElementsByClassName("cbi-input-text")[0].getAttribute("id").split(".")
|
||||
prefix_array.pop()
|
||||
let id = `${prefix_array.join(".")}.${cname}`;
|
||||
document.getElementById(id).value = d.cookie
|
||||
} else if (d.error == 21 || d.error == 261) {
|
||||
XHR.halt();
|
||||
XHR._q = [];
|
||||
document.getElementById("refresh_qrcode").classList.remove("hidden");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
<%+cbi/valuefooter%>
|
||||
|
@ -0,0 +1,17 @@
|
||||
<%+cbi/valueheader%>
|
||||
<textarea id="logview" class="cbi-input-textarea" style="width: 100%" rows="30" readonly="readonly"></textarea>
|
||||
|
||||
<script type="text/javascript">
|
||||
const LOG_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","realtime_log")%>';
|
||||
|
||||
//获取实时日志
|
||||
XHR.poll(1, LOG_URL, null, (x, d) => {
|
||||
let logview = document.getElementById("logview");
|
||||
if (!d.running) {
|
||||
XHR.halt();
|
||||
}
|
||||
logview.value = d.log;
|
||||
logview.scrollTop = logview.scrollHeight;
|
||||
});
|
||||
</script>
|
||||
<%+cbi/valuefooter%>
|
@ -1,300 +1,34 @@
|
||||
<%+cbi/valueheader%>
|
||||
<script src="https://cdn.jsdelivr.net/npm/qrcode_js@1.0.0/qrcode.min.js"></script>
|
||||
<style>
|
||||
.modals-bg {
|
||||
position: fixed;
|
||||
z-index: 999;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
transition: all 0.3s ease-in-out;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
.modals {
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
width: 60%;
|
||||
height: 500px;
|
||||
background: #172b4d;
|
||||
left: 20%;
|
||||
top: 15%;
|
||||
color: #fff;
|
||||
border-radius: 10px;
|
||||
padding: 20px;
|
||||
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
/* Firefox */
|
||||
-webkit-box-sizing: border-box;
|
||||
/* Safari */
|
||||
transition: all 0.3s ease-in-out;
|
||||
transform: scale(1);
|
||||
}
|
||||
.modals-bg.hide {
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.modals.hide {
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
transform: scale(0.5);
|
||||
}
|
||||
|
||||
|
||||
.modals h2 {
|
||||
color: #fff;
|
||||
background: transparent;
|
||||
padding: 0 !important;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.modals h3 {
|
||||
font-size: 14px;
|
||||
color: #f5365c !important;
|
||||
background: transparent;
|
||||
padding: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
#log_content3 {
|
||||
border: 0;
|
||||
width: 99%;
|
||||
height: calc(100% - 4rem);
|
||||
font-family: 'Lucida Console';
|
||||
font-size: 11px;
|
||||
background: transparent;
|
||||
color: #FFFFFF;
|
||||
outline: none;
|
||||
padding-left: 3px;
|
||||
padding-right: 22px;
|
||||
overflow: hidden;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
.cbi-value-version {
|
||||
word-wrap: break-word;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.6;
|
||||
color: #5e72e4;
|
||||
font-weight: bold;
|
||||
padding: .7rem;
|
||||
padding-left: 0;
|
||||
width: 23rem;
|
||||
float: left;
|
||||
text-align: left;
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
#qrcontainer {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 5000;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: rgba(255, 255, 255, .8);
|
||||
text-align: center;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
#qrcontainer.hidden{
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#qrcontainer .qframe {
|
||||
background-color: #ffffff;
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
border: #6D8A88 1px solid;
|
||||
-webkit-box-shadow: 0px 0px 7px 3px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: 0px 0px 7px 3px rgba(0, 0, 0, 0.2);
|
||||
position: relative;
|
||||
}
|
||||
#qrcontainer .qframe #refresh_qrcode{
|
||||
width: 256px;
|
||||
height: 256px;
|
||||
position: absolute;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
left: 1rem;
|
||||
top: 1rem;
|
||||
color: #ffffff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
#qrcontainer .qframe #refresh_qrcode.hidden{
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
#qrcontainer .qframe #refresh_qrcode h3{
|
||||
font-weight: normal;
|
||||
}
|
||||
#qrcontainer .qframe #refresh_qrcode .refresh{
|
||||
display: block;
|
||||
background: #e4393c;
|
||||
width: 80px;
|
||||
height: 30px;
|
||||
margin: 0 auto;
|
||||
line-height: 30px;
|
||||
opacity: 1;
|
||||
z-index: 19;
|
||||
color: #fbfbfb;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
#qrcontainer .qframe .info {
|
||||
padding: 1rem 0 0 0;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.modals {
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
width: 80%;
|
||||
height: 500px;
|
||||
background: #172b4d;
|
||||
left: 10%;
|
||||
top: 15%;
|
||||
color: #fff;
|
||||
border-radius: 10px;
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 700px) {
|
||||
.modals-bg {
|
||||
position: fixed;
|
||||
z-index: 100000;
|
||||
|
||||
}
|
||||
|
||||
.modals {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
<label class="cbi-value-title"><%= translate("执行") %></label>
|
||||
<div class="cbi-value-field">
|
||||
<input class="cbi-button cbi-button-reload" id="update_service" type="button" size="0"
|
||||
value="<%= translate("保存Cookie,并马上进行签到") %>">
|
||||
<input class="cbi-button cbi-button-reload" id="update_service" type="button" size="0" onclick="run()"
|
||||
value="<%= translate("手动执行签到") %>">
|
||||
</div>
|
||||
|
||||
<%+cbi/valuefooter%>
|
||||
|
||||
<%+cbi/valueheader%>
|
||||
<label class="cbi-value-title"><%= translate("更新脚本") %></label>
|
||||
<div class="cbi-value-field">
|
||||
<input class="cbi-button cbi-button-reload" id="update_script" type="button" size="0" onclick="check_version()" data-version="<%= self.version %>"
|
||||
value="<%= translate("手动检查脚本更新,当前版本:v")..self.version %>">
|
||||
</div>
|
||||
<%+cbi/valuefooter%>
|
||||
|
||||
<div id="qrcontainer" class="hidden">
|
||||
<div class="qframe">
|
||||
<div id="refresh_qrcode" class="hidden">
|
||||
<div>
|
||||
<h3>二维码已失效</h3>
|
||||
<div class="refresh" onclick="get_code()">刷新</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="qrcode"></div>
|
||||
<div class="info">请使用京东手机APP扫码</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
const SAVE_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","run")%>';
|
||||
const RUN_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","run")%>';
|
||||
const CHECK_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","check_update")%>';
|
||||
const QRCODE_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","qrcode")%>';
|
||||
const CHECK_LOGIN_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","check_login")%>';
|
||||
const UPDATE_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","update")%>';
|
||||
const LOG_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","realtime_log")%>';
|
||||
const LOG_URL = '<%=luci.dispatcher.build_url("admin", "services", "jd-dailybonus","log")%>';
|
||||
const CHECKING_TEXT = '<%= translate("正在检查是否存在新的版本 ...") %>';
|
||||
const UPDATING_TEXT = '<%= translate("正在更新脚本,请稍候 ...") %>';
|
||||
const NEW_VERSION = '<%= translate("当前已是最新版本:") %>';
|
||||
|
||||
var noChange = 0;
|
||||
var ckid = 0;
|
||||
var modal = `<div class="modals-bg hide">
|
||||
<div class="modals hide">
|
||||
<h2>签到信息</h2>
|
||||
<h3 style="margin-left:0;">服务正在执行中,请勿刷新!</h3>
|
||||
<textarea cols="63" rows="28" wrap="on" readonly="readonly" id="log_content3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
//显示并开始刷新订阅
|
||||
function update_service() {
|
||||
document.body.insertAdjacentHTML('beforeend', modal);
|
||||
document.getElementsByClassName("modals-bg")[0].classList.remove("hide");
|
||||
setTimeout(() => {
|
||||
document.getElementsByClassName("modals")[0].classList.remove("hide");
|
||||
}, 100);
|
||||
setTimeout(get_realtime_log, 500);
|
||||
}
|
||||
|
||||
function el(dom_el){
|
||||
let prefix = document.getElementById("cbi-jd-dailybonus-global").getElementsByClassName("cbi-section-node")[0].id.split("-").pop();
|
||||
return document.querySelector(`[name='cbid.jd-dailybonus.${prefix}.${dom_el}']`);
|
||||
}
|
||||
//保存订阅按钮
|
||||
document.getElementById("update_service").onclick = () => {
|
||||
if(el("cookie").value == ""){
|
||||
alert("请至少填写cookie1");
|
||||
return false;
|
||||
}
|
||||
let json = {
|
||||
auto_update: el("auto_update").checked?"1":"0",
|
||||
auto_update_time: el("auto_update").checked?el("auto_update_time").value:"0",
|
||||
auto_run: el("auto_run").checked?"1":"0",
|
||||
auto_run_time_h: el("auto_run").checked?el("auto_run_time_h").value:"0",
|
||||
auto_run_time_m: el("auto_run").checked?el("auto_run_time_m").value:"0",
|
||||
cookie: el("cookie").value,
|
||||
cookie2: el("cookie2").value,
|
||||
stop: el("stop").value,
|
||||
out: el("out").value,
|
||||
serverchan: el("serverchan").value,
|
||||
tg_token: el("tg_token").value,
|
||||
tg_userid: el("tg_userid").value,
|
||||
serverurl: el("serverurl").value,
|
||||
remote_url: el("remote_url").value
|
||||
}
|
||||
XHR.get(SAVE_URL, json, (x, d) => {
|
||||
if (d.error == 0) {
|
||||
update_service();
|
||||
} else {
|
||||
alert("请填写cookies");
|
||||
}
|
||||
//手动执行
|
||||
function run() {
|
||||
XHR.get(RUN_URL, null, () => {
|
||||
setTimeout(() => { window.location = LOG_URL }, 500);
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取实时日志
|
||||
function get_realtime_log() {
|
||||
XHR.poll(1, LOG_URL, null, x => {
|
||||
let retArea = document.getElementById("log_content3");
|
||||
if (x.response.search(" 秒") != -1) {
|
||||
noChange++;
|
||||
}
|
||||
if (noChange > 5) {
|
||||
location.reload();
|
||||
}
|
||||
retArea.value = x.response;
|
||||
retArea.scrollTop = retArea.scrollHeight;
|
||||
});
|
||||
}
|
||||
|
||||
//更新脚本
|
||||
function check_version() {
|
||||
let btn = document.getElementById("update_script");
|
||||
@ -326,59 +60,5 @@
|
||||
return false
|
||||
}
|
||||
|
||||
//初始化二维码
|
||||
(function(){
|
||||
let cookieBtn = Array.prototype.slice.call(document.getElementsByClassName("cookie-button"));
|
||||
try {
|
||||
qrcode = new QRCode(document.getElementById("qrcode"),
|
||||
{
|
||||
text: "sample",
|
||||
correctLevel: QRCode.CorrectLevel.L
|
||||
});
|
||||
cookieBtn.forEach(e => {
|
||||
e.onclick = () => {
|
||||
ckid = e.getAttribute("data-rel");
|
||||
get_code();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
alert("网络离线状态无法使用二维码获取Cookie,请刷新后重试!")
|
||||
cookieBtn.forEach(e => {
|
||||
e.disabled = true;
|
||||
});
|
||||
}
|
||||
}());
|
||||
|
||||
//获取二维码
|
||||
function get_code(){
|
||||
XHR.get(QRCODE_URL, null, (x,d) => {
|
||||
document.getElementById("qrcontainer").classList.remove("hidden");
|
||||
document.getElementById("refresh_qrcode").classList.add("hidden");
|
||||
qrcode.clear();
|
||||
qrcode.makeCode(d.qrcode_url);
|
||||
checkLogin(d.check_url);
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
function checkLogin(check_url){
|
||||
let cname = ckid == 1?"cookie":"cookie2"
|
||||
XHR.poll(3, CHECK_LOGIN_URL, { check_url: check_url, id: cname }, (x, d) => {
|
||||
if (d.error == 0) {
|
||||
XHR.halt();
|
||||
XHR._q = [];
|
||||
document.getElementById("qrcontainer").classList.add("hidden");
|
||||
document.getElementById("refresh_qrcode").classList.add("hidden");
|
||||
let prefix_array = document.getElementsByClassName("cbi-input-text")[0].getAttribute("id").split(".")
|
||||
prefix_array.pop()
|
||||
let id = `${prefix_array.join(".")}.${cname}`;
|
||||
document.getElementById(id).value = d.cookie
|
||||
} else if (d.error == 21 || d.error == 261) {
|
||||
XHR.halt();
|
||||
XHR._q = [];
|
||||
document.getElementById("refresh_qrcode").classList.remove("hidden");
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
<%+cbi/valuefooter%>
|
@ -1 +1,2 @@
|
||||
/usr/share/jd-dailybonus/CookieSet.json
|
||||
/usr/share/jd-dailybonus/CookieSet.json
|
||||
/usr/share/jd-dailybonus/JD_DailyBonus.js
|
@ -2,7 +2,7 @@
|
||||
|
||||
京东多合一签到脚本
|
||||
|
||||
更新时间: 2021.01.20 20:00 v1.91
|
||||
更新时间: 2021.01.28 18:40 v1.92
|
||||
有效接口: 40+
|
||||
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
|
||||
电报频道: @NobyDa
|
||||
@ -908,7 +908,7 @@ function JDUserSign1(s, key, title, body) {
|
||||
async function JDUserSign2(s, key, title, tid) {
|
||||
await new Promise(resolve => {
|
||||
$nobyda.get({
|
||||
url: `https://jdjoy.jd.com/api/turncard/channel/detail?turnTableId=${tid}`,
|
||||
url: `https://jdjoy.jd.com/api/turncard/channel/detail?turnTableId=${tid}&invokeKey=yPsq1PHN`,
|
||||
headers: {
|
||||
Cookie: KEY
|
||||
}
|
||||
@ -920,7 +920,7 @@ async function JDUserSign2(s, key, title, tid) {
|
||||
return new Promise(resolve => {
|
||||
setTimeout(() => {
|
||||
const JDUrl = {
|
||||
url: 'https://jdjoy.jd.com/api/turncard/channel/sign',
|
||||
url: 'https://jdjoy.jd.com/api/turncard/channel/sign?invokeKey=yPsq1PHN',
|
||||
headers: {
|
||||
Cookie: KEY
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user