Skip to content

Instantly share code, notes, and snippets.

@azuse
Created August 25, 2019 07:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save azuse/ec025812b13a320c0ce53e9b143c6bac to your computer and use it in GitHub Desktop.
Save azuse/ec025812b13a320c0ce53e9b143c6bac to your computer and use it in GitHub Desktop.
Loadmore script for bangumi timeline
// ==UserScript==
// @name 将班固米首页的下一页改为加载更多
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author azuse
// @match http://bgm.tv/
// @match http://bangumi.tv/
// @match https://bgm.tv/timeline
// @match https://bangumi.tv/timeline
// @match https://bgm.tv/
// @match https://bangumi.tv/
// @grant none
// ==/UserScript==
var static_page = 2;
(function () {
// 设置监听timeline的wrapper div,当timeline显示标签切换时,重新渲染“加载更多”按钮
let timelineWrapper = $("#columnTimelineInnerWrapper")[0]
let configForOb = {
attributes: true,
childList: true,
subtree: true
}
const mutationCallbackOnTimeline = (mutationList) => {
if($(".loadmoreBtn").length > 0)
return
addLoadMoreBtn()
}
let TimelineObserver = new MutationObserver(mutationCallbackOnTimeline);
// 先执行一次修改
addLoadMoreBtn()
// 启动监听
TimelineObserver.observe(timelineWrapper, configForOb)
function addLoadMoreBtn() {
static_page = 2 //重置页数
// 获得正在加载的链接(动态all 吐槽say 等)
if($(".page_inner a").length == 0){
url = "timeline?type=all"
// 没有 使用默认链接
}
else{
url = $(".page_inner a")[0].href
url = url.slice(0,url.indexOf("&page=2"))
}
var a = document.createElement("a");
a.className = "p loadmoreBtn";
a.innerHTML = "加载更多";
a.style.cursor = "pointer";
a.onclick = function () {
$.ajax({
type: "GET",
url: url + "&page=" + static_page + "&ajax=1",
success: function (html) {
var htmlKai = $(html).html();
var htmlNew = $(html).children("div#timeline");
var newdate = $(html).children("h4.Header");
var newul = $(html).children("ul");
for (var i in newdate) {
if (i == "length") break;
if ($("#timeline").text().indexOf($(newdate)[i].innerHTML) != -1) {
$("#tmlPager").before($(newul)[i].outerHTML);
} else {
$("#tmlPager").before($(newdate)[i].outerHTML + $(newul)[i].outerHTML);
}
}
// if($("#timeline").text().indexOf($(newdate)[0].innerHTML)){
// $("#tmlPager")[0].previousElementSibling.innerHTML = $("#tmlPager")[0].previousElementSibling.innerHTML + $(html).children("ul").html();
// }
// else{
// $("#tmlPager")[0].previousElementSibling.innerHTML = $("#tmlPager")[0].previousElementSibling.innerHTML + $(html).children("*").html();
// }
static_page++;
//$content.html(html);
chiiLib.tml.prepareAjax();
},
error: function (html) {
$("#robot_speech_js").html(AJAXtip['error']);
$("#robot").animate({
opacity: 1
}, 1000).fadeOut(500);
}
});
};
if ($(".page_inner").length > 0) { // 没有page_inner就不添加
$(".page_inner")[0].innerHTML = "";
$(".page_inner")[0].appendChild(a);
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment