New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hoyolab-rss-feeds

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hoyolab-rss-feeds

RSS feed generator for official game news from Hoyolab.

  • 2.4.1
  • PyPI
  • Socket score

Maintainers
1

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

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

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
GameSection
Genshin Impactgenshin
Honkai Impact 3rdhonkai
Tears of Themisthemis
Honkai: Starrailstarrail
Zenless Zone Zerozenless
Languages

English is the default language.

LanguageCode
Germande-de
Englishen-us
Spanishes-es
Frenchfr-fr
Indonesianid-id
Italianit-it
Japaneseja-jp
Koreanko-kr
Portuguesept-pt
Russianru-ru
Thaith-th
Turkishtr-tr
Vietnamesevi-vn
Chinese (CN)zh-cn
Chinese (TW)zh-tw

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc