def __init__(self, photos, download_path):
     self.len = len(photos)
     log("downloader.__init__ with %d items and path=%s" % (self.len, download_path))
     self.pDialog = xbmcgui.DialogProgress()
     self.pDialog.create(Addon.getAddonInfo("name"))
     s = Addon.getLocalizedString(32301)  # Gathering Data...
     self.pDialog.update(0, s)
     album_title = photos[0]["album_title"]
     self.sub_folder = re.sub("[^\w\- ]", "", album_title).replace(" ", "_")
     self.full_path = os.path.join(download_path, self.sub_folder)
     log('script.download_album using full_path="%s"' % self.full_path)
     self.__create_folder(self.full_path)
     for i, photo in enumerate(photos):
         self.current_item = i + 1
         url = photo["pic"]
         self.current_file = photo["pic"].split("/")[-1].split("?")[0]
         filename = os.path.join(self.full_path, self.current_file)
         log('downloader: Downloading "%s" to "%s"' % (url, filename))
         try:
             urllib.urlretrieve(url, filename, self.update_progress)
         except IOError, e:
             log('downloader: ERROR: "%s"' % str(e))
             break
         log("downloader: Done")
         if self.pDialog.iscanceled():
             log("downloader: Canceled")
             break
def show_scrapers():
    log('plugin.show_scrapers started')
    scrapers = get_scrapers()
    for scraper in scrapers:
        liz = xbmcgui.ListItem(scraper['title'], iconImage='DefaultImage.png',
                               thumbnailImage='DefaultFolder.png')
        params = {'mode': 'albums',
                  'scraper_id': scraper['id']}
        url = 'plugin://%s/?%s' % (Addon.getAddonInfo('id'),
                                   urllib.urlencode(params))
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url,
                                    listitem=liz, isFolder=True)
    log('plugin.show_scrapers finished')
def show_albums(scraper_id):
    log('plugin.show_albums started with scraper_id=%s' % scraper_id)
    albums = get_albums(scraper_id)
    for album in albums:
        liz = xbmcgui.ListItem(album['title'], iconImage='DefaultImage.png',
                               thumbnailImage=album['pic'])
        liz.setInfo(type='image', infoLabels={'Title': album['title']})
        params = {'mode': 'photos',
                  'scraper_id': scraper_id,
                  'album_url': album['id']}
        url = 'plugin://%s/?%s' % (Addon.getAddonInfo('id'),
                                   urllib.urlencode(params))
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url,
                                    listitem=liz, isFolder=True)
    log('plugin.show_albums finished')
 def startSlideshow(self):
     log('script.startSlideshow started')
     params = {}
     params['scraper_id'] = self.ScraperManager.scraper_id
     params['mode'] = 'photos'
     params['album_url'] = self.getProperty('album_url')
     if Addon.getSetting('random_slideshow') == 'true':
         random = 'random'
     else:
         random = 'notrandom'
     url = 'plugin://%s/?%s' % (Addon.getAddonInfo('id'),
                                urllib.urlencode(params))
     log('script.startSlideshow using url=%s' % url)
     xbmc.executebuiltin('Slideshow(%s, recursive, %s)'
                         % (url, random))
     log('script.startSlideshow finished')