The branch, eden has been updated
       via  b4ac5fcfc0464350f3d6d4de4c39952b19749387 (commit)
       via  506be1627adaa329a2295d135217a5388ae50d7f (commit)
      from  1fd0362fc892ee7f1fce68096e57ccd16ee257a4 (commit)

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

commit b4ac5fcfc0464350f3d6d4de4c39952b19749387
Author: beenje <[email protected]>
Date:   Sat Mar 2 22:00:14 2013 +0100

    [plugin.video.dailymotion_com] updated to version 1.0.6

diff --git a/plugin.video.dailymotion_com/addon.xml 
b/plugin.video.dailymotion_com/addon.xml
index f61055b..59502f2 100644
--- a/plugin.video.dailymotion_com/addon.xml
+++ b/plugin.video.dailymotion_com/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.dailymotion_com" name="DailyMotion.com" 
version="1.0.5" provider-name="AddonScriptorDE">
+<addon id="plugin.video.dailymotion_com" name="DailyMotion.com" 
version="1.0.6" provider-name="AddonScriptorDE">
     <requires>
         <import addon="xbmc.python" version="2.0"/>
     </requires>
diff --git a/plugin.video.dailymotion_com/changelog.txt 
b/plugin.video.dailymotion_com/changelog.txt
index 5320ba7..63ddaeb 100644
--- a/plugin.video.dailymotion_com/changelog.txt
+++ b/plugin.video.dailymotion_com/changelog.txt
@@ -15,3 +15,6 @@
 - Added message for toggling the family filter
 1.0.5 / 2.0.5
 - Removed family filter setting
+1.0.6 / 2.0.6
+- Now using the Dailymotion API
+- Added personal stuff
diff --git a/plugin.video.dailymotion_com/default.py 
b/plugin.video.dailymotion_com/default.py
index 47efbd6..9981fa8 100644
--- a/plugin.video.dailymotion_com/default.py
+++ b/plugin.video.dailymotion_com/default.py
@@ -1,14 +1,11 @@
 #!/usr/bin/python
 # -*- coding: utf-8 -*-
-import urllib,urllib2,re,xbmcplugin,xbmcgui,sys,xbmcaddon,base64,socket,os
-from datetime import datetime
-from datetime import timedelta
+import 
urllib,urllib2,re,xbmcplugin,xbmcgui,sys,xbmcaddon,base64,socket,os,datetime
 
-familyFilter="on"
+familyFilter="1"
 
 socket.setdefaulttimeout(30)
 pluginhandle = int(sys.argv[1])
-xbox = xbmc.getCondVisibility("System.Platform.xbox")
 addonID = 'plugin.video.dailymotion_com'
 addon = xbmcaddon.Addon(addonID)
 translation = addon.getLocalizedString
