144 lines
4.2 KiB
JavaScript
144 lines
4.2 KiB
JavaScript
// ==UserScript==
|
||
// @name ML news
|
||
// @namespace https://toxic.run.place
|
||
// @version 202407142200
|
||
// @description Скріпт для новин
|
||
// @author POCCOMAXA
|
||
// @match https://mangalib.me/news/texniceskie-raboty-na-servere-6-dekabria
|
||
// @match https://mangalib.me/news/pereezd-yaoiliba-na-novyi-domen
|
||
// @match https://mangalib.me/news
|
||
// @grant none
|
||
// ==/UserScript==
|
||
|
||
/**
|
||
*
|
||
* @param {string} title
|
||
* @param {string} user
|
||
* @param {string} date
|
||
* @returns {HTMLElement}
|
||
*/
|
||
function makeNewsItem(title, user, date) {
|
||
let item = document.createElement("div");
|
||
item.classList.add("news-feed-item");
|
||
|
||
let info = document.createElement("div");
|
||
info.classList.add("news-feed-item__info");
|
||
item.appendChild(info);
|
||
|
||
let dateSpan = document.createElement("span");
|
||
dateSpan.classList.add("news-feed-item__date");
|
||
dateSpan.textContent = date;
|
||
info.appendChild(dateSpan);
|
||
|
||
let bulletSpan = document.createElement("span");
|
||
bulletSpan.classList.add("news-feed-item__bullet");
|
||
bulletSpan.textContent = " • ";
|
||
info.appendChild(bulletSpan);
|
||
|
||
let userSpan = document.createElement("span");
|
||
userSpan.classList.add("news-feed-item__user");
|
||
userSpan.textContent = user;
|
||
info.appendChild(userSpan);
|
||
|
||
let h2 = document.createElement("h2");
|
||
h2.classList.add("news-feed-item__title");
|
||
item.appendChild(h2);
|
||
|
||
let a = document.createElement("a");
|
||
a.classList.add("link-default");
|
||
a.href = "https://mangalib.me/news/texniceskie-raboty-na-servere-6-dekabria";
|
||
a.textContent = title;
|
||
h2.appendChild(a);
|
||
|
||
return item;
|
||
}
|
||
|
||
function overwriteContent(element, content) {
|
||
element && (element.textContent = content);
|
||
}
|
||
|
||
/**
|
||
*
|
||
* @param {HTMLElement} element
|
||
* @param {HTMLElement[]} children
|
||
* @returns
|
||
*/
|
||
function overwriteChildren(element, children) {
|
||
if (!element) return;
|
||
element.innerHTML = "";
|
||
element.append(...children);
|
||
}
|
||
|
||
function overwriteDates() {
|
||
let els = document.querySelectorAll(".comment__date-time");
|
||
|
||
if (els.length === 0) {
|
||
setTimeout(overwriteDates, 100);
|
||
} else {
|
||
els.forEach((a) => (a.textContent = "1 месяц назад"));
|
||
}
|
||
}
|
||
|
||
/**
|
||
*
|
||
* @param {string} title
|
||
* @param {string} textLines
|
||
* @param {string} date
|
||
*/
|
||
function overwriteNewsItem(title, textLines, date) {
|
||
overwriteContent(document.querySelector(".news__title"), title);
|
||
overwriteContent(document.querySelectorAll(".news__author span")[1], date);
|
||
overwriteChildren(
|
||
document.querySelector(".news__content"),
|
||
textLines.split("\n").map((text) => {
|
||
let p = document.createElement("p");
|
||
p.textContent = text;
|
||
return p;
|
||
}),
|
||
);
|
||
}
|
||
|
||
function overwriteItem() {
|
||
overwriteNewsItem(
|
||
"Переезд яойлиба на новый домен!",
|
||
`В связи с ужесточением политики в сторону лгбт сообщества мы вынуждены отделить эти работы от других, так как это не отвечает требованиям которые были выдвинуты нам от вышестоящих людей. Если нам не удастся прийти согласия нам прийдется удалить зеркало яойлиба и все работы которые там есть.
|
||
Простите за беспокойство.
|
||
Надеемся на ваше понимание!`,
|
||
"1 месяц назад",
|
||
);
|
||
history.pushState({}, null, "/news/pereezd-yaoiliba-na-novyi-domen");
|
||
overwriteDates();
|
||
}
|
||
|
||
function restoreOriginalURL() {
|
||
location.replace("https://mangalib.me/news/texniceskie-raboty-na-servere-6-dekabria");
|
||
}
|
||
|
||
function addListItem() {
|
||
/**
|
||
* @type {HTMLElement}
|
||
*/
|
||
let parent = document.querySelector(".container.container_md");
|
||
|
||
parent.insertBefore(
|
||
makeNewsItem("Переезд яойлиба на новый домен!", "LSTR-512", "01.06.2024"),
|
||
parent.children[1],
|
||
);
|
||
}
|
||
|
||
function main() {
|
||
switch (location.pathname) {
|
||
case "/news/pereezd-yaoiliba-na-novyi-domen":
|
||
restoreOriginalURL();
|
||
break;
|
||
case "/news/texniceskie-raboty-na-servere-6-dekabria":
|
||
overwriteItem();
|
||
break;
|
||
case "/news":
|
||
addListItem();
|
||
break;
|
||
}
|
||
}
|
||
|
||
main();
|