#1 - 2017-3-3 02:46
fifth (人型自走单线程大脑培养皿#5)
受@御户白夜 所托,写了一个小脚本,提供查看该名用户最近状态的功能,然后在今天上班摸鱼的时候写好了。本来还打算把上次@君寻 想要的好友评分功能也加上,但是因为涉及到多页面加载一下子没写好,想着先发布一部分的功能,就直接先发了。
第一个版本就只能显示好友名字/是否已加好友/最后一条timeline/共同喜好/同步率。
接下来两天我把抓取好友评分部分写好之后再发新版本。
这个脚本在bgm.tv所有页面(暂不支持超展开页面)里面都会生效,如果你在首页或者自己的好友页面里面使用的时候可能会发现你看到的所有人都是“xxx已经是你的好友”(这是显然的。你试试在小组讨论帖或者别人的好友列表里刷一刷就会看到区别了。。。
如果正在是用@everpcpc 的(最新版)条目脚本,同时打开两个脚本信息窗口会产生遮挡(我的会把他的挡住,建议只用一个
[!]如何看某用户的非动画条目评分及分布
考虑到一部分用户的特殊需求,我做了相应的适配。但我个人主观上并不想让这个脚本的定制化程度太高,我留了一个配置在代码里面,如果有这方面需求的同学可以打开脚本代码,然后大概在第40行左右有一块被框起来的注释说明,按照注释里面说的操作就好了。
修改完保存之后请务必清空相应的localstorage(删除key值为fifth_bgm_user_userjs_scores的记录即可),不然有一定可能数据显示会不正确
*同时只能触发一种类型条目的追踪*
下面的截图为最早的版本,懒得换了。。。
[效果图]
github项目地址 | 脚本安装/更新
(建议使用Tampermonkey来管理插件(尤其是对于火狐浏览器用户
由于沉迷塞尔达,所以我大概短时间内不会更新新功能上去了。。。
更新日志
20170323 v1.2.4 1.现在支持不同类型条目的斯托卡(但同时仅支持一种类型,默认动画),修改方法见上面
2.修复一处可能会造成控制台报错的地方(报错不影响功能)
20170323 v1.2.3 修复了读取某些用户(时光机右侧列表)的数据时出错的情况
20170322 v1.2.2 1.修复了在某些情况下看过动画数量出现错误的情况(调整了数据抓取策略
2.改了名字和描述
20170321 v1.2.1 修复了查看自己的均分时显示别的用户的数据的bug
20170321 v1.2.0 1.添加了设置中心,现在可以对斯托卡的内容进行设置
可设置的内容包括:显示的内容选择,计分方式,是否包含标准差
设置方式为勾选,鼠标从窗口移开,浮窗消失即保存生效
2.存储格式改变,v1.2.0会检查脚本的版本,会自动清空旧版本的缓存,你也可以手动清除
3.其它大量的修复和改动,我几乎把全部的代码重新写了一遍
20170317 v1.1.6 1.修复了一处遮挡问题
2.查看自己的信息时,最上面的那句话的内容现在是随机的
20170317 v1.1.5 1.加载的进度条现在是一根进度条而不再是文字了
2.修复了在斯托卡不看动画的用户时永远卡进度条的错误
3.文案上的调整
20170316 v1.1.4 1.修复了一处遮挡问题
2.现在会在请求个人信息的时候就抓取条目标记数,所以会显示看过数和抛弃数
在不需要更新分数信息的情况下可以减少一次网络请求
3.其它代码结构的小优化
20170315 v1.1.3 1.现在可以把分数分布图画出来了
2.浮窗透明度取消了(为了使图看得更清楚
20170314 v1.1.2 1.现在的计算不再包含未评分的作品,用户均分应该会比之前高一点了
2.顺便计算了一下标准差
3.查看自己的时候那句话的样式稍微改了一下
20170313 v1.1.1 1.现在可以stk自己了(仅能显示最近tl),所以可以查看自己的均分了
2.现在把鼠标放在“时光机”按钮上不会出现浮窗了
3.最近一个登陆的用户uid会被保存在localstorage,但未登录状况下依然不能使用本插件
20170312 v1.1.0 现在可以查看用户的看过动画均分了
20170306 v1.0.10 修复了上个版本修复导致的某些页面(如首页)头像不能触发浮窗的bug
20170305 v1.0.9 1.修复了两处会在控制台报错的情况(报错并不影响功能
2.加入了淡入淡出效果
3.其它代码调整优化
20170304 v1.0.8 1.现在把鼠标从头像或名字上移开之后信息窗不会立即消失
鼠标指向另一个头像或名字或者从信息窗口上移开鼠标窗口才会消失
2.信息窗口里的用户名字现在可以点击了
3.调整了数据请求策略,现在只要鼠标指向头像或名字就会在后台加载
可以把鼠标移开过会儿再回来看,这边有一个已知bug*
4.其它代码结构的调整
20170304 v1.0.7 1.调整了搜索策略,现在所有信息只向一个页面(用户主页)发起请求,减少了请求次数
2.添加了缓存,每个会话(不刷新页面)对每个用户只发起一次请求,减少了请求总数
第二次查看用户数据时会直接读取缓存的数据,几乎没有等待时间(thx to 林卯
3.添加了正则来预处理返回数据,节省了大量的流量和内存
正则搭配jquery使用,避免用jquery处理大DOM(thx to Donuts.
4.调整了信息窗口的展示位置,现在窗口位置不再取决于元素位置而取决于鼠标的位置
5.其它的代码调整优化
20170303 v1.0.6 1.修复了异步加载内容的触发事件(thx to Donuts.
2.代码结构调整
20170303 v1.0.5 1.修复了某些状况下不该触发事件的情况
2.fecs检查
20170303 v1.0.4 1.样式调整,现在名字是蓝色的
2.扩展了会触发事件的元素范围,比如@别人的链接也可以,小组成员页也可以了
但是还是有些地方显示不了,比如自己首页TL里面第二页开始就都失效了。。。
20170303 v1.0.3 1.修复在某些非用户头像的图像上也会触发的情况
2.其它小修复
20170303 v1.0.2 1.更换timeline信息的来源
2.定位调整
3.文字调整
20170303 v1.0.1 1.自己的头像不会触发
2.其它小修复
20170303 v1.0.0 发布(注意此脚本并不会在所有的头像上都触发,有个别的头像不会触发(比如小组成员页
更新计划:
图片资源改成https协议
数据抓取过程中可能出现重叠现象
触发显示信息的事件的扩展和修复
为超展开页面(iframe)做单独的处理
把脚本写的更优雅一点
在时光机读取数据时的策略调整
火狐浏览器greasemonkey插件兼容问题(找不到原因,放弃了,请使用Tampermonkey
加入配置中心,提供多种配置方案(具体提供啥再说,也许会有条目种类,标记状态,计算方法,功能选择等等之类的)
优化加载流程
美化(增加动画/图表等)
加入评分分布图
支持查看自己的信息/均分
新功能:用户看过数/均分计算
[bug]部分页面鼠标放上去弹窗会疯狂闪烁然后永远加载不出来,如小组成员页的人名
[bug*]鼠标从一个头像上移开并迅速移回,有可能会出现一直卡进度条或者显示别的用户的信息的情况,再次移开并移回可恢复正常
[bug]网页异步加载内容没有被绑上事件,如个人主页翻页后、超展开页面等
第一个版本就只能显示好友名字/是否已加好友/最后一条timeline/共同喜好/同步率。
接下来两天我把抓取好友评分部分写好之后再发新版本。
这个脚本在bgm.tv所有页面(暂不支持超展开页面)里面都会生效,如果你在首页或者自己的好友页面里面使用的时候可能会发现你看到的所有人都是“xxx已经是你的好友”(这是显然的。你试试在小组讨论帖或者别人的好友列表里刷一刷就会看到区别了。。。
如果正在是用@everpcpc 的(最新版)条目脚本,同时打开两个脚本信息窗口会产生遮挡(我的会把他的挡住,建议只用一个
[!]如何看某用户的非动画条目评分及分布
考虑到一部分用户的特殊需求,我做了相应的适配。但我个人主观上并不想让这个脚本的定制化程度太高,我留了一个配置在代码里面,如果有这方面需求的同学可以打开脚本代码,然后大概在第40行左右有一块被框起来的注释说明,按照注释里面说的操作就好了。
修改完保存之后请务必清空相应的localstorage(删除key值为fifth_bgm_user_userjs_scores的记录即可),不然有一定可能数据显示会不正确
*同时只能触发一种类型条目的追踪*
下面的截图为最早的版本,懒得换了。。。
[效果图]
github项目地址 | 脚本安装/更新
(建议使用Tampermonkey来管理插件(尤其是对于火狐浏览器用户
由于沉迷塞尔达,所以我大概短时间内不会更新新功能上去了。。。
更新日志
20170323 v1.2.4 1.现在支持不同类型条目的斯托卡(但同时仅支持一种类型,默认动画),修改方法见上面
2.修复一处可能会造成控制台报错的地方(报错不影响功能)
20170323 v1.2.3 修复了读取某些用户(时光机右侧列表)的数据时出错的情况
20170322 v1.2.2 1.修复了在某些情况下看过动画数量出现错误的情况(调整了数据抓取策略
2.改了名字和描述
20170321 v1.2.1 修复了查看自己的均分时显示别的用户的数据的bug
20170321 v1.2.0 1.添加了设置中心,现在可以对斯托卡的内容进行设置
可设置的内容包括:显示的内容选择,计分方式,是否包含标准差
设置方式为勾选,鼠标从窗口移开,浮窗消失即保存生效
2.存储格式改变,v1.2.0会检查脚本的版本,会自动清空旧版本的缓存,你也可以手动清除
3.其它大量的修复和改动,我几乎把全部的代码重新写了一遍
20170317 v1.1.6 1.修复了一处遮挡问题
2.查看自己的信息时,最上面的那句话的内容现在是随机的
20170317 v1.1.5 1.加载的进度条现在是一根进度条而不再是文字了
2.修复了在斯托卡不看动画的用户时永远卡进度条的错误
3.文案上的调整
20170316 v1.1.4 1.修复了一处遮挡问题
2.现在会在请求个人信息的时候就抓取条目标记数,所以会显示看过数和抛弃数
在不需要更新分数信息的情况下可以减少一次网络请求
3.其它代码结构的小优化
20170315 v1.1.3 1.现在可以把分数分布图画出来了
2.浮窗透明度取消了(为了使图看得更清楚
20170314 v1.1.2 1.现在的计算不再包含未评分的作品,用户均分应该会比之前高一点了
2.顺便计算了一下标准差
3.查看自己的时候那句话的样式稍微改了一下
20170313 v1.1.1 1.现在可以stk自己了(仅能显示最近tl),所以可以查看自己的均分了
2.现在把鼠标放在“时光机”按钮上不会出现浮窗了
3.最近一个登陆的用户uid会被保存在localstorage,但未登录状况下依然不能使用本插件
20170312 v1.1.0 现在可以查看用户的看过动画均分了
20170306 v1.0.10 修复了上个版本修复导致的某些页面(如首页)头像不能触发浮窗的bug
20170305 v1.0.9 1.修复了两处会在控制台报错的情况(报错并不影响功能
2.加入了淡入淡出效果
3.其它代码调整优化
20170304 v1.0.8 1.现在把鼠标从头像或名字上移开之后信息窗不会立即消失
鼠标指向另一个头像或名字或者从信息窗口上移开鼠标窗口才会消失
2.信息窗口里的用户名字现在可以点击了
3.调整了数据请求策略,现在只要鼠标指向头像或名字就会在后台加载
可以把鼠标移开过会儿再回来看,这边有一个已知bug*
4.其它代码结构的调整
20170304 v1.0.7 1.调整了搜索策略,现在所有信息只向一个页面(用户主页)发起请求,减少了请求次数
2.添加了缓存,每个会话(不刷新页面)对每个用户只发起一次请求,减少了请求总数
第二次查看用户数据时会直接读取缓存的数据,几乎没有等待时间(thx to 林卯
3.添加了正则来预处理返回数据,节省了大量的流量和内存
正则搭配jquery使用,避免用jquery处理大DOM(thx to Donuts.
4.调整了信息窗口的展示位置,现在窗口位置不再取决于元素位置而取决于鼠标的位置
5.其它的代码调整优化
20170303 v1.0.6 1.修复了异步加载内容的触发事件(thx to Donuts.
2.代码结构调整
20170303 v1.0.5 1.修复了某些状况下不该触发事件的情况
2.fecs检查
20170303 v1.0.4 1.样式调整,现在名字是蓝色的
2.扩展了会触发事件的元素范围,比如@别人的链接也可以,小组成员页也可以了
但是还是有些地方显示不了,比如自己首页TL里面第二页开始就都失效了。。。
20170303 v1.0.3 1.修复在某些非用户头像的图像上也会触发的情况
2.其它小修复
20170303 v1.0.2 1.更换timeline信息的来源
2.定位调整
3.文字调整
20170303 v1.0.1 1.自己的头像不会触发
2.其它小修复
20170303 v1.0.0 发布(注意此脚本并不会在所有的头像上都触发,有个别的头像不会触发(比如小组成员页
更新计划:
图片资源改成https协议
数据抓取过程中可能出现重叠现象
触发显示信息的事件的扩展和修复
为超展开页面(iframe)做单独的处理
把脚本写的更优雅一点
在时光机读取数据时的策略调整
火狐浏览器greasemonkey插件兼容问题(找不到原因,放弃了,请使用Tampermonkey
加入配置中心,提供多种配置方案(具体提供啥再说,也许会有条目种类,标记状态,计算方法,功能选择等等之类的)
优化加载流程
美化(增加动画/图表等)
加入评分分布图
支持查看自己的信息/均分
新功能:用户看过数/均分计算
[bug]部分页面鼠标放上去弹窗会疯狂闪烁然后永远加载不出来,如小组成员页的人名
[bug*]鼠标从一个头像上移开并迅速移回,有可能会出现一直卡进度条或者显示别的用户的信息的情况,再次移开并移回可恢复正常
[bug]网页异步加载内容没有被绑上事件,如个人主页翻页后、超展开页面等
我说我怎么总觉得我发帖的时候忘记了什么事情,然后突然想起来,想着大半夜应该还没人看赶紧加上。然而。。。你动作好快
下次更新记得提醒我
并不一样。。。超展开页面用了俩iframe,逻辑结构和别的异步加载页面不一样。。。
现在首页动态翻页后的内容能够正确弹窗了;其它异步加载内容,如我上一个插件左下角的好友头像(也是异步加载)也能正确显示头像了
问题是非常慢,我注释掉与同步率相关的几行发现没有加速。想要不要把
改成
看了看文档,原理上,$(html)在下述情况会用浏览器来 parse 并扔到当前的 DOM 里,结果内容里含有 img 的就会自动去加载图片了……
所以需要先删掉img等(或者只保留需要的部分),然后再parse
更好的方法是不用jQuery(),直接用正则解析出需要的数据
我不知道还有没有别的手段
另外一个就是每$(data)一次,内存里恐怕都会新出现一大坨东西……建议用变量保存起来
现在不会请求多余的数据了,每次会话(每个页面)中每个用户只会请求一次,第二次开始直接在缓存中读取数据;并且只访问用户主页,不会再去timeline页面,减少了一半的请求量;数据请求只有文本字符串,使用正则过滤掉了大部分的无关信息,不会再加载额外的图片;每位用户产生一次网络请求这点目前无法避免。
请升级至最新版本v1.0.7
我使用了正则替换了用jquery处理大dom的地方,小dom依然用jquery处理。
我不是很清楚有没有必要把所有的jquery都用正则或者字符串函数来处理(尤其是对于小的简单的dom)。
(注意身体呀少年)
补充:并不是反对用$(html)处理小的或大的html串,只是想说,用的时候需要注意两点,1,只处理一次,保存结果;2,如果不需要加载图片,要先删掉html字符串里面的img标签。以上
你可以自己看文档试一下,或者问一下binota或者upsuper大佬
出错原因一般是你鼠标乱飞的时候触发了某个读取一个不存在的值的动作
因为不影响功能于是我就一直丢着没管
建议显示成:“XXX一共看过 X 部动画,为其中Y部评过分,平均打分为 Z”
剔除未评分作品在我的更新计划之中
什么时候发布那就看天了
更离谱了
不是很懂
是我代码写的不够好对不起
我清了三次缓存,
每次清之后,
看过的条目数不变,评分的条目数都在变化
从348→276→258
刷新了,还是没用
好像是火狐的锅,换了火狐浏览器之后就挂了
一个很简单的建议是,换用Tampermonkey来管理你的插件
或者等我看看在Greasemonkey上又没有同样的方法可以用
感谢
话说楼主是不是只能用Tampermonkey?Greasemonkey完全无效?
不过tampermonkey好像没有云同步机制