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 some feeds already hosted by myself!

Installation

You need at least Python 3.8 and the package manager Pip installed. You can then install this package from PyPI with:

pip install hoyolab-rss-feeds

Usage

CLI

You can run the application like this:

hoyolab-rss-feeds

or 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 afterwards.

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

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

Module

It is also possible to generate the feeds via code:

from hoyolabrssfeeds import FeedConfigLoader, GameFeed, GameFeedCollection, Game

async def generate_feeds():
    loader = FeedConfigLoader("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.

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.

Options

Games

Game Section
Genshin Impact genshin
Honkai Impact 3rd honkai
Tears of Themis themis
Honkai: Starrail starrail
Zenless Zone Zero zenless

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.2.1.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

hoyolab_rss_feeds-2.2.1-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file hoyolab-rss-feeds-2.2.1.tar.gz.

File metadata

  • Download URL: hoyolab-rss-feeds-2.2.1.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for hoyolab-rss-feeds-2.2.1.tar.gz
Algorithm Hash digest
SHA256 15a372e97a4f2b22908dfe83c44cb511e7115dccc5f5b65c584389c74fa9d5c6
MD5 ea596c89c95b3bdac95ddc8ba6136837
BLAKE2b-256 4a8a4e83f71662098079989b28c24099b71b96704e91856fce647ac539d237c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hoyolab_rss_feeds-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 997c9bd88e6995f33a27a48718adce743aebc1ca92b5452d40dd06b80730c72e
MD5 65383830d9fdbdfada1e7c035029a04c
BLAKE2b-256 6793926a27a38ad8239dbb538ae050e920ce2a552639c2b589df135526a84267

See more details on using hashes here.

Supported by

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