70 lines
2.1 KiB
Markdown
70 lines
2.1 KiB
Markdown
Providers are modules that export:
|
|
CONFIG = {
|
|
"config key": "optional | required",
|
|
...
|
|
}
|
|
|
|
update(config, state) -> list[items]
|
|
|
|
And optionally:
|
|
action_NAME(config, state, item) -> None
|
|
|
|
on_create(config, state, item) -> None
|
|
|
|
on_delete(config, state, item) -> None
|
|
|
|
Sources are folders in the data directory with:
|
|
config: user-modified configuration values, drawn from the provider
|
|
state: provider-modified data
|
|
*.item: feed items
|
|
|
|
config reserved keys:
|
|
"provider": the provider the source uses
|
|
"name": given to sources by default, individuates sources from same provider
|
|
|
|
GET /config
|
|
Edit subfeed configs
|
|
|
|
GET /config/[feedname]
|
|
Edit config values for feedname
|
|
|
|
GET /feed/[feedname]
|
|
Feed view for feedname
|
|
|
|
<!-- GET /items
|
|
Get item JSON
|
|
?include=[tags]
|
|
?exclude=[tags]
|
|
?limit=100 -->
|
|
|
|
CLI:
|
|
intake create [provider] [--config KEY VALUE] [-c KEY VALUE] ...
|
|
load the provider
|
|
verify that the provider's config is satisfied
|
|
create the source and set the config values
|
|
|
|
intake update [source] [--reset]
|
|
load the source's config and state
|
|
use config.provider to load the provider
|
|
verify the source config against the provider config
|
|
call provider.update(config, state) to get current items
|
|
merge new items into current items
|
|
if --reset, new items overwrite everything, including active
|
|
|
|
intake deactivate [source] [--tag TAG] [--title TITLE]
|
|
load each item in the source and deactivate it
|
|
|
|
intake add [--id ID] [--title TITLE] [--link LINK] [--time TIME] [--author AUTHOR] [--body BODY] [--tags TAGS] [--ttl TTL] [--ttd TTD] [--tts TTS]
|
|
create the item and add it to the default source
|
|
|
|
intake feed [--json]
|
|
Dump active item feed to stdout
|
|
|
|
intake action [source] [item] [action]
|
|
load config, state, item
|
|
verify item supports this action
|
|
load config.provider
|
|
verify config
|
|
verify provider supports this action
|
|
action_[action](config, state, item)
|