@@ -16,7 +13,7 @@ 
channelFavsFile=xbmc.translatePath("special://profile/addon_data/"+addonID+"/"+a
 
familyFilterFile=xbmc.translatePath("special://profile/addon_data/"+addonID+"/family_filter_off")
 
 if os.path.exists(familyFilterFile):
-  familyFilter="off"
+  familyFilter="0"
 
 while (not 
os.path.exists(xbmc.translatePath("special://profile/addon_data/"+addonID+"/settings.xml"))):
   addon.openSettings()
@@ -29,178 +26,147 @@ maxVideoQuality=qual[int(maxVideoQuality)]
 language=addon.getSetting("language")
 
languages=["en_EN","ar_ES","au_EN","be_FR","be_NL","br_PT","ca_EN","ca_FR","de_DE","es_ES","es_CA","gr_EL","fr_FR","in_EN","ie_EN","it_IT","mx_ES","ma_FR","nl_NL","at_DE","pl_PL","pt_PT","ru_RU","ro_RO","ch_FR","ch_DE","ch_IT","tn_FR","tr_TR","en_GB","en_US","vn_VI","jp_JP","cn_ZH"]
 language=languages[int(language)]
-lang=language[language.find("_")+1:].lower()
-if language=="en_EN": lang=""
+dmUser=addon.getSetting("dmUser")
+itemsPerPage=addon.getSetting("itemsPerPage")
+itemsPage=["25","50","75","100"]
+itemsPerPage=itemsPage[int(itemsPerPage)]
 
 def index():
-        addFavDir(translation(30024),"","favouriteUsers","")
-        if lang!="":
-          
addDir(translation(30005),"http://www.dailymotion.com/"+lang+"/visited-today/creative-official+internal/created-after/"+str((datetime.today()-timedelta(weeks=1)).strftime("%Y-%m-%d"))+"_00:00:00/1",'listVideos',"")
+        if dmUser=="":
+          addFavDir(translation(30024),"","favouriteUsers","")
+        else:
+          addDir(translation(30034),"","personalMain","")
         addDir(translation(30006),"",'listChannels',"")
-        
addDir(translation(30007),"http://www.dailymotion.com/users/1";,'sortUsers1',"")
-        addDir(translation(30004),"",'listMovieCats',"")
+        addDir(translation(30007),"",'sortUsers1',"")
         addDir(translation(30002),"",'search',"")
-        
addDir(translation(30003),"http://www.dailymotion.com/visited-hour/live/1";,'listVideos',"")
-        addDir("3D","http://www.dailymotion.com/3d/1";,'sortChannels1',"")
+        addDir(translation(30003),"",'listLive',"")
+        addDir(translation(30039), '3D:ALL','sortVideos1','','')
+        xbmcplugin.endOfDirectory(pluginhandle)
+        if forceViewMode=="true":
+          xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
+
+def personalMain():
+        
addDir(translation(30035),"https://api.dailymotion.com/user/"+dmUser+"/following?fields=username,avatar_large_url,videos_total,views_total&sort=popular&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";,'listUsers',"")
+        
addDir(translation(30036),"https://api.dailymotion.com/user/"+dmUser+"/subscriptions?fields=description,duration,id,owner.username,taken_time,thumbnail_large_url,title,views_total&sort=recent&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";,'listVideos',"")
+        
addDir(translation(30037),"https://api.dailymotion.com/user/"+dmUser+"/favorites?fields=description,duration,id,owner.username,taken_time,thumbnail_large_url,title,views_total&sort=recent&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";,'listVideos',"")
+        addDir(translation(30038),"",'listUserPlaylists',"")
+        xbmcplugin.endOfDirectory(pluginhandle)
+        if forceViewMode=="true":
+          xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
+
+def listUserPlaylists():
+        
url="https://api.dailymotion.com/user/"+dmUser+"/playlists?fields=id,name,videos_total&sort=recent&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";
+        content = getUrl(url)
+        match=re.compile('{"id":"(.+?)","name":"(.+?)","videos_total":(.+?)}', 
re.DOTALL).findall(content)
+        for id, title, vids in match:
+          addDir(title+" ("+vids+")", 
id+"_"+dmUser+"_"+title,'showPlaylist','')
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
+def showPlaylist(id):
+        
url="https://api.dailymotion.com/playlist/"+id+"/videos?fields=description,duration,id,owner.username,taken_time,thumbnail_large_url,title,views_total&sort=recent&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";
+        listVideos(url)
+
 def favouriteUsers():
         xbmcplugin.addSortMethod(pluginhandle, xbmcplugin.SORT_METHOD_LABEL)
         if os.path.exists(channelFavsFile):
           fh = open(channelFavsFile, 'r')
-          all_lines = fh.readlines()
-          for line in all_lines:
-            user=line[line.find("###USER###=")+11:]
-            user=user[:user.find("#")]
-            thumb=line[line.find("###THUMB###=")+12:]
-            thumb=thumb[:thumb.find("#")]
-            
addUserFavDir(user,"http://www.dailymotion.com/user/"+user+"/1";,'sortChannels1',thumb,user)
+          content = fh.read()
+          match=re.compile('###USER###=(.+?)###THUMB###=(.*?)###END###', 
re.DOTALL).findall(content)
+          for user, thumb in match:
+            addUserFavDir(user, 'owner:'+user,'sortVideos1',thumb)
           fh.close()
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
 def listChannels():
-        content = getUrl("http://www.dailymotion.com/channels/1";)
-        content = content[content.find('<div class="dmco_box channels_menu 
column span-12 last">'):]
-        content = content[:content.find('<div class="dmco_clear">')]
-        match=re.compile('<a class="foreground" href="(.+?)">(.+?)</a>', 
re.DOTALL).findall(content)
-        for url, title in match:
-          if url.find("/channel/")>=0:
-            id = url[url.find("/channel/")+9:]
-            if id.find("/")>0:
-              id=id[:id.find("/")]
-            
addDir(title,"http://www.dailymotion.com/"+lang+"/channel/"+id+"/1";,'sortChannels1',"")
-        xbmcplugin.endOfDirectory(pluginhandle)
-        if forceViewMode=="true":
-          xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
-
-def listMovieCats():
-        
addDir("crazedigitalmovies","http://www.dailymotion.com/user/crazedigitalmovies/1";,'listVideos',"")
-        
addDir("BFIfilms","http://www.dailymotion.com/user/BFIfilms/1";,'listVideos',"")
-        
addDir("Documentaries","http://www.dailymotion.com/visited/group/DM_Documentaries/1";,'listVideos',"")
-        
addDir("Independent","http://www.dailymotion.com/visited/group/DM_Independent_film/1";,'listVideos',"")
-        
addDir("Vintage","http://www.dailymotion.com/visited/group/DM_Vintage/1";,'listVideos',"")
+        content = 
getUrl("https://api.dailymotion.com/channels?family_filter="+familyFilter+"&localization="+language)
+        
match=re.compile('{"id":"(.+?)","name":"(.+?)","description":"(.+?)"}', 
re.DOTALL).findall(content)
+        for id, title, desc in match:
+          addDir(title, 'channel:'+id,'sortVideos1','',desc)
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
-def sortChannels1(url):
+def sortVideos1(url):
+        type=url[:url.find(":")]
+        id=url[url.find(":")+1:]
+        if type=="3D": 
url="https://api.dailymotion.com/videos?fields=description,duration,id,owner.username,taken_time,thumbnail_large_url,title,views_total&filters=3d&sort=recent&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";
+        else: 
url="https://api.dailymotion.com/videos?fields=description,duration,id,owner.username,taken_time,thumbnail_large_url,title,views_total&"+type+"="+id+"&sort=recent&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";
         addDir(translation(30008),url,'listVideos',"")
-        if url.find("/channel/")>0:
-          
addDir(translation(30009),url.replace("/channel/","/visited/channel/"),'sortChannels2',"")
-          
addDir(translation(30010),url.replace("/channel/","/rated/channel/"),'sortChannels2',"")
-        elif url.find("/user/")>0:
-          
addDir(translation(30009),url.replace("/user/","/visited/user/"),'sortChannels2',"")
-          
addDir(translation(30010),url.replace("/user/","/rated/user/"),'sortChannels2',"")
-        else:
-          
addDir(translation(30009),url.replace("/1","/visited/1"),'sortChannels2',"")
-          
addDir(translation(30010),url.replace("/1","/rated/1"),'sortChannels2',"")
+        
addDir(translation(30009),url.replace("sort=recent","sort=visited"),'sortVideos2',"")
+        
addDir(translation(30020),url.replace("sort=recent","sort=commented"),'sortVideos2',"")
+        
addDir(translation(30010),url.replace("sort=recent","sort=rated"),'sortVideos2',"")
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
-def sortChannels2(url):
-        
addDir(translation(30011),url.replace("/visited/","/visited-today/created-after/"+str((datetime.today()-timedelta(weeks=1)).strftime("%Y-%m-%d"))+"_00:00:00/").replace("/rated/","/rated-today/created-after/"+str((datetime.today()-timedelta(weeks=1)).strftime("%Y-%m-%d"))+"_00:00:00/"),'listVideos',"")
-        
addDir(translation(30012),url.replace("/visited/","/visited-week/created-after/"+str((datetime.today()-timedelta(weeks=2)).strftime("%Y-%m-%d"))+"_00:00:00/").replace("/rated/","/rated-week/created-after/"+str((datetime.today()-timedelta(weeks=2)).strftime("%Y-%m-%d"))+"_00:00:00/"),'listVideos',"")
-        
addDir(translation(30013),url.replace("/visited/","/visited-month/created-after/"+str((datetime.today()-timedelta(weeks=8)).strftime("%Y-%m-%d"))+"_00:00:00/").replace("/rated/","/rated-month/created-after/"+str((datetime.today()-timedelta(weeks=8)).strftime("%Y-%m-%d"))+"_00:00:00/"),'listVideos',"")
+def sortVideos2(url):
+        
addDir(translation(30011),url.replace("sort=visited","sort=visited-today").replace("sort=commented","sort=commented-today").replace("sort=rated","sort=rated-today"),"listVideos","")
+        
addDir(translation(30012),url.replace("sort=visited","sort=visited-week").replace("sort=commented","sort=commented-week").replace("sort=rated","sort=rated-week"),"listVideos","")
+        
addDir(translation(30013),url.replace("sort=visited","sort=visited-month").replace("sort=commented","sort=commented-month").replace("sort=rated","sort=rated-month"),"listVideos","")
         addDir(translation(30014),url,'listVideos',"")
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
-def sortUsers1(url):
-        addDir(translation(30015),url,'sortUsers2',"")
-        
addDir(translation(30016),url.replace("/users/","/users/featured/"),'sortUsers2',"")
-        
addDir(translation(30017),url.replace("/users/","/users/official/"),'sortUsers2',"")
-        
addDir(translation(30018),url.replace("/users/","/users/creative/"),'sortUsers2',"")
+def sortUsers1():
+        
url="https://api.dailymotion.com/users?fields=username,avatar_large_url,videos_total,views_total&sort=popular&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";
+        addDir(translation(30040),url,'sortUsers2',"")
+        addDir(translation(30016),url+"&filters=featured",'sortUsers2',"")
+        addDir(translation(30017),url+"&filters=official",'sortUsers2',"")
+        addDir(translation(30018),url+"&filters=creative",'sortUsers2',"")
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
 def sortUsers2(url):
-        addDir(translation(30008),url,'listUsers',"")
-        
addDir(translation(30019),url.replace("/users/","/users/popular/"),'listUsers',"")
-        
addDir(translation(30020),url.replace("/users/","/users/commented/"),'listUsers',"")
-        
addDir(translation(30021),url.replace("/users/","/users/rated/"),'listUsers',"")
+        addDir(translation(30019),url,'listUsers',"")
+        
addDir(translation(30020),url.replace("sort=popular","sort=commented"),'listUsers',"")
+        
addDir(translation(30021),url.replace("sort=popular","sort=rated"),'listUsers',"")
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
 def listVideos(url):
-        content = getUrl(url)
-        spl=content.split('<div class="sd_video_wv3item')
-        for i in range(1,len(spl),1):
-            entry=spl[i]
-            match=re.compile('title="(.+?)"', re.DOTALL).findall(entry)
-            title=match[0]
-            title=cleanTitle(title)
-            match=re.compile('data-id="(.+?)"', re.DOTALL).findall(entry)
-            id=match[0]
-            match=re.compile('<a class="foreground2" href="/(.+?)"', 
re.DOTALL).findall(entry)
-            user=match[0]
-            match=re.compile('<div class="dmco_date">(.+?)</div>', 
re.DOTALL).findall(entry)
-            date=""
-            if len(match)>0:
-              date=match[0]
-            match=re.compile('<div class="duration">(.+?) </div>', 
re.DOTALL).findall(entry)
-            duration=""
-            if len(match)>0:
-              duration=match[0]
-              if len(duration)==5:
-                if "00:" in duration:
-                  duration="1"
-              elif len(duration)==8:
-                hours=duration[:duration.find(":")]
-                mins=duration[duration.find(":")+1:]
-                mins=mins[:mins.find(":")]
-                duration=str(int(hours)*60+int(mins))
-            match=re.compile('<div class="dmpi_video_description 
foreground">(.+?)</div>', re.DOTALL).findall(entry)
-            desc=""
-            if entry.find('<div class="dmpi_video_description 
foreground"></div>')==-1:
-              desc=match[0]
-            match=re.compile('data-src="(.+?)"', re.DOTALL).findall(entry)
-            thumb=match[0]
-            desc=str(translation(30023))+": "+date+"\nUser: "+user+"\n"+desc
-            if user=="hulu":
-              pass
-            elif user=="ARTEplus7":
-              addLink(title,id,'playArte',thumb,user,desc,duration)
-            else:
-              addLink(title,id,'playVideo',thumb,user,desc,duration)
-        if content.find('<div class="next">')>=0:
-          content=content[content.find('<div class="next">'):]
-          content=content[:content.find('</div>')]
-          match=re.compile('href="(.+?)"', re.DOTALL).findall(content)
-          if len(match)>0:
-            
addDir(translation(30001),"http://www.dailymotion.com"+match[0],'listVideos',"")
+        content = getUrl(url).replace("\\","")
+        
match=re.compile('{"description":"(.*?)","duration":(.+?),"id":"(.+?)","owner.username":"(.+?)","taken_time":(.+?),"thumbnail_large_url":"(.*?)","title":"(.+?)","views_total":(.+?)}',
 re.DOTALL).findall(content)
+        for desc, duration, id, user, date, thumb, title, views in match:
+          duration=str(int(duration)/60+1)
+          desc="User: "+user+"  |  "+views+" Views  |  
"+datetime.datetime.fromtimestamp(int(date)).strftime('%Y-%m-%d')+"\n"+desc
+          if user=="hulu": pass
+          elif user=="ARTEplus7": 
addLink(cleanTitle(title),id,'playArte',thumb,user,desc,duration)
+          else: 
addLink(cleanTitle(title),id,'playVideo',thumb,user,desc,duration)
+        match=re.compile('"page":(.+?),', re.DOTALL).findall(content)
+        currentPage=int(match[0])
+        nextPage=currentPage+1
+        if '"has_more":true' in content:
+          addDir(translation(30001)+" 
("+str(nextPage)+")",url.replace("page="+str(currentPage),"page="+str(nextPage)),'listVideos',"")
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
 def listUsers(url):
-        content = getUrl(url)
-        spl=content.split('<a class="avatar image_border"')
-        for i in range(1,len(spl),1):
-            entry=spl[i]
-            match=re.compile('<a class="name" href="/(.+?)">(.+?)</a>', 
re.DOTALL).findall(entry)
-            title=match[0][0]
-            match=re.compile('<a href="/user/(.+?)">(.+?)</a>', 
re.DOTALL).findall(entry)
-            oTitle=title
-            if len(match)>0:
-              vids=match[0][1]
-              title=title+" ("+vids+")"
-            match=re.compile('src="(.+?)"', re.DOTALL).findall(entry)
-            thumb=match[0]
-            
addUserDir(title,"http://www.dailymotion.com/user/"+title+"/1";,'sortChannels1',thumb,oTitle)
-        if content.find('<div class="next">')>=0:
-          content=content[content.find('<div class="next">'):]
-          content=content[:content.find('</div>')]
-          match=re.compile('href="(.+?)"', re.DOTALL).findall(content)
-          if len(match)>0:
-            
addDir(translation(30001),"http://www.dailymotion.com"+match[0],'listUsers',"")
+        content = getUrl(url).replace("\\","")
+        
match=re.compile('{"username":"(.+?)","avatar_large_url":"(.*?)","videos_total":(.+?),"views_total":(.+?)}',
 re.DOTALL).findall(content)
+        for user, thumb, videos, views in match:
+          
addUserDir(cleanTitle(user),'owner:'+user,'sortVideos1',thumb,"Views: 
"+views+"\nVideos: "+videos)
+        match=re.compile('"page":(.+?),', re.DOTALL).findall(content)
+        currentPage=int(match[0])
+        nextPage=currentPage+1
+        if '"has_more":true' in content:
+          addDir(translation(30001)+" 
("+str(nextPage)+")",url.replace("page="+str(currentPage),"page="+str(nextPage)),'listUsers',"")
+        xbmcplugin.endOfDirectory(pluginhandle)
+        if forceViewMode=="true":
+          xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
+
+def listLive():
+        content = 
getUrl("https://api.dailymotion.com/videos?fields=id,thumbnail_large_url%2Ctitle%2Cviews_last_hour&filters=live&sort=visited-hour&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language).replace("\\","")
+        
match=re.compile('\\{"id":"(.+?)","thumbnail_large_url":"(.+?)","title":"(.+?)","views_last_hour":(.+?)\\}',
 re.DOTALL).findall(content)
+        for id, thumb, title, views in match:
+          addLiveLink(title,id,'playVideo',thumb,views)
         xbmcplugin.endOfDirectory(pluginhandle)
         if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
@@ -210,10 +176,10 @@ def search():
         keyboard.doModal()
         if keyboard.isConfirmed() and keyboard.getText():
           search_string = keyboard.getText().replace(" ","+")
-          
listVideos('http://www.dailymotion.com/relevance/search/'+search_string+'/1')
+          
listVideos("https://api.dailymotion.com/videos?fields=description,duration,id,owner.username,taken_time,thumbnail_large_url,title,views_total&search="+search_string+"&sort=relevance&limit="+itemsPerPage+"&family_filter="+familyFilter+"&localization="+language+"&page=1";)
 
 def playVideo(id):
-        content = getUrl("http://www.dailymotion.com/sequence/"+id)
+        content = getUrl2("http://www.dailymotion.com/sequence/"+id)
         if content.find('"statusCode":410')>0 or 
content.find('"statusCode":403')>0:
           
xbmc.executebuiltin('XBMC.Notification(Info:,'+str(translation(30022))+' 
(DailyMotion)!,5000)')
         else:
@@ -328,13 +294,24 @@ def favourites(param):
 def cleanTitle(title):
         
title=title.replace("&lt;","<").replace("&gt;",">").replace("&amp;","&").replace("&#039;","'").replace("&quot;","\"").replace("&szlig;","ß").replace("&ndash;","-")
         
title=title.replace("&Auml;","Ä").replace("&Uuml;","Ü").replace("&Ouml;","Ö").replace("&auml;","ä").replace("&uuml;","ü").replace("&ouml;","ö")
+        
title=title.replace("u00c4","Ä").replace("u00e4","ä").replace("u00d6","Ö").replace("u00f6","ö").replace("u00dc","Ü").replace("u00fc","ü").replace("u00df","ß")
         title=title.strip()
         return title
 
 def getUrl(url):
         req = urllib2.Request(url)
         req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:19.0) 
Gecko/20100101 Firefox/19.0')
-        req.add_header('Cookie',"lang="+language+"; 
family_filter="+familyFilter)
+        response = urllib2.urlopen(req)
+        link=response.read()
+        response.close()
+        return link
+
+def getUrl2(url):
+        if familyFilter=="1": ff="on"
+        else: ff="off"
+        req = urllib2.Request(url)
+        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:19.0) 
Gecko/20100101 Firefox/19.0')
+        req.add_header('Cookie',"lang="+language+"; family_filter="+ff)
         response = urllib2.urlopen(req)
         link=response.read()
         response.close()
@@ -357,26 +334,37 @@ def addLink(name,url,mode,iconimage,user,desc,duration):
         liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", 
thumbnailImage=iconimage)
         liz.setInfo( type="Video", infoLabels={ "Title": name, "Plot": desc, 
"Duration": duration } )
         liz.setProperty('IsPlayable', 'true')
-        
playListInfos="###MODE###=ADD###USER###="+user+"###THUMB###=DefaultVideo.png###END###"
-        liz.addContextMenuItems([(translation(30028).format(user=user), 
'XBMC.RunPlugin(plugin://plugin.video.dailymotion_com/?mode=favourites&url='+urllib.quote_plus(playListInfos)+')',)])
+        if dmUser=="":
+          
playListInfos="###MODE###=ADD###USER###="+user+"###THUMB###=DefaultVideo.png###END###"
+          liz.addContextMenuItems([(translation(30028).format(user=user), 
'XBMC.RunPlugin(plugin://plugin.video.dailymotion_com/?mode=favourites&url='+urllib.quote_plus(playListInfos)+')',)])
         
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz)
         return ok
 
-def addDir(name,url,mode,iconimage):
+def addLiveLink(name,url,mode,iconimage,desc):
+        u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)
+        ok=True
+        liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", 
thumbnailImage=iconimage)
+        liz.setInfo( type="Video", infoLabels={ "Title": name, "Plot": desc } )
+        liz.setProperty('IsPlayable', 'true')
+        
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz)
+        return ok
+
+def addDir(name,url,mode,iconimage,desc=""):
         u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)
         ok=True
         liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", 
thumbnailImage=iconimage)
-        liz.setInfo( type="Video", infoLabels={ "Title": name } )
+        liz.setInfo( type="Video", infoLabels={ "Title": name, "Plot": desc } )
         
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
         return ok
 
-def addUserDir(name,url,mode,iconimage,oTitle):
+def addUserDir(name,url,mode,iconimage,desc):
         u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)
         ok=True
         liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", 
