The branch, dharma has been updated
       via  d0220d5546d12068614f869a7308f82b7dfcfdb0 (commit)
      from  8ed272d03d341972a5fe027b531b9a98c1f4b193 (commit)

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

commit d0220d5546d12068614f869a7308f82b7dfcfdb0
Author: spiff <[email protected]>
Date:   Tue May 17 15:24:40 2011 +0200

    [plugin.video.engadget] updated to version 0.0.3

diff --git a/plugin.video.engadget/addon.xml b/plugin.video.engadget/addon.xml
index 16f9202..8d82649 100644
--- a/plugin.video.engadget/addon.xml
+++ b/plugin.video.engadget/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

 <addon id="plugin.video.engadget"

        name="Engadget"

-       version="0.0.2"

+       version="0.0.3"

        provider-name="divingmule">

   <requires>

     <import addon="xbmc.python" version="1.0"/>

diff --git a/plugin.video.engadget/changelog.txt 
b/plugin.video.engadget/changelog.txt
index ae38eba..1f1a960 100644
--- a/plugin.video.engadget/changelog.txt
+++ b/plugin.video.engadget/changelog.txt
@@ -1,3 +1,6 @@
+Version 0.0.3

+added download to the context menu

+

 Version 0.0.2

 new icon, thanks freezy!

 

diff --git a/plugin.video.engadget/default.py b/plugin.video.engadget/default.py
index ffce115..f457ddc 100644
--- a/plugin.video.engadget/default.py
+++ b/plugin.video.engadget/default.py
@@ -12,116 +12,165 @@ videoq = __settings__.getSetting('video_quality')
 

 

 def Categories():

-               
addDir(__language__(30000),'http://www.engadget.com/engadgetshow.xml',1,showicon)

-               
addDir(__language__(30001),'http://api.viddler.com/api/v2/viddler.videos.getByUser.xml?key=tg50w8nr11q8176liowh&user=engadget',2,icon)

+        
addDir(__language__(30000),'http://www.engadget.com/engadgetshow.xml',1,showicon)

+        
addDir(__language__(30001),'http://api.viddler.com/api/v2/viddler.videos.getByUser.xml?key=tg50w8nr11q8176liowh&user=engadget',2,icon)

 

 

 def getEngadgetVideos(url):

-               req = urllib2.Request(url)

-               response = urllib2.urlopen(req)

-               link=response.read()

-               response.close()

-               soup = BeautifulStoneSoup(link, 
convertEntities=BeautifulStoneSoup.XML_ENTITIES)

-               videos = soup('video_list')[0]('video')

-               page = int(soup('list_result')[0]('page')[0].string)+1

-               for video in videos:

-                               name = video('title')[0].string

-                               link = video('html5_video_source')[0].string

-                               thumb = video('thumbnail_url')[0].string

-                               length = video('length')[0].string

-                               addLink(name,link,length,thumb)

-               
addDir(__language__(30006),'http://api.viddler.com/api/v2/viddler.videos.getByUser.xml?key=tg50w8nr11q8176liowh&user=engadget&page='+str(page),2,nexticon)

+        req = urllib2.Request(url)

+        response = urllib2.urlopen(req)

+        link=response.read()

+        response.close()

+        soup = BeautifulStoneSoup(link, 
convertEntities=BeautifulStoneSoup.XML_ENTITIES)

+        videos = soup('video_list')[0]('video')

+        page = int(soup('list_result')[0]('page')[0].string)+1

+        for video in videos:

+                name = video('title')[0].string

+                link = video('html5_video_source')[0].string

+                thumb = video('thumbnail_url')[0].string

+                length = video('length')[0].string

+                addLink(name,link,length,thumb)

+        
addDir(__language__(30006),'http://api.viddler.com/api/v2/viddler.videos.getByUser.xml?key=tg50w8nr11q8176liowh&user=engadget&page='+str(page),2,nexticon)

 

 

 def getEngadgetShow(url):

-               url = 'http://www.engadget.com/engadgetshow.xml'

-               req = urllib2.Request(url)

-               req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows 
NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')

-               response = urllib2.urlopen(req)

-               link=response.read()

-               soup = BeautifulStoneSoup(link, 
convertEntities=BeautifulStoneSoup.XML_ENTITIES)

