1
0
Fork
You've already forked terminnanny-deb
0
debian packaging example of terminnanny
This repository has been archived on 2025年01月14日. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • C++ 96.5%
  • CMake 3.5%
Find a file
2021年01月17日 16:14:34 +01:00
bin add gplv3+ 2021年01月17日 13:07:17 +01:00
cmake set required c++ version to 14 (required for aggregate initialization) 2021年01月17日 15:24:34 +01:00
debian bump package version to include copyright changes 2021年01月17日 16:14:34 +01:00
include/terminnanny add gplv3+ 2021年01月17日 13:07:17 +01:00
man rm accidentally created file 2021年01月17日 14:25:26 +01:00
src add gplv3+ 2021年01月17日 13:07:17 +01:00
test add gplv3+ 2021年01月17日 13:07:17 +01:00
.gitignore init 2021年01月10日 11:36:16 +01:00
CMakeLists.txt bump version to 2.1 2021年01月17日 15:25:26 +01:00
COPYING add gplv3+ 2021年01月17日 13:07:17 +01:00
README.md mv words around in readme 2021年01月17日 03:35:20 +01:00

terminnanny

generate calendar overviews

This is a simple tool that consumes a (caldav) calendar, a somewhat human-readable start and end date, some formatstring (optional) and from that prints out a human-readable calendar summary.

Its intended usecase are mainly community calendars to feed the generated summaries into chatbots and alike.

It's documentation comes mainly in form of a manual page.

Installing and Building

(currently no binaries)

cd terminnanny
mkdir build && cd build
cmake ..
make -j $(( 2 * $(nproc) ))
sudo make install

Examples

For details please have a look at the provided manpage. The date format was designed for ease of use, but is still complicated. Also refer to terminnanny --help for a list of all options.

$ terminnanny --url 'https://example.com/caldav/mycal/' --user alice --pass hackme --from-week +1 --delta-week +1
2021年01月19日 18:30:00 @ : Nerdy Tuesday
2021年01月20日 17:00:00 @ : Baking together
2021年01月22日 11:11:00 @ Location: Testtitle
2021年01月24日 11:11:00 @ Location: Testtitle
$ terminnanny --url 'https://example.com/caldav/mycal/' --user alice --pass hackme --from-month 2 --to-month 3
2021年02月19日 18:30:00 @ Clubhouse: Cooking Session
2021年02月20日 17:00:00 @ Clubhouse: Beer Tasting
2021年03月12日 14:00:00 @ Garden: Workshop Gardening
2021年03月24日 19:00:00 @ Garden: Workshop Gardening (rerun)

with config file calendar_cfg:

# location & credentials
url https://example.com/caldav/othercal
user alice
pass hackme
# format for dates (for a german audience)
format-date %d.%m
format-time %H:%M Uhr
format-datetime %A, %d. %B um %H:%M Uhr
# format actual output
format-header Termine von %PERIOD_START_DATE% bis %PERIOD_END_DATE%
format-event %DATETIME% @ %LOCATION%\n**%TITLE%**\n%DESCRIPTION%\n

can then be included:

# specifying any component with "+0" or "-0" it is set to the current
# this examples shows everything from the current month
$ terminnanny -c calendar_cfg --from-month=-0 --to-month=-0
Termine von 01.01 bis 31.01
Freitag, 01. Januar um 16:00 Uhr @ Meeting Room 1
**Team Meeting**
Everyone gets together to talk about the most important issues.
Dienstag, 05. Januar um 18:30 Uhr @ Basement
**Gaming Session**
We play our favorite games together.
Dienstag, 12. Januar um 18:30 Uhr @ Basement
**Gaming Session**
We play our favorite games together.
Freitag, 15. Januar um 16:00 Uhr @ Meeting Room 1
**Team Meeting**
Everyone gets together to talk about the most important issues.
Dienstag, 19. Januar um 18:30 Uhr @ Basement
**Gaming Session**
We play our favorite games together.
Dienstag, 26. Januar um 18:30 Uhr @ Basement
**Gaming Session**
We play our favorite games together.
Freitag, 29. Januar um 16:00 Uhr @ Meeting Room 1
**Team Meeting**
Everyone gets together to talk about the most important issues.

Misc

Is this stable? Can I use this? Roadmap?
No, and probably. This piece of code exists to replace an existing setup of several shell scripts, and is a typical case of "works for me". That means I will probably maintain it, but I don't plan to add any features. The code itself is actually tested ok-ish, but all sections involving library calls are not tested automatically, because that requires some more work. Also I have not checked what happens on malicious server responses.

Feedback
I'd be happy to hear from you! Just shoot me a message: terminnanny at tropf dot io.

Contributing
Just do it

Cite
I don't know why anyone would cite this, but I have missed this section in quite a lot of projects, and would like to see it become standard. So here you go (please update the dates to the latest commit):

@Misc{terminnanny,
 author = {Rolf Pfeffertal},
 title = {terminnanny},
 howpublished = {\url{https://codeberg.org/tropf/terminnanny}},
 month = {CHANGEME},
 year = {CHANGEME},
 abstract = {generate calendar overviews},
 url = {https://codeberg.org/tropf/terminnanny},
}

Libraries
argp libxml++ libical spdlog neon catch

Thank you for these awesome libs, even if they caused me some headaches while including. And also thanks to the the packagers that made my development very smooth.

License
This project is available under the GNU GPLv3+.

Online
Find this project on Codeberg.