//////////////////////////////////////////////////////////////////////////////////////////////////// // // testcal.cpp // this file access to google calendar with libgc // and gest your next meeting // // // This file is put as exemple - considered it as a draft source code // debug lines are still here. No memory optimization etc. // Many constant are hard-coded. Should be in a conf file, etc. // // Note : I don't know why, it doesn't work every time. // I must run it many times to get it work... ??? If you have an idea why, please contact me. // // Pierre Raufast - 2013 // (for a better world, read Giono's books) // //////////////////////////////////////////////////////////////////////////////////////////////////// #include #include #include extern "C" { #include "inc/gcalendar.h" } int main(int argc, char *argv[]) { // google calendar structures gcal_t gcal; gcal_event_t myevent; struct gcal_event_array event_array; int result,result2,i,minEvent=-1; // now time_t now; double elapsed, minsec=0.0; int year,month,day,hour,min,rdvhour=0,rdvmin=0; // get time time(&now); /* Create a gcal 'object' and authenticate with server */ if (!(gcal = gcal_new(GCALENDAR))) { return 0; } printf ("Current local time and date: %s", asctime(localtime (&now))); struct tm e_time {0}; time_t e_time2; minsec=2592000.0; // 1 month; if (argc == 3) result2 = gcal_get_authentication(gcal, argv[1], argv[2]); else result2 = gcal_get_authentication(gcal, "mylogin","mypassword"); if (result2!=0) { printf(" error"); gcal_delete(gcal); return 0; } sleep(3); // get all events result = gcal_get_events(gcal, &event_array); if (result==-1) { printf(" error"); gcal_delete(gcal); return 0; } // for each event, get time, take nearest to now for (i=0;i<(int)event_array.length;i++) { myevent=gcal_event_element(&event_array,i); sscanf(gcal_event_get_start(myevent),"%d-%d-%dT%d:%d",&year,&month,&day,&hour,&min); e_time.tm_sec = 0; e_time.tm_min = min; e_time.tm_hour = hour; e_time.tm_mday = day; e_time.tm_mon = month-1; e_time.tm_year = year-1900; e_time.tm_isdst = 0; e_time2 = mktime(&e_time); double elapsed = difftime(e_time2,now); //printf("(%d) %lf\n",i,elapsed); if ((elapsed>0.0)&&(elapsed