Collect the tags used on public Mastodon posts, on a variety of instances. Summarize by a count of how many times each tag is used. Guide users in picking tags to attach to their posts.
Find a file
Joe Martin 0078f6ed5f
Modernized packaging; created Docker container
commit 070d715f4d
Author: Joe Martin <joe@desertflood.com>
Date:   Fri Jan 12 11:20:12 2024 -0700

    Changelog, for new release

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 02b4b12a0e
Author: Joe Martin <joe@desertflood.com>
Date:   Fri Jan 12 11:11:44 2024 -0700

    Document docker compose

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 8eb71d827b
Author: Joe Martin <joe@desertflood.com>
Date:   Fri Jan 12 07:53:31 2024 -0700

    Properly publish multi-arch

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit a50aa689ce
Author: Joe Martin <joe@desertflood.com>
Date:   Fri Jan 12 07:02:42 2024 -0700

    Build for arm64 and amd64

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit a9307586f3
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 11 19:13:25 2024 -0700

    Use a fault handler

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 2c99316884
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 11 19:13:08 2024 -0700

    Sample config

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit eb0245e10b
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 11 19:03:06 2024 -0700

    Document the Docker image

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 40d039502e
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 11 18:59:11 2024 -0700

    Log start time and end time

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit e2e553a96b
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 11 18:58:54 2024 -0700

    Fix versioning in package

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit b92824625f
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 11 18:55:10 2024 -0700

    Lots of Docker build tweaks

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit d7dff89a6d
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 11 11:32:48 2024 -0700

    Add setting for output folder

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 265010af37
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 11 06:58:30 2024 -0700

    Document desertflood 2-step install

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit f4b4bd1b00
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 22:16:31 2024 -0700

    Fix docker build (again)

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 7aeaf0a3e7
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 20:18:58 2024 -0700

    Need Jinja as a dev dependency

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 42c705ba22
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 20:16:20 2024 -0700

    successfully build a pex

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 0f8c46afa9
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 19:53:26 2024 -0700

    Better versioning, from desertflood

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit cacaa77176
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 16:01:31 2024 -0700

    Pex as a dev dependency

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit d4d548e245
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 13:53:08 2024 -0700

    requirements and constraints files

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit a7ee8b5638
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 09:09:39 2024 -0700

    Stop busting the Docker cache!

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 6fcff5f657
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 09:09:25 2024 -0700

    Tweak Dockerfile

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 051f81b0ee
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 08:15:16 2024 -0700

    Docker config moved to pyproject.toml

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 0234a5427e
Author: Joe Martin <joe@desertflood.com>
Date:   Wed Jan 10 07:51:47 2024 -0700

    poe commands to lint and publish

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit b4114a8c79
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 16:41:57 2024 -0700

    A basic dockerpush command

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 1491abf255
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 16:31:34 2024 -0700

    Notes on what’s next

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 50ac0cc29a
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 16:26:43 2024 -0700

    Stop tracking generated Dockerfile

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit b1e7b1b397
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 16:25:58 2024 -0700

    Working build script builds working image

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 19aa4125c9
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 16:11:41 2024 -0700

    huge tagging improvements

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 857b627ae1
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 16:11:19 2024 -0700

    separate commands for Dockerfile & build

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 84e9dbbef7
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 15:56:02 2024 -0700

    Ignore more files

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 5b59f8b208
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 08:18:10 2024 -0700

    spelling error

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit cba292009a
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 08:17:41 2024 -0700

    bpython as a dev dependency

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit de7fe07870
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 08:17:25 2024 -0700

    Fill labels from docker build config

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 9e56b45e54
Author: Joe Martin <joe@desertflood.com>
Date:   Tue Jan 9 08:15:28 2024 -0700

    spelling error

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 531128f14b
Author: Joe Martin <joe@desertflood.com>
Date:   Mon Jan 8 22:43:17 2024 -0700

    Figure out a Docker build config format

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit add1ad393f
Author: Joe Martin <joe@desertflood.com>
Date:   Mon Jan 8 14:37:31 2024 -0700

    Combine LABEL commands

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 7d52c3dd04
Author: Joe Martin <joe@desertflood.com>
Date:   Sun Jan 7 22:20:34 2024 -0700

    generate Dockerfile and run Docker build

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit f60ec18221
Author: Joe Martin <joe@desertflood.com>
Date:   Sun Jan 7 19:42:42 2024 -0700

    Docker script to a ‘scripts’ module

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 2a04cc9af1
Author: Joe Martin <joe@desertflood.com>
Date:   Sun Jan 7 19:35:37 2024 -0700

    Start scripting Docker build

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 3ee1c204e7
Author: Joe Martin <joe@desertflood.com>
Date:   Sun Jan 7 16:48:09 2024 -0700

    Switch to a ‘src’ layout

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit ce2a21b43c
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 20:56:40 2024 -0700

    Docker tweaks

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 1363cdb0a1
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 20:00:06 2024 -0700

    Fix up DB file handling

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit cd978c4c92
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 19:27:04 2024 -0700

    Fix up env settings

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 6971f3a13c
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 19:26:42 2024 -0700

    Create DB folder if it doesn’t exist

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit ee71fb18d2
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 19:26:09 2024 -0700

    Better argument help and feedback

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 504fbd1981
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 19:24:08 2024 -0700

    Don’t need a credentials file

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit e34462b4ba
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 18:35:45 2024 -0700

    Use pydantic-settings for ENV config

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit d8276d70ab
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 18:35:19 2024 -0700

    Move TagCollector to a module file

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 901ba4f5e3
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 16:41:51 2024 -0700

    Set VIRTUAL_ENV for docker

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 34628a1fac
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 14:43:06 2024 -0700

    replace pyxdg with platformdirs

    Signed-off-by: Joe Martin <joe@desertflood.com>

