Git Product home page Git Product logo

vndb-relcalendar's Introduction

VNDB Release Calendar

中文介绍请看 README_zh-Hans

Intro

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.

Why

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).

Usage

To customize the query, run the script 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 be 2
  • -t or --shift-time: show new releases X days ago, it's really upcoming release if set to 0, by default it will be 14
  • -d, --description or --intro: add VN description to calendar event, bool type (only 0/1 is supported), by default 0/False

Todo

  • Remove redundant releases of the same VN
  • Declutter common release variate titles like ダウンロード版 and DLカード版
  • Better handling of incomplete date like 2026 and 2024-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
  • Switch to query?
  • 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)
  • User wishlist, just like SteamWishlistCalendar (low priority as I don't use VNDB this way)
  • Add external links (Getchu/DMM/DLsite/Steam/Official website etc.) to event description (low priority, it is quite long with VN description already)
  • Parse VNDB formatting codes

Contribution

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.

Acknowledgement

  • 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

vndb-relcalendar's People

Contributors

actions-user avatar dependabot[bot] avatar vinfall avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.