thumbnailImage=iconimage)
-        liz.setInfo( type="Video", infoLabels={ "Title": name } )
-        
playListInfos="###MODE###=ADD###USER###="+oTitle+"###THUMB###="+iconimage+"###END###"
-        liz.addContextMenuItems([(translation(30028).format(user=oTitle), 
'XBMC.RunPlugin(plugin://plugin.video.dailymotion_com/?mode=favourites&url='+urllib.quote_plus(playListInfos)+')',)])
+        liz.setInfo( type="Video", infoLabels={ "Title": name, "Plot": desc } )
+        if dmUser=="":
+          
playListInfos="###MODE###=ADD###USER###="+name+"###THUMB###="+iconimage+"###END###"
+          liz.addContextMenuItems([(translation(30028).format(user=name), 
'XBMC.RunPlugin(plugin://plugin.video.dailymotion_com/?mode=favourites&url='+urllib.quote_plus(playListInfos)+')',)])
         
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
         return ok
 
@@ -389,13 +377,14 @@ def addFavDir(name,url,mode,iconimage):
         
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
         return ok
 
-def addUserFavDir(name,url,mode,iconimage,oTitle):
+def addUserFavDir(name,url,mode,iconimage):
         u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)
         ok=True
         liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", 
thumbnailImage=iconimage)
         liz.setInfo( type="Video", infoLabels={ "Title": name } )
