icue / SteamWishlistCalendar

Automatically tracks Steam wishlist release dates and publishes .ICS file that can be subscribed.
BSD 3-Clause "New" or "Revised" License
16 stars 2 forks source link
calendar icalendar steam steam-api

Steam Wishlist Calendar

Automatically tracks Steam wishlist release dates and publishes .ICS file that can be subscribed.

Example track history output: Wishlist History

Wishlist History Stack Plot

Instructions (简体中文/Simplified Chinese version)

  1. Make sure your Steam profile is public.
  2. pip install -r requirements.txt
  3. python swc.py -i={steam ID} or python -m swc -i={steam ID}

    Optional parameters:

    • -d: whether to include DLCs. Default is False.
    • -p: maximum number of pages to process. Default is 20. This determines how many items on the wishlist get processed in total. It's unclear how many items each page contains by Steam API design, but 20 should generally be enough if you don't have thousands of items on your wishlist. If you find that the result is cut-off, try set a higher number.
  4. When finished, the script generates 5 files in /output directory.
    • wishlist.ics: an .ICS file, which can be imported into common calendar applications, such as Google Calendar and Outlook. Learn more about this format on Wikipedia.
    • history.json: stores the number of wishlisted items, as well as the number of pre-releases among them, of the day. Keeps growing.
    • successful.txt: stores the items that either has an explicit release date or has a vague release date successfully converted into an exact date. Each line contains first the item name, then the release date.
    • wishlist_history_chart.png: a line chart that shows the trend of the wishlist. What gets displayed here also depends on data in history.json.
    • wishlist_history_stack_plot.png: a stack plot that shows the trend of the wishlist. What gets displayed here also depends on data in history.json.
  5. Refer to the workflow yml file in this repo, to automatically run the script on schedule. Note that the workflow will use a branch named "output" particularly to store the output image, where the history will not be tracked. This is to prevent the repo size from expanding rapidly.
  6. If you choose to publish the .ICS file, such as on GitHub, you may then have your calendar app subscribe to that file. Effectively what you get is a calendar that syncs with the release dates of the items on your wishlist.