You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
josiah dde6ec039f Remove unnecessary print line. 11 months ago
docker Remove dependency, update 11 months ago
examples Provide reasonable defaults. 11 months ago
molly Remove unnecessary print line. 11 months ago
tests Initial commit. 11 months ago
.gitignore don't accidentally commit your data dir lmao 11 months ago
LICENSE Initial commit. 11 months ago Remove unnecessary text from 11 months ago Update todos. 11 months ago
run_molly Initial commit. 11 months ago
setup.cfg Initial commit. 11 months ago Remove dependency, update 11 months ago


glue together the matrix and org-mode. built with matrix-nio

Project Summary

  • Send your thoughts to a matrix channel! Its easy, its everywhere, and its plaintext.

  • Convert individual messages in your matrix channel into todo items in orgmode

    • Assumes the same sorts of things as other mobile orgmode solutions, a file, that sort of thing.

  • Eventually, come back on your main computer and refile shit accordingly.

Project Outline

  • Be able to write orgmode from within Python

    • Write basic todo entries

    • Add meta data (when was I captured, etc)

  • Be able to read matrix messages from within Python (use matrix nio, apparently its the Approved Shit now

  • Make E2EE work; supposedly that's doable with this bot.

  • Clear out the unnecessary parts of the template I copied

  • Add back in the tooling improvements

  • Improve orgmode integration

    • Have try/except blocks, verify that the path exists, make it if it doesn't, etc etc etc.

  • Probably need to write one or two lines of lisp to help the end user not keep the refile buffer open; that'd just get in their way.

  • Package using Pypi

    • Eventually I'd like the option of deploying via ansible with the community playbooks, so also build out a Dockerfile.

  • Add an ansible-playbook for deploying via matrix-docker-ansible-deploy, if they'll have me.

  • Use all the same packages i'm floating for developer standards at work:


  • setup all of this stuff

    • Precommit (for all your commithook needs)

      • On initial setup you likely want to run a new config against all files: `pre-commit run –all-files`

    • Black + commithooks; feel free to tweak line settings

      • Black is still technically pre-release; install like `pipenv install -d black –pre`

    • Mypy + commithooks

    • Pylint / Flake8; feel free to tweak line settings

    • Pipenv (bluh. I guess this is what work is using, so, fine.)

      • append installs with `-d` to add them as a dev dependency

    • Pytest + unittest.

    • Add on pydantic to mypy

    • Futz with mypy's config to require declaring types

    • Python versions with pyenv

      • This is pretty easy, though its a very stupid curl | bash. Fuckers.

      • Also some annoying prereqs that you need to be careful about; some Mac specific fuckery.

  • Look into alternate methods of revert buffer per:

Editor bullshit

  • Get LSPs shit working with my new setup:

    • auto detect pyvenv

    • resolve imports

    • etc

  • make magit play nice with pre-commit hooks

Making this work

  • Get a user created that you'll use its ocredentials for.

  • Get the room ID for the room you want to use.

    • you can find this in the advanced settings for a room, generally.

  • Fill out the config.yaml file appropiately.