-        
playListInfos="###MODE###=REMOVE###REFRESH###=TRUE###USER###="+oTitle+"###THUMB###="+iconimage+"###END###"
-        liz.addContextMenuItems([(translation(30029), 
'XBMC.RunPlugin(plugin://plugin.video.dailymotion_com/?mode=favourites&url='+urllib.quote_plus(playListInfos)+')',)])
+        if dmUser=="":
+          
playListInfos="###MODE###=REMOVE###REFRESH###=TRUE###USER###="+name+"###THUMB###="+iconimage+"###END###"
+          liz.addContextMenuItems([(translation(30029), 
'XBMC.RunPlugin(plugin://plugin.video.dailymotion_com/?mode=favourites&url='+urllib.quote_plus(playListInfos)+')',)])
         
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
         return ok
 
@@ -407,6 +396,8 @@ if type(url)==type(str()):
 
 if mode == 'listVideos':
     listVideos(url)
+elif mode == 'listLive':
+    listLive()
 elif mode == 'listUsers':
     listUsers(url)
 elif mode == 'listChannels':
@@ -415,16 +406,22 @@ elif mode == 'favourites':
     favourites(url)
 elif mode == 'addFav':
     addFav()
+elif mode == 'personalMain':
+    personalMain()
+elif mode == 'listPersonalUsers':
+    listPersonalUsers()
 elif mode == 'favouriteUsers':
     favouriteUsers()
