T4DNA 发表于 2023-12-21 11:46

油猴脚本显示悬赏区第一页楼层顺序

本帖最后由 T4DNA 于 2023-12-22 23:00 编辑

一个简单的油猴脚本,用于显示已经采纳后的悬赏区帖子第一页顺序(仅表示第一页的先后顺序)。
根据悬赏区精神
>楼主在符合帖子条件的回帖中应该按照时间先后顺序采纳

由于Discuz!特性

>悬赏区楼主采纳最佳答案之后,所采纳的回帖会自动更改回帖时间(改为与主题帖发帖时间一致)从而置顶为沙发。

>每个回帖的pid还是不变的,pid值越小表明该帖回复的时间越早,可通过对比pid值确定回帖先后顺序。

为方便大家判断楼层先后顺序,故写此脚本,按照pid赋予第一页面顺序

Greasy Fork安装地址:https://greasyfork.org/zh-CN/scripts/482795


源码如下:
```javascript
// ==UserScript==
// @name         吾爱破解悬赏楼层显示
// @namespace    http://tampermonkey.net/
// @version      2023-12-22.2
// @description吾爱破解悬赏区,被采纳的帖子第一页将显示该页面顺序楼层
// @author       T4DNA
// @match      https://www.52pojie.cn/thread-*-*-*.html
// @match      https://www.52pojie.cn/forum.php?mod=viewthread&tid=*
// @icon         https://www.52pojie.cn/favicon.ico
// @grant      none
// @license      MIT
// @downloadURL https://update.greasyfork.org/scripts/482795/%E5%90%BE%E7%88%B1%E7%A0%B4%E8%A7%A3%E6%82%AC%E8%B5%8F%E6%A5%BC%E5%B1%82%E6%98%BE%E7%A4%BA.user.js
// @updateURL https://update.greasyfork.org/scripts/482795/%E5%90%BE%E7%88%B1%E7%A0%B4%E8%A7%A3%E6%82%AC%E8%B5%8F%E6%A5%BC%E5%B1%82%E6%98%BE%E7%A4%BA.meta.js
// ==/UserScript==

(function() {
    'use strict';
    var bestAnswer;
    function addIndex(docT, index){
      const piDiv = docT.getElementsByClassName('pi');
      const aElement = piDiv.getElementsByTagName('a');
      const spanElement = document.createElement('span');
      spanElement.style.color = 'red';
      spanElement.style.fontWeight = 'bold';
      var textContent = '原楼层:第'+index+'楼'
      if (index=="10" && bestAnswer==docT){
            textContent = '原楼层:10楼(或第一页以后)'
      }
      if (index>"10"){
            textContent = '原楼层大于10楼不在第一页'
      }
      spanElement.textContent = textContent;
      aElement.insertBefore(spanElement, aElement.firstChild);
    };
    function getALLTABLE(){
      let tables = document.querySelectorAll('.plhin');
      tables = Array.from(tables).slice(1);
      bestAnswer = tables;
      let tablesWithIDNumbers = tables.map(table => {
            const tableID = table.id || "";
            const match = tableID.match(/pid(\d+)/);
            return {
                element: table,
                idNumber: match ? parseInt(match, 10) : null
            };
      });
      tablesWithIDNumbers = tablesWithIDNumbers.filter(item => item.idNumber !== null);
      tablesWithIDNumbers.sort((a, b) => a.idNumber - b.idNumber);
      return tablesWithIDNumbers
    };
    const parentDiv = document.querySelector('.rwd.cl');
    if (parentDiv) {
      const childDiv = parentDiv.querySelector('div');
      if (childDiv && childDiv.classList.contains('rusld')) {
            console.log('未完结悬赏');
      } else if (childDiv && childDiv.classList.contains('rsld')) {
            console.log('已完结悬赏');
            let newtables = getALLTABLE();
            newtables.forEach((item, index) => {
                addIndex(item.element, index + 2);
            });
      }
    }
})();
```
效果如下:

RS水果 发表于 2023-12-22 12:09

使用2023-12-21.1版本有2个问题,反馈一下

1. 论坛里大多数人都默认主题帖为1楼, 所以在回帖中,不在应该计算1楼楼层,最小回帖应该是2楼


https://s11.ax1x.com/2023/12/22/piT5A1I.jpg

2. 在悬赏贴 https://www.52pojie.cn/thread-1754126-1-1.html中, 最佳答案是第九楼,由于计算问题, 你没有显示第九楼, 而且第十楼原生楼层显示有些问题

https://s11.ax1x.com/2023/12/22/piT4j6x.jpg

正确的结果应该是:

https://s11.ax1x.com/2023/12/22/piT5mB8.jpg

如果最佳答案位于原楼层10楼或者10楼以后, 显示应该是:

https://s11.ax1x.com/2023/12/22/piT58cq.jpg

RS水果 发表于 2023-12-22 17:57

当悬赏页存在置顶回复的时候, 楼层判断出现异常

测试地址: https://www.52pojie.cn/thread-1863492-1-1.html

当前显示:

https://s11.ax1x.com/2023/12/22/pi7Phm8.jpg

应当显示:

https://s11.ax1x.com/2023/12/22/pi7P5Tg.jpg

素蝶 发表于 2023-12-21 12:55

这都行,有点意思

少污污 发表于 2023-12-21 13:41

懂编程的大能就是牛逼,可以为所欲为,想干嘛干嘛{:1_893:}

Hmily 发表于 2023-12-21 14:18

@Ryan_XQ 追加到你那置顶的帖子里,做好联动。

dengbin 发表于 2023-12-21 14:25

非常好,看到这种帖子我觉得很有必要置顶一下

chai233202 发表于 2023-12-21 16:35

会编程的是真厉害,只要想到什么,都能用代码来实现

T4DNA 发表于 2023-12-22 12:19

RS水果 发表于 2023-12-22 12:09
使用2023-12-21.1版本有2个问题,反馈一下

1. 论坛里大多数人都默认主题帖为1楼, 所以在回帖中,不在应该 ...

已更新,请检查一下是否正确

RS水果 发表于 2023-12-22 12:28

T4DNA 发表于 2023-12-22 12:19
已更新,请检查一下是否正确

已使用新版2023-12-21.2

在第十楼的描述还存在一些问题

https://s11.ax1x.com/2023/12/22/piT54Cd.jpg

T4DNA 发表于 2023-12-22 12:36

RS水果 发表于 2023-12-22 12:28
已使用新版2023-12-21.2

在第十楼的描述还存在一些问题

已更新,仅最佳答案显示10楼或以后
页: [1] 2
查看完整版本: 油猴脚本显示悬赏区第一页楼层顺序