No description
Find a file
Quentin Ferrand a98b3ff264
Some checks reported errors
continuous-integration/drone/push Build encountered an error
add drone pipeline
2022-04-19 10:25:15 +02:00
.chglog initial commit 2022-01-12 22:00:37 +01:00
tenkan fix: error on atom rebuild in some cases 2022-01-14 13:58:32 +01:00
tests fix: fix atom file not rebuilt if new files written 2022-01-13 23:46:12 +01:00
.drone.yml add drone pipeline 2022-04-19 10:25:15 +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 fix: add proper excludes from pre-commit 2022-01-12 23:49:39 +01: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 initial commit 2022-01-12 22:00:37 +01:00
pyproject.toml bump to v0.1.2 2022-01-13 23:49:28 +01:00
README.md add a few new items on todolist 2022-01-13 22:10:40 +01:00
tenkan.conf.example initial commit 2022-01-12 22:00:37 +01:00

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.