-elif mode == 'listMovieCats':
-    listMovieCats()
-elif mode == 'sortChannels1':
-    sortChannels1(url)
-elif mode == 'sortChannels2':
-    sortChannels2(url)
+elif mode == 'listUserPlaylists':
+    listUserPlaylists()
+elif mode == 'showPlaylist':
+    showPlaylist(url)
+elif mode == 'sortVideos1':
+    sortVideos1(url)
+elif mode == 'sortVideos2':
+    sortVideos2(url)
 elif mode == 'sortUsers1':
-    sortUsers1(url)
+    sortUsers1()
 elif mode == 'sortUsers2':
     sortUsers2(url)
 elif mode == 'playVideo':
diff --git 
a/plugin.video.dailymotion_com/resources/language/English/strings.xml 
b/plugin.video.dailymotion_com/resources/language/English/strings.xml
index d6b964e..afda881 100644
--- a/plugin.video.dailymotion_com/resources/language/English/strings.xml
+++ b/plugin.video.dailymotion_com/resources/language/English/strings.xml
@@ -17,7 +17,7 @@
   <string id="30015">All Users</string>
   <string id="30016">Featured</string>
   <string id="30017">Official</string>
-  <string id="30018">MotionMakers</string>
+  <string id="30018">Creative</string>
   <string id="30019">Most Popular</string>
   <string id="30020">Most Commented</string>
   <string id="30021">Top Rated</string>
