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