
PhantCalendar
Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net
A nice calendar screenlet displaying appointments which are queried from Google Calendar.
This screenlet requires "python-gdata".
9 years ago
- Changed startup behavior
- Added notifications on success/failure during login
- Opens dialog, if Google asks for a Captcha
9 years ago
- Changed startup behavior
- Added notifications on success/failure during login
- Opens dialog, if Google asks for a Captcha
panzaeron
10 years ago
thank you, for the great screenlet, but I have a problem, with the events. Only every second event is displayed. For example, I have the following events:
8:00-9:30 Test1
9:45-11:15 Test2
11:35-13:05 Test3
13:25-15:05 Test4
Your screenlet displayed only the Test1 and Test3 event, do you have an idea?
Here is the command line output:
Quote:python PhantCalendarScreenlet.py
CachingBackend: Lade Instanzen aus dem Cache
CachingBackend: Lade <PhantCalendar1>
Erstelle neuen Eintrag für PhantCalendarScreenlet in /tmp/screenlets/screenlets.xxx.running
Lade Instanzen in: /home/xxx/.config/Screenlets/PhantCalendar/default/
Datei: PhantCalendar1.ini
/home/xxx/.config/Screenlets/PhantCalendar/default/PhantCalendar1
LADE NEUES THEMA: default
GEFUNDEN: /home/xxx/.screenlets/PhantCalendar/themes/default
theme.conf found! Loading option-overrides.
theme.conf geladen:
Name: PhantCalendar
Autor Andi Hasenkopf
Version: 0.0
Info: Default Theme
/usr/lib/pymodules/python2.6/screenlets/drawing.py:114: DeprecationWarning: use copy pango.FontDescription.set_family instead
self.p_fdesc.set_family_static(font)
Failed to LOGIN!
Setze Optionen in PhantCalendarScreenlet
LADE NEUES THEMA: default
GEFUNDEN: /home/xxx/.screenlets/PhantCalendar/themes/default
theme.conf found! Loading option-overrides.
theme.conf geladen:
Name: PhantCalendar
Autor Andi Hasenkopf
Version: 0.0
Info: Default Theme
LOGIN successfull!
Instanzen wiederhergestellt aus der Sitzung: 'default' ...
Report
panzaeron
10 years ago
It is not everytime the second item, I restarted the app and for example the Test1 and Test2 events are displayed and the other not.
Report
CrazyScientist
10 years ago
the command line output looks completely normal. I've added some test appointments like yours to my calender and they appeared all after a refresh in the screenlet. Sorry, but I have no idea, what could have gone wrong...
Report
panzaeron
10 years ago
(sorry, in german: Es sind alles wiederholende Terminen)
With the commandline tool gcalcli (http://code.google.com/p/gcalcli/) works everything like it should.
Report
CrazyScientist
10 years ago
As like the bug with the server error (see above) I have no idea where the error could be. Have you checked on the google calendar webpage, too?
If you are familiar with Python you could insert some debug messages by your own. In the function "calendar_query". Looking at the variable "apps" in this function might be helpful.
I will take a closer look to the problem within the next days, too.
Report
panzaeron
10 years ago
I checked the google calendar webpage and the xml-files are ok too (gcalcli works).
I'm not familar with python, but this is a good chance to have a look at python :-)
So, in the next days I have a view on the screenlet code...
Report
dxcore35
10 years ago
Report
tezer
10 years ago
Your screenlet seems to be great, but I can't make it work.
I have all it needs and I it seems able to log in into my google account ("offline" goes out), but it shows nothing at all.
What should I do?
Report
tezer
10 years ago
Your screenlet seems to be great, but I can't make it work.
I have all it needs and I it seems able to log in into my google account ("offline" goes out), but it shows nothing at all.
What should I do?
Report
CrazyScientist
10 years ago
when the screenlet does not show the comment "offline" it has successfully connected to Google.
By default the screenlet queries only events which start within the next two weeks with respect to the moment of querying.
For the start I suggest:
- Create an event which is one day in the future.
- Increase the value of "# weeks".
If this does not change anything, start the screenlet from the command line and have a look at the output for errors...
Good luck
Report
tezer
10 years ago
When tried to start in a terminal, it managed to login but reported an error:
Traceback (most recent call last):
File "PhantCalendarScreenlet.py", line 424, in <module>
screenlets.session.create_session(PhantCalendarScreenlet)
File "/usr/lib/pymodules/python2.6/screenlets/session.py", line 472, in create_session
session.start()
File "/usr/lib/pymodules/python2.6/screenlets/session.py", line 237, in start
if self.__load_instances():
File "/usr/lib/pymodules/python2.6/screenlets/session.py", line 399, in __load_instances
sl.finish_loading()
File "/usr/lib/pymodules/python2.6/screenlets/__init__.py", line 1247, in finish_loading
self.on_init()
File "PhantCalendarScreenlet.py", line 264, in on_init
self.update()
File "PhantCalendarScreenlet.py", line 198, in update
self.calendar_login()
File "PhantCalendarScreenlet.py", line 141, in calendar_login
self.allCals = self.calendar_service.GetAllCalendarsFeed()
File "/usr/lib/pymodules/python2.6/gdata/calendar/service.py", line 81, in GetAllCalendarsFeed
return self.Get(uri, converter=gdata.calendar.CalendarListFeedFromString)
File "/usr/lib/pymodules/python2.6/gdata/service.py", line 1007, in Get
encoding=encoding, converter=converter)
File "/usr/lib/pymodules/python2.6/gdata/service.py", line 1018, in Get
'reason': server_response.reason, 'body': result_body}
gdata.service.RequestError: {'status': 500, 'body': 'Service Error: Could not generate feed.', 'reason': 'Internal Server Error'}
Hope it helps.
Report
CrazyScientist
10 years ago
This sounds like an internal error at Google. To test whether you can access you calendar's feed try this:
- go to your calendar's settings in your browser
- click on the XML-button for your private address and have a look at it.
If this works and the screenlet still does not, I have no further clue at the moment...
Report
tezer
10 years ago
By the way. When I tried to run the screenlet from cl it never showed up. The Screenlet manager has the Run box ticked and when I try deselect it to stop Phant it can't stop it. Another bug is that the settings window doesn't close when I press "Close". The only way to close the Settings window is to close the window.
Are they all related somehow?
Report
CrazyScientist
10 years ago
I had a look at Google and found some pages referring to the code 500 error you encountered. Maybe one of them might help you:
http://www.google.com/support/forum/p/apps-apis/thread?tid=718c155697ed5d96&hl=en
http://www.rainlendar.net/cms/index.php?option=com_kunena&Itemid=42&func=view&catid=3&id=11634&limit=6&limitstart=6
http://calengoo.dgunia.de/Support.html
Report
tezer
10 years ago
Report
CrazyScientist
10 years ago
unfortunately I have no idea, why the function GetAllCalendarsFeed() returns an error.
But I will have a look on the problem.
Please feel free to investigate the problem, too. Maybe we find out, what went wrong.
http://code.google.com/apis/calendar/data/1.0/developers_guide_python.html
Report
tezer
10 years ago
When tried to start in a terminal, it managed to login but reported an error:
Traceback (most recent call last):
File "PhantCalendarScreenlet.py", line 424, in <module>
screenlets.session.create_session(PhantCalendarScreenlet)
File "/usr/lib/pymodules/python2.6/screenlets/session.py", line 472, in create_session
session.start()
File "/usr/lib/pymodules/python2.6/screenlets/session.py", line 237, in start
if self.__load_instances():
File "/usr/lib/pymodules/python2.6/screenlets/session.py", line 399, in __load_instances
sl.finish_loading()
File "/usr/lib/pymodules/python2.6/screenlets/__init__.py", line 1247, in finish_loading
self.on_init()
File "PhantCalendarScreenlet.py", line 264, in on_init
self.update()
File "PhantCalendarScreenlet.py", line 198, in update
self.calendar_login()
File "PhantCalendarScreenlet.py", line 141, in calendar_login
self.allCals = self.calendar_service.GetAllCalendarsFeed()
File "/usr/lib/pymodules/python2.6/gdata/calendar/service.py", line 81, in GetAllCalendarsFeed
return self.Get(uri, converter=gdata.calendar.CalendarListFeedFromString)
File "/usr/lib/pymodules/python2.6/gdata/service.py", line 1007, in Get
encoding=encoding, converter=converter)
File "/usr/lib/pymodules/python2.6/gdata/service.py", line 1018, in Get
'reason': server_response.reason, 'body': result_body}
gdata.service.RequestError: {'status': 500, 'body': 'Service Error: Could not generate feed.', 'reason': 'Internal Server Error'}
Hope it helps.
Report