1 from __future__ import print_function
3 #from Plugins.Plugin import PluginDescriptor
5 #pragma mark - Picasa API
7 import gdata.photos.service
12 """Wrapper around gdata/picasa API to make our life a little easier."""
13 def __init__(self, email, password):
14 """Initialize API, login to google servers"""
15 gd_client = gdata.photos.service.PhotosService()
16 gd_client.email = email
17 gd_client.password = password
18 gd_client.source = 'enigma2-plugin-extensions-ecasa'
19 gd_client.ProgrammaticLogin()
21 self.gd_client = gd_client
23 def getAlbums(self, user='default'):
24 albums = self.gd_client.GetUserFeed(user=user)
25 # flatten list to something our gui renderers can handle more easily
26 return [(album.title.text, album.numphotos.text, user, album.gphoto_id.text, album) for album in albums.entry]
28 def getAlbum(self, gphoto_id, user='default'):
29 photos = self.gd_client.GetFeed('/data/feed/api/user/%s/albumid/%s?kind=photo' % (user, gphoto_id))
30 return [(photo.title.text, user, photo.gphoto_id.text, photo) for photo in photos.entry]
36 def Plugins(**kwargs):
40 if __name__ == '__main__':
42 if not len(sys.argv) > 2:
43 print("Not enough parameters, aborting...")
45 api = PicasaApi(sys.argv[1], sys.argv[2])
47 print("List of Albums:", l)
49 l = api.getAlbum(l[0][3])
50 print("Pictures in first album:", l)
51 print("Thumbnail of first picture could be found under:", l[0][3].media.thumbnail[0].url)
52 print("Picture should be:", l[0][3].media.content[0].url)