Greasy Fork is available in English.

哔哩哔哩(B站)番剧短评区筛选非满分评价

快速地找出那些低分评价!

< Feedback on 哔哩哔哩(B站)番剧短评区筛选非满分评价

Question/comment

§
Posted: 19.06.2022

用不了,没有按钮

TinhoneAuthor
§
Posted: 26.06.2022

新版本已更新,麻烦问一下现在可以使用吗?

§
Posted: 01.07.2022

可以使用,就是有点bug

§
Posted: 01.07.2022

点击一次筛选就只筛选页面上的吗,后面的不能筛选吗

TinhoneAuthor
§
Posted: 01.07.2022

点击一次筛选就只筛选页面上的吗,后面的不能筛选吗

嗯,目前是的,所以还要麻烦一下手动操作了

TinhoneAuthor
§
Posted: 04.03.2023
Edited: 04.03.2023

点击一次筛选就只筛选页面上的吗,后面的不能筛选吗

现在这个版本可以做到点击按钮后立即显示下一页内容,用连点器点的话应该可以实现类似的效果 ( ◑ ﹃ ◐)

§
Posted: 01.04.2023

点击一次筛选就只筛选页面上的吗,后面的不能筛选吗

现在这个版本可以做到点击按钮后立即显示下一页内容,用连点器点的话应该可以实现类似的效果 ( ◑ ﹃ ◐)

感觉还是不太行

TinhoneAuthor
§
Posted: 05.04.2023

好的,我康康能不能一次性把后面的也筛选了,您等一等 🌹

§
Posted: 28.04.2024

感谢可以了,现在才看见,实在不好意思

§
Posted: 28.04.2024

顺便给你优化了一下
阿里通义的
要实现您的需求,我们需对原有脚本进行较大修改,不仅移除满分评论,还要根据评价星星数量进行排序。请注意,这样的修改可能较为复杂,因为直接通过DOM操作来实现排序和动态修改可能效率不高且不稳定,特别是当评论数量庞大时。但基于您的要求,我将提供一个简化版的示例思路,用于展示如何结合排序和移除功能。实际应用中,可能还需考虑性能优化及异常处理。

下面是一个简化的示例代码,它尝试实现您的要求。但请注意,这个示例可能需要您根据实际页面结构进一步调试和优化。

```javascript
button1.addEventListener("click", function() {
// 获取所有短评列表项
let reviewListItems = Array.from(document.querySelectorAll("div#app.media-detail-wrp > div.media-tab-wrp > div.media-tab-content > div.media-tab-detail-wrp > div.media-tab-detail-l-wrp > div.media-tab-detail-l > div.media-tab-module-wrp > div.media-tab-module-content > div.mtlr-list-wrp > div.review-list-wrp.type-short > ul > li.clearfix"));

// 过滤掉满分评论并根据星星数量排序
let filteredAndSorted = reviewListItems
.filter(item => !item.querySelectorAll("div.review-author-info > div.review-author-star > span.review-stars > i.icon-star.icon-star-light")[4]) // 移除满分评论
.sort((a, b) => {
// 计算a和b的星星数量,这里假设星星数量是直接通过查询i.icon-star的长度得到的
let starsA = a.querySelectorAll("div.review-author-info > div.review-author-star > span.review-stars > i.icon-star.icon-star-light").length;
let starsB = b.querySelectorAll("div.review-author-info > div.review-author-star > span.review-stars > i.icon-star.icon-star-light").length;
return starsA - starsB; // 升序排序,从1星到5星
});

// 清空原评论列表
let reviewList = document.querySelector("div.review-list-wrp.type-short > ul");
reviewList.innerHTML = '';

// 将过滤排序后的评论重新添加到页面
filteredAndSorted.forEach(item => reviewList.appendChild(item));
});
```

这段代码首先获取所有评论项,然后过滤掉满分评论并对剩余评论按星星数量进行升序排序(即从1星到5星排序)。之后,清空原有的评论列表,将排序后的评论重新添加回去。

**重要提示**:上述代码片段是基于您的需求提供的一个概念性示例,实际应用时可能需要根据B站当前的实际页面结构进行调整,且频繁的DOM操作可能会影响页面性能,特别是在处理大量评论时。此外,B站页面结构的任何更新都可能影响脚本的适用性。因此,建议持续维护和测试以确保脚本的稳定性和兼容性。

§
Posted: 28.04.2024

button1.addEventListener("click", function() {
// 获取所有短评列表项
let reviewListItems = Array.from(document.querySelectorAll("div#app.media-detail-wrp > div.media-tab-wrp > div.media-tab-content > div.media-tab-detail-wrp > div.media-tab-detail-l-wrp > div.media-tab-detail-l > div.media-tab-module-wrp > div.media-tab-module-content > div.mtlr-list-wrp > div.review-list-wrp.type-short > ul > li.clearfix"));

// 过滤掉满分评论并根据星星数量排序
let filteredAndSorted = reviewListItems
.filter(item => !item.querySelectorAll("div.review-author-info > div.review-author-star > span.review-stars > i.icon-star.icon-star-light")[4]) // 移除满分评论
.sort((a, b) => {
// 计算a和b的星星数量,这里假设星星数量是直接通过查询i.icon-star的长度得到的
let starsA = a.querySelectorAll("div.review-author-info > div.review-author-star > span.review-stars > i.icon-star.icon-star-light").length;
let starsB = b.querySelectorAll("div.review-author-info > div.review-author-star > span.review-stars > i.icon-star.icon-star-light").length;
return starsA - starsB; // 升序排序,从1星到5星
});

// 清空原评论列表
let reviewList = document.querySelector("div.review-list-wrp.type-short > ul");
reviewList.innerHTML = '';

// 将过滤排序后的评论重新添加到页面
filteredAndSorted.forEach(item => reviewList.appendChild(item));
});

§
Posted: 28.04.2024

优化脚本链接
https://netcut.cn/qw6

TinhoneAuthor
§
Posted: 23.05.2024

感谢可以了,现在才看见,实在不好意思

没关系没关系,我之后就参考您的版本修改,感谢!🌹

Post reply

Sign in to post a reply.