@@ -30,9 +30,18 @@
   <string id="30031">Are you over 18 and would like to turn off the family 
filter?</string>
   <string id="30032">Turn the family filter on?</string>
   <string id="30033">Add user</string>
+  <string id="30034">My stuff</string>
+  <string id="30035">Contacts</string>
+  <string id="30036">Following</string>
+  <string id="30037">Favourites</string>
+  <string id="30038">Playlists</string>
+  <string id="30039">3D</string>
+  <string id="30040">All</string>
   <string id="30101">Country</string>
   <string id="30102">Force View</string>
   <string id="30103">ViewID</string>
   <string id="30104">Toggle Family Filter</string>
-  <string id="30105">Max video quality</string>
+  <string id="30105">Maximum resolution</string>
+  <string id="30106">Dailymotion Username</string>
+  <string id="30107">Items per page</string>
 </strings>
diff --git a/plugin.video.dailymotion_com/resources/language/German/strings.xml 
b/plugin.video.dailymotion_com/resources/language/German/strings.xml
index 6e73d9d..cca9b69 100644
--- a/plugin.video.dailymotion_com/resources/language/German/strings.xml
+++ b/plugin.video.dailymotion_com/resources/language/German/strings.xml
@@ -8,5 +8,6 @@
   <string id="30030">User zu Favs hinzugefuegt</string>
   <string id="30033">User hinzufügen</string>
   <string id="30102">View erzwingen</string>
-  <string id="30105">Max Video Qualität</string>
+  <string id="30105">Maximale Aufösung</string>
+  <string id="30107">Einträge pro Seite</string>
 </strings>
diff --git a/plugin.video.dailymotion_com/resources/settings.xml 
b/plugin.video.dailymotion_com/resources/settings.xml
index 66401c9..f9915ff 100644
--- a/plugin.video.dailymotion_com/resources/settings.xml
+++ b/plugin.video.dailymotion_com/resources/settings.xml
@@ -1,4 +1,6 @@
 <settings>
+   <setting id="dmUser" type="text" label="30106" default=""/>
+   <setting id="itemsPerPage" type="enum" label="30107" values="25|50|75|100" 
default="1"/>
    <setting id="maxVideoQuality" type="enum" label="30105" 
values="480p|720p|1080p" default="2"/>
    <setting id="language" type="enum" label="30101" 
values="International|Argentina|Australia|Belgique (FR)|Belgie 
(NL)|Brasil|Canada (English)|Canada (Francais)|Deutschland|Espana (ES)|Espana 
(CA)|Greece|France|India|Ireland|Italia|Mexico|Maroc|Nederland|Oesterreich|Polska|Portugal|Russia|Romania|Suisse
 (FR)|Schweiz (DE)|Svizzera (IT)|Tunisie|Türkiye|United Kingdom|United 
States|Viet Nam|Japan|China" default="0"/>
    <setting id="forceViewMode" type="bool" label="30102" default="false"/>

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

commit 506be1627adaa329a2295d135217a5388ae50d7f
Author: beenje <[email protected]>
Date:   Sat Mar 2 22:00:13 2013 +0100

    [plugin.video.topdocumentaryfilms_com] updated to version 1.0.3

diff --git a/plugin.video.topdocumentaryfilms_com/addon.xml 
b/plugin.video.topdocumentaryfilms_com/addon.xml
index 3a58bd6..95f73f5 100644
--- a/plugin.video.topdocumentaryfilms_com/addon.xml
+++ b/plugin.video.topdocumentaryfilms_com/addon.xml
@@ -1,18 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.topdocumentaryfilms_com" 
name="TopDocumentaryFilms.com" version="1.0.0" provider-name="AddonScriptorDE">
+<addon id="plugin.video.topdocumentaryfilms_com" 
name="TopDocumentaryFilms.com" version="1.0.3" provider-name="AddonScriptorDE">
     <requires>
         <import addon="xbmc.python" version="2.0"/>
         <import addon="plugin.video.youtube" version="3.0.0"/>
+        <import addon="plugin.video.bliptv" version="0.8.0"/>
         <import addon="plugin.video.vimeo" version="2.3.0"/>
