豆瓣小组 - 日期分组显示

Group discussion list by last reply date.

// ==UserScript==
// @name         豆瓣小组 - 日期分组显示
// @namespace    https://anl.gg/
// @version      1.0
// @description  Group discussion list by last reply date.
// @icon         https://www.google.com/s2/favicons?sz=64&domain=douban.com
// @author       greatghoul
// @license      MIT
// @match        https://www.douban.com/group/*/
// @match        https://www.douban.com/group/*/?*
// @match        https://www.douban.com/group/*/discussion
// @match        https://www.douban.com/group/*/discussion?*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const discussionItems = document.querySelectorAll('#group-topics table.olt tbody tr, #content .article table.olt tbody tr');

    if (discussionItems.length === 0) {
        return;
    }

    let currentDate;
    discussionItems.forEach((item) => {
        const pinned = item.querySelector('span.pl');
        if (pinned) {
            return;
        }
        const lastReplyTimeElement = item.querySelector('.time');
        if (!lastReplyTimeElement) {
            return;
        }
        const lastReplyTime = new Date(lastReplyTimeElement.textContent.trim());
        const dateString = lastReplyTime.toISOString().split('T')[0];

        if (dateString !== currentDate) {
            item.style.borderTop = "1px solid #6ba3ff";
            currentDate = dateString;
        }
    });
})();