Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 1240|回复: 25

[其他资源] SaltMCBBS —— BBS样式优化与功能拓展,提供API,完全开源

[复制链接]
Salt_lovely 当前离线
积分
7075
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-11-15
查看详细资料
发表于 2021-1-16 17:14:36 | 显示全部楼层 |阅读模式
软件资源发布
中文名称: 加盐的MCBBS
英文名称: SaltMCBBS
来源: 原创
软件版本: 0.1.7
适用版本: 1.16.X 
下载地址: https://greasyfork.org/zh-CN/scripts/419006-saltmcbbs
原帖地址: https://greasyfork.org/zh-CN/scripts/419006-saltmcbbs
最后更新: 2021-1-23
编写语言: TypeScript
语言支持: 简体中文 
安装方法: 绿色软件

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 Salt_lovely 于 2021-3-13 18:32 编辑
阅读前请注意:本文含有大量图片,可能导致您的计费流量迅速耗尽。
0.1.9及以上版本将放弃对v2版本论坛皮肤的支持
仍在使用v2论坛皮肤的朋友请使用0.1.8的后续更新版

· 简单介绍

image.png

SaltMCBBS(加盐的MCBBS)脚本是一个MCBBS样式优化与功能拓展脚本。
——简单来讲就是...感觉MCBBS有一些不太好用的地方,所以我想到写一个脚本。
SaltMCBBS整体使用TypeScript编写,保证代码运行稳定;样式部分使用SCSS制作,自带样式压缩,节省空间与浏览器资源。
SaltMCBBS需要油猴/暴力猴之类的浏览器插件才能正常使用。
SaltMCBBS只能运行在现代浏览器上(不要再用IE啦!)。盐酱作品,转 载 请 注 明 出 处 M C B B S

· 功能介绍

移除顶栏,压缩顶部空间,一眼即可看到帖子主要内容。(修改后刷新生效)
使用前:
使用后:
顶栏被左侧栏替代:
可选择屏蔽顶部LOGO和广告栏:
选择不移动顶栏的效果:


精细设计的夜间模式,一键切换。
注意:个人空间页面并没有完全覆盖,浏览个人空间时还是用昼间模式吧
切换方式十分随意简单,双击左侧栏任意空白区域或者头像


自定义举报与评分理由。
这个功能不会与MCBBS Extender冲突!


记录你举报过哪些帖子,防止重复举报。
只会记录启用脚本期间举报的帖子!记录的PID放在indexedDB中,不必担心占用缓存空间。
已经举报的帖子会被橙色标记:
而被制裁的帖子则会绿色标记:


特别的勋章样式!(会被MCBBSExtender覆盖)
首先是特殊的勋章样式:
还有交互性强的勋章栏高度控制:
目前发现了一个无法修复的、与MCBBS Extender的冲突:
当两个脚本开启勋章优化功能,且MCBBS Extender不开启勋章栏高度限制的情况下触发。

识别防盗链图床5个与无法访问图床2个
反防盗链:微博这句话图床、QQ这句话空间图床、贴吧这句话图床、B站这句话图床、百这句话这句话图床
自动代理:im这句话g这句话ur图床、upload这句话.这句话c这句话c图床
https://www.mcbbs.net/thread-69828-1-1.html <-- 你可以试试这个帖子内的图片能否正常加载。
可以加载的话,请关闭这个功能。(代这句话理走的是我的worker,有流量限制的)现在使用的是公共的图片转发代理。

更加现代化的图片懒加载方式,不再看着圈圈转啊转。
这个请自行感受啦。
不过值得一提的是这个功能的优先级比MCBBS自带的懒加载低,所以可能会被MCBBS自带的懒加载顶掉

帖子分类高亮,你可以根据自己的喜好高亮帖子。
如图:
【技术性内容】你可以自定义主题高亮方式(方法是写CSS):


