以前豆瓣电影的个人年终总结会在电脑网页端生成海报墙,现在那个功能被砍了,只能在手机端查看,而且那幅图也不会再更新。
所以我写了这个脚本,按照自己需求,可以随时用自己观影的最新数据,生成横版 /竖版的海报墙,大图的穿插可以自己调节。默认是按照给星的高低、从近往远排列的,也可以进行筛选。
建议新标签页查看大图。原本我还想做图片尾端渐变到透明的效果,但是那样的话一张 PNG 格式的成品图轻松超过 15MB ,所以还是放弃了。
电影海报墙:
专辑封面墙:
见 GitHub,README 里有参数说明。
1
czfy 2022-01-03 20:22:15 +08:00
好像看到不少后摇专辑
时过夏末 好评 |
3
d5 2022-01-03 21:11:09 +08:00 1
哈哈有意思,非常酷,已经 start+fork 支持!
|
4
wellsc 2022-01-03 21:15:41 +08:00
可读性太差,没啥意义
|
5
theHaagenDazs 2022-01-03 23:45:35 +08:00
看着不错!这种图本来也就是图个好看,已经 star 了
|
6
Natsumoku OP 做了个改动,现在如果在参数中设成**按标记顺序排列**,被标为五星的条目会优先占据大图位置(也就是说它们会稍稍脱离原本的顺序,为了显得更突出)。
|
7
oluoluo 2022-01-04 10:33:14 +08:00
Traceback (most recent call last):
File "image_wall.py", line 9, in <module> from item import Item, get_next_img_url File "/root/dl/DoubanImageWall/item.py", line 17, in <module> def get_next_img_url(items: list[Item], sort_by_time: bool, need_large_img: bool) -> str: TypeError: 'type' object is not subscriptable |
8
oluoluo 2022-01-04 10:34:50 +08:00
这个是为什么啊
|
9
dragonPunch 2022-01-04 11:01:02 +08:00
音乐专辑墙的竹内玛利亚、杏里,还有角松敏生大好评!!
|
10
mortal 2022-01-04 12:17:01 +08:00
LZ cache 文件夹不加 .gitignore 么😂
|
11
Natsumoku OP @oluoluo 你是 python 3.9 之后的版本吗?如果不是的话,试试看索性删掉 17 行的 “: list[Item]”
(查了一下,感觉是这个问题: https://stackoverflow.com/questions/63460126/typeerror-type-object-is-not-subscriptable-in-a-function-signature ) |
12
Natsumoku OP @mortal 这是个好问题。直觉上应该加的,但是我觉得加了的话,GitHub Actions 每天定时跑的时候,cache 文件夹是不是就形同虚设了?本地跑肯定没问题,不手动清空就行,但我不知道 GitHub Actions 机器是怎么分配的,ignore 掉以后大概每次跑之前 cache 都是空的?
|
13
Natsumoku OP @oluoluo 如果是 python 3.7 (包括)之后的话,可以 pull 一下重跑试试看,我刚才加了个 from __future__ import annotations 应该能解决那个报错
|
14
WeitingChen 2022-01-04 13:11:00 +08:00
点击相关图片,会跳转链接吗
|
15
Natsumoku OP @WeitingChen 生成的是 jpg 格式,所以不会。如果想达到那个效果得用 HTML 和 js 了
|
16
daolanfler 2022-01-04 14:58:43 +08:00 via iPhone
有点像 mac apple music 锁屏
|
18
Rebron1900 2022-01-04 15:01:01 +08:00
可以搞个 html 和 js 的么,想挂在博客上面
|
19
terencehan 2022-01-04 16:07:45 +08:00
python 3.7.4
``` Traceback (most recent call last): File "image_wall.py", line 90, in <module> rating = int(re.match(rating_span_regex, item_div.find('span', {'class': rating_span_regex})['class'][0])[1]) TypeError: 'NoneType' object is not subscriptable ``` |
20
Natsumoku OP @terencehan 感谢反馈,这是没有打星的条目会触发这个问题,目前已修复
|
21
WeitingChen 2022-01-05 16:32:00 +08:00
@Natsumoku 可以搞成 canvas
|
22
gnomeek 2022-01-15 17:50:38 +08:00
@Rebron1900 #18 可以参考这个 https://www.douban.com/service/badgemaker
|
23
Asimov01 2022-04-22 15:06:03 +08:00
有意思,感谢分享
|
24
ldsj 2023-09-14 20:59:52 +08:00
赞
|