-               episodes = soup('item')

-               for episode in episodes:

-                               url = episode('enclosure')[0]['url']

-                               title = 
episode('enclosure')[0]('itunes:subtitle')[0].string

-                               thumbnail = 
'http://www.blogcdn.com/www.engadget.com/media/2009/09/show_front_sm.jpg'

-                               if videoq == '0':

-                                               
url=url.replace('900.mp4','500.mp4')

-                               elif videoq == '2':

-                                               
url=url.replace('900.mp4','2500.mp4')

-                               else:

-                                               url=url

-                               addLink(title,url,'',thumbnail)

-

-       

+        url = 'http://www.engadget.com/engadgetshow.xml'

+        req = urllib2.Request(url)

+        req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; 
en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')

+        response = urllib2.urlopen(req)

+        link=response.read()

+        soup = BeautifulStoneSoup(link, 
convertEntities=BeautifulStoneSoup.XML_ENTITIES)

+        episodes = soup('item')

+        for episode in episodes:

+                url = episode('enclosure')[0]['url']

+                title = episode('enclosure')[0]('itunes:subtitle')[0].string

+                duration = episode('enclosure')[0]('itunes:duration')[0].string

+                thumbnail = 
'http://www.blogcdn.com/www.engadget.com/media/2009/09/show_front_sm.jpg'

+                if videoq == '0':

+                        url=url.replace('900.mp4','500.mp4')

+                elif videoq == '2':

+                        url=url.replace('900.mp4','2500.mp4')

+                else:

+                        url=url

+                addLink(title,url,duration,thumbnail,True)

+

+

+class DownloadFiles:

+        def __init__(self):

+                url = sys.argv[2]

+                filename = sys.argv[3]

+                def download(url, dest):

+                        dialog = xbmcgui.DialogProgress()

+                        dialog.create(__language__(30015),__language__(30016), 
filename)

+                        urllib.urlretrieve(url, dest, lambda nb, bs, fs, url = 
url: _pbhook(nb, bs, fs, url, dialog))

+                def _pbhook(numblocks, blocksize, filesize, url = None,dialog 
= None):

+                        try:

+                                percent = min((numblocks * blocksize * 100) / 
filesize, 100)

+                                dialog.update(percent)

+                        except:

+                                percent = 100

+                                dialog.update(percent)

+                        if dialog.iscanceled():

+                                dialog.close()

+                # check for a download location, if not open settings

+                if (__settings__.getSetting('save_path') == ''):

+                        __settings__.openSettings('save_path')

+                # lets the user rename the file

+                keyboard = xbmc.Keyboard(filename,__language__(30011))

+                keyboard.doModal()

+                if (keyboard.isConfirmed() == False):

+                        return

+                filename = keyboard.getText()

+                if len(filename) == 0:

+                        return

+                filepath = 
xbmc.translatePath(os.path.join(__settings__.getSetting('save_path'),filename))

+                download(url, filepath)

+                if __settings__.getSetting('play') == "true":

+                    play=xbmc.Player().play( xbmc.translatePath( os.path.join( 
__settings__.getSetting('save_path'), filename ) ))

+                

+                

 def get_params():

-               param=[]

-               paramstring=sys.argv[2]

-               if len(paramstring)>=2:

-                               params=sys.argv[2]

-                               cleanedparams=params.replace('?','')

-                               if (params[len(params)-1]=='/'):

-                                               params=params[0:len(params)-2]

-                               pairsofparams=cleanedparams.split('&')

-                               param={}

-                               for i in range(len(pairsofparams)):

-                                               splitparams={}

-                                               
splitparams=pairsofparams[i].split('=')

-                                               if (len(splitparams))==2:

-                                                               
param[splitparams[0]]=splitparams[1]

-                                                               

-               return param

-

-

-def addLink(name,url,duration,iconimage):

-               ok=True

-               liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", 
thumbnailImage=iconimage)

-               liz.setInfo( type="Video", infoLabels={ "Title": name, 
"Duration":duration } )

-               
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)

-               return ok

+        param=[]

+        paramstring=sys.argv[2]

+        if len(paramstring)>=2:

+                params=sys.argv[2]

+                cleanedparams=params.replace('?','')

+                if (params[len(params)-1]=='/'):

+                        params=params[0:len(params)-2]

