#1 - 2017-11-5 03:23
woozy


仿 GitHub 贡献图,目前支持时间胶囊的各个类型。虽然已有前人做过,我还是造轮子了。

将链接 https://bangumi-mosaic-tile.aho.im/users/woozy 中的 woozy 换成自己的用户名(非昵称)即可。

初次打开会显示 404,这是正常流程,此时可以在这里看到自己的用户名已加入待更新的任务队列,等任务都跑完再刷新页面就有了。在爬到初始数据后,之后的更新策略,是访问页面后,距上次更新一天以上才会加入更新队列。队列里至少隔半分钟才执行单个任务,而且只会爬有更新的部分,这样应该不会对班固米服务器造成太大压力吧(应该吧?(别转我学

马赛克瓷砖的颜色取自 Bangumi 的 #f09199 以及它的 Monochromatic Color

代码开源在 GitHub

UPDATE (2017-11-12): 现已支持维基的各个类型
UPDATE (2018-06-28): 由于这个月使用超出 Heroku 的免费额度了被停了,所以迁移到 now.sh 上了。
UPDATE (2018-07-14): 支持维基新增的条目关联、人物关联和角色关联
UPDATE (2020-05-04): 支持生成特定时间范围的 SVG;支持竖直方向的 SVG;添加油猴脚本
UPDATE (2021-08-09): now.sh 域名被墙了,改为自己的 aho.im 域名
#2 - 2017-11-5 04:08
(就是没有)
目前只有我一个人在队列里,好孤单(bgm38)

记得以前有个BGM开放式开发计划,这些新功能能加进去就好了。
#3 - 2017-11-5 09:50
被删除的TL无法被抓去进数据
#4 - 2017-11-5 09:56
(大変に気分がいい)
{"error":{"code":"NotFoundError","message":"Not Found"}}
#4-1 - 2017-11-5 11:00
本子战士
同样的问题
#4-2 - 2017-11-5 11:30
君寻
Ctrl+F5 强制刷新
#5 - 2017-11-5 10:02
(成为世界第一)
nice(bgm97)
#6 - 2017-11-5 10:19
(いつでも微笑みを)
怎么用在个人首页里?
#6-1 - 2017-11-5 15:53
woozy
个人首页的自我介绍不能放 img 的 BBCode,所以没法放
#6-2 - 2018-4-30 00:04
九八式衍射弹
woozy 说: 个人首页的自我介绍不能放 img 的 BBCode,所以没法放
看了一下,上个月超合金组件里貌似多了一个“为各种地方加上BBCodeHelper”的组件,说不定可以放img的BBCode了?
#6-3 - 2018-4-30 01:47
woozy
九八式衍射弹 说: 看了一下,上个月超合金组件里貌似多了一个“为各种地方加上BBCodeHelper”的组件,说不定可以放img的BBCode了?
不能吧,BGM 服务端过滤掉的。
https://bgm.tv/dev/app/144 不知道你能不能访问,我已经写了专门的超合金组件了,但审核不通过。
有兴趣可以看下源码 https://github.com/weizhenye/ban ... /tree/master/gadget
#6-4 - 2018-4-30 05:01
九八式衍射弹
woozy 说: 不能吧,BGM 服务端过滤掉的。
https://bgm.tv/dev/app/144 不知道你能不能访问,我已经写了专门的超合金组件了,但审核不通过。
有兴趣可以看下源码 https://githu...
原来如此,不过我还不是很会js (bgm38)
#7 - 2017-11-5 10:32
(学会欣赏不完美)
初次打开显示太不友好了,至少让人知道在等待队列啊
#8 - 2017-11-5 11:35
(BGMのTrinitas<=>婊冈妈<=>补冈妈<=>拜冈妈 ... ... ...)
我直接出来了,没有404
#8-1 - 2017-11-5 15:53
woozy
VIP⑩ 当然是优先处理啦
#9 - 2017-11-5 11:44
(いいんです)
嗯抓的是TL所以维基只有创建条目的?
但是我以前是个会删动态的人啊虽然现在懒了
#9-1 - 2017-11-5 15:56
woozy
我写完才发现时间胶囊里的维基是只有创建的。完整的维基在计划中
#10 - 2017-11-5 15:39
(好好科研,好好灌水)
抱歉,我貌似把它玩坏了(bgm38)输错了两次用户名
#11 - 2017-11-5 19:03
每个项目的解析是并行的?  其他都完了  进度一直没解析完 还是0
#11-1 - 2017-11-5 19:54
woozy
想象力限制了我的设计能力,你的进度总共有 900 页,处理完后 Cloud Database 给我报了一个
{ Error: Too many indexed properties for entity: app: "b~bangumi-mosaic-tile",path <  Element {    type: "User",    name: "athrun1120"  },  Element {    type: "Timeline",    name: "progress"  }>

一时半会解决不了,要重新设计数据结构。
#11-2 - 2017-11-5 21:10
A.one
woozy 说: 想象力限制了我的设计能力,你的进度总共有 900 页,处理完后 Cloud Database 给我报了一个
{ Error: Too many indexed properties for entit...
我就在想是不是刷爆了(bgm38)
#12 - 2017-11-5 19:44
(誰か散らせ 僕がここに居たという証も ...)
明明有队列能读却直接抛error给user
可是免费工具我又不好抱怨什么(bgm38)
#12-1 - 2017-11-5 19:50
Genius、小乖🌟💯
我觉得吧,就近两年的趋势,BGMer 的口味越来越刁了。本来就是一个 il n'y a rien aujourd'hui 的网站,有人能做出东西已经不错了,还有人要挑三拣四的。话说楼主已经开源了工具,竟然没有人来 PR.
#12-2 - 2017-11-5 21:12
月火
Genius、小乖 说: 我觉得吧,就近两年的趋势,BGMer 的口味越来越刁了。本来就是一个 il n'y a rien aujourd'hui 的网站,有人能做出东西已经不错了,还有人要挑三拣四的。话说楼主已经开源了工具,...
if (!data) {
// TODO: 404 page?
ctx.throw(404);
为什么不这样?
ctx.body = ('You are in queue, press F5 to refresh.')
#12-3 - 2017-11-5 21:23
Genius、小乖🌟💯
月火 说: if (!data) {
// TODO: 404 page?
ctx.throw(404);
为什么不这样?
ctx.body = ('You are in queue, press F5 to ...
因为有可能用户输错了用户名。
#13 - 2017-11-5 22:23
(こんなこと、気付かなければよかったのに ...)
heroku不是被q了吗(bgm39)
#13-1 - 2017-11-7 12:13
Hentyclopedia
没有吧,我在heroku上做了个LL的app国服玩家用的好好的
#13-2 - 2017-11-7 12:30
🍋LautlosP🍋
Hentyclopedia 说: 没有吧,我在heroku上做了个LL的app国服玩家用的好好的
之前有一段时间要挂梯子才上的去..
#14 - 2017-11-5 22:46
赞,本来想自己做个日记系统配个热度图的,结果发现自己根本不想写日记于是坑了(bgm38)
#15 - 2017-11-5 22:48
(汝视视汝)
(bgm38)  這個的app是heroku, db是google?
#15-1 - 2017-11-7 12:14
Hentyclopedia
有个Heroku Postgres的addon,免费的话db可以写一万条
#15-2 - 2017-11-7 12:35
ouow
Hentyclopedia 说: 有个Heroku Postgres的addon,免费的话db可以写一万条
一万条得相当省吧..谢谢 -v-
#16 - 2017-11-5 23:19
先start了再说 (bgm38)
#17 - 2017-11-6 00:58
(xD)
别的不说了,赞(bgm38)
#18 - 2017-11-6 18:23
(成为世界第一)
// ==UserScript==
// @名字         查看 bangumi 马赛克瓷砖
// @author       鈴宮華緋
// @include      /https?:\/\/(bgm\.tv|bangumi\.tv|chii\.in)\/(user)\/.*/
// @require      http://code.jquery.com/jquery-latest.js
// ==/UserScript==

(function() {
    var url = window.location.href;
    var userid = url.match(/user\/(.*)/)[1];
    $.ajax({
        url : "https://bangumi-mosaic-tile.herokuapp.com/users/" + userid + "/timelines/progress.svg",
        success : function(){
            $.get("https://bangumi-mosaic-tile.herokuapp.com/users/" + userid);
            $(".bio").after("<div  style='text-align:center;margin-top:10px;color:rgb(150,150,150)'>bangumi 进度马赛克瓷砖</br><img src='https://bangumi-mosaic-tile.herokuapp.com/users/" + userid + "/timelines/progress.svg' style='margin-top:10px;'></img></div>");
        },
        error : function(){
            $(".bio").after("<div  style='text-align:center;margin-top:10px;color:rgb(150,150,150);'>该用户无马赛克瓷砖</div>");
        }
    });
})();

写了一段丢到 tampermonkey 去,就是拿lz生成的svg放到个人资料的描述下面,所以就可以在有瓷砖的好友的主页看到他们的瓷砖了。没有的话就会说:该用户无马赛克瓷砖。 本来是想直接扒 https://bangumi-mosaic-tile.herokuapp.com/users/userid 的,这样就算访问没瓷砖的人也可以丢到队列里去,不过想了想可能对lz服务器不太友好所以还是直接拿的svg

#18-1 - 2017-11-6 22:21
woozy
赞,妹想到这种曲线救国的方法,可以放到 greasyfork 上,greasyfork 亡了?
请求单个 SVG 时会把这个类型的时间胶囊放到队列里,所以总会有的。
#18-2 - 2017-11-7 09:06
菜叶
想装到 greasemonkey 里边发现点了安装无反应(bgm38)
#18-3 - 2017-11-7 09:10
#18-4 - 2017-11-7 10:26
君寻
菜叶(yejingchen) 说: 想装到 greasemonkey 里边发现点了安装无反应
需要把
// @名字         查看 bangumi 马赛克瓷砖

换成
// @name         查看 bangumi 马赛克瓷砖
#18-5 - 2017-11-7 12:07
鈴宮華緋 [团长大人]
君寻 说: 需要把
// @名字&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;查看 bangumi 马赛克瓷砖
换成
// @name&nbsp; &nbsp;&nbsp; &nb...
不知道为啥我复制上来的时候他就自动把 name 替换成 名字 了(bgm38)
#18-6 - 2017-11-7 12:13
鈴宮華緋 [团长大人]
鈴宮華緋 说: 不知道为啥我复制上来的时候他就自动把 name 替换成 名字 了
发到 greasyfork 上去了
https://greasyfork.org/zh-CN/scr ... B%E7%93%B7%E7%A0%96
#18-7 - 2017-11-7 12:31
🍋LautlosP🍋
鈴宮華緋 说: 不知道为啥我复制上来的时候他就自动把 name 替换成 名字 了
因为有个用户的id是"name"
其用户名为"名字"
#18-8 - 2017-11-7 12:32
鈴宮華緋 [团长大人]
NevaR 说: 因为有个用户的id是"name"
其用户名为"名字"
666666 这么粗暴的么(bgm38)
#18-9 - 2017-11-7 12:36
ouow
NevaR 说: 因为有个用户的id是"name"
其用户名为"名字"
666
#18-10 - 2018-2-22 14:08
五行荠菜肉馄饨
好像在GreaseMonkey 4.2+Firefox 59下面无效?
#18-11 - 2018-5-7 10:43
Franklin Yu
考慮支持 GM 4 語法
#18-12 - 2018-5-7 10:44
Franklin Yu
五行荠菜肉馄饨 说: 好像在GreaseMonkey 4.2+Firefox 59下面无效?
GM4 完全重寫,API 不兼容。可以請求作者寫個同時兼容 3 和 4 的腳本。
#18-13 - 2018-5-7 16:47
五行荠菜肉馄饨
Franklin Yu 说: GM4 完全重寫,API 不兼容。可以請求作者寫個同時兼容 3 和 4 的腳本。
我看文档说只要加上gm4-polyfill库就可以兼容旧API,我加了然后没用……
还有,暴力猴实测也没有用……
#18-14 - 2018-5-11 10:18
Franklin Yu
五行荠菜肉馄饨 说: 我看文档说只要加上gm4-polyfill库就可以兼容旧API,我加了然后没用……
还有,暴力猴实测也没有用……
啥叫「沒用」,你是怎麼用的…… polyfill 是在暴力猴上跑新 API 的
#18-15 - 2018-5-11 12:51
五行荠菜肉馄饨
Franklin Yu 说: 啥叫「沒用」,你是怎麼用的…… polyfill 是在暴力猴上跑新 API 的
就是把老的GM_API换成GM.API然后加上//@require .../gm4-polyfill.js 啊。
还有,这个是GM的开发者推荐的3.X向4.0迁移用的……
#18-16 - 2018-6-10 06:14
Franklin Yu
五行荠菜肉馄饨 说: 就是把老的GM_API换成GM.API然后加上//@require .../gm4-polyfill.js 啊。
还有,这个是GM的开发者推荐的3.X向4.0迁移用的……
那怎麼個「沒用」法?我用下來沒問題啊,能在暴力猴中調用新 API 的。另外「这个是GM的开发者推荐的3.X向4.0迁移用的」和我說的是一個意思吧?
#18-17 - 2018-6-10 09:14
五行荠菜肉馄饨
Franklin Yu 说: 那怎麼個「沒用」法?我用下來沒問題啊,能在暴力猴中調用新 API 的。另外「这个是GM的开发者推荐的3.X向4.0迁移用的」和我說的是一個意思吧?
我自己解决了,原因是没有给网站和脚本宿主Exract Canvas Data权限……
#18-18 - 2018-6-10 10:07
Franklin Yu
五行荠菜肉馄饨 说: 我自己解决了,原因是没有给网站和脚本宿主Exract Canvas Data权限……
good for you
#18-19 - 2018-7-6 19:50
Rhilip
建议把get_mosaic 中"https://bangumi-mosaic-tile.herokuapp.com/users/"部分单独抽出,后面统一用这个变量替代。。

let api_prefix = "https://bangumi-mosaic-tile.now.sh/users/";
#18-20 - 2018-7-6 20:01
鈴宮華緋 [团长大人]
Rhilip(id: rhilip) 说: 建议把get_mosaic 中"https://bangumi-mosaic-tile.herokuapp.com/users/"部分单独抽出,后面统一用这个变量替代。。

let api_prefi...
ok啦,我更新了
#19 - 2017-11-7 12:53
(成为世界第一)
对了lz 我发现只请求了.svg 的人的确生成了马赛克瓷砖,但是却没有生成相应的 svg

#19-1 - 2017-11-7 22:05
woozy
这个我本地测试了下,应该是没问题的
#19-2 - 2017-11-7 22:51
鈴宮華緋 [团长大人]
woozy 说: 这个我本地测试了下,应该是没问题的
突然就好了 (bgm38)
#20 - 2017-11-7 13:21
看上去很炫,不过完全没明白颜色深浅代表什么意思 (bgm38)
#20-1 - 2017-11-7 22:52
#20-2 - 2018-7-6 22:57
Trim21
GitHub上的深浅是这一天commit的数次 对应过来是bangumi活动的次数吧
#21 - 2018-6-14 23:06
#22 - 2018-7-6 23:22
(2011 冬、始)
好看
#23 - 2018-7-7 16:36
(我好想看「アイアンウルフの箱 」「クライシス・レッ ...)
強勢欸