+        <import addon="plugin.video.dailymotion_com" version="1.0.0"/>
     </requires>
     <extension point="xbmc.python.pluginsource" library="default.py">
         <provides>video</provides>
     </extension>
     <extension point="xbmc.addon.metadata">
         <platform>all</platform>
-        <summary lang="en">Watch documentaries from 
TopDocumentaryFilms.com</summary>
+        <summary lang="en">Watch free documentaries from 
TopDocumentaryFilms.com</summary>
         <language>en</language>
-        <description lang="en">Watch documentaries from 
TopDocumentaryFilms.com</description>
-    <platform>all</platform>
+        <description lang="en">Watch free documentaries from 
TopDocumentaryFilms.com</description>
     </extension>
 </addon>
diff --git a/plugin.video.topdocumentaryfilms_com/changelog.txt 
b/plugin.video.topdocumentaryfilms_com/changelog.txt
index 433a675..61d70d8 100644
--- a/plugin.video.topdocumentaryfilms_com/changelog.txt
+++ b/plugin.video.topdocumentaryfilms_com/changelog.txt
@@ -1 +1,9 @@
-1.0.0 - First Try
+1.0.0
+- First Try
+1.0.1 / 2.0.1
+- Added support for bliptv videos
+1.0.2 / 2.0.2
+- Added support for dailymotion videos
+1.0.3 / 2.0.3
+- Added support for dailymotion playlists
+- Added autoplay modus for playlists
diff --git a/plugin.video.topdocumentaryfilms_com/default.py 
b/plugin.video.topdocumentaryfilms_com/default.py
index 2b5ec7f..f746028 100644
--- a/plugin.video.topdocumentaryfilms_com/default.py
+++ b/plugin.video.topdocumentaryfilms_com/default.py
@@ -7,12 +7,7 @@ pluginhandle = int(sys.argv[1])
 xbox = xbmc.getCondVisibility("System.Platform.xbox")
 addon = xbmcaddon.Addon(id='plugin.video.topdocumentaryfilms_com')
 translation = addon.getLocalizedString
-
 forceViewMode=addon.getSetting("forceViewMode")
-if forceViewMode=="true":
-  forceViewMode=True
-else:
-  forceViewMode=False
 viewMode=str(addon.getSetting("viewMode"))
 
 def index():
@@ -25,7 +20,7 @@ def index():
         for id, temp, title, count in match:
           
addDir(title+count,"http://topdocumentaryfilms.com/category/"+id+"/";,'listVideos',"")
         xbmcplugin.endOfDirectory(pluginhandle)
-        if forceViewMode==True:
+        if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
 def listVideos(url):
@@ -50,13 +45,13 @@ def listVideos(url):
             if year!="":
               title=title+" ("+year+")"
             title=cleanTitle(title)
-            addLink(title,url,'playVideo',thumb,desc)
+            addDir(title,url,'playVideo',thumb,desc)
         match=re.compile('href="(.+?)">(.+?)</a>', re.DOTALL).findall(content)
         for url, title in match:
           if title=="Next":
             addDir(translation(30002),url,'listVideos',"")
         xbmcplugin.endOfDirectory(pluginhandle)
-        if forceViewMode==True:
+        if forceViewMode=="true":
           xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
 
 def playVideo(url):
@@ -65,44 +60,58 @@ def playVideo(url):
           match1=re.compile('src="http://www.youtube.com/embed/(.+?)\\?', 
re.DOTALL).findall(content)
           match2=re.compile('src="http://www.youtube.com/p/(.+?)\\?', 
re.DOTALL).findall(content)
           match3=re.compile('src="http://player.vimeo.com/video/(.+?)\\?', 
re.DOTALL).findall(content)
+          match4=re.compile('src="http://blip.tv/play/(.+?).html', 
re.DOTALL).findall(content)
+          
match5=re.compile('src="http://channel.nationalgeographic.com/(.+?)/videos/(.+?)/embed/',
 re.DOTALL).findall(content)
+          
match6=re.compile('src="http://www.dailymotion.com/embed/video/(.+?)"', 
re.DOTALL).findall(content)
+          
match7=re.compile('src="http://www.dailymotion.com/widget/jukebox\\?list\\[\\]=%2Fplaylist%2F(.+?)%2F',
 re.DOTALL).findall(content)
           url=""
           if len(match0)>0:
             pl=match0[0]
             if '"' in pl:
               pl=pl[:pl.find('"')]
-            youtubePlaylist(pl)
+            playYoutubePlaylist(pl)
             url="pl"
           elif len(match1)>0:
             url = getYoutubeUrl(match1[0])
           elif len(match2)>0:
-            youtubePlaylist(match2[0])
+            playYoutubePlaylist(match2[0])
             url="pl"
           elif len(match3)>0:
             url = getVimeoUrl(match3[0])
+          elif len(match4)>0:
+            url = getBlipUrl(match4[0])
+          elif len(match5)>0:
+            content = 
getUrl("http://channel.nationalgeographic.com/channel/videos/"+match5[0][1]+"/embed/";)
+            match=re.compile('"slug": "(.+?)"', re.DOTALL).findall(content)
+            if len(match)>0:
+              url=match[0]
+          elif len(match6)>0:
+            url = getDailyMotionUrl(match6[0])
+          elif len(match7)>0:
+            url="pl"
+            playDmPlaylist(match7[0])
           if url!="":
             if url!="pl":
-              listitem = xbmcgui.ListItem(path=url)
-              return xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
+              xbmc.Player().play(url)
           else:
             
xbmc.executebuiltin('XBMC.Notification(Info:,'+translation(30003)+',5000)')
 