+                pairsofparams=cleanedparams.split('&')

+                param={}

+                for i in range(len(pairsofparams)):

+                        splitparams={}

+                        splitparams=pairsofparams[i].split('=')

+                        if (len(splitparams))==2:

+                                param[splitparams[0]]=splitparams[1]

+                                

+        return param

+

+

+def addLink(name,url,duration,iconimage,showcontext=True):

+        ok=True

+        liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", 
thumbnailImage=iconimage)

+        liz.setInfo( type="Video", infoLabels={ "Title": name, 
"Duration":duration } )

+        if showcontext:

+                try:

+                        filename = name.replace(':','-')+'.mp4'

+                except:

+                        pass

+                contextMenu = 
[(__language__(30004),'XBMC.RunScript('+xbmc.translatePath( os.path.join( home, 
'default.py' ) )+',download,'+url+','+filename+')')]

+                liz.addContextMenuItems(contextMenu)

+        
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)

+        return ok

 

 

 def addDir(name,url,mode,iconimage):

-               
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)

-               ok=True

-               liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", 
thumbnailImage=iconimage)

-               liz.setInfo( type="Video", infoLabels={ "Title": name } )

-               
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)

-               return ok

-               

-                       

-params=get_params()

-url=None

-name=None

-mode=None

-

-try:

-               url=urllib.unquote_plus(params["url"])

-except:

-               pass

-try:

-               name=urllib.unquote_plus(params["name"])

-except:

-               pass

-try:

-               mode=int(params["mode"])

-except:

-               pass

-

-print "Mode: "+str(mode)

-print "URL: "+str(url)

-print "Name: "+str(name)

-

-if mode==None:

-               print ""

-               Categories()

-               

-if mode==1:

-               print""

-               getEngadgetShow(url)

-               

-if mode==2:

-               print""

-               getEngadgetVideos(url)

-               

-xbmcplugin.endOfDirectory(int(sys.argv[1]))

+        
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)

+        ok=True

+        liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", 
thumbnailImage=iconimage)

+        liz.setInfo( type="Video", infoLabels={ "Title": name } )

+        
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)

+        return ok

+

+

+def startPlugin():                     

+    params=get_params()

+    url=None

+    name=None

+    mode=None

+

+    try:

+            url=urllib.unquote_plus(params["url"])

+    except:

+            pass

+    try:

+            name=urllib.unquote_plus(params["name"])

+    except:

+            pass

+    try:

+            mode=int(params["mode"])

+    except:

+            pass

+

+    print "Mode: "+str(mode)

+    print "URL: "+str(url)

+    print "Name: "+str(name)

+

+    if mode==None:

+            print ""

+            Categories()

+            

+    if mode==1:

+            print""

+            getEngadgetShow(url)

+            

+    if mode==2:

+            print""

+            getEngadgetVideos(url)

+

+    xbmcplugin.endOfDirectory(int(sys.argv[1]))

+    

+if sys.argv[1] == 'download':

+        DownloadFiles()

+        

+else:

+        startPlugin()
\ No newline at end of file
diff --git a/plugin.video.engadget/resources/language/English/strings.xml 
b/plugin.video.engadget/resources/language/English/strings.xml
index bfb700a..b3933fc 100644
--- a/plugin.video.engadget/resources/language/English/strings.xml
+++ b/plugin.video.engadget/resources/language/English/strings.xml
@@ -3,9 +3,9 @@
   <string id="30000">The Engadget Show</string>
   <string id="30001">Engadget Videos</string>
   <string id="30002"></string>
-  <string id="30003"></string>
-  <string id="30004"></string>
-  <string id="30005"></string>
+  <string id="30003">Play after downloading</string>
+  <string id="30004">Download</string>
+  <string id="30005">Select Download Location</string>
   <string id="30006">Next Page</string>
   <string id="30007">The Engadget Show - Video Quality</string>
   <string id="30008">Low</string>

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

Summary of changes:
 plugin.video.engadget/addon.xml                    |    2 +-
 plugin.video.engadget/changelog.txt                |    3 +
 plugin.video.engadget/default.py                   |  255 ++++++++++++--------
 .../resources/language/English/strings.xml         |    6 +-
 4 files changed, 159 insertions(+), 107 deletions(-)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to