"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).
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.
OrgAssist is split into plugins with a well-defined API.
"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.
Reads org files and feeds events into the calendar. Handles command to take notes.
Planned: changing state of tasks, rescheduling, smarter capture.
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.
Execute a configured shell command on request. Enable/disable alarms, control music, etc.
Tested with Python 3.5 and 3.6.
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
.
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: 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.
Bumps ipython from 7.13.0 to 7.16.3.
d43c7c7
release 7.16.35fa1e40
Merge pull request from GHSA-pq7m-3gw7-gq5x8df8971
back to dev9f477b7
release 7.16.2138f266
bring back release helper from master branch5aa3634
Merge pull request #13341 from meeseeksmachine/auto-backport-of-pr-13335-on-7...bcae8e0
Backport PR #13335: What's new 7.16.28fcdcd3
Pin Jedi to <0.17.2.2486838
release 7.16.120bdc6f
fix conda buildDependabot 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
.
Bumps pyyaml from 5.3 to 5.4.
Sourced from pyyaml's changelog.
5.4 (2021-01-19)
- yaml/pyyaml#407 -- Build modernization, remove distutils, fix metadata, build wheels, CI to GHA
- yaml/pyyaml#472 -- Fix for CVE-2020-14343, moves arbitrary python tags to UnsafeLoader
- yaml/pyyaml#441 -- Fix memory leak in implicit resolver setup
- yaml/pyyaml#392 -- Fix py2 copy support for timezone objects
- yaml/pyyaml#378 -- Fix compatibility with Jython
5.3.1 (2020-03-18)
- yaml/pyyaml#386 -- Prevents arbitrary code execution during python/object/new constructor
58d0cb7
5.4 releasea60f7a1
Fix compatibility with Jythonee98abd
Run CI on PR base branch changesddf2033
constructor.timezone: _copy & deepcopyfc914d5
Avoid repeatedly appending to yaml_implicit_resolversa001f27
Fix for CVE-2020-14343fe15062
Add 3.9 to appveyor file for completeness sake1e1c7fb
Add a newline character to end of pyproject.toml0b6b7d6
Start sentences and phrases for capital lettersc976915
Shell code improvementsDependabot 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
.
Bumps jinja2 from 2.11.1 to 2.11.3.
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 tourlize
in general, not just the specific input cases.
- PyPI: https://pypi.org/project/Jinja2/2.11.3/
- Changes: https://jinja.palletsprojects.com/en/2.11.x/changelog/#version-2-11-3
2.11.2
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
cf21539
release version 2.11.315ef8f0
Merge pull request #1343 from pallets/urlize-speedupef658dc
speed up urlize matchingeeca0fe
Merge pull request #1207 from mhansen/patch-12dd7691
Merge pull request #1209 from mhansen/patch-34892940
do_dictsort: update example ready to copy/paste7db7d33
api.rst: bugfix in docs, import PackageLoader9ec465b
fix changelog header737a4cd
release version 2.11.2179df6b
Merge pull request #1190 from pallets/native-evalDependabot 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
.
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.
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