Greasy Fork 支持简体中文。

妖火首页获取热门帖

在妖火论坛首页插入热门帖子列表

// ==UserScript==
// @name         妖火首页获取热门帖
// @namespace    http://tampermonkey.net/
// @version      1.0.2
// @description  在妖火论坛首页插入热门帖子列表
// @author       SiXi
// @icon         https://yaohuo.me/css/favicon.ico
// @match        *://www.yaohuo.me/
// @match        *://yaohuo.me/
// @match        *://www.yaohuo.me/wapindex.aspx
// @match        *://yaohuo.me/wapindex.aspx
// @grant        GM_xmlhttpRequest
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    const hotPostsUrl = 'https://www.yaohuo.me/bbs/book_list_hot.aspx?classid=0&days=1';
    // 发起请求获取热门帖子页面内容
    GM_xmlhttpRequest({
        method: 'GET',
        url: hotPostsUrl,
        onload: function(response) {
            const parser = new DOMParser();
            const doc = parser.parseFromString(response.responseText, 'text/html');
            const posts = doc.querySelectorAll('.listdata.line1, .listdata.line2');

            // 创建一个数组来存储帖子标题和链接
            const postList = [];
            posts.forEach((post, index) => {
                const link = post.querySelector('a.topic-link');
                if (link) {
                    postList.push({
                        title: link.textContent.trim(),
                        href: link.getAttribute('href')
                    });
                }
            });

            // 如果获取到了帖子,则插入到页面中
            if (postList.length > 0) {
                insertHotPosts(postList);
            }
        },
        onerror: function(error) {
            console.error('获取热门帖失败:', error);
        }
    });

    // 插入热门帖子到首页
    function insertHotPosts(postList) {
        const targetScript = document.querySelector('script[src*="/Template/search/index.js"]');
        if (!targetScript) return;

        // 创建热门帖显示位置
        const titleDiv = document.createElement('div');
        titleDiv.className = 'title';
        titleDiv.innerHTML = '【<a class="brackets" href="bbs/book_list_hot.aspx?classid=0&days=1">全站热门</a>】<a href="bbs/book_list_hot.aspx?classid=0&days=3">三天</a><span class="separate"> </span><a href="bbs/book_list_hot.aspx?classid=0&days=7">一周</a>';

        // 创建热门帖列表
        const listDiv = document.createElement('div');
        listDiv.className = 'list';
        postList.forEach((post, index) => {
            const postLink = document.createElement('a');
            postLink.href = post.href;
            postLink.textContent = `${index + 1}.${post.title}`;
            listDiv.appendChild(postLink);
            listDiv.appendChild(document.createElement('br'));
        });

        targetScript.parentNode.insertBefore(titleDiv, targetScript.nextSibling);
        targetScript.parentNode.insertBefore(listDiv, titleDiv.nextSibling);
    }
})();