Greasy Fork is available in English.
按字母顺序排序观看中的节目单, 不再晕菜了
当前为
// ==UserScript==
// @name bangumi sort
// @name:zh-CN Bangumi 番组计划 - 排序
// @namespace http://ladio.me/
// @version 0.1
// @description sort items in alphabet order so you won't confuse any more
// @description:zh-CN 按字母顺序排序观看中的节目单, 不再晕菜了
// @author Xuefer
// @include http://bangumi.tv/*
// @include http://bgm.tv/*
// @include http://chii.in/*
// @run-at document-start
// ==/UserScript==
function childsByTagName(element, tagName) {
var childs = element.childNodes;
var result = [];
for (var i in childs) {
if (childs[i].nodeName == tagName) {
result.push(childs[i]);
}
}
return result;
}
function updateClassName(object, add, remove) {
var classNames = object.className.split(/ /g);
var index = classNames.indexOf(remove);
if (index != -1) {
classNames.splice(index, 1);
}
if (classNames.indexOf(add) == -1) {
classNames.push(add);
}
object.className = classNames.join(' ');
}
function sortElements(list, childs, compareFunction) {
for (var i in childs) {
list.removeChild(childs[i]);
}
childs.sort(compareFunction);
for (var i in childs) {
list.appendChild(childs[i]);
}
}
function localeCompare(a, b) {
return a.sortId.localeCompare(b.sortId);
}
function changeLayout() {
// wait for element to finish
if (!unsafeWindow.loadXML) {
setTimeout(changeLayout, 1);
return;
}
var list = document.getElementById("cloumnSubjectInfo");
list = childsByTagName(list, 'DIV')[0];
var subjects = childsByTagName(list, 'DIV');
for (var i in subjects) {
subjects[i].sortId = childsByTagName(subjects[i], 'A')[0].title;
}
sortElements(list, subjects, localeCompare);
list = childsByTagName(list, 'DIV')[0];
for (var i in subjects) {
updateClassName(subjects[i], i % 2 == 0 ? 'odd' : 'even', i % 2 == 0 ? 'even' : 'odd');
}
var list = document.getElementById("prgSubjectList");
var subjects = childsByTagName(list, 'LI');
for (var i in subjects) {
var links = childsByTagName(subjects[i], 'A');
subjects[i].sortId = links[links.length - 1].title;
}
sortElements(list, subjects, localeCompare);
}
changeLayout();