-def youtubePlaylist(id):
+def playYoutubePlaylist(id):
           ids=[]
           titles=[]
           content = getUrl("http://gdata.youtube.com/feeds/api/playlists/"+id)
           spl=content.split('<media:player')
-          for i in range(1,len(spl),1):
-              entry=spl[i]
-              match=re.compile('v=(.+?)&', re.DOTALL).findall(entry)
-              ids.append(match[0])
-              match=re.compile("<media:title 
type='plain'>(.+?)</media:title>", re.DOTALL).findall(entry)
-              titles.append(match[0])
-          dialog = xbmcgui.Dialog()
-          if len(ids)>0:
-            yId=ids[dialog.select("Parts", titles)]
-            url = getYoutubeUrl(yId)
-            listitem = xbmcgui.ListItem(path=url)
-            return xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
+          playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
+          playlist.clear()
+          if len(spl)>1:
+            for i in range(1,len(spl),1):
+                entry=spl[i]
+                match=re.compile('v=(.+?)&', re.DOTALL).findall(entry)
+                url=getYoutubeUrl(match[0])
+                match=re.compile("<media:title 
type='plain'>(.+?)</media:title>", re.DOTALL).findall(entry)
+                listitem = xbmcgui.ListItem(match[0])
+                playlist.add(url,listitem)
+            xbmc.Player().play(playlist)
           else:
             
xbmc.executebuiltin('XBMC.Notification(Info:,'+translation(30003)+',5000)')
 
@@ -120,17 +129,56 @@ def getVimeoUrl(id):
             url = 
"plugin://plugin.video.vimeo/?path=/root/video&action=play_video&videoid=" + id
           return url
 
+def getBlipUrl(baseID):
+          content = 
urllib.unquote_plus(getRedirectedUrl("http://blip.tv/play/"+baseID+".html";))
+          match=re.compile('/rss/flash/(.+?)&', re.DOTALL).findall(content)
+          if len(match)>0:
+            id=match[0]
+          elif content.find("http://blip.tv/rss/flash/";)>=0:
+            id=content[content.find("http://blip.tv/rss/flash/";)+25:]
+          if xbox==True:
+            url = 
"plugin://video/BlipTV/?path=/root/video&action=play_video&videoid=" + id
+          else:
+            url = 
"plugin://plugin.video.bliptv/?path=/root/video&action=play_video&videoid=" + id
+          return url
+
+def getDailyMotionUrl(id):
+          if xbox==True:
+            url = "plugin://video/DailyMotion.com/?url="+id+"&mode=playVideo"
+          else:
+            url = 
"plugin://plugin.video.dailymotion_com/?url="+id+"&mode=playVideo"
+          return url
+
+def playDmPlaylist(id):
+          
url="https://api.dailymotion.com/playlist/"+id+"/videos?fields=id,title&sort=recent&limit=100";
+          content = getUrl(url).replace("\\","")
+          match=re.compile('{"id":"(.*?)","title":"(.+?)"}', 
re.DOTALL).findall(content)
+          playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
+          playlist.clear()
+          for id, title in match:
+            url=getDailyMotionUrl(id)
+            listitem = xbmcgui.ListItem(title)
+            playlist.add(url,listitem)
+          xbmc.Player().play(playlist)
+
 def cleanTitle(title):
         return 
title.replace("&lt;","<").replace("&gt;",">").replace("&amp;","&").replace("&#038;","&").replace("&#39;","'").replace("&#039;","'").replace("&#8211;","-").replace("&#8220;","-").replace("&#8221;","-").replace("&#8217;","'").replace("&quot;","\"").strip()
 
 def getUrl(url):
         req = urllib2.Request(url)
-        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:16.0) 
Gecko/20100101 Firefox/16.0')
+        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:19.0) 
Gecko/20100101 Firefox/19.0')
         response = urllib2.urlopen(req)
         link=response.read()
         response.close()
         return link
 
+def getRedirectedUrl(url):
+        req = urllib2.Request(url)
+        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:19.0) 
Gecko/20100101 Firefox/19.0')
+        response = urllib2.urlopen(req)
+        response.close()
+        return str(response.geturl())
+
 def parameters_string_to_dict(parameters):
         ''' Convert parameters encoded in a URL to a dict. '''
         paramDict = {}
@@ -142,23 +190,14 @@ def parameters_string_to_dict(parameters):
                     paramDict[paramSplits[0]] = paramSplits[1]
         return paramDict
 
-def addLink(name,url,mode,iconimage,desc):
+def addDir(name,url,mode,iconimage,desc=""):
         u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)
         ok=True
         liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", 
thumbnailImage=iconimage)
         liz.setInfo( type="Video", infoLabels={ "Title": name, "Plot": desc } )
-        liz.setProperty('IsPlayable', 'true')
-        
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz)
-        return ok
-
-def addDir(name,url,mode,iconimage):
-        u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)
-        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=parameters_string_to_dict(sys.argv[2])
 mode=params.get('mode')
 url=params.get('url')

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

Summary of changes:
 plugin.video.dailymotion_com/addon.xml             |    2 +-
 plugin.video.dailymotion_com/changelog.txt         |    3 +
 plugin.video.dailymotion_com/default.py            |  301 ++++++++++----------
 .../resources/language/English/strings.xml         |   13 +-
 .../resources/language/German/strings.xml          |    3 +-
 .../resources/settings.xml                         |    2 +
 plugin.video.topdocumentaryfilms_com/addon.xml     |    9 +-
 plugin.video.topdocumentaryfilms_com/changelog.txt |   10 +-
 plugin.video.topdocumentaryfilms_com/default.py    |  113 +++++---
 9 files changed, 258 insertions(+), 198 deletions(-)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to