The branch, eden has been updated
       via  18fd739fc1beae457b5d85dfac52ef7426b2eab9 (commit)
       via  214066f0fa185ef0726c4d176e26fdd60c38d35d (commit)
      from  588df9e1aa128182266f1dc58aed781d1b84d104 (commit)

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

commit 18fd739fc1beae457b5d85dfac52ef7426b2eab9
Author: Martijn Kaijser <[email protected]>
Date:   Tue Sep 4 13:11:16 2012 +0200

    [plugin.video.funny.or.die] -v1.0.2

diff --git a/plugin.video.funny.or.die/addon.xml 
b/plugin.video.funny.or.die/addon.xml
index ea4887d..1274753 100644
--- a/plugin.video.funny.or.die/addon.xml
+++ b/plugin.video.funny.or.die/addon.xml
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

 <addon id="plugin.video.funny.or.die"

        name="Funny or Die"

-       version="1.0.1"

+       version="1.0.2"

        provider-name="divingmule">

   <requires>

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

        <import addon="script.module.beautifulsoup" version="3.0.8"/>

+    <import addon="script.common.plugin.cache" version="1.0.0"/>

   </requires>

   <extension point="xbmc.python.pluginsource"

             library="default.py">

@@ -15,5 +16,6 @@
     <summary>funnyordie.com Videos</summary>

     <description>Funny Or Die is a comedy video website that combines 
user-generated content with original, exclusive content. The site is a place 
where celebrities, established and up-and-coming comedians and regular users 
can all put up stuff they think is funny.</description>

     <platform>all</platform>

+    <language>en</language>

   </extension>

 </addon>

diff --git a/plugin.video.funny.or.die/changelog.txt 
b/plugin.video.funny.or.die/changelog.txt
index d484775..d4e7551 100644
--- a/plugin.video.funny.or.die/changelog.txt
+++ b/plugin.video.funny.or.die/changelog.txt
@@ -1,3 +1,6 @@
+Version 1.0.2

+fix for getting video url

+

 Version 1.0.1

 fix pagenation

 added new categories

diff --git a/plugin.video.funny.or.die/default.py 
b/plugin.video.funny.or.die/default.py
index 6613a00..312f247 100644
--- a/plugin.video.funny.or.die/default.py
+++ b/plugin.video.funny.or.die/default.py
@@ -2,10 +2,12 @@ import urllib
 import urllib2

 import re

 import os

+import htmlentitydefs

 import xbmcplugin

 import xbmcgui

 import xbmcaddon

 from BeautifulSoup import BeautifulSoup

+import StorageServer

 

 __settings__ = xbmcaddon.Addon(id='plugin.video.funny.or.die')

 __language__ = __settings__.getLocalizedString

@@ -13,114 +15,111 @@ sort = __settings__.getSetting('sort_by').replace(' 
','_').lower()
 sort_time = __settings__.getSetting('sort_time').replace(' ','_').lower()

 home = __settings__.getAddonInfo('path')

 icon = xbmc.translatePath( os.path.join( home, 'icon.png' ) )

+cache = StorageServer.StorageServer("FunnyOrDie", 24)

 

 

-def categories():

-        
addDir(__language__(30000),'http://www.funnyordie.com/browse/videos/all/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30001),'http://www.funnyordie.com/browse/videos/all/exclusives/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30002),'http://www.funnyordie.com/browse/videos/all/immortal/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30003),'http://www.funnyordie.com/browse/videos/animation/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30004),'http://www.funnyordie.com/browse/videos/animals/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30005),'http://www.funnyordie.com/browse/videos/clean_comedy/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30006),'http://www.funnyordie.com/browse/videos/dumb_people/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30007),'http://www.funnyordie.com/browse/videos/fails/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30008),'http://www.funnyordie.com/browse/videos/memes/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30009),'http://www.funnyordie.com/browse/videos/kids/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30010),'http://www.funnyordie.com/browse/videos/mashups/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30011),'http://www.funnyordie.com/browse/videos/music/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30012),'http://www.funnyordie.com/browse/videos/news_fails/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30013),'http://www.funnyordie.com/browse/videos/nostalgia/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30014),'http://www.funnyordie.com/browse/videos/nsfw/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30015),'http://www.funnyordie.com/browse/videos/parody/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30016),'http://www.funnyordie.com/browse/videos/politics/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30017),'http://www.funnyordie.com/browse/videos/rants/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30018),'http://www.funnyordie.com/browse/videos/real_life/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30019),'http://www.funnyordie.com/browse/videos/recaps/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30020),'http://www.funnyordie.com/browse/videos/sketch/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30021),'http://www.funnyordie.com/browse/videos/sports/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30022),'http://www.funnyordie.com/browse/videos/stand_up/all/'+sort+'/'+sort_time,1,icon)

-        
addDir(__language__(30023),'http://www.funnyordie.com/browse/videos/web_series/all/'+sort+'/'+sort_time,1,icon)

-

-

-def getRequest(url):

-        headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; 
rv:9.0.1) Gecko/20100101 Firefox/9.0.1',

-                   'Referer' : 'http://www.funnyordie.com/browse/videos'}