自定义页面背景。
没有的话则显示默认背景。
昼间模式与夜间模式分离:
自定义鼠标移出页面后,页面的不透明度(只要鼠标还在页面中就不会变得半透明):
你也可以自定义鼠标还在页面内时,页面的不透明度:


反探针功能
阻止这种奇怪的东西记录你的足迹。
右下角冒出气泡提示的功能可以单独关闭。


一个简单的水帖检测机制
右下角气泡显示:
如果只是气泡显示那也太没用了盐酱作品
所以我添加了一·键·直·达的功能(为啥台词听起来这么中二)
点击气泡即可直达对应楼层!
你也可以自定义正则表达式来捕获水帖:


层主信息栏跟随页面滚动
没记错的话这个是DZ自带的功能才对:


控制台功能
使用 Ctrl+` 启用控制台,输入“help”并回车来查看所有可用指令。
使用 Shift+回车 来输入换行符。


表情包功能
点击左侧栏的“使用表情包”按钮打开。

管理面板是这样的:


绝大部分设置项更改后立即生效,不用点击刷新或者确定按钮。
举个例子:
或者这个栗子(冬天手抖..所以录制得不好)


其他乱七八糟的功能
一些小小的文本框可以拉大:
控制签名栏高度功能:
强制网易云外链使用H5播放器:


· 借物表与一些灵感来源

以下内容部分来自MCBBS Extender
MCBBS Extender(作者:Zapic)
这一串代码的第3行与第6行借用了MCBBS Extender的代码
  1. function addWarnBtn(uid: number | string, text: string = '查看警告记录') {
  2.     let a = document.createElement('a')
  3.     a.href = 'forum.php?mod=misc&action=viewwarning&tid=19&uid=' + uid
  4.     a.title = text; a.textContent = text
  5.     a.className = 'xi2'
  6.     a.setAttribute('onclick', 'showWindow(\'viewwarning\', this.href)')
  7.     return a
  8. }
复制代码


以下内容部分来自You-need-to-know-css
You-need-to-know-css
以下代码仿写自“Custom switch selector”,原工程为CSS代码,仿写为SCSS代码


以下内容灵感来自MCBBS自定义背景
MCBBS自定义背景(作者:快乐小方)
没有借用/参考代码。
1、设置背景功能。
2、自定义主体部分透明度功能。

以下内容灵感来自MCBBS Extender
MCBBS Extender(作者:Zapic)
没有借用/参考代码。
1、勋章样式功能,功能继承自我的作品:盐的MCBBS样式
2、回到顶部按钮的动画。
3、强制网易云外链播放器使用H5播放器,与禁止外链播放器自动播放功能。

以下内容灵感来自其他作品
1、表情包功能,灵感来自极光的未开源脚本快乐小方的表情包管理功能
2、控制台工具,灵感来自绵羊的未开源脚本(帖子找不到了)。

以下内容完全是我自己的东西
1、帖子高亮功能,来自我的作品:盐的MCBBS样式,比其他坛友提出、实现的时间更早,且实现方式不一样。
2、自定义举报/评分理由功能,没有参考别人的代码,使用MutationObserver+奇怪的DOM操作实现。
3、懒加载功能,没有参考别人的代码,使用IntersectionObserver实现。
4、反防一句话一句话链功能,阅读了防一句话一句话链相关资料,没有参考别人的代码。salt-lovely

· 下载地址与乱七八糟的东西

下载/安装地址
https://greasyfork.org/zh-CN/scripts/419006-saltmcbbs 推荐
https://github.com/Salt-lovely/saltMCBBS/releases/tag/0.1.8 不推荐,这是一个release,需要手动安装
预发布版https://github.com/Salt-lovely/saltMCBBS/releases/tag/0.1.8.4 不推荐,可能存在奇怪的BUG

开源地址
https://github.com/Salt-lovely/saltMCBBS 完全开源
插件开发相关的话,文档在写了在写了。
https://github.com/Salt-lovely/saltMCBBS/blob/main/doc.md

其他想说的
我最开始写这个小东西的时候,只是想实现一键切换夜间模式和查看警告记录的功能,顺便学习一下TypeScript。
然后一开始写便一发不可收拾,自定义评分/举报理由、顶栏变为左侧栏、勋章栏功能,不断更新中慢慢加上了。盐酱作品,转 载 请 注 明 出 处 M C B B S
盐的MCBBS样式可能不会继续更新了,因为这个脚本可以取而一句话代之了。

作品与本文以CC BY-NC-SA 4.0许可证授权使用。
(不用AGPL或者MIT这些代码用的许可证,是因为不想别人拿去商用)
转载请注明出处与作者

评分

参与人数 18人气 +33 金粒 +242 贡献 +1 收起 理由
No848757 + 2 MCBBS有你更精彩~
二哈大魔王 + 2 Ssssssssssssssssssss
TheLone_ + 1 MCBBS有你更精彩~
minehenry + 1 MCBBS有你更精彩~
Arasple + 2 + 50 真帅!
Thehrz + 1 MCBBS有你更精彩~
skyliye + 3 + 25 MCBBS有你更精彩~
SQwatermark + 3 + 20 MCBBS有你更精彩~
White_i + 2 + 12 恰盐酱
Xiao2 + 2 + 50 MCBBS有你更精彩~
xmdhs + 2 Ssssssssssssssssssss
狡诈师 + 1 + 30 MCBBS有你更精彩~
youyihj + 3 + 25 MCBBS有你更精彩~
AzureHanChen + 2 MCBBS有你更精彩~
Azitate + 3 + 30 MCBBS有你更精彩~
长安弑水 + 1 盐酱必须资瓷
小丛雨 + 2 神乎其技!6的飞起!
Arleee + 1 神乎其技!6的飞起!

查看全部评分

Arleee 当前离线
积分
234
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-1-13
查看详细资料
发表于 2021-1-16 17:25:40 | 显示全部楼层
本帖最后由 Arleee 于 2021-1-16 17:47 编辑

支持盐酱~
终于不用怕重复举报了_(:з」∠)_
(这样查水表更方便了
不过左侧栏还是不太习惯呢有考虑过让用户选择 是否开启此功能吗

评分

参与人数 1人气 +1 收起 理由
Salt_lovely + 1 喵喵喵,原来是同行(大雾)

查看全部评分

回复

使用道具 举报

Xiao2 当前离线
积分
5890
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-6-24
查看详细资料
发表于 2021-1-16 17:40:56 | 显示全部楼层
回复

使用道具 举报

Azitate 当前离线
积分
8498
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-6-12
查看详细资料
发表于 2021-1-16 17:48:05 | 显示全部楼层
自动监测疑似水贴确实行别的版主都有自动处理为什么我还没有(
回复

使用道具 举报

Salt_lovely 当前离线
积分
7075
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-11-15
查看详细资料
 楼主| 发表于 2021-1-16 18:12:47 | 显示全部楼层
Xiao2 发表于 2021-1-16 17:40
https://www.mcbbs.net/forum.php?mod=redirect&goto=findpost&ptid=952104&pid=19976253
这个能够实现 ...

你猜我在0.1.5更新时掺了什么私货?(要密码的话请私信)
回复

使用道具 举报

长安弑水 当前离线
积分
5769
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-2-13
查看详细资料
发表于 2021-1-16 18:18:06 | 显示全部楼层
Salt_lovely 发表于 2021-1-16 18:12
你猜我在0.1.5更新时掺了什么私货?(要密码的话请私信)

盐酱,和Zapic的能兼容吧(看着有冲突的地方)
回复

使用道具 举报

Salt_lovely 当前离线
积分
7075
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-11-15
查看详细资料
 楼主| 发表于 2021-1-16 18:25:00 | 显示全部楼层
本帖最后由 Salt_lovely 于 2021-1-16 18:29 编辑
Azitate 发表于 2021-1-16 17:48
自动监测疑似水贴确实行别的版主都有自动处理为什么我还没有(

可以用自己写的正则表达式和处理逻辑
一段示例代码:
  1. async function myMod(){ // 建议使用async关键字,这样可以在函数内使用await关键字
  2.     // window.saltMCBBS.antiWater(正则表达式数组, 是否忽略已经制裁的帖子, 检测到后触发的回调函数)
  3.     // 第二个(是否忽略已制裁的帖子)和第三个参数(回调函数)是可选的(没有回调函数的话,默认处理方式是右下角冒出点击直达这个楼层的气泡)
  4.     // 示例代码
  5.     await window.saltMCBBS.antiWater([/[6六]{3,}/,/(ha){3,}/i], false/*不忽略已经制裁的帖子*/, (楼层/*HTML元素*/, 楼层内容/*HTML元素*/, 楼层内容转义/*字符串*/) => {
  6.         // 处理代码
  7.         alert(楼层内容转义)
  8.         // 发卡(楼层, '请仔细阅读版规不要灌水这样子')
  9.     }) // 遇到内容中存在“6666”“hahahaha”这种字的楼层时,弹窗显示楼层内容,不忽略已经被发卡的楼层
  10.     alert('完成') // 审查结束时弹窗显示
  11. }
  12. myMod(); // 执行
复制代码
需要注意的是:
这个方法是异步的(返回一个Promise),第一个参数是正则表达式数组
回复

使用道具 举报

Salt_lovely 当前离线
积分
7075
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-11-15
查看详细资料
 楼主| 发表于 2021-1-16 18:27:06 | 显示全部楼层
长安弑水 发表于 2021-1-16 18:18
盐酱,和Zapic的能兼容吧(看着有冲突的地方)

基本可以兼容(大概),除了勋章墙部分(会被MCBBS Extender覆盖)和显示“查看警告记录”按钮(一起用的话会显示两个)

评分

参与人数 1人气 +1 收起 理由
长安弑水 + 1 看到了,考虑删一个?(雾(看你心情).

查看全部评分

回复

使用道具 举报

长安弑水 当前离线
积分
5769
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-2-13
查看详细资料
发表于 2021-1-16 18:42:37 | 显示全部楼层
Salt_lovely 发表于 2021-1-16 18:27
基本可以兼容(大概),除了勋章墙部分(会被MCBBS Extender覆盖)和显示“查看警告记录”按钮(一起用的 ...

但u1s1影响体验还是希望两位作者能够协商一下
因为两个插件我都不肯放手难舍难分,都太好用了,所以
回复

使用道具 举报

AzureHanChen 当前离线
积分
7180
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-5-18
查看详细资料
发表于 2021-1-16 18:45:11 | 显示全部楼层
本帖最后由 AzureHanChen 于 2021-1-16 18:47 编辑

检测水贴这个必须要顶一个,服务端版水贴的克星
试了试感觉还是蛮不错的,不过不知道是否能在设置面板中增添
通过自定义正则来检测回帖是否属于水贴

目前已知的一个BUG?
- 无论设置面板中检测水贴功能是否打开,在含有水贴的楼中均会推送提醒气泡
回复

使用道具 举报

Salt_lovely 当前离线
积分
7075
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-11-15
查看详细资料
 楼主| 发表于 2021-1-16 18:51:20 | 显示全部楼层
长安弑水 发表于 2021-1-16 18:42
但u1s1影响体验还是希望两位作者能够协商一下
因为两个插件我都不肯放手难舍难分,都太好用了,所 ...

互相覆盖部分处理起来很简单的,就是不处理(想用Zapic大佬的话就关了我这个,反之则反);按钮重复的话,倒是可以找时间修一修,也算挺简单的

好的处理方法出来了,下个版本更新,绝对不咕()

评分

参与人数 1人气 +1 收起 理由
长安弑水 + 1 咕咕咕咕?(确定不咕?)

查看全部评分

回复

使用道具 举报

Salt_lovely 当前离线
积分
7075
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-11-15
查看详细资料
 楼主| 发表于 2021-1-16 18:57:59 | 显示全部楼层
AzureHanChen 发表于 2021-1-16 18:45
检测水贴这个必须要顶一个,服务端版水贴的克星
试了试感觉还是蛮不错的,不过不知道是否能在设置 ...

可以的。
目前版本可以写插件来实现:示例代码:
  1. async function myMod(){ // 建议使用async关键字,这样可以在函数内使用await关键字
  2.     // window.saltMCBBS.antiWater(正则表达式数组, 是否忽略已经制裁的帖子, 检测到后触发的回调函数)
  3.     // 第二个(是否忽略已制裁的帖子)和第三个参数(回调函数)是可选的(没有回调函数的话,默认处理方式是右下角冒出点击直达这个楼层的气泡)
  4.     // 示例代码
  5.     await window.saltMCBBS.antiWater([/[6六]{3,}/,/(ha){3,}/i], false/*不忽略已经制裁的帖子*/, (楼层/*HTML元素*/, 楼层内容/*HTML元素*/, 楼层内容转义/*字符串*/) => {
  6.         // 处理代码
  7.         alert(楼层内容转义)
  8.         // 发卡(楼层, '请仔细阅读版规不要灌水这样子')
  9.     }) // 遇到内容中存在“6666”“hahahaha”这种字的楼层时,弹窗显示楼层内容,不忽略已经被发卡的楼层
  10.     alert('完成') // 审查结束时弹窗显示
  11. }
  12. myMod(); // 执行
复制代码

在SaltMCBBS启用的情况下,可以直接在浏览器的控制台(Chrome是F12呼出)试试这段:
  1. window.saltMCBBS.antiWater([/[6六]{3,}/,/(ha){3,}/i], false/*不忽略已经制裁的帖子*/, (楼层/*HTML元素*/, 楼层内容/*HTML元素*/, 楼层内容转义/*字符串*/) => {
  2.         // 处理代码
  3.         alert(楼层内容转义)
  4.         // 发卡(楼层, '请仔细阅读版规不要灌水这样子')
  5.     }) // 遇到内容中存在“6666”“hahahaha”这种字的楼层时,弹窗显示楼层内容,不忽略已经被发卡的楼层
复制代码
(应该会弹窗显示我的这几条回复的文字部分内容)

那个确实是BUG,下个版本修复,不会咕不会咕()
回复

使用道具 举报

youyihj 当前离线
积分
11644
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-1-27
查看详细资料
发表于 2021-1-16 19:04:01 | 显示全部楼层
夜间模式大大好评。Dark Reader 对 MCBBS 的乱七八糟的格式无能为力。总算解决了!
回复

使用道具 举报

振翮高飞 当前离线
积分
1710
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-4-30
查看详细资料
发表于 2021-1-16 19:07:08 来自手机 | 显示全部楼层
好哇,鸡肋的bbs 功能都给整的能用了
回复

使用道具 举报

Salt_lovely 当前离线
积分
7075
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-11-15
查看详细资料
 楼主| 发表于 2021-1-16 19:31:50 | 显示全部楼层
本帖最后由 Salt_lovely 于 2021-1-24 13:51 编辑
Arleee 发表于 2021-1-16 17:25
支持盐酱~
终于不用怕重复举报了_(:з」∠)_
(这样查水表更方便了

左侧栏不提供关闭选择主要是我的技术问题(知道怎么挪过去不知道怎么挪回来),不过我可以试试...



@Arleee  0.1.7版本开始可以选择是否使用原版MCBBS的顶栏

评分

参与人数 1人气 +1 收起 理由
Arleee + 1 神乎其技!6的飞起!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2021-5-15 03:42 , Processed in 0.084359 second(s), Total 39, Slave 33 queries, Release: Build.2021.04.28 1615, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表