commit 86b9717c9d
Author: Joe Martin <joe@desertflood.com>
Date:   Thu Jan 4 14:27:31 2024 -0700

    Create multi-stage Docker image

    Signed-off-by: Joe Martin <joe@desertflood.com>

Signed-off-by: Joe Martin <joe@desertflood.com>
2024-01-12 11:23:13 -07:00
docker Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
src Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
.dockerignore Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
.gitignore Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
CHANGELOG.md Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
Docker.md Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
install-packages.sh Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
LICENSE Initial commit 2023-03-05 17:58:45 +00:00
poetry.lock Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
poetry.toml Convert to Poetry build 2023-12-25 12:34:20 -05:00
pyproject.toml Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
README.md Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
tagcollector-sample.env Modernized packaging; created Docker container 2024-01-12 11:23:13 -07:00
tagcollector.service Create a sample systemd service file 2023-03-10 09:46:44 -07:00

mastodon-tagcollector

Collect the tags used on public Mastodon posts, on a variety of instances. Summarize by a count of how many times each tag is used. Guide users in picking tags to attach to their posts.

Installing the Service

With thanks to How To Add Your Own Services to systemd For Easier Management

`cp tagcollector.service /etc/systemd/system/`
`systemctl daemon-reload`
`systemctl enable tagcollector`
`service tagcollector start`
`journalctl -f -u tagcollector.service`

Dev Setup

Like this:

pipx install poetry
pipx inject poetry poetry-plugin-export
poetry self add "poetry-dynamic-versioning[plugin]"

It turns out to be very hard to add private packages into Poetry itself, for use in the pyproject.toml file. Mostly because Poetry won't let you configure a private package index. I had to use a two-step approach: first, download the wheel for my private package (to the / folder, in the Docker image), then install the wheel into Poetry.

pip download --no-deps --dest / desertflood --extra-index-url https://git.desertflood.com/api/packages/jmartindf/pypi/simple
poetry self add /desertflood*.whl

Dependency Tracking

If you want to build wheels of your dependencies, you can do the following, although local path-based dependencies may not work:

poetry export -f requirements.txt -o requirements.txt --without-hashes
poetry export -f constraints.txt -o constraints.txt --without-hashes
pip wheel -r requirements.txt

Poe the Poet

pipx install poethepoet

brew tap nat-n/poethepoet
brew install nat-n/poethepoet/poethepoet

poetry self add 'poethepoet[poetry_plugin]'

poetry add --group dev poethepoet

poe _fish_completion > (brew --prefix)/share/fish/vendor_completions.d/poe.fish

Hadolint

brew install hadolint

Private PyPi Repo

poetry source add --priority=supplemental desertflood "https://git.desertflood.com/api/packages/jmartindf/pypi"
poetry config repositories.desertflood "https://git.desertflood.com/api/packages/jmartindf/pypi"
poetry config http-basic.desertflood jmartindf

Private OCI Image Repo

docker login git.desertflood.com

Docker Build Command Notes

docker buildx build [OPTIONS] PATH

--file ../path/to/Dockerfile

--platform linux/arm64,linux/amd64