orgassist is a bot - which handles your appointments, tasks and notes. A remote control for your org-mode directory.

blaa, updated 🕥 2022-01-21 19:25:08

Project logo

"orgassist" is a bot - an assistant who handles your appointments, tasks and note-taking when you're away from your computer. It can integrate multiple sources of tasks and appointments and use multiple different communication interfaces to notify you in various ways.

It's architected to be easily expandable. Planned features can be found in PROJECT.org file. README describes the current project state.

Currently working functions include: - Notifying you in advance about appointments. - Showing you the current agenda to remind you about today's appointments, planned and due tasks. - Reading events from your org-mode tree (schedules, deadlines and appointments) - Reading events from Exchange calendar. - Taking notes and storing in an org-mode inbox file. - Incrementally searching through your calendar and tasks. - Bidirectional communication over XMPP (Jabber).

But why?

  • Do you love your org-mode, but still struggle to get your agenda or notifications on your two mobile devices?
  • You have two org-mode trees - one for work, one for private planning?
  • And appointments in Outlook or Google Calendar?
  • And sticky notes or notepad to gather notes on the run?
  • Or maybe a mobile app to gather notes (orgzly?)
  • Taking notes on the run requires you to later integrate them?
  • You treat your org-mode as private notes and dislike keeping them decrypted everywhere, but at the same time would like to use it remotely?

I had most of those problems and decided this would be an elegant way to solve all of them without dropping org-mode or using cloud-sync solutions.

Plugins

OrgAssist is split into plugins with a well-defined API.

Calendar

"Core" plugin - required by org and exchange plugin.

It manages a list of dated events with a state (TODO, DONE, etc.) in a common format. For this events, it generates notifications and agenda views.

Planned: Incremental search over events.

Org

Reads org files and feeds events into the calendar. Handles command to take notes.

Planned: changing state of tasks, rescheduling, smarter capture.

Exchange

Fills calendar with events from your company's Exchange. Detects those set by you, and with your required and optional attendance.

Planned: detecting new events.

Planned: Shell

Execute a configured shell command on request. Enable/disable alarms, control music, etc.

Setup

Tested with Python 3.5 and 3.6.

  1. pip3 install orgassist
  2. assist.py --generate-config
  3. emacs/vim ~/.org/orgassist.yml - configure XMPP accounts, boss JID, org-mode directory, etc. See comments in the config file for ideas.
  4. Run bot: $ assist.py --config ~/.org/orgassist.yml

Developing own plugins

See example_plugin.py for an example and showcase of the API. You can develop plugins using the PyPI version of orgassist by specifying config parameters plugins_path and plugins.

Architecture

Single orgassist instance can have multiple interfaces (xmpp, irc) with multiple assistants connected to them. Each assistant handles a single "boss" - identified by JID or irc nick/realname. Each assistant can have different plugins enabled, with different configuration and state.

                                             /- Calendar Plugin
Interfaces  --> | Assistant 1 (Boss JID 1) -+
(xmpp, irc)     | state, config              \- Org plugin
                |
                |                            /- Calendar plugin
                | Assistant 2 (JID 2) ------+
                |                            \- Org plugin, OWA Plugin
                | Assistant 3 ---> etc.

License and authors

License: MIT License. Author: Tomasz Fortuna, 2019. Contact: [email protected]

Project's beautiful logo was contributed by Ulises (tjulises). It relates to the org-mode logo with an added "robot" twist.

Orgassist includes an external MIT-licensed module "orgnode" by Albin Stjerna, Takafumi Arakaki, and Charles Cave (https://github.com/albins/orgnode.git). Edited by myself to cleanup API and fix some problems.

Issues

Bump ipython from 7.13.0 to 7.16.3

opened on 2022-01-21 19:25:07 by dependabot[bot]

Bumps ipython from 7.13.0 to 7.16.3.

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/blaa/orgassist/network/alerts).

Bump pyyaml from 5.3 to 5.4

opened on 2021-03-25 21:49:43 by dependabot[bot]

Bumps pyyaml from 5.3 to 5.4.

Changelog

Sourced from pyyaml's changelog.

5.4 (2021-01-19)

5.3.1 (2020-03-18)

  • yaml/pyyaml#386 -- Prevents arbitrary code execution during python/object/new constructor
Commits
  • 58d0cb7 5.4 release
  • a60f7a1 Fix compatibility with Jython
  • ee98abd Run CI on PR base branch changes
  • ddf2033 constructor.timezone: _copy & deepcopy
  • fc914d5 Avoid repeatedly appending to yaml_implicit_resolvers
  • a001f27 Fix for CVE-2020-14343
  • fe15062 Add 3.9 to appveyor file for completeness sake
  • 1e1c7fb Add a newline character to end of pyproject.toml
  • 0b6b7d6 Start sentences and phrases for capital letters
  • c976915 Shell code improvements
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/blaa/orgassist/network/alerts).

Bump jinja2 from 2.11.1 to 2.11.3

opened on 2021-03-19 23:14:34 by dependabot[bot]

Bumps jinja2 from 2.11.1 to 2.11.3.

Release notes

Sourced from jinja2's releases.

2.11.3

This contains a fix for a speed issue with the urlize filter. urlize is likely to be called on untrusted user input. For certain inputs some of the regular expressions used to parse the text could take a very long time due to backtracking. As part of the fix, the email matching became slightly stricter. The various speedups apply to urlize in general, not just the specific input cases.

2.11.2

Changelog

Sourced from jinja2's changelog.

Version 2.11.3

Released 2021-01-31

  • Improve the speed of the urlize filter by reducing regex backtracking. Email matching requires a word character at the start of the domain part, and only word characters in the TLD. :pr:1343

Version 2.11.2

Released 2020-04-13

  • Fix a bug that caused callable objects with __getattr__, like :class:~unittest.mock.Mock to be treated as a :func:contextfunction. :issue:1145
  • Update wordcount filter to trigger :class:Undefined methods by wrapping the input in :func:soft_str. :pr:1160
  • Fix a hang when displaying tracebacks on Python 32-bit. :issue:1162
  • Showing an undefined error for an object that raises AttributeError on access doesn't cause a recursion error. :issue:1177
  • Revert changes to :class:~loaders.PackageLoader from 2.10 which removed the dependency on setuptools and pkg_resources, and added limited support for namespace packages. The changes caused issues when using Pytest. Due to the difficulty in supporting Python 2 and :pep:451 simultaneously, the changes are reverted until 3.0. :pr:1182
  • Fix line numbers in error messages when newlines are stripped. :pr:1178
  • The special namespace() assignment object in templates works in async environments. :issue:1180
  • Fix whitespace being removed before tags in the middle of lines when lstrip_blocks is enabled. :issue:1138
  • :class:~nativetypes.NativeEnvironment doesn't evaluate intermediate strings during rendering. This prevents early evaluation which could change the value of an expression. :issue:1186
Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/blaa/orgassist/network/alerts).

Logo proporsal

opened on 2018-06-01 22:41:58 by tjulises

Hi @blaa ,

My name is Ulises or TJ if you like, i'm a graphic designer and I contribute to cool projects (open source) like this one! if this is something that you're looking forward to, I'll gladly upload some logo proposals

I'll look forward for your reply, cheers!

TJ.

Tomasz bla Fortuna

I do stuff. Mostly commercially recently, but still occasionally I waste time on small personal projects which made me who I am today.

GitHub Repository