Simple bot which notifies your chats that you are in a meeting
Firstly ensure you use python 3.6
.
Clone project:
git clone https://github.com/nikialeksey/meerk.git
Install dependencies and
pip install -r requirements.txt
Configure and run:
python main.py
Or you can use it as library for your service or app, see example in
main.py
.
In order to configure you need to make a copy of file
local.cfg_template
with name local.cfg
and change content of it.
To add calendar supports CalDav
format you need to uncomment
caldav-calendar
section
and fill with your personal data. If you have a multiple calendars supports CalDav
you may create a new section in local.cfg
with the same fields and section name prefix caldav
,
but with other data, for example:
[caldav-another]
url: <another caldav url>
username: <another caldav username>
password: <another caldav password>
Important! Google Calendar does not support cal dav, and you have only one way to make it work - using *.ics files.
To add calendar using ics
file you need to uncomment
ics-calendar
section and fill with
your public ics
file link. Again, if you have a few
ics
calendars, you may create a few sections in local.cfg
with section
name prefix ics
, for example:
[ics-another]
url: <another ics url>
[ics-yet-another]
url: <yet another ics url>
To find your calendar *.ics
file link usually you need to open calendar settings, make it public, and find link to
calendar *.ics
file.
It supports only slack, but you can contribute for more chats. To configure slack, you guessed it, you need to
uncomment slack-app
section and fill,
for example:
[slack-app]
token: xoxp-3165681461-*****6099680-*****3333042-*****007685996b538e88cbe92a6098b
busy_text: I am in a meeting
busy_emoji: :shushing_face:
available_text: Android development 09.00 - 17.00
available_emoji: :computer:
Slack has a legacy tokens which you need to generate
in order to update your slack status and fill the token
in section slack*
. In feature, Meerk migrates
to slack app.
Meerk periodically synchronizes specified in local.cfg
calendars and periodically verifies if there is a
meeting now, then update chat status to Busy, else Available.
Thanks to @tobixen and his project caldav. I use it in the Meerk temporary. When #11 appears in release build I get rid of the immediate code of project caldav and will be use as dependency or write my own CalDav implementation.