-        req = urllib2.Request(url, None, headers)

-        response = urllib2.urlopen(req)

-        link = response.read()

-        response.close()

-        return link

-

-

-def index(url, play=False):

-        if play == True:

-            playlist = xbmc.PlayList(1)

-            playlist.clear()

-        link = getRequest(url)

-        link = link.replace("\\",'').replace('\n','').replace("\'",'')

-        items = re.compile('<div 
class="detailed_vp">(.+?)</a></div></div>').findall(link)

+def make_request(url, headers=None):

+        try:

+            if headers is None:

+                headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; 
rv:14.0) Gecko/20100101 Firefox/14.0.1',

+                           'Referer' : 'http://www.funnyordie.com/videos'}

+            req = urllib2.Request(url,None,headers)

+            response = urllib2.urlopen(req)

+            data = response.read()

+            response.close()

+            return data

+        except urllib2.URLError, e:

+            print 'We failed to open "%s".' % url

+            if hasattr(e, 'reason'):

+                print 'We failed to reach a server.'

+                print 'Reason: ', e.reason

+            if hasattr(e, 'code'):

+                print 'We failed with error code - %s.' % e.code

+                xbmc.executebuiltin("XBMC.Notification(FunnyOrDie,HTTP ERROR: 
"+str(e.code)+",5000,"+icon+")")

+

+

+def cache_categories():

+        soup = 
BeautifulSoup(make_request('http://www.funnyordie.com/browse/videos/all/all/most_buzz'))

+        items = soup('div', attrs={'class' : 'dropdown'})[0]('a')

+        cat_list = []

+        for i in items:

+            cat_list.append((i.string, i['href']))

+        return cat_list

+

+

+def get_categories():

+        for i in cache.cacheFunction(cache_categories):

+            url = 'http://www.funnyordie.com/'

+            url += '%s/%s/%s' %(i[1].rsplit('/', 1)[0], sort, sort_time)

+            addDir(i[0],url,1,icon)

+

+

+## Thanks to Fredrik Lundh for this function - 
http://effbot.org/zone/re-sub.htm#unescape-html

+def unescape(text):

+        def fixup(m):

+            text = m.group(0)

+            if text[:2] == "&#":

+                # character reference

+                try:

+                    if text[:3] == "&#x":

+                        return unichr(int(text[3:-1], 16))

+                    else:

+                        return unichr(int(text[2:-1]))

+                except ValueError:

+                    pass

+            else:

+                # named entity

+                try:

+                    text = unichr(htmlentitydefs.name2codepoint[text[1:-1]])

+                except KeyError:

+                    pass

+            return text # leave as is

+        return re.sub("&#?\w+;", fixup, text)

+

+

+def index(url):

+        data = 
make_request(url).replace("\\",'').replace('\n','').replace("\'",'')

