additional gardening for konfluks rename

This commit is contained in:
decentral1se 2022-07-18 12:16:52 +02:00
parent 2b06a5f866
commit 6020db4d15
No known key found for this signature in database
GPG Key ID: 03789458B3D0C410
5 changed files with 19 additions and 30 deletions

View File

@ -1,4 +1,4 @@
![Konfluks logo is a stylized and schematic representation of a drainage basin](https://git.autonomic.zone/r/konfluks/raw/branch/konfluks-renaming/docs/konfluks.svg) ![Konfluks logo is a stylized and schematic representation of a drainage basin](./konfluks.svg)
# Konfluks # Konfluks
@ -6,7 +6,7 @@ A drainage basin is a geographical feature that collects all precipitation in an
Specifically, Konfluks turns Peertube videos, iCal calendar events, other websites through their RSS and OPDS feeds and Mastodon posts under a hashtag in to Hugo page bundles. This allows one to publish from diverse sources to a single stream. Specifically, Konfluks turns Peertube videos, iCal calendar events, other websites through their RSS and OPDS feeds and Mastodon posts under a hashtag in to Hugo page bundles. This allows one to publish from diverse sources to a single stream.
Konfluks was first made by Roel Roscam Abbing as part of [lumbung.space](https://lumbung.space), together with ruangrupa and Autonomic. Konfluks was first made by [Roel Roscam Abbing](https://test.roelof.info/) as part of [lumbung.space](https://lumbung.space), together with [ruangrupa](https://ruangrupa.id) and [Autonomic](https://autonomic.zone).
## Philosophy ## Philosophy
@ -22,24 +22,26 @@ Konfluks is extendable, a work in progress and a messy undertaking.
## High-level overview ## High-level overview
Konfluks consists of different Python scripts which each poll a particular service, say, a Peertube server, to download information and convert it in to [Hugo Page Bundles](https://gohugo.io/content-management/page-bundles/) Konfluks consists of different Python scripts which each poll a particular service, say, a [Peertube](https://joinpeertube.org) server, to download information and convert it in to [Hugo Page Bundles](https://gohugo.io/content-management/page-bundles/)
Each script part of Konfluks will essentially to the following: Each script part of Konfluks will essentially to the following:
* Parse a source and request posts/updates/videos/a feed * Parse a source and request posts/updates/videos/a feed
* Taking care of publish ques * Taking care of publish ques
* Create a Hugo post for each item returned, by: * Create a Hugo post for each item returned, by:
* Making a folder per post in the `output` directory * Making a folder per post in the `output` directory
* Formatting post metadata as [Hugo Post Frontmatter](https://gohugo.io/content-management/front-matter/) in a file called `index.md` * Formatting post metadata as [Hugo Post Frontmatter](https://gohugo.io/content-management/front-matter/) in a file called `index.md`
* Grabbing local copies of media and saving them in the post folder * Grabbing local copies of media and saving them in the post folder
* Adding the post content to `index.md` * Adding the post content to `index.md`
* According to jinja2 templates (see `Konfluks/templates/`) * According to jinja2 templates (see `konfluks/templates/`)
The page bundles created, where possible, are given human friendly names. The page bundles created, where possible, are given human friendly names.
Here is a typical output structure: Here is a typical output structure:
``` ```
user@server: ~/Konfluks/output: tree tv/ user@server: ~/konfluks/output: tree tv/
tv/ tv/
├── forum-27an-mother-earth-353f93f3-5fee-49d6-b71d-8aef753f7041 ├── forum-27an-mother-earth-353f93f3-5fee-49d6-b71d-8aef753f7041
│   ├── 86ccae63-3df9-443c-91f3-edce146055db.jpg │   ├── 86ccae63-3df9-443c-91f3-edce146055db.jpg
@ -52,8 +54,6 @@ Here is a typical output structure:
│   └── index.md │   └── index.md
``` ```
## Hacking ## Hacking
Install [poetry](https://python-poetry.org/docs/#osx--linux--bashonwindows-install-instructions): Install [poetry](https://python-poetry.org/docs/#osx--linux--bashonwindows-install-instructions):
@ -62,31 +62,20 @@ Install [poetry](https://python-poetry.org/docs/#osx--linux--bashonwindows-insta
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python - curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
``` ```
We use Poetry because it locks the dependencies all the way down and makes it We use Poetry because it locks the dependencies all the way down and makes it easier to manage installation & maintenance in the long-term. Then install the dependencies & have them managed by Poetry:
easier to manage installation & maintenance in the long-term. Then install the
dependencies & have them managed by Poetry:
``` ```
poetry install poetry install
``` ```
Each script requires some environment variables to run, you can see the latest Each script requires some environment variables to run, you can see the latest deployment configuration over [here](https://git.autonomic.zone/ruangrupa/lumbung.space/src/branch/main/compose.yml), look for the values under the `environment: ...` stanza.
deployment configuration over
[here](https://git.autonomic.zone/ruangrupa/lumbung.space/src/branch/main/compose.yml),
look for the values under the `environment: ...` stanza.
All scripts have an entrypoint described in the All scripts have an entrypoint described in the [`pypoetry.toml`](https://git.autonomic.zone/ruangrupa/konfluks/src/commit/40bf9416b8792c08683ad8ac878093c7ef1b2f5d/pyproject.toml#L27-L31) which you can run via `poetry run ...`. For example, if you want to run the [`konfluks/video.py`](./knofluks/video.py) script, you'd do:
[`pypoetry.toml`](https://git.autonomic.zone/ruangrupa/lumbunglib/src/commit/40bf9416b8792c08683ad8ac878093c7ef1b2f5d/pyproject.toml#L27-L31)
which you can run via `poetry run ...`. For example, if you want to run the
[`lumbunglib/video.py`](./lumbunglib/video.py) script, you'd do:
``` ```
mkdir -p testdir mkdir -p testdir
export OUTPUT_DIR=/testdir export OUTPUT_DIR=/testdir
poetry run lumbunglib-vid poetry run konfluks-vid
``` ```
Run `poetry run poetry2setup > setup.py` if updating the poetry dependencies. Run `poetry run poetry2setup > setup.py` if updating the poetry dependencies. This allows us to run `pip install .` in the deployment and Pip will understand that it is just a regular Python package. If adding a new cli command, extend `pyproject.toml` with a new `[tool.poetry.scripts]` entry.
This allows us to run `pip install .` in the deployment and Pip will understand
that it is just a regular Python package. If adding a new cli command, extend
`pyproject.toml` with a new `[tool.poetry.scripts]` entry.

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -1,8 +1,8 @@
[tool.poetry] [tool.poetry]
name = "konfluks" name = "konfluks"
version = "0.1.0" version = "0.1.0"
description = "Python lib which powers lumbung[dot]space automation" description = "Brings together small and dispersed streams of web content from different applications and websites together in a single large stream."
authors = ["rra", "decentral1se"] authors = ["rra", "decentral1se", "knoflook"]
license = "AGPLv3+" license = "AGPLv3+"
[tool.poetry.dependencies] [tool.poetry.dependencies]
@ -25,7 +25,7 @@ requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api" build-backend = "poetry.core.masonry.api"
[tool.poetry.scripts] [tool.poetry.scripts]
konfluks-cal = "konfluks.cloudcal:main" konfluks-cal = "konfluks.calendars:main"
konfluks-vid = "konfluks.video:main" konfluks-vid = "konfluks.video:main"
konfluks-feed = "konfluks.feed:main" konfluks-feed = "konfluks.feed:main"
konfluks-timeline = "konfluks.timeline:main" konfluks-timeline = "konfluks.timeline:main"

View File

@ -20,7 +20,7 @@ install_requires = \
'requests>=2.26.0,<3.0.0'] 'requests>=2.26.0,<3.0.0']
entry_points = \ entry_points = \
{'console_scripts': ['konfluks-cal = konfluks.cloudcal:main', {'console_scripts': ['konfluks-cal = konfluks.calendars:main',
'konfluks-feed = konfluks.feed:main', 'konfluks-feed = konfluks.feed:main',
'konfluks-timeline = lumbunglib.timeline:main', 'konfluks-timeline = lumbunglib.timeline:main',
'konfluks-hash = konfluks.hashtag:main', 'konfluks-hash = konfluks.hashtag:main',