The branch, dharma has been updated
       via  a1890cccb7de7fc6fc04b5b8cd820cd84eb2d8c3 (commit)
      from  c0e124d5ec24ccbd74ac33d93fd05ea2e8c1c4e7 (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=a1890cccb7de7fc6fc04b5b8cd820cd84eb2d8c3

commit a1890cccb7de7fc6fc04b5b8cd820cd84eb2d8c3
Author: spiff <[email protected]>
Date:   Thu Jan 13 13:10:58 2011 +0100

    [plugin.image.flickr] updated to version 0.9.9

diff --git a/plugin.image.flickr/addon.xml b/plugin.image.flickr/addon.xml
index 95db3b0..d11c0bb 100644
--- a/plugin.image.flickr/addon.xml
+++ b/plugin.image.flickr/addon.xml
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.image.flickr"
        name="flickr"
-       version="0.9.8"
+       version="0.9.9"
        provider-name="Rick Phillips (ruuk)">
   <requires>
     <import addon="xbmc.python" version="1.0"/>
        <import addon="script.module.elementtree" version="1.2.7"/>
+       <import addon="script.web.viewer" version="0.7.4"/>
    </requires>
 
   <extension point="xbmc.python.pluginsource"
diff --git a/plugin.image.flickr/changelog.txt 
b/plugin.image.flickr/changelog.txt
index 56d58ef..d9fa91f 100644
--- a/plugin.image.flickr/changelog.txt
+++ b/plugin.image.flickr/changelog.txt
@@ -1,6 +1,10 @@
 flickrXBMC Changelog
 
-Current Version : 0.9.8
+Current Version : 0.9.9
+
+** 0.9.9 ***
+
+Authorization now handled in XBMC with Web Viewer
 
 ** 0.9.8 ***
 
diff --git a/plugin.image.flickr/default.py b/plugin.image.flickr/default.py
index 21afec2..c7961b9 100644
--- a/plugin.image.flickr/default.py
+++ b/plugin.image.flickr/default.py
@@ -2,19 +2,19 @@
 
 import flickrapi
 import urllib
-import xbmc, xbmcgui, xbmcplugin, xbmcaddon
+import xbmc, xbmcgui, xbmcplugin, xbmcaddon #@UnresolvedImport
 import sys, os, time
 from urllib2 import HTTPError, URLError
 
 __plugin__ = 'flickr'
 __author__ = 'ruuk'
 __url__ = 'http://code.google.com/p/flickrxbmc/'
-__date__ = '11-10-2010'
-__version__ = '0.9.8'
+__date__ = '01-11-2011'
+__version__ = '0.9.9'
 __settings__ = xbmcaddon.Addon(id='plugin.image.flickr')
 __language__ = __settings__.getLocalizedString
 
-IMAGES_PATH = xbmc.translatePath( os.path.join( os.getcwd(), 'resources', 
'images' ) )
+IMAGES_PATH = os.path.join(__settings__.getAddonInfo('path'),'resources', 
'images')
 CACHE_PATH = 
xbmc.translatePath('special://profile/addon_data/plugin.image.flickr/cache/')
 
 if not os.path.exists(CACHE_PATH): os.makedirs(CACHE_PATH)
@@ -27,7 +27,6 @@ class flickrPLUS(flickrapi.FlickrAPI):
                        page = int(photoset.attrib.get('page','1'))
                        pages = int(photoset.attrib.get('pages','1'))
                        perpage = int(photoset.attrib.get('perpage','1'))
-                       perpage = int(photoset.attrib.get('perpage','1'))
                        total = int(photoset.attrib.get('total','1'))
                        self.TOTAL = total
                        self.TOTAL_ON_LAST_PAGE = total % perpage
@@ -45,7 +44,7 @@ class Maps:
        def __init__(self):
                self.map_source = 
['google','yahoo','osm'][int(__settings__.getSetting('default_map_source'))]
                if self.map_source == 'yahoo':
-                       import elementtree.ElementTree as et
+                       import elementtree.ElementTree as et #@UnresolvedImport
                        self.ET = et
                self.zoom =  {  
'country':int(__settings__.getSetting('country_zoom')),
                                                
'region':int(__settings__.getSetting('region_zoom')),
@@ -83,7 +82,7 @@ class Maps:
                else:
                        url = 
"http://maps.google.com/maps/api/staticmap?center="+lat+","+lon+"&zoom="+zoom+"&size="+str(width)+"x"+str(height)+"&sensor=false&maptype="+self.default_map_type+"&format=jpg"
 
-               fname,ignore  = urllib.urlretrieve(url + mark,ipath)
+               fname,ignore  = urllib.urlretrieve(url + mark,ipath) 
#@UnusedVariable
                return fname
 
        def translateZoomToYahoo(self,zoom):
@@ -96,7 +95,7 @@ class Maps:
                
        def doMap(self):
                clearDirFiles(CACHE_PATH)
-               image = 
self.getMap(sys.argv[2],sys.argv[3],'photo',width=640,height=360,marker=True)
+               
self.getMap(sys.argv[2],sys.argv[3],'photo',width=640,height=360,marker=True)
                xbmc.executebuiltin('SlideShow('+CACHE_PATH+')')
        
 class FlickrSession:
@@ -118,6 +117,7 @@ class FlickrSession:
                self.user_id = None
                self.loadSettings()
                self.maps = None
+               self.justAuthorized = False
                if __settings__.getSetting('enable_maps') == 'true': self.maps 
= Maps()
                
        def loadSettings(self):
@@ -132,34 +132,46 @@ class FlickrSession:
                return self.DISPLAY_VALUES[int(index)]
                
        def doTokenDialog(self,frob,perms):
-               dialog = xbmcgui.Dialog()
-               ok = 
dialog.ok(__language__(30505),__language__(30506).replace('@REPLACE@',': 
2ndmind.com/flickrxbmc'), __language__(30507))
-               keyboard = xbmc.Keyboard('',__language__(30508))
-               keyboard.doModal()
-               if (keyboard.isConfirmed()):
-                       email = keyboard.getText()
-               keyboard = xbmc.Keyboard('',__language__(30509))
-               keyboard.doModal()
-               if (keyboard.isConfirmed()):
-                       code = keyboard.getText()
+               url = self.flickr.auth_url('read',frob)
+               xbmcplugin.endOfDirectory(int(sys.argv[1]),succeeded=False)
+               self.justAuthorized = True
+               
xbmcgui.Dialog().ok(__language__(30507),__language__(30508),__language__(30509))
+               from webviewer import webviewer #@UnresolvedImport
+               autoforms = [   {'action':'login.yahoo.com/config/login'},
+                                               
{'url':'.+perms=.+','action':'services/auth','index':2},
+                                               
{'url':'.+services/auth/$','action':'services/auth'}]
+               autoClose = {   'url':'.+services/auth/$',
+                                               'html':'(?s).+successfully 
authorized.+',
+                                               'heading':__language__(30505),
+                                               'message':__language__(30506)}
+               url,html = 
webviewer.getWebResult(url,autoForms=autoforms,autoClose=autoClose) 
#@UnusedVariable
+               print 'AUTH RESPONSE URL: ' + url
+
+       def extractTokenFromURL(self,url):
+               from cgi import parse_qs
+               import urlparse
                try:
-                       f = 
urllib.urlopen("http://2ndmind.com/flickrxbmc/index.py?gettoken="+email+'-'+code)
-                       token = f.read()
-                       f.close()
-                       if not token: raise
+                       token = 
parse_qs(urlparse.urlparse(url.replace('#','?',1))[4])['token'][0].strip()
                except:
-                       dialog = xbmcgui.Dialog()
-                       ok = dialog.ok('Error fetching token', '')
-                       xbmcplugin.endOfDirectory(int(sys.argv[1]))
-               self.flickr.token_cache.token = token
-
+                       print 'Invalid Token'
+                       return None
+               return token
+       
        def authenticate(self):
                #try:
                self.flickr = flickrPLUS(self.API_KEY,self.API_SECRET)
-               (token, frob) = 
self.flickr.get_token_part_one(perms='read',auth_callback=self.doTokenDialog)
-               #if not token:
-               #       token = doTokenDialog()
-               #self.flickr.get_token_part_two((token, frob))
+               (token, frob) = 
self.flickr.get_token_part_one(perms='read',auth_callback=self.doTokenDialog) 
#@UnusedVariable
+               try:
+                       self.flickr.get_token_part_two((token, frob))
+               except:
+                       if self.justAuthorized:
+                               
xbmcgui.Dialog().ok(__language__(30520),__language__(30521),str(sys.exc_info()[1]))
+                       else:
+                               
xbmcgui.Dialog().ok(__language__(30522),__language__(30523),str(sys.exc_info()[1]))
+                       print "Failed to get token. Probably did not authorize."
+               print "AUTH DONE"
+               if self.justAuthorized: return False
+               
                if self.username:
                        user = 
self.flickr.people_findByUsername(username=self.username)
                        self.user_id = user.findall('*')[0].get('id')
@@ -169,11 +181,7 @@ class FlickrSession:
                        self.user_id = user.attrib.get('nsid')
                        self.username = user.attrib.get('username')
                        if self.username: 
__settings__.setSetting('flickr_username',self.username)
-                               
-               #except:
-               #       dialog = xbmcgui.Dialog()
-               #       ok = dialog.ok('Authentication Error', '?')
-               #       xbmcplugin.endOfDirectory(int(sys.argv[1]))
+               return True
                        
        def getCollectionsInfoList(self,userid=None,cid='0'):
                if not userid: userid = self.user_id
@@ -275,7 +283,7 @@ class FlickrSession:
                        pg = (page==2) and '-1' or  str(page-1) #if previous 
page is one, set to -1 to differentiate from initial showing
                        
self.addDir(previous.replace('@REPLACE@',str(self.max_per_page)),url,mode,os.path.join(IMAGES_PATH,'previous.png'),page
 = pg,userid=kwargs.get('userid',''))
                        
-               info_list = []
+               #info_list = []
                extras = self.SIZE_KEYS[self.defaultThumbSize] + ',' + 
self.SIZE_KEYS[self.defaultDisplaySize]
                if mapOption: extras += ',geo'
                
@@ -423,7 +431,6 @@ class FlickrSession:
                
self.addPhotos(self.flickr.photos_search,1022,url=woeid,page=page,woe_id=woeid,user_id='me',mapOption=True)
        
        def addLink(self,name,url,iconimage,tot=0,contextMenu=None):
-               ok=True
                
#u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&name="+urllib.quote_plus(name)
                liz=xbmcgui.ListItem(name, iconImage="DefaultImage.png", 
thumbnailImage=iconimage)
                liz.setInfo( type="image", infoLabels={ "Title": name } )
@@ -433,14 +440,13 @@ class FlickrSession:
        def addDir(self,name,url,mode,iconimage,page=1,tot=0,userid=''):
                if userid: userid = "&userid="+urllib.quote_plus(userid)
                
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&page="+str(page)+userid+"&name="+urllib.quote_plus(name.encode('ascii','replace'))
-               ok=True
                liz=xbmcgui.ListItem(name, 
'test',iconImage="DefaultFolder.png", thumbnailImage=iconimage)
                liz.setInfo( type="image", infoLabels={"Title": name} )
                return 
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True,totalItems=tot)
 
 class ImageShower(xbmcgui.Window):
        def showImage(self,image):
-               
self.addControl(xbmcgui.ControlImage(0,0,test.getWidth(),test.getHeight(), 
image, aspectRatio=2))
+               
self.addControl(xbmcgui.ControlImage(0,0,self.getWidth(),self.getHeight(), 
image, aspectRatio=2))
                
        def onAction(self,action):
                if action == 10 or action == 9: self.close()            
@@ -469,7 +475,7 @@ def get_params():
                                param[splitparams[0]]=splitparams[1]
                                                        
        return param
-        
+
 ### Do plugin stuff 
--------------------------------------------------------------------------
 def doPlugin():
        params=get_params()
@@ -511,7 +517,9 @@ def doPlugin():
 
        try:
                fsession = FlickrSession()
-               fsession.authenticate()
+               if not fsession.authenticate():
+                       mode = 9999
+                       url = 'AUTHENTICATE'
 
                if page>1 or page<0: update_dir=True
                page = abs(page)
@@ -576,21 +584,19 @@ def doPlugin():
                        fsession.PLACES(8,woeid=url,name=name,zoom='region')
        except HTTPError,e:
                if(e.reason[1] == 504):
-                       dialog = xbmcgui.Dialog()
-                       ok = dialog.ok(__language__(30502), __language__(30504))
+                       xbmcgui.Dialog().ok(__language__(30502), 
__language__(30504))
                        success = False
                else:
                        raise
        except URLError,e:
                print e.reason
                if(e.reason[0] == 110):
-                       dialog = xbmcgui.Dialog()
-                       ok = dialog.ok(__language__(30503), __language__(30504))
+                       xbmcgui.Dialog().ok(__language__(30503), 
__language__(30504))
                        success = False
                else:
                        raise
                
-       
xbmcplugin.endOfDirectory(int(sys.argv[1]),succeeded=success,updateListing=update_dir,cacheToDisc=cache)
+       if mode != 9999: 
xbmcplugin.endOfDirectory(int(sys.argv[1]),succeeded=success,updateListing=update_dir,cacheToDisc=cache)
 
 if sys.argv[1] == 'map':
        Maps().doMap()
diff --git a/plugin.image.flickr/resources/language/Chinese 
(Traditional)/strings.xml b/plugin.image.flickr/resources/language/Chinese 
(Traditional)/strings.xml
index c25a4ce..a0e20bb 100644
--- a/plugin.image.flickr/resources/language/Chinese (Traditional)/strings.xml  
+++ b/plugin.image.flickr/resources/language/Chinese (Traditional)/strings.xml  
@@ -49,11 +49,9 @@
     <string id="30502">HTTP 逾時</string>
     <string id="30503">連線逾時</string>
     <string id="30504">重試</string>
-    <string id="30505">授權 flickrXBMC</string>
-    <string id="30506">到 @REPLACE@</string><!--example: Go to 
http://google.com -->
-    <string id="30507">照指示操作,然後按 OK</string>
-    <string id="30508">輸入電子郵件:</string>
-    <string id="30509">輸入代碼:</string>
+    <string id="30505">Authorization Complete</string><!--TODO: Needs 
translation -->
+    <string id="30506">Authorization Complete!</string><!--TODO: Needs 
translation -->
+    
     <string id="30510">顯示地圖</string>
     <string id="30511">上 @REPLACE@ 張照片</string><!--example: Previous 
50 photos -->
     <string id="30512">下 @REPLACE@ 張照片</string><!--example: Next 50 
photos -->
diff --git a/plugin.image.flickr/resources/language/Dutch/strings.xml 
b/plugin.image.flickr/resources/language/Dutch/strings.xml
index 8d5ca47..813506c 100644
--- a/plugin.image.flickr/resources/language/Dutch/strings.xml
+++ b/plugin.image.flickr/resources/language/Dutch/strings.xml
@@ -50,11 +50,9 @@
     <string id="30502">HTTP Timeout</string>
     <string id="30503">Connection Timeout</string>
     <string id="30504">Probeer opnieuw</string>
-    <string id="30505">Autoriseer add-on</string>
-    <string id="30506">Ga naar @REPLACE@</string><!--example: Go to 
http://google.com -->
-    <string id="30507">Druk op OK als autorisatie afgerond is.</string>
-    <string id="30508">Uw e-mail adres</string>
-    <string id="30509">Autorisatie code</string>
+    <string id="30505">Authorization Complete</string><!--TODO: Needs 
translation -->
+    <string id="30506">Authorization Complete!</string><!--TODO: Needs 
translation -->
+    
     <string id="30510">Toon kaart</string>
     <string id="30511">Vorige @REPLACE@ afbeeldingen</string><!--example: 
Previous 50 photos -->
     <string id="30512">Volgende @REPLACE@ afbeeldingen</string><!--example: 
Next 50 photos -->
diff --git a/plugin.image.flickr/resources/language/English/strings.xml 
b/plugin.image.flickr/resources/language/English/strings.xml
index 09c6f59..4242a44 100644
--- a/plugin.image.flickr/resources/language/English/strings.xml
+++ b/plugin.image.flickr/resources/language/English/strings.xml
@@ -49,11 +49,12 @@
     <string id="30502">HTTP Timeout</string>
     <string id="30503">Connection Timeout</string>
     <string id="30504">Try again</string>
-    <string id="30505">Authorize flickrXBMC</string>
-    <string id="30506">Go to @REPLACE@</string><!--example: Go to 
http://google.com -->
-    <string id="30507">follow the instructions, then click OK</string>
-    <string id="30508">Enter the email address here:</string>
-    <string id="30509">Enter the code:</string>
+    <string id="30505">Authorization Complete</string>
+    <string id="30506">Authorization Complete!</string>
+    <string id="30507">Authorization</string>
+    <string id="30508">Authorization needed,</string>
+    <string id="30509">click OK to continue</string>
+    
     <string id="30510">Show Map</string>
     <string id="30511">Previous @REPLACE@ photos</string><!--example: Previous 
50 photos -->
     <string id="30512">Next @REPLACE@ photos</string><!--example: Next 50 
photos -->
@@ -61,4 +62,9 @@
     <string id="30514">@NAMEREPLACE@'s @REPLACE@</string><!--(Singular 
possesive) example: John's Photostream -->
     <string id="30515">@NAMEREPLACE@'s @REPLACE@</string><!--(Plural 
posessive) example: John's Sets -->
     <string id="30516">Search @NAMEREPLACE@'s Photostream</string><!--Search 
John's Photostream -->
+    
+    <string id="30520">Failed</string>
+    <string id="30521">Authorization Failed.</string>
+    <string id="30522">Authorization Error</string>
+    <string id="30523">Error getting token.</string>
 </strings>
diff --git a/plugin.image.flickr/resources/language/German/strings.xml 
b/plugin.image.flickr/resources/language/German/strings.xml
index 67c78f2..9f03c6c 100644
--- a/plugin.image.flickr/resources/language/German/strings.xml
+++ b/plugin.image.flickr/resources/language/German/strings.xml
@@ -49,11 +49,9 @@
     <string id="30502">HTTP Timeout</string>
     <string id="30503">Connection Timeout</string>
     <string id="30504">Try again</string>
-    <string id="30505">Authorize flickrXBMC</string>
-    <string id="30506">Go to @REPLACE@</string>
-    <string id="30507">follow the instructions, then click OK</string>
-    <string id="30508">Enter the email address here:</string>
-    <string id="30509">Enter the code:</string>
+    <string id="30505">Authorization Complete</string>
+    <string id="30506">Authorization Complete!</string>
+    
     <string id="30510">Show Map</string>
     <string id="30511">Previous @REPLACE@ photos</string>
     <string id="30512">Next @REPLACE@ photos</string>
diff --git a/plugin.image.flickr/resources/language/Spanish/strings.xml 
b/plugin.image.flickr/resources/language/Spanish/strings.xml
index 76ffd58..acf22dd 100644
--- a/plugin.image.flickr/resources/language/Spanish/strings.xml
+++ b/plugin.image.flickr/resources/language/Spanish/strings.xml
@@ -49,11 +49,9 @@
     <string id="30502">Tiempo de espera de HTTP</string>
     <string id="30503">Tiempo de espera de conexión</string>
     <string id="30504">Inténtalo de nuevo</string>
-    <string id="30505">Autorizar flickrXBMC</string>
-    <string id="30506">Ir a la @REPLACE@</string>
-    <string id="30507">siga las instrucciones, y luego haga clic en 
Aceptar</string>
-    <string id="30508">Introduzca la dirección de correo 
electrónico:</string>
-    <string id="30509">Introduzca el código:</string>
+    <string id="30505">Authorization Complete</string><!--TODO: Needs 
translation -->
+    <string id="30506">Authorization Complete!</string><!--TODO: Needs 
translation -->
+    
     <string id="30510">Ver Mapa</string>
     <string id="30511">Anterior @REPLACE@ fotos</string>
     <string id="30512">Siguiente @REPLACE@ fotos</string>

-----------------------------------------------------------------------

Summary of changes:
 plugin.image.flickr/addon.xml                      |    3 +-
 plugin.image.flickr/changelog.txt                  |    6 +-
 plugin.image.flickr/default.py                     |  100 ++++++++++---------
 .../language/Chinese (Traditional)/strings.xml     |    8 +-
 .../resources/language/Dutch/strings.xml           |    8 +-
 .../resources/language/English/strings.xml         |   16 ++-
 .../resources/language/German/strings.xml          |    8 +-
 .../resources/language/Spanish/strings.xml         |    8 +-
 8 files changed, 83 insertions(+), 74 deletions(-)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to