Skip to content

Latest commit

 

History

History
201 lines (184 loc) · 7.68 KB

PROJECT.org

File metadata and controls

201 lines (184 loc) · 7.68 KB

OrgAssist project management

Changelog

0.6

Upgrade packages

Upgraded all dependencies, but downgraded sleekxmpp to “stable” version - 1.3.1 to fix TLS errors with Jabber. Ref: fritzy/SleekXMPP#462 There might be unreleased fix, but 1.3.1 seems Ok.

Features

Localization

Easily switch jinja templates

Possibly - use gettext within Jinja templates.

Use gettext for short messages.

Improve Agenda

Show tasks “planned” for today.

Show stats of tasks over the horizon

Display optionally tags in agenda view

Display deadline/scheduled state

Position `now’ better on ranged appointments.

Don’t show –now– after a “ranged” appointment if the next one didn’t start, and the ranged - didn’t end.

Add a “search” command

  • Search through all events in the calendar.
  • Narrow down in consecutive queries, helm-like.
  • Remember last search for X minutes.

Implement a shell “execute” plugin

Avoid shell-expansions etc. Try to keep it safe.

Notify user life about agenda changes

  • someone created new event
  • removed one (or changed status)
  • rescheduled to different hour

Handle a “private” tag

  • Hide headlines of private tags

Implement a generic “help” command

  • Print all available commands with their aliases
  • Short description of each command.

Handle dates in “note” command in smart way

detect date: 2018-08-10 mm-dd (this or next months in this year) mon, tue, wed, thu, fri, sat, sun (next) hh:mm - hour, minute And schedule using given date (or treat as appointment?)

Make sleekxmpp work over socks proxy or over tunneled port

Currently tunneled port breaks TLS domain checking. Certificate is for SRV record, not for JID domain. Update: I lacked pyasn1 on one server and it didn’t verify cert there at all. Where: sleekxmpp: cert.py / verify() gets expected from jid. tries to get srv from cert (but doesn’t; and can it?) Maybe my cert is bad but pidgin likes it.

OWA plugin: Gather events from OWA calendar

Show nice info when config file can’t be found

Show ‘–now–’ marker after all the appointments

Tasks

Make sure all important stuff gets log.info().

  • Note taken on [2018-06-02 Sat 11:24]
    In progress; started converting old prints() and adding logging.

For answers like “why didn’t I get that important notification”

Store information about org events source

Alter orgnode and org helpers to store file&line of all org events during reading. Keep a start line and a last line of event.

Remember the “context” event within calendar.

Implement a simple library for low-impact edition of org files.

  • No required IDs.
  • Change only those lines that need changing.
  • Handle state change.
  • Handle date updates: moving scheduled, deadline, other dates.

Run CI on travis.

Create functions for human readable date printing

  • in 2 days, in 2 hours, 2 days ago, etc.
  • for scheduling: 2d, 2h, 1w2d.

Disambiguation using ‘plugin:’ prefix for commands.

Don’t use naive datetimes, handle timezones or at least prepare for it.

Settle on a name.

  • orgassist is not completely unique name.
  • I’m trying to use gender neutral names.
  • http://www.thesaurus.com/browse/assistant orgally? orgmate? botally, botmate seem taken
  • “orgremote” is technical, but unique.
  • “orgbot” is taken, but seems to be a dead repo.

    Finally: Keeping “OrgAssist”. We even got logo! Thanks to TJ.

Deploy a work-instance.

Half-baked ideas

from readme

  • other bot-interfaces: irc interface, email interface, web interface, android push-notification interface,
  • caldav integration,
  • rescheduling tasks and snoozing notifications using remote commands,
  • intelligent capturing which handles tags and dates,
  • changing task state,

Communication plugins

Facebook messenger bot

email/password approach: https://github.com/carpedm20/fbchat

sleekxmpp approach: https://stackoverflow.com/questions/16902171/send-a-facebook-message-with-xmpp-using-access-tokens-in-python

IRC plugin

  • Watchout for spoofing: Detect boss by it’s address, not only a nickname.

Choose a library

  • SASL support
  • TLS support

http://python-irclib.sourceforge.net/

uses it’s own irc.py: https://github.com/rmmh/skybot/blob/master/core/irc.py https://github.com/sbp/phenny

REST interface

  • Use API key to identify boss?
  • Local interface for easier integrations?

Android notification system

https://pushover.net/

When notyfing try to group messages

or maybe always show also “next after that” event?

Integrate with home automation

Like: https://github.com/home-assistant/home-assistant

Forward notifications from weechat.

Weather plugin: based on wttr.in or direct weather source.

https://github.com/chubin/wttr.in

$ curl 'wttr.in/warsaw?0&q&T&lang=en'
Warsaw, Poland

     \   /     Sunny
      .-.      22-25 °C
   ― (   ) ―   ← 7 km/h
      `-’      10 km
     /   \     0.4 mm

Jira integration.

Read your tasks from Jira. Notify on new, remind on current.

Do a RNN natural-language talking bot.

Pheh. Certainly doable, but makes sense only to let other people talk to your bot and schedule an appointment with you without using “commands”. Kind of obvious idea, requires a lot of data to train the network. I’m not interested currently in pursuing it.

Old command ideas

defaults:
  enable_commands:
    # Send current agenda
    - agenda
    # What should I do next? (displays and selects the task)
    - next
    # Select one of the tasks to perform an action on it.
    - select
    # Remind me what am I supposed to be doing?
    - now
    # Mark selected task as done
    - done
    # status [done|todo|delegated] - set status
    - status
    # Take a fast note; it gets selected afterwards
    - note
    # Reschedule selected note (+1d, +1w, YYYY-MM-DD HH:MM)
    - schedule
    # Count me time on selected task
    - clockin
    # Clock me out
    - clockout

Closed / Archive

Implement a “note” command.

  • Start by appending a jinja template to inbox file.

Implement a check for never-read config variables.

Handle open states correctly in event creation

Pass list of states from config.

Deploy a home-instance

Improve the agenda template.

Handle notifications in the calendar without loosing state on data change

Handle agenda generation from events in the calendar

  • Note taken on [2018-05-30 Wed 18:48]
    Works, but agenda format needs many fixes.

Fill calendar state with events from org-mode