office/python-gcalcli: Added (cli google calander application)

Signed-off-by: dsomero <xgizzmo@slackbuilds.org>
This commit is contained in:
David Woodfall 2010-08-15 18:26:41 -04:00 committed by Erik Hanson
parent 9e525cd959
commit a05fa22020
6 changed files with 297 additions and 0 deletions

159
office/python-gcalcli/HOWTO Normal file
View file

@ -0,0 +1,159 @@
gcalcli HowTo (taken from gcalcli wiki)
How to use gcalcli...
Login Information
You can provide gcalcli with your Google Calendar login information either by editing the top of the script itself, using the --user and --pw arguments, or using the config file. In any case make sure you protect the information.
HTTP Proxy Support
gcalcli will automatically work with an HTTP Proxy simply by setting up some environment variables:
http_proxy
https_proxy
proxy-username
proxy-password
Note that these environment variables must be lowercase and beware the usage of the dashes vs underscores.
Config File
gcalcli is able to read default configuration information from a config file. This file is location at '~/.gcalclirc' and must be formatted as follows:
[gcalcli]
<config-item>: <value>
<config-item>: <value>
...
The available config items are the same as those that can be specified on the command line. Note that any value specified on the command line overrides the config file.
user: <username>
pw: <password>
cals: <type>
details: <true|false>
ignore-started: <true|false>
width: <width>
cal-owner-color: <color>
cal-editor-color: <color>
cal-contributor-color: <color>
cal-read-color: <color>
cal-freebusy-color: <color>
date-color: <color>
border-color: <color>
'gcalcli' event popup reminders using cron
Run gcalcli using cron and generate xmessage-like popups for reminders.
% crontab -e
Then add the following line:
*/10 * * * * gcalcli remind
'gcalcli' agenda on your root desktop
Put your agenda on your desktop using Conky. Add the following to your .conkyrc:
${execi 300 gcalcli --nc agenda}
To also get a graphical calendar that shows the next three weeks add:
${execi 300 gcalcli --nc --cals=owner calw 3}
'gcalcli' agenda integration with 'screen'
Put your next event in your 'screen' hardstatus line. First add a cron job that will dump you agenda to a text file:
% crontab -e
Then add the following line:
*/5 * * * * gcalcli --nc --ignore-started agenda "`date`" > /tmp/gcalcli_agenda.txt
Next create a simple shell script that will extract the first agenda line. Let's call this script 'screen_agenda':
#!/bin/bash
head -2 /tmp/gcalcli_agenda.txt | tail -1
Next configure screen's hardstatus line to gather data from a backtick command. Of course your hardstatus line is most likely very different than this (Mine is!):
backtick 1 60 60 screen_agenda
hardstatus "[ %1` ]"
'gcalcli' Usage
Usage:
gcalcli [options] command [command args]
Options:
--help this usage text
--config <file> config file to read (default is '~/.gcalclirc')
--user <username> google username
--pw <password> password
--cals=[all, 'calendars' to work with (default is all calendars)
default, - default (your default main calendar)
owner, - owner (your owned calendars)
editor, - editor (editable calendar)
contributor, - contributor (non-owner but able to edit)
read, - read (read only calendars)
freebusy] - freebusy (only free/busy info visible)
--cal=<name> 'calendar' to work with (default is all calendars)
- you can specify a calendar by name or by using a
regular expression to match multiple calendars
- you can use multiple '--cal' arguments on the
command line
--details show all event details (i.e. length, location,
reminders, contents)
--ignore-started ignore old or already started events
- when used with the 'agenda' command, ignore events
that have already started and are in-progress with
respect to the specified [start] time
- when used with the 'search' command, ignore events
that have already occurred and only show future
events
--width the number of characters to use for each column in
the 'cal' command output (default is 10)
--nc don't use colors
--cal-owner-color specify the colors used for the calendars and dates
--cal-editor-color each of these argument requires a <color> argument
--cal-contributor-color which must be one of [ default, black, brightblack,
--cal-read-color red, brightred, green, brightgreen, yellow,
--cal-freebusy-color brightyellow, blue, brightblue, magenta,
--date-color brightmagenta, cyan, brightcyan, white,
--border-color brightwhite ]
Commands:
list list all calendars
search <text> search for events
- only matches whole words
agenda [start] [end] get an agenda for a time period
- start time default is 12am today
- end time default is 5 days from start
- example time strings:
'9/24/2007'
'Sep 24 2007 3:30pm'
'2007-09-24T15:30'
'2007-09-24T15:30-8:00'
'20070924T15'
'8am'
calw <weeks> [start] get a week based agenda in a nice calendar format
- weeks is the number of weeks to display
- start time default is beginning of this week
- note that all events for the week(s) are displayed
calm [start] get a month agenda in a nice calendar format
- start time default is the beginning of this month
- note that all events for the month are displayed
and only one month will be displayed
quick <text> quick add an event to default calendar
- example:
'Dinner with Eric 7pm tomorrow'
'5pm 10/31 Trick or Treat'
remind <mins> <command> execute command if event occurs within <mins>
minutes time ('%s' in <command> is replaced with
event start time and title text)
- <minutes> default is 10
- default command:
'gxmessage -display :0 -center \
-title "Ding, Ding, Ding!" %s'

