2023-01-29 10:26:52 +08:00

180 lines
6.8 KiB
HTML

{extend name="public/base"/}
{block name="body"}
<style>
.controls{
width: 500px;
height: 40px;
}
</style>
<div class="main-box clearfix">
<header class="main-box-header clearfix">
<div class="pull-left">
<h2>同步中</h2>
</div>
<div class="pull-right">
</div>
</header>
<div class="main-box-body clearfix">
<!--<iframe name="right" id="rightMain" src="{:url('novel/getsync',array('id'=>$id,'pageli'=>1))}" frameborder="false" scrolling="auto" style="border:none;" width="100%" height="601" allowtransparency="true"></iframe>-->
<div id="status1" class="controls"></div>
<div id="status2" class="controls"></div>
<div id="status3" class="controls"></div>
<div id="status4" class="controls"></div>
<div id="status5" class="controls"></div>
<div id="status6" class="controls"></div>
<div id="status7" class="controls"></div>
<div id="status8" class="controls"></div>
</div>
</div>
{/block}
{block name="script"}
<script type="text/javascript">
var id = {$id};
var Autospiderlist = '{:url('Sync/spiderlist')}';
var Autoarticlelist = '{:url('Sync/articlelist')}';
var Autochapterlist = '{:url('Sync/chapterlist')}';
var Autochapter = '{:url('Sync/chapter')}';
var curCount=0; //章节
var arCount=0; //小说
var allCount=0; //总小说
var Spiderlist=[];
var Articlelist=[];
var Chapterlist=[];
var SpiderOrder=0;
var ArticleOrder=0;
var ChapterOrder=0; //请求内容数
setTimeout(function(){autoarticle()}, 100);
//小说列表
function autoarticle() {
ajax(Autospiderlist,'post',{id:id},function () {
$("#status1").html("正在获取小说列表...");
},function (res) {
// console.log(res)
if (res.code == 0){
if (res.data.length>0){
arCount = res.data.length;
Spiderlist = res.data;
countFarst = parseInt(SpiderOrder)+1;
$("#status2").html("本次总共需要同步"+arCount+"本小说,第"+ countFarst +"本《"+ Spiderlist[SpiderOrder].articlename+"》正在同步,请稍等...");
autospiderlist(); //文章ID
}
} else{
$("#status2").html("获取小说列表失败,请检查配置规则");
}
});
}
//详情
function autospiderlist() {
ajax(Autoarticlelist,'post',{
articleid:Spiderlist[SpiderOrder].articleid
},function () {
$("#status3").html("小说详情开始同步...");
},function (res) {
if (res.code == 0){
Articlelist = res.data;
ArticleOrder = res.articleid;
$("#status4").html("小说《"+res.data.articlename+"》详情同步完成");
autoarticlelist(); //主键和文章标题
} else{
$("#status4").html("小说详情同步失败,请检查配置规则...<font color='#f30'>"+res.msg+"</font>");
}
});
}
//章节
function autoarticlelist() {
ajax(Autochapterlist,'post',{
aid:Articlelist.articleid
},function () {
$("#status5").html("正在获取小说章节...");
},function (res) {
if(res.code == 0){
if (res.data.length > 0){
curCount = res.data.length;
Chapterlist = res.data;
$("#status6").html("《"+ curCount +"》小说章节获取成功");
autochapter();
}
}else{
$("#status6").html("小说章节获取失败,请检查配置规则...");
}
});
}
//内容
function autochapter() {
ajax(Autochapter,'post',{
chapterOrder:ChapterOrder, //请求次数
articleid:ArticleOrder,
articlename:Articlelist.articlename,
aid:Articlelist.articleid,
articleInfo:Chapterlist[ChapterOrder]
},function () {
$("#status7").html("章节内容同步中...");
},function (res) {
// console.log(res)
if (res.code == 0){
if (res.success == 'ok'){
ChapterOrder = res.chapters;
$("#status8").html(""+ChapterOrder+"该章节已同步完成..");
} else{
ChapterOrder++;
chanNum = parseInt(curCount) - parseInt(ChapterOrder);
$("#status8").html("章节《"+res.data.chaptername+"》同步完成");
$("#status6").html("《"+ curCount + "/"+ chanNum +"》小说章节获取成功");
}
if (ChapterOrder < curCount){
autochapter();
}else{
SpiderOrder++;
if (SpiderOrder < arCount){
ChapterOrder = 0;
countFarst = parseInt(SpiderOrder)+1;
$("#status2").html("本次总共需要同步"+arCount+"本小说,第"+ countFarst +"本《"+ Spiderlist[SpiderOrder].articlename+"》正在同步,请稍等...");
autospiderlist();
} else{
$("#status1").html("小说同步已全部完成");
$("#status2").html("小说同步已全部完成");
$("#status3").html("小说同步已全部完成");
$("#status4").html("小说同步已全部完成");
$("#status5").html("小说同步已全部完成");
$("#status6").html("小说同步已全部完成");
$("#status7").html("小说同步已全部完成");
$("#status8").html("小说同步已全部完成");
}
}
} else if(res.code == 1){
$("#status8").html("更新章节列表出错..");
}else if(res.code == 2){
$("#status8").html("更新章节内容出错..");
}else{
$("#status8").html("同步完成出错..");
}
});
}
function ajax(url, type, data , beforesend ,success){
$.ajax({
url : url,
type : type,
async : true,
data:data,
dataType : 'json',
beforeSend:beforesend,
success : success,
error:function(xhr, status) {
if (status == 'timeout') {
// alert('请求超时');
} else {
// alert('请求错误:'+status);
}
}
});
}
</script>
{/block}