Можно хардкор вов в отдельную картегорию поместить? Все эти новости, что игрок на хардкор сервере что-то там сделал - просто захламляют новости, хотя новости самой классики все-таки интересуют. Я понимаю, что можно не читать, но клацать потом 20 страниц в поисках полезной новости...
Или можно как-то RSS настроить кол-во новостей в нем? Чтобы я мог через манкипатчинг фильтровать его и заменять главную на фильтрованные новости? Сейчас там не очень много новостей доступно.
UPD
На скорую руку написал скрипт, который будет брать новости с первых 5 страниц, фильтровать их и выводить на главной отфильтровав по ключевым словам в заголовке, может ещё кому пригодится:
1. Поставить расширение для браузера "Tampermonkey"
2. В нем выбрать "Создать новый скрипт"
3. Закинуть в него код:
// ==UserScript==
// @name Фильтр постов на NC
// @namespace [url]https://noob-club.ru/[/url]
// @version 0.1
// @description Фильтрует новости на главной взяв новости с других страниц
// @author nomikama
// @match [url]https://www.noob-club.ru/[/url]
// @icon [url]https://www.google.com/s2/favicons?sz=64&domain=noob-club.ru[/url]
// @grant none
// ==/UserScript==
(async function (preloadCount = 1) {
if(window.location.href !== "https://www.noob-club.ru/") {
return false;
}
const filterTitleWords = [
"хардкорно",
"Фанат",
"косплей",
"Обсуждение",
"Подборка",
"Вышел новый эпизод",
"3D-иллюстрации",
"Кулинария Азерота",
"Dark Legacy Comics",
];
const filteredContent = [];
function getPageLink(page) {
page -= 1;
const url = "https://www.noob-club.ru/index.php?frontpage;p=";
const countNews = 15;
const pageEnd = page * countNews;
return url + pageEnd;
}
async function parseContent(url) {
let content;
try {
const request = await fetch(url);
const response = await request.text();
content = response.match(/<td class="content" valign="top">[\s\S]*?<\/td>/);
if (content) {
content = content[0];
}
const parser = new DOMParser().parseFromString(content, "text/html");
parser.body.querySelector(".features-box").remove();
content = parser.body;
} catch (error) {
console.error(error);
}
return content;
}
async function filterContent(contentList) {
const content = await contentList;
const filterPosts = Array.from(content.querySelectorAll(".entry")).filter((post) => {
const title = post.querySelector("h1");
return !filterTitleWords.some((filterWord) => title.textContent.toLowerCase().includes(filterWord.toLowerCase()));
}
);
filteredContent.push(...filterPosts);
}
async function renderContent(contentList) {
const parent = document.querySelector(".content");
const featuresBox = parent.querySelector(".features-box");
parent.innerHTML = "";
parent.append(featuresBox);
contentList.forEach((post) => {
parent.append(post);
});
}
for await (const item of Array.from({length: preloadCount}, (_, idx) => idx + 1)) {
await filterContent(parseContent(getPageLink(item)));
}
renderContent(filteredContent);
})(5);
В переменной "
filterTitleWords" массив слов для заголовков, которые будут скрыты. Скрипт работает только на главной.
ПС:
[url ][ /url] необходимо удалить - их форум сам добавил. Оставить только ссылки между ними. либо взять код отсюда:
https://pastebin.com/raw/QpbyLyrm.
UPD2
Поправил скрипт так, чтобы был бесконечный скролл на главной странице (на 3-й снизу новости начинает подгружать новости со следующей страницы). Код:
https://gist.github.com/nomikama/48beae280a5be29993f1da5b2c002620