View file

@ -0,0 +1,30 @@
gcalcli is a Python application that allows you to access your Google
Calendar from a command line. It's easy to get your agenda, search
for events, and quickly add new events. Additionally gcalcli can be
used as a reminder service to execute any application you want.
Requirements: gdata, python-dateutil, and python-elementtree.
Features:
list your calendars
show an agenda using a specified start/end time and date
graphical calendar display (my paying homage to the remind application)
search for past and/or future calendar events
"quick add" new calendar events to your default calendar
run as a cron job and execute a command for reminders
work against specific calendars (by calendar type or calendar name regex)
config file support for specifying program defaults
colored output and unicode character support
easy integration within shell scripts, cron, screen, conky, etc
Not (Yet) Supported:
import meeting.ics Outlook events
add (non-quick) events with ability to set reminders, repeat, guests, etc
configurable reminders (i.e. 30 mins before event every 5 mins)
offline mode working from cached data
The HOWTO here explains options in detail. Taken from:
http://code.google.com/p/gcalcli/wiki/HowTo

View file

@ -0,0 +1,11 @@
--- a/gcalcli 2007-10-13 18:44:57.000000000 +0000
+++ b/gcalcli 2010-08-12 03:05:45.000000000 +0000
@@ -223,7 +223,7 @@
allCals = None
workCals = []
now = datetime.now(tzlocal())
- feedPrefix = 'http://www.google.com/calendar/feeds/'
+ feedPrefix = 'https?://www.google.com/calendar/feeds/'
agendaLength = 5
username = ''
password = ''

View file

@ -0,0 +1,68 @@
#!/bin/sh
# Slackware build script for gcalcli
# Copyright 2010 David Woodfall <dave@dawoodfall.net>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=python-gcalcli
SRCNAM=gcalcli
VERSION=${VERSION:-1.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG/usr/bin $OUTPUT
cd $PKG
tar xvf $CWD/$SRCNAM-$VERSION.tgz
patch -p1 --verbose < $CWD/feedPrefix-fix.diff
mv gcalcli usr/bin
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
$CWD/README $CWD/HOWTO \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="python-gcalcli"
VERSION="1.4"
HOMEPAGE="http://code.google.com/p/gcalcli/"
DOWNLOAD="http://gcalcli.googlecode.com/files/gcalcli-1.4.tgz"
MD5SUM="6f01ff01750e06083857347e2a5f11f8"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
MAINTAINER="David Woodfall"
EMAIL="dave@dawoodfall.net"
APPROVED="dsomero"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
python-gcalcli: gcalcli ( command line google calander application )
python-gcalcli:
python-gcalcli: gcalcli is a Python application that allows you to access your Google
python-gcalcli: Calendar from a command line. It's easy to get your agenda, search
python-gcalcli: for events, and quickly add new events. Additionally gcalcli can be
python-gcalcli: used as a reminder service to execute any application you want.
python-gcalcli:
python-gcalcli: Homepage: http://code.google.com/p/gcalcli/
python-gcalcli:
python-gcalcli:
python-gcalcli: