Skip to main content

RSS feed generator for official game news from Hoyolab.

Project description

Hoyolab RSS Feeds

PyPI Python Version Tests Status Codecov Code style: black Checked with mypy

Generate RSS news feeds for Hoyoverse games like Genshin Impact or Honkai Starrail based on the official Hoyolab forum posts. Available feed formats are Atom and JSON Feed. This application is supposed to run periodically by a cronjob for example.

There are feeds of some games already hosted by myself!

Installation & Usage

Python Module

You can install the package from PyPI with:

pip install hoyolab-rss-feeds

... and run the application like this:

hoyolab-rss-feeds

... or explicitly as module:

python -m hoyolabrssfeeds

If no configuration can be found, the application will create a default config in your current directory (./hoyolab-rss-feeds.toml) and will exit afterward.

You can specify a path for the config file with a parameter:

hoyolab-rss-feeds -c path/to/config.toml

It is also possible to generate the feeds directly in your Python code:

from pathlib import Path
from hoyolabrssfeeds import FeedConfigLoader, GameFeed, GameFeedCollection, Game

async def generate_feeds():
    loader = FeedConfigLoader(Path("path/to/config.toml"))
    
    # all games in config
    all_configs = await loader.get_all_feed_configs()
    feed_collection = GameFeedCollection.from_configs(all_configs)
    await feed_collection.create_feeds()
    
    # only a single game
    genshin_config = await loader.get_feed_config(Game.GENSHIN)
    genshin_feed = GameFeed.from_config(genshin_config)
    await genshin_feed.create_feed()

Here you can find an example on how to create a feed without using the TOML config file.

Docker

The application is also available as Docker image and can be run like this:

docker run \
  -v "/path/to/config.toml:/app/config.toml" \
  -v "/path/to/data:/data" \
  ghcr.io/c3kay/hoyolab-rss-feeds

The config file should be mounted to the default path /app/config.toml. The /data directory should be used as the target directory for the generated feeds and also need to be configured like so in the config file (see option feed.<format>.path below).

Please note that you still need some kind of scheduler like cron or Kubernetes to run the image in fixed intervals to refresh the feeds!

Configuration

In the TOML config file you can define for which games you want to create a feed and in which format the feeds should be. Here is an example config:

language = "de-de"
category_size = 15

[genshin]
feed.json.path = "path/to/genshin.json"
feed.json.url = "https://example.org/genshin.json"
categories = ["Info", "Notices"]
category_size = 5
title = "Genshin Impact News"
icon = "https://example.org/icon.png"

[starrail]
feed.json.path = "path/to/starrail.json"
feed.json.url = "https://example.org/starrail.json"
feed.atom.path = "path/to/starrail.xml"
feed.atom.url = "https://example.org/starrail.xml"

A minimal configuration requires at least one game section with a feed.<format>.path entry. Available feed formats are currently json and atom. You can either use one format or both.

Entries defined at root level are considered default values and will apply to every game section. The feed key can only be used in a game section. All other keys can be defined at root level, and they can be overwritten by a game section.

The categories list defines the selected Hoyolab categories (Info, Event and Notices) for this feed. If this entry is omitted, all categories are selected. The category_size entry defines the amount of feed items (default: 5) of a category for each feed.

Note: When using Windows file paths (like C:\\path\to\config.toml), single quotes should be used to avoid wrong auto-escaping of backslashes. More info about the TOML format can be found in the official documentation.

Logging

Simple logs at level INFO are written to the terminal by default. If a file path is given via parameter (-l /path/to/out.log), the logs are written to this file.

If the application is run via code, the logger must be configured separately. The application specific logger is available by:

import logging
logger = logging.getLogger("hoyolabrssfeeds")

Options

Games

Game Section
Genshin Impact genshin
Honkai Impact 3rd honkai
Tears of Themis themis
Honkai: Starrail starrail
Zenless Zone Zero zenless
Honkai: Nexus Anima nexus
Petit Planet planet

Languages

English is the default language.

Language Code
German de-de
English en-us
Spanish es-es
French fr-fr
Indonesian id-id
Italian it-it
Japanese ja-jp
Korean ko-kr
Portuguese pt-pt
Russian ru-ru
Thai th-th
Turkish tr-tr
Vietnamese vi-vn
Chinese (CN) zh-cn
Chinese (TW) zh-tw

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hoyolab_rss_feeds-2.6.0.tar.gz (27.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hoyolab_rss_feeds-2.6.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file hoyolab_rss_feeds-2.6.0.tar.gz.

File metadata

  • Download URL: hoyolab_rss_feeds-2.6.0.tar.gz
  • Upload date:
  • Size: 27.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hoyolab_rss_feeds-2.6.0.tar.gz
Algorithm Hash digest
SHA256 8280ee270dc6ce50b34620e3eaf2396ec16c9875b9f1e508da9b7b2ffeb456cd
MD5 60d5070ecbf74151af692c6b6a70f41b
BLAKE2b-256 e2e1cd5bee24c0e7122703a660e0608557dadaa3847a3b777aae29d88ae948c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hoyolab_rss_feeds-2.6.0.tar.gz:

Publisher: build.yaml on c3kay/hoyolab-rss-feeds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hoyolab_rss_feeds-2.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hoyolab_rss_feeds-2.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2389cffd1863065e3e35f9bc7bc69a905f6c07bab4a6a96e87ff142fc3c8c2dd
MD5 94e8245ba41545b738878ec96f7689de
BLAKE2b-256 927bbebfde838e9e6cb62502ff79b5f18c09af5e02a5339fe0462b6be01801b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for hoyolab_rss_feeds-2.6.0-py3-none-any.whl:

Publisher: build.yaml on c3kay/hoyolab-rss-feeds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page