Go to file
Quentin Ferrand ad3e19b9eb
continuous-integration/drone/push Build is failing Details
bump
2022-12-21 21:36:12 +01:00
.chglog initial commit 2022-01-12 22:00:37 +01:00
docker misc improvements 2022-05-01 18:29:26 +02:00
tenkan add drone pipeline 2022-04-28 21:52:34 +02:00
tests fix: fix atom file not rebuilt if new files written 2022-01-13 23:46:12 +01:00
.drone.yml misc improvements 2022-05-01 18:29:26 +02:00
.gitignore fix: fix atom file not rebuilt if new files written 2022-01-13 23:46:12 +01:00
.pre-commit-config.yaml add drone pipeline 2022-04-28 21:52:34 +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
MANIFEST.in add drone pipeline 2022-04-28 21:52:34 +02:00
README.md add drone pipeline 2022-04-28 21:52:34 +02:00
README.rst add drone pipeline 2022-04-28 21:52:34 +02:00
poetry.lock add drone pipeline 2022-04-28 21:52:34 +02:00
pyproject.toml misc improvements 2022-05-01 18:29:26 +02:00
setup.py bump 2022-12-21 21:36:12 +01:00
tenkan.conf.example initial commit 2022-01-12 22:00:37 +01:00

README.md

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.