+        items = re.compile('<div 
class="detailed_vp">(.+?)</a>n</div></div>').findall(data)

         if len(items) < 1:

-            items = re.compile('<div 
class="detailed_vp">(.+?)</a>n</div></div>').findall(link)

+            items = re.compile('<div 
class="detailed_vp">(.+?)</a></div></div>').findall(data)

         for i in items:

-            name = 
re.compile('title="(.+?)"').findall(i)[0].replace('&amp;','&').replace('&quot;','"').replace('&apos;',"'")

             try:

-                thumb = re.compile('class="thumbnail" height="90" 
src="(.+?)"').findall(i)[0].replace('medium','fullsize')

+                desc = unescape(re.findall('class="title" title="(.+?)"', 
i)[0])

             except:

-                try:

-                    thumb = re.compile('class="thumbnail" 
src="(.+?)"').findall(i)[0]

-                except:

-                    thumb = ''

-            vid_id = re.compile('data-viewkey="(.+?)"').findall(i)[0][1:]

+                print '--desc exception--'

+            name = desc.split(' from')[0]

+            vid_id = re.findall('data-viewkey="(.+?)"', i)[0][1:]

             try:

-                duration = re.compile('<span 
class="duration">(.+?)</span>').findall(i)[0]

+                thumb = re.findall('class="thumbnail" src="(.+?)"', i)[0]

+            except:

+                thumb = ''

+            try:

+                duration = re.findall('<span class="duration">(.+?)</span>', 
i)[0]

             except:

                 duration = ''

-            if not play == True:

-                addLink(name, vid_id, duration, 2, thumb)

-            else:

-                url = get_smil(vid_id)

-                info = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", 
thumbnailImage=thumb)

-                playlist.add(url, info)

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

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

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

+            liz.setProperty('IsPlayable', 'true')

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

+

         try:

-            page_num = re.compile('next_page = (.+?);').findall(link)[0]

+            page_num = re.findall('next_page = (.+?);', data)[0]

             page = '?page='+page_num

             if not 'more' in url:

                 url = url.replace('videos','more/videos')

             url = url.split('?page')[0]+page

-            addDir(__language__(30031), url, 1, xbmc.translatePath( 
os.path.join( home, 'resources', 'next.png' ) ))

-        except: pass

-        if play == True:

-            xbmc.executebuiltin('playlist.playoffset(video,0)')

+            addDir(__language__(30031), url, 1, 
xbmc.translatePath(os.path.join(home, 'resources', 'next.png')))

+        except:

+            print '--- nextpage exception ---'

 

 

 def playVid(url):

-        url = get_smil(url)

+        url = 'http://vo.fod4.com/v/%s/v600.mp4' %url

         item = xbmcgui.ListItem(path=url)

         xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)

 

 

-def addToPlayList(name, url, iconimage):

-        url = get_smil(url)

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

-        playlist = xbmc.PlayList(1)

-        playlist.add(url, info)

-

-

-def get_smil(id):

-        link = getRequest("http://www.funnyordie.com/player/"+id+"?v=3";)

-        soup = BeautifulSoup(link)

-        title = soup.find('title').string

-        stream_list = soup.findAll('stream')

-        if len(stream_list) < 1:

-            stream = soup.find('location').contents[0]

-            return stream

-        else:

-            if __settings__.getSetting('video_quality') == '0':

-                return stream_list[0].file.contents[0]

-            if __settings__.getSetting('video_quality') == '1':

-                return stream_list[1].file.contents[0]

-

-

 def get_params():

         param=[]

         paramstring=sys.argv[2]

@@ -140,27 +139,11 @@ def get_params():
         return param

 

 

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

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

-        ok=True

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

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

-        liz.setProperty('IsPlayable', 'true')

-        if showcontext:

-            contextMenu = 
[(__language__(30033),'XBMC.Container.Update(%s?url=%s&mode=3&name=%s&iconimage=%s)'
 %(sys.argv[0], urllib.quote_plus(url), urllib.quote_plus(name), 
urllib.quote_plus(iconimage)))]

-            liz.addContextMenuItems(contextMenu)

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

-        return ok

-

-

-def addDir(name,url,mode,iconimage,showcontext=True):

+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 } )

-        if showcontext:

-            contextMenu = 
[(__language__(30032),'XBMC.Container.Update(%s?url=%s&mode=4)' %(sys.argv[0], 
urllib.quote_plus(url)))]

-            liz.addContextMenuItems(contextMenu)

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

         return ok

 

@@ -191,9 +174,9 @@ print "Mode: "+str(mode)
 print "URL: "+str(url)

 print "Name: "+str(name)

 

-if mode==None or url==None or len(url)<1:

+if mode==None:

     print ""

-    categories()

+    get_categories()

 

 elif mode==1:

     print ""+url

@@ -203,12 +186,4 @@ elif mode==2:
     print ""

     playVid(url)

 

-elif mode==3:

-    print ""

-    addToPlayList(name, url, iconimage)

-

-elif mode==4:

-    print ""

-    index(url, True)

-

 xbmcplugin.endOfDirectory(handle=int(sys.argv[1]))
\ No newline at end of file
diff --git a/plugin.video.funny.or.die/resources/settings.xml 
b/plugin.video.funny.or.die/resources/settings.xml
index 72f65d1..5ae67b6 100644
--- a/plugin.video.funny.or.die/resources/settings.xml
+++ b/plugin.video.funny.or.die/resources/settings.xml
@@ -1,5 +1,4 @@
 <settings>

    <setting id="sort_by" type="select" lvalues="30025|30026|30027|30028|30029" 
label="30030" default="highest_rated"/>

    <setting id="sort_time" type="select" lvalues="30038|30039|30040" 
label="30037" default="all_time"/>

-   <setting id="video_quality" type="enum" lvalues="30034|30035" label="30036" 
default="0"/>

 </settings>
\ No newline at end of file

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=214066f0fa185ef0726c4d176e26fdd60c38d35d


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

Summary of changes:
 plugin.video.funny.or.die/addon.xml                |    4 +-
 plugin.video.funny.or.die/changelog.txt            |    3 +
 plugin.video.funny.or.die/default.py               |  203 ++++++-------
 plugin.video.funny.or.die/resources/settings.xml   |    1 -
 .../LICENSE.txt                                    |    0
 plugin.video.hollywoodreporter/addon.py            |  312 ++++++++++++++++++++
 plugin.video.hollywoodreporter/addon.xml           |   19 ++
 plugin.video.hollywoodreporter/changelog.txt       |    9 +
 plugin.video.hollywoodreporter/icon.png            |  Bin 0 -> 11092 bytes
 .../resources/language/English/strings.xml         |    6 +
 .../resources/language/German/strings.xml          |    6 +
 11 files changed, 447 insertions(+), 116 deletions(-)
 copy {plugin.audio.einslive_de => plugin.video.hollywoodreporter}/LICENSE.txt 
(100%)
 create mode 100644 plugin.video.hollywoodreporter/addon.py
 create mode 100644 plugin.video.hollywoodreporter/addon.xml
 create mode 100644 plugin.video.hollywoodreporter/changelog.txt
 create mode 100644 plugin.video.hollywoodreporter/icon.png
 create mode 100644 
plugin.video.hollywoodreporter/resources/language/English/strings.xml
 create mode 100644 
plugin.video.hollywoodreporter/resources/language/German/strings.xml


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to