No description
Find a file
Quentin Ferrand a94dc1d48d
Some checks failed
continuous-integration/drone/push Build is failing
...
2022-04-24 21:27:44 +02:00
.chglog initial commit 2022-01-12 22:00:37 +01:00
tenkan add build / push steps for drone 2022-04-21 17:42:41 +02:00
tests fix: fix atom file not rebuilt if new files written 2022-01-13 23:46:12 +01:00
.drone.yml make tests shut up again 2022-04-24 21:01:49 +02:00
.gitignore make CI great again 2022-04-24 20:50:16 +02:00
.pre-commit-config.yaml create bordel de merde setup.py for drone 2022-04-24 21:23:42 +02:00
CHANGELOG.md bump to v0.1.2 2022-01-13 23:49:28 +01:00
LICENCE initial commit 2022-01-12 22:00:37 +01:00
poetry.lock add build / push steps for drone 2022-04-21 17:42:41 +02:00
pyproject.toml bump to v0.1.2 2022-01-13 23:49:28 +01:00
README.md add drone pipeline 2022-04-21 13:17:48 +02:00
README.rst create bordel de merde setup.py for drone 2022-04-24 21:23:42 +02:00
setup.py ... 2022-04-24 21:27:44 +02:00
tenkan.conf.example initial commit 2022-01-12 22:00:37 +01:00

Build Status

tenkan

Command line tool to convert HTTP RSS/Atom feeds to gemini format.

Installation

pip install tenkan

Usage

Add a feed

# Any valid RSS/Atom feed
tenkan add feedname url

Update content of feed list

tenkan update

Delete feed

tenkan delete feedname

List subscripted feeds

tenkan list

Options

A debug mode is avaible via --debug option. If you want to use your configuration or feeds file in another place than default one, you can use --config and --feedsfile options.

Configuration

tenkan searches for a configuration file at the following location:

$XDG_CONFIG_HOME/tenkan/tenkan.conf

Example config

This can be found in tenkan.conf.example.

[tenkan]
gemini_path = /usr/local/gemini/
gemini_url = gemini://foo.bar/feeds/
# will purge feed folders having more than defined element count
# purge_feed_folder_after = 100

[filters]
# authors we don't want to read
# authors_blacklist = foo, bar
# blacklist of article titles, if provided, it won't be processed
# titles_blacklist = foo, bar
# blacklist of article links, if provided, it won't be processed
# links_blacklist = foo/bar.com, bar/foo, bla

[formatting]
# maximum article title size, 120 chars if not provided
# title_size = 120

# feeds with a truncated content
# will be fetched and converted using readability
# truncated_feeds = foo, bar

Todolist

  • Add a edit command
  • Add a --feedname option to update command, to update a single feed
  • Rewrite configuration checks
  • add configuration option to log output into a logfile
  • Improve tests
  • Refactor needed parts like write_article
  • (not sure if relevant) migrate images too, for gemini clients that can handle it

Development

I recommend using pre-commit. The pre-commit configuration I use is located in .pre-commit-config.yamlfile.

Run pre-commit command before every pull request and fix the warnings or errors it produces.