中文介绍请看 README_zh-Hans
This tiny tool allows you to create a calendar of VNDB upcoming releases. Everything is supposed to be automated via GitHub Actions after initial setup. If you choose to publish the ICS
file, you can just subscribe it in any calendar app that supports iCalendar. An example including en & ja releases is avaialable here.
For now VNDB only offers RSS for Recent Changes, but not Upcoming Releases or Just Released. There are multiple previous discussions about that but I don't think Yorhel is going to do that any time soon.
This is created as a workaround (just in ICS rather than RSS) for personal use and serves as an extended practice of my blog post iCalendar (ICS) 的养成方式 (written in Chinese).
To customize the query, run vndb_calendar.py
with optional parameters:
python vndb_calendar.py -f {customized_compact_filter} -p {max_page} -t {shift_time} -d {1 or 0}
- Example of generic filters for en & ja upcoming releases with description:
python vndb-calendar.py -f "0572171_4YsVe122gen2gjaN48721gwcomplete-" -t 0 -d 1
-f
or--filter
: your custom compact filters, by default it would use my personalized one-p
or--max-page
: maximum pages of query results, by default it will be2
-t
or--shift-time
: show new releases X days ago, it's really upcoming release if set to0
, by default it will be14
-d
,--description
or--intro
: add VN description to calendar event, bool type (only0
/1
is supported), by default0
/False
This is basically an inferior version of release calendar, focused on a user's wishlist.
Nothing to customize actually, simply run wishlist.py
:
python wishlist.py -u "{uid}" -p {max_page}
- Example of Yorhel's wishlist:
python wishlist.py -u "u2"
-u
or--user
: user id with 'u', e.g.u2
-p
or--max-page
: maximum pages of query results, by default it will be1
. As wishlist is fetched reversely, newest items come first. Each page has 100 items, so 1 page is usually suffecient if you use calendar only for upcoming releases.
Note
wishlist.py
assumes you use the default wishlist
label and have not set it as private.
If you prefer to use another default label or your custom labels to generate calendar,
use attached one-liner to determine the label id and change default_filters
in the script.
- Remove redundant releases of the same VN
- Declutter common release variate titles like
ダウンロード版
andDLカード版
- Better handling of incomplete date like
2026
and2024-02
- Find out why many filters would make responses 400 (misplaced filter params)
- Filter out BLG/Otome game & other tags I wish to avoid
- Add filters arguments (you can use compact filters to quickly customize the results)
- Make calendar with generic en & ja releases (in a tagged automated release)
- Add VN description in calendar events and make it a parameter
- Add user wishlist, just like SteamWishlistCalendar
- Fix event parsing bug caused by
rid
&event_dict
- Do not use alternative title in en tagged release (low priority, I assume people would prefer literal title instead of confusing Romaji)
- Add external links (Getchu/DMM/DLsite/Steam/Official website etc.) to event description (low priority, quite long already with VN description)
Parse VNDB formatting codesSwitch to query
If you happen to know Perl, I suggest you to contribute to VNDB directly (reference: vndb/lib/VNWeb/Misc/Feeds.pm - yorhel/vndb) so no third party tool is needed. That being said, any contribution is appreciated, either to VNDB or this repository.
- Inspired by SteamWishlistCalendar, which I highly recommend in favor of email notifications
- VNDB Steam Enhancer is another learning source for interacting with VNDB API
- Thanks to all VNDB contributors & editors for making such a great site available