The branch, dharma has been updated
via 54e46b80578c50c70d988393504b38a9c7233852 (commit)
from b564b32407449b3dde727c72a59db33425afcf35 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=54e46b80578c50c70d988393504b38a9c7233852
commit 54e46b80578c50c70d988393504b38a9c7233852
Author: spiff <[email protected]>
Date: Thu Mar 31 16:34:29 2011 +0200
[plugin.video.funny.or.die] updated to version 0.0.5
diff --git a/plugin.video.funny.or.die/addon.xml
b/plugin.video.funny.or.die/addon.xml
index 40ee627..90ee631 100644
--- a/plugin.video.funny.or.die/addon.xml
+++ b/plugin.video.funny.or.die/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.funny.or.die"
name="Funny or Die"
- version="0.0.4"
+ version="0.0.5"
provider-name="divingmule">
<requires>
<import addon="xbmc.python" version="1.0"/>
diff --git a/plugin.video.funny.or.die/changelog.txt
b/plugin.video.funny.or.die/changelog.txt
index 998efda..401aeff 100644
--- a/plugin.video.funny.or.die/changelog.txt
+++ b/plugin.video.funny.or.die/changelog.txt
@@ -1,13 +1,17 @@
-Version 0.0.1
-initial release
+Version 0.0.5
+added the ability to queue videos
+added "Play All" to the context menu for directories
-Version 0.0.2
-added the ability to sort videos via settings - most favorited, most recent...
ect.
-new icon. thanks freezy!
+Version 0.0.4
+added proper language strings to settings
Version 0.0.3
-now plays the hd version if avaliable. thanks to maruchan!
+now plays the hd version if available. thanks to maruchan!
changed code to get better thumbnails
-Version 0.0.4
-added proper language strings to settings
\ No newline at end of file
+Version 0.0.2
+added the ability to sort videos via settings - most favorited, most recent...
ect.
+new icon. thanks freezy!
+
+Version 0.0.1
+initial release
\ No newline at end of file
diff --git a/plugin.video.funny.or.die/default.py
b/plugin.video.funny.or.die/default.py
index caea074..7478471 100644
--- a/plugin.video.funny.or.die/default.py
+++ b/plugin.video.funny.or.die/default.py
@@ -1,67 +1,107 @@
-import urllib,urllib2,re,xbmcplugin,xbmcgui,xbmcaddon
+import urllib,urllib2,re,os
+import xbmcplugin,xbmcgui,xbmcaddon
from BeautifulSoup import BeautifulSoup
__settings__ = xbmcaddon.Addon(id='plugin.video.funny.or.die')
__language__ = __settings__.getLocalizedString
sort = __settings__.getSetting('sort_by')
+home = __settings__.getAddonInfo('path')
+icon = xbmc.translatePath( os.path.join( home, 'icon.png' ) )
+
-
def CATEGORIES():
- if sort==__language__(30015):
- u = ''
- elif sort==__language__(30016):
- u = 'most_recent'
- elif sort==__language__(30017):
- u = 'most_viewed'
- elif sort==__language__(30018):
- u = 'most_favorited'
- elif sort==__language__(30019):
- u = 'highest_rated'
- else:
- u = ''
-
addDir(__language__(30000),'http://www.funnyordie.com/browse/videos/all/exclusives/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30001),'http://www.funnyordie.com/browse/videos/all/immortal/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30002),'http://www.funnyordie.com/browse/videos/stand_up/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30003),'http://www.funnyordie.com/browse/videos/animation/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30004),'http://www.funnyordie.com/browse/videos/web_series/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30005),'http://www.funnyordie.com/browse/videos/nsfw/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30006),'http://www.funnyordie.com/browse/videos/sketch/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30007),'http://www.funnyordie.com/browse/videos/sports/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30008),'http://www.funnyordie.com/browse/videos/clean_comedy/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30009),'http://www.funnyordie.com/browse/videos/politics/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30010),'http://www.funnyordie.com/browse/videos/music/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30011),'http://www.funnyordie.com/browse/videos/parody/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30012),'http://www.funnyordie.com/browse/videos/real_life/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
addDir(__language__(30013),'http://www.funnyordie.com/browse/videos/all/all/'+u,1,'special://home/addons/plugin.video.funny.or.die/icon.png')
-
-
+ if sort==__language__(30015):
+ u = ''
+ elif sort==__language__(30016):
+ u = 'most_recent'
+ elif sort==__language__(30017):
+ u = 'most_viewed'
+ elif sort==__language__(30018):
+ u = 'most_favorited'
+ elif sort==__language__(30019):
+ u = 'highest_rated'
+ else:
+ u = ''
+
addDir(__language__(30000),'http://www.funnyordie.com/browse/videos/all/exclusives/'+u,1,icon)
+
addDir(__language__(30001),'http://www.funnyordie.com/browse/videos/all/immortal/'+u,1,icon)
+
addDir(__language__(30002),'http://www.funnyordie.com/browse/videos/stand_up/all/'+u,1,icon)
+
addDir(__language__(30003),'http://www.funnyordie.com/browse/videos/animation/all/'+u,1,icon)
+
addDir(__language__(30004),'http://www.funnyordie.com/browse/videos/web_series/all/'+u,1,icon)
+
addDir(__language__(30005),'http://www.funnyordie.com/browse/videos/nsfw/all/'+u,1,icon)
+
addDir(__language__(30006),'http://www.funnyordie.com/browse/videos/sketch/all/'+u,1,icon)
+
addDir(__language__(30007),'http://www.funnyordie.com/browse/videos/sports/all/'+u,1,icon)
+
addDir(__language__(30008),'http://www.funnyordie.com/browse/videos/clean_comedy/all/'+u,1,icon)
+
addDir(__language__(30009),'http://www.funnyordie.com/browse/videos/politics/all/'+u,1,icon)
+
addDir(__language__(30010),'http://www.funnyordie.com/browse/videos/music/all/'+u,1,icon)
+
addDir(__language__(30011),'http://www.funnyordie.com/browse/videos/parody/all/'+u,1,icon)
+
addDir(__language__(30012),'http://www.funnyordie.com/browse/videos/real_life/all/'+u,1,icon)
+
addDir(__language__(30013),'http://www.funnyordie.com/browse/videos/all/all/'+u,1,icon)
+
+
def INDEX(url):
- req = urllib2.Request(url)
- req.addheaders = [('Referer', 'http://www.funnyordie.com/videos'),
- ('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;
rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]
- response = urllib2.urlopen(req)
- link=response.read()
- response.close()
-
link=link.replace('"','"').replace('&','&').replace('medium_','fullsize_')
- match=re.compile('<a href="/videos/(.+?)/.+?" class=".+?"
title=".+?"><img alt=".+?" class=".+?" height="90" src="(.+?)" title="(.+?)"
width="124" />').findall(link)
- for url,thumbnail,name in match:
- addDir(name, str(url), 2, thumbnail, False)
- page=re.compile('Previous</span>.+?<span class="current">.+?</span> <a
href="(.+?)" rel="next">.+?</a>').findall(link)
- if len(page)<1:
- page=re.compile('Previous</a> <a href=".+?" rel="prev
start">.+?</a> <span class="current">.+?</span> <a href="(.+?)"
rel="next">.+?</a>').findall(link)
- if len(page)<1:
- page=re.compile('Previous</a>.+?<a href=".+?"
rel="start">.+?</a> <a href=".+?" rel="prev">.+?</a> <span
class="current">.+?</span> <a href="(.+?)"').findall(link)
- for url in page:
- addDir('Next Page','http://www.funnyordie.com'+url,1,'')
+ req = urllib2.Request(url)
+ req.addheaders = [('Referer', 'http://www.funnyordie.com/videos'),
+ ('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;
rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]
+ response = urllib2.urlopen(req)
+ link=response.read()
+ response.close()
+ soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
+ videos = soup.findAll('div', attrs={'class' : "detailed_vp"})
+ for video in videos:
+ try:
+ link = video('a')[0]['href'].split('/')[2]
+ name = video('a')[0]['title']
+ thumbnail =
video('img')[0]['src'].replace('medium','fullsize')
+ addLink(name,link,2,thumbnail)
+ except:
+ pass
+ try:
+ page = soup.find('a', attrs={'class' : "next_page"})['href']
+
addDir(__language__(30021),'http://www.funnyordie.com'+page,1,'')
+ except:
+ pass
-def playVid(url):
- name, url = get_smil(url)
- info = xbmcgui.ListItem(name)
+def getPlayList():
+ url = sys.argv[2]
+ req = urllib2.Request(url)
+ req.addheaders = [('Referer', 'http://www.funnyordie.com/videos'),
+ ('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;
rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]
+ response = urllib2.urlopen(req)
+ link=response.read()
+ response.close()
+ soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
+ videos = soup.findAll('div', attrs={'class' : "detailed_vp"})
playlist = xbmc.PlayList(1)
playlist.clear()
+ for video in videos:
+ try:
+ link = video('a')[0]['href'].split('/')[2]
+ name = video('a')[0]['title']
+ thumbnail =
video('img')[0]['src'].replace('medium','fullsize')
+ url = get_smil(link)
+ info = xbmcgui.ListItem(name,
iconImage="DefaultVideo.png", thumbnailImage=thumbnail)
+ playlist.add(url, info)
+ except:
+ pass
+ play=xbmc.Player( xbmc.PLAYER_CORE_DVDPLAYER ).play(playlist)
+
+
+def playVid(url):
+ url = get_smil(url)
+ item = xbmcgui.ListItem(path=url)
+ xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
+
+
+def addToPlayList():
+ url = sys.argv[2]
+ name = sys.argv[3]
+ iconimage = sys.argv[4]
+ url = get_smil(url)
+ info = xbmcgui.ListItem(name, iconImage="DefaultVideo.png",
thumbnailImage=iconimage)
+ playlist = xbmc.PlayList(1)
playlist.add(url, info)
- play=xbmc.Player().play(playlist)
+
def get_smil(id):
req = urllib2.Request("http://www.funnyordie.com/player/"+id+"?v=3")
@@ -73,72 +113,98 @@ def get_smil(id):
stream_list = soup.findAll('stream')
if len(stream_list) < 1:
stream = soup.find('location').contents[0]
- return title, stream
+ return stream
streams = []
for stream in stream_list:
streams.append(stream.file.contents[0])
- #if xbmcplugin.getSetting("hi-def") == "true":
- return title, streams[0]
-
+ return streams[0]
+
+
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 addDir(name,url,mode,iconimage,isfolder=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="DefaultFolder.png",
thumbnailImage=iconimage)
- liz.setInfo( type="Video", infoLabels={ "Title": name } )
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=isfolder)
- 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 or url==None or len(url)<1:
- print ""
- CATEGORIES()
-
-elif mode==1:
- print ""+url
- INDEX(url)
-
-elif mode==2:
- print "NEW LINK: "+url
- playVid(url)
-
-xbmcplugin.endOfDirectory(int(sys.argv[1]))
+ 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,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 } )
+ liz.setProperty('IsPlayable', 'true')
+ if showcontext:
+ contextMenu =
[(__language__(30022),'XBMC.RunScript(special://home/addons/plugin.video.funny.or.die/default.py,addToPlayList,'+url+','+name+','+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):
+
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__(30023),'XBMC.RunScript(special://home/addons/plugin.video.funny.or.die/default.py,autoPlay,'+url+')')]
+ liz.addContextMenuItems(contextMenu)
+
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 or url==None or len(url)<1:
+ print ""
+ CATEGORIES()
+
+ elif mode==1:
+ print ""+url
+ INDEX(url)
+
+ elif mode==2:
+ print "NEW LINK: "+url
+ playVid(url)
+
+ xbmcplugin.endOfDirectory(handle=int(sys.argv[1]))
+
+if sys.argv[1] == 'addToPlayList':
+ addToPlayList()
+
+elif sys.argv[1] == 'autoPlay':
+ getPlayList()
+
+else:
+ startPlugin()
diff --git a/plugin.video.funny.or.die/resources/language/English/strings.xml
b/plugin.video.funny.or.die/resources/language/English/strings.xml
index fdd174b..95753d0 100644
--- a/plugin.video.funny.or.die/resources/language/English/strings.xml
+++ b/plugin.video.funny.or.die/resources/language/English/strings.xml
@@ -19,5 +19,8 @@
<string id="30016">Most Recent</string>
<string id="30017">Most Viewed</string>
<string id="30018">Most Favorited</string>
- <string id="30019">Highest Rated</string>
+ <string id="30020">Highest Rated</string>
+ <string id="30021">Next Page</string>
+ <string id="30022">Add To Now Playing</string>
+ <string id="30023">Play All</string>
</strings>
\ No newline at end of file
-----------------------------------------------------------------------
Summary of changes:
plugin.video.funny.or.die/addon.xml | 2 +-
plugin.video.funny.or.die/changelog.txt | 20 +-
plugin.video.funny.or.die/default.py | 298 ++++++++++++--------
.../resources/language/English/strings.xml | 5 +-
4 files changed, 199 insertions(+), 126 deletions(-)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself;
WebMatrix provides all the features you need to develop and
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons