V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Natsumoku
V2EX  ›  分享创造

生成自己的豆瓣电影/音乐/图书封面墙

  •  
  •   Natsumoku · 2022-01-03 20:18:46 +08:00 · 3782 次点击
    这是一个创建于 1057 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介

    以前豆瓣电影的个人年终总结会在电脑网页端生成海报墙,现在那个功能被砍了,只能在手机端查看,而且那幅图也不会再更新。

    所以我写了这个脚本,按照自己需求,可以随时用自己观影的最新数据,生成横版 /竖版的海报墙,大图的穿插可以自己调节。默认是按照给星的高低、从近往远排列的,也可以进行筛选。

    效果图

    建议新标签页查看大图。原本我还想做图片尾端渐变到透明的效果,但是那样的话一张 PNG 格式的成品图轻松超过 15MB ,所以还是放弃了。

    电影海报墙: Preview1

    专辑封面墙: Preview2

    使用方式

    GitHub,README 里有参数说明。

    24 条回复    2023-09-14 20:59:52 +08:00
    czfy
        1
    czfy  
       2022-01-03 20:22:15 +08:00
    好像看到不少后摇专辑
    时过夏末 好评
    Natsumoku
        2
    Natsumoku  
    OP
       2022-01-03 20:53:26 +08:00 via Android   ❤️ 1
    @czfy 是的,后摇治愈又致郁
    d5
        3
    d5  
       2022-01-03 21:11:09 +08:00   ❤️ 1
    哈哈有意思,非常酷,已经 start+fork 支持!
    wellsc
        4
    wellsc  
       2022-01-03 21:15:41 +08:00
    可读性太差,没啥意义
    theHaagenDazs
        5
    theHaagenDazs  
       2022-01-03 23:45:35 +08:00
    看着不错!这种图本来也就是图个好看,已经 star 了
    Natsumoku
        6
    Natsumoku  
    OP
       2022-01-04 02:17:46 +08:00
    做了个改动,现在如果在参数中设成**按标记顺序排列**,被标为五星的条目会优先占据大图位置(也就是说它们会稍稍脱离原本的顺序,为了显得更突出)。
    oluoluo
        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
    oluoluo
        8
    oluoluo  
       2022-01-04 10:34:50 +08:00
    这个是为什么啊
    dragonPunch
        9
    dragonPunch  
       2022-01-04 11:01:02 +08:00
    音乐专辑墙的竹内玛利亚、杏里,还有角松敏生大好评!!
    mortal
        10
    mortal  
       2022-01-04 12:17:01 +08:00
    LZ cache 文件夹不加 .gitignore 么😂
    Natsumoku
        11
    Natsumoku  
    OP
       2022-01-04 12:43:33 +08:00
    @oluoluo 你是 python 3.9 之后的版本吗?如果不是的话,试试看索性删掉 17 行的 “: list[Item]”
    (查了一下,感觉是这个问题: https://stackoverflow.com/questions/63460126/typeerror-type-object-is-not-subscriptable-in-a-function-signature
    Natsumoku
        12
    Natsumoku  
    OP
       2022-01-04 12:50:50 +08:00
    @mortal 这是个好问题。直觉上应该加的,但是我觉得加了的话,GitHub Actions 每天定时跑的时候,cache 文件夹是不是就形同虚设了?本地跑肯定没问题,不手动清空就行,但我不知道 GitHub Actions 机器是怎么分配的,ignore 掉以后大概每次跑之前 cache 都是空的?
    Natsumoku
        13
    Natsumoku  
    OP
       2022-01-04 12:56:27 +08:00
    @oluoluo 如果是 python 3.7 (包括)之后的话,可以 pull 一下重跑试试看,我刚才加了个 from __future__ import annotations 应该能解决那个报错
    WeitingChen
        14
    WeitingChen  
       2022-01-04 13:11:00 +08:00
    点击相关图片,会跳转链接吗
    Natsumoku
        15
    Natsumoku  
    OP
       2022-01-04 13:27:04 +08:00 via Android
    @WeitingChen 生成的是 jpg 格式,所以不会。如果想达到那个效果得用 HTML 和 js 了
    daolanfler
        16
    daolanfler  
       2022-01-04 14:58:43 +08:00 via iPhone
    有点像 mac apple music 锁屏
    oluoluo
        17
    oluoluo  
       2022-01-04 15:00:22 +08:00
    @Natsumoku 确实是 python 版本的问题,哈哈,对新特性的语法不太熟悉。。。
    Rebron1900
        18
    Rebron1900  
       2022-01-04 15:01:01 +08:00
    可以搞个 html 和 js 的么,想挂在博客上面
    terencehan
        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
    ```
    Natsumoku
        20
    Natsumoku  
    OP
       2022-01-04 16:29:17 +08:00
    @terencehan 感谢反馈,这是没有打星的条目会触发这个问题,目前已修复
    WeitingChen
        21
    WeitingChen  
       2022-01-05 16:32:00 +08:00
    @Natsumoku 可以搞成 canvas
    gnomeek
        22
    gnomeek  
       2022-01-15 17:50:38 +08:00
    Asimov01
        23
    Asimov01  
       2022-04-22 15:06:03 +08:00
    有意思,感谢分享
    ldsj
        24
    ldsj  
       2023-09-14 20:59:52 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3128 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:56 · PVG 21:56 · LAX 05:56 · JFK 08:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.