The branch, frodo has been updated
via c969ab96566a210ef6ffd42f42210d06324c97bb (commit)
from 2d852e9d0ea267ea30dc3aad1d44de8e7c1631ed (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=c969ab96566a210ef6ffd42f42210d06324c97bb
commit c969ab96566a210ef6ffd42f42210d06324c97bb
Author: sphere <[email protected]>
Date: Wed Mar 19 08:53:33 2014 +0100
[plugin.video.watson] updated to version 2.0.2
diff --git a/plugin.video.watson/addon.xml b/plugin.video.watson/addon.xml
index a4618fa..199893b 100644
--- a/plugin.video.watson/addon.xml
+++ b/plugin.video.watson/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.watson" name="Anvia Watson" version="2.0.0"
provider-name="Jarkko Vesiluoma">
+<addon id="plugin.video.watson" name="Anvia Watson" version="2.0.2"
provider-name="Jarkko Vesiluoma">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
</requires>
@@ -9,7 +9,7 @@
<extension point="xbmc.addon.metadata">
<platform>all</platform>
<summary lang="en">Watch commercial Anvia Watson with XBMC</summary>
- <description lang="en">Unofficial Watson plugin. Watch commercial
Watson service with XBMC. Requires a Watson user account. See
http://www.watson.fi for more details about acquiring account.</description>
+ <description lang="en">UNOFFICIAL Watson plugin. Watch commercial
Watson service with XBMC. Requires a Watson user account. See
http://www.watson.fi for more details about acquiring account.</description>
<disclaimer lang="en">Done for XBMC by JMV, www.jmv.fi</disclaimer>
<website>www.jmv.fi</website>
<email>[email protected]</email>
diff --git a/plugin.video.watson/changelog.txt
b/plugin.video.watson/changelog.txt
index ac9a1d9..a19666b 100644
--- a/plugin.video.watson/changelog.txt
+++ b/plugin.video.watson/changelog.txt
@@ -1,3 +1,4 @@
+[B]2.1.2[/B] - Watson 2.1.2 release, plugin fixed to work with recent updates.
[B]2.0.1[/B] - Watson 2.0 release, plugin fixed to work with new Watson.
[B]1.1.1[/B] - Download function improved, will now download to single file,
some minor updates. New icon.
[B]1.1.0[/B] - Beta, programs can now be removed from recordings / favourites.
diff --git a/plugin.video.watson/default.py b/plugin.video.watson/default.py
index 6ac836c..56cc70d 100644
--- a/plugin.video.watson/default.py
+++ b/plugin.video.watson/default.py
@@ -7,6 +7,7 @@
# [email protected]
#
# Version history:
+# [B]2.0.2[/B] - Watson 2.0.2 release, plugin fixed to work with recent
updates.
# [B]2.0.1[/B] - Watson 2.0 release, plugin fixed to work with new Watson.
# [B]1.1.1[/B] - Download function improved, will now download to single
file, some minor updates. New icon.
# [B]1.1.0[/B] - Beta, programs can now be removed from recordings /
favourites.
@@ -119,7 +120,7 @@
# Global variables
-VERSION = "2.1.0"
+VERSION = "2.0.2"
MYHEADERS = { 'User-Agent': "Watson-XBMC version "+VERSION+";" }
DEBUG=1
# 1=low, 2=high, any other ==> low
@@ -148,13 +149,13 @@ def settings():
INDEX()
else:
u=sys.argv[0]+"?url=Settings&mode=5"
- listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(32005))
- listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(32006)})
+ listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(30205))
+ listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(30206)})
xbmcplugin.addDirectoryItem(int(sys.argv[1]), u, listfolder, isFolder=1)
u=sys.argv[0]+"?url=Settings&mode=5"
- listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(32007))
- listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(32007)})
+ listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(30207))
+ listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(30207)})
xbmcplugin.addDirectoryItem(int(sys.argv[1]), u, listfolder, isFolder=1)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
@@ -165,27 +166,27 @@ def INDEX():
# Live TV
u=sys.argv[0]+"?url=LiveTV&mode=1"
- listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(32001))
- listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(32001)})
+ listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(30201))
+ listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(30201)})
xbmcplugin.addDirectoryItem(int(sys.argv[1]), u, listfolder, isFolder=1)
# Archive
u=sys.argv[0]+"?url=Archive&mode=2"
- listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(32002))
- listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(32002)})
+ listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(30202))
+ listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(30202)})
xbmcplugin.addDirectoryItem(int(sys.argv[1]), u, listfolder, isFolder=1)
# Search recordings
u=sys.argv[0]+"?url=SearchRec&mode=7"
- listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(32003))
- listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(32003)})
+ listfolder = xbmcgui.ListItem(watson_addon.getLocalizedString(30203))
+ listfolder.setInfo('video', {'Title':
watson_addon.getLocalizedString(30203)})
xbmcplugin.addDirectoryItem(int(sys.argv[1]), u, listfolder, isFolder=1)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
# Ask search string from user
def search(url):
- keyboard = xbmc.Keyboard('', watson_addon.getLocalizedString(32004))
+ keyboard = xbmc.Keyboard('', watson_addon.getLocalizedString(30204))
keyboard.doModal()
if keyboard.isConfirmed() and keyboard.getText():
search_string = keyboard.getText().replace(" ","+")
@@ -202,9 +203,8 @@ def searchproc(url):
searchcontent = opener.open(request).read()
# Save everyhing we need to tuples...
- procsearchmatch=re.compile('<title>(.+?)</title>\n
<description>(.+?)</description>\n <dc:date>(.+?)</dc:date>\n
<guid isPermaLink="false">(.+?)</guid>\n <link>(.+?)</link>\n
<source url="(.+?)">(.+?)</source>\n <media:content
duration="(.+?)"/>\n').findall(searchcontent)
-
-
+# procsearchmatch=re.compile('<title>(.+?)</title>\n
<description>(.+?)</description>\n <dc:date>(.+?)</dc:date>\n
<guid isPermaLink="false">(.+?)</guid>\n <link>(.+?)</link>\n
<source url="(.+?)">(.+?)</source>\n <media:content
duration="(.+?)"/>\n').findall(searchcontent)
+ procsearchmatch=re.compile('<title\>(.+?)<\/title\>\n
<description\>(.+?)<\/description\>\n
<dc:date\>(.+?)<\/dc:date\>\n <link\>(.+?)<\/link\>\n
<guid isPermaLink="(.+?)"\>(.+?)<\/guid\>\n <source
url="(.+?)"\>(.+?)<\/source\>\n
<media:content url="(.+?)" medium="(.+?)" type="(.+?)" fileSize="(.+?)"
expression="(.+?)" duration="(.+?)"\/\>\n <media:status
state="active" reason="Completed" \/\>\n
<media:community\><media:starRating average="0" min="0"
max="5"\/\><\/media:community\>\n <media:thumbnail
url="https:\/\/www.watson.fi\/pctv\/resources\/recordings\/screengrabs\/2173711.jpg"
height="72" width="96"\/\>').findall(searchcontent)
procsearchmatch.sort(key=operator.itemgetter(0), reverse=True)
# Add search results
@@ -264,8 +264,7 @@ def searchrec(url):
searchcontent = opener.open(request).read()
# Save everyhing we need to tuples...
- recsearchmatch=re.compile('<title\>(.+?)<\/title\>\n
<description\>(.+?)<\/description\>\n <dc:date\>(.+?)<\/dc:date\>\n
<link\>(.+?)<\/link\>\n <guid
isPermaLink="(.+?)"\>(.+?)<\/guid\>\n <source
url="(.+?)"\>(.+?)<\/source\>\n <media:content
url="(.+?)" medium="(.+?)" type="(.+?)" fileSize="(.+?)" expression="(.+?)"
duration="(.+?)"\/\>\n <media:status state="(.+?)" reason="(.+?)"
\/\>\n <media:community\><media:starRating average="(.+?)"
min="(.+?)" max="(.+?)"\/\><\/media:community\>\n <media:thumbnail
url="(.+?)" height="(.+?)" width="(.+?)"\/\>').findall(searchcontent)
-
+ recsearchmatch=re.compile('<title\>(.+?)<\/title\>\n
<description\>(.+?)<\/description\>\n
<dc:date\>(.+?)<\/dc:date\>\n <link\>(.+?)<\/link\>\n
<guid isPermaLink="(.+?)"\>(.+?)<\/guid\>\n <source
url="(.+?)"\>(.+?)<\/source\>\n
<media:content url="(.+?)" medium="(.+?)" type="(.+?)" fileSize="(.+?)"
expression="(.+?)" duration="(.+?)"\/\>\n <media:status
state="(.+?)" reason="(.+?)" \/\>\n
<media:community\><media:starRating average="(.+?)" min="(.+?)"
max="(.+?)"\/\><\/media:community\>\n <media:thumbnail
url="(.+?)" height="(.+?)" width="(.+?)"\/\>').findall(searchcontent)
recsearchmatch.sort(key=operator.itemgetter(2), reverse=True)
# Add search results
@@ -278,7 +277,7 @@ def searchrec(url):
senddesc=matchitem[1].replace("ä","a")
senddesc=senddesc.replace("ö","o")
senddesc=senddesc.replace("&","&")
-
+
#Format: addDir(name,url,mode,thumbnail, description, permlink)
addDir(sendname,sendurl.replace("&","&"),4,matchitem[17]+"?width=640&height=480",senddesc,
matchitem[5])
@@ -481,7 +480,7 @@ def playurl(url):
def getplaylisturl(urlin):
playurllow=""
playurlhigh=""
-
+
# Compile and retrieve redirection and right npvr server
compiledurl='https://'+watson_addon.getSetting("username")+':'+watson_addon.getSetting("password")+'@'+urlin.split("//")[1]
try:
@@ -499,16 +498,17 @@ def getplaylisturl(urlin):
e = sys.exc_info()[0]
print "DEBUG: Exception: "+str(e)
redirection=""
-
+
playurl={}
if "H264" in urlin:
linestring=open(tmpfile, 'r').read()
- for line in linestring.split("\n"):
+ for line in linestring.split("\n"):
if "01.m3u8" in line:
playurl["Lo"]=line
elif "02.m3u8" in line:
playurl["Hi"]=line
+
tmpstring1=redirectionNEW.rpartition('/')
try:
finalplaylist=tmpstring1[0]+tmpstring1[1]+playurl["Hi"]+"?"+tmpstring1[2].split('?')[1]
@@ -524,7 +524,6 @@ def getplaylisturl(urlin):
elif "02.m3u8?session" in line:
playurlhigh=line
-
if watson_addon.getSetting("bitrate") == 1:
finalplaylist="http://"+watson_addon.getSetting("username")+":"+watson_addon.getSetting("password")+"@"+redirection.netloc+"/recorder/resources/"+playurllow
elif watson_addon.getSetting("bitrate") == 0:
@@ -544,11 +543,13 @@ def downloadvideo(durl,dname):
ddir=watson_addon.getSetting("savedir")+dname.replace(':','-')
ddir=ddir.replace(' ','_')
-# # Try to make download dir..
-# try:
-# os.makedirs(ddir)
-# except:
-# print "downloadvideo: download dir already exists or permission denied..."
+ print "DEBUG: downloadurl: "+downloadurl
+ # Try to make download dir..
+ try:
+ os.makedirs(ddir)
+ except:
+ print "downloadvideo: download dir already exists or permission denied..."
+
# Get download url (playlist)
try:
urllib.urlretrieve(downloadurl, tmpfile2)
@@ -557,7 +558,6 @@ def downloadvideo(durl,dname):
xbmcgui.Dialog().ok("Status","Downloading %s in background, \n file is
saved to %s."%(dname.replace(':','-'), ddir))
except:
xbmcgui.Dialog().ok("Status","Error getting download url!")
-
# Fetch video files and create playlist from files.
savedir=watson_addon.getSetting("savedir")+dname.replace(':','-')
@@ -567,34 +567,42 @@ def downloadvideo(durl,dname):
savedir=savedir.replace('ä','a')
savedir=savedir.replace("ö","o")
savedir=savedir.replace('&','_')
-
+
playing=0
- try:
+# try:
+ if playing==0:
for line in linestring.split("\n"):
if "session=" in line:
- print "1"
# Open remote file for reading...
-
wwwfile=urllib.urlopen("https://"+downloadurl.split("/")[2]+"/recorder/resources/"+line)
- print "2"
- # Open local file for writing (append)...
- localfile=open(savedir, 'ab+')
- print "3"
- # Write remote file to local file...
- localfile.write(wwwfile.read())
+ print "DEBUG: linestring.split: "+line
+
finaldurl="https://"+downloadurl.split("/")[2]+"/recorder/resources/"+line
+ elif "H264" in downloadurl:
+ tmpstring1=redirurl.rpartition('/')
+ try:
+ #Format: addDir(name,url,mode,thumbnail, description, permlink)
+
finaldurl=tmpstring1[0]+tmpstring1[1]+playurl["Hi"]+"?"+tmpstring1[2].split('?')[1]
+ print "DEBUG: finaldurl: "+finaldurl
+ except:
+ print "DEBUG: ERROR; creating final playlist url."
+
+
+ wwwfile=urllib.urlopen(finaldurl)
+ # Open local file for writing (append)...
+ localfile=open(savedir, 'ab+')
+ # Write remote file to local file...
+ localfile.write(wwwfile.read())
- print "...downloading..."
- localfile.close()
- print "ddir:"+ddir
- print "savedir:"+savedir
- print "4"
+ print "...downloading..."
+ localfile.close()
+ print "ddir:"+ddir
+ print "savedir:"+savedir
- playlocal(savedir)
- playing=1
- print "5"
- print "...downloading completed!"
+ playlocal(savedir)
+ playing=1
+ print "...downloading completed!"
#xbmcgui.Dialog().ok("Status","Download completed for %s !"%(savedir))
- except:
- print "Status","Error fetching video files!"
+ # except:
+ # print "Status","Error fetching video files!"
# added 9.2
xbmcplugin.endOfDirectory(int(sys.argv[1]))
@@ -644,7 +652,8 @@ try:
content = opener.open(request).read()
# Save everyhing we need to tuples...
- match=re.compile('<title\>(.+?)<\/title\>\n
<description\>(.+?)<\/description\>\n <dc:date\>(.+?)<\/dc:date\>\n
<link\>(.+?)<\/link\>\n <guid
isPermaLink="(.+?)"\>(.+?)<\/guid\>\n <source
url="(.+?)"\>(.+?)<\/source\>\n <media:content
url="(.+?)" medium="(.+?)" type="(.+?)" fileSize="(.+?)" expression="(.+?)"
duration="(.+?)"\/\>\n <media:status state="(.+?)" reason="(.+?)"
\/\>\n <media:community\><media:starRating average="(.+?)"
min="(.+?)" max="(.+?)"\/\><\/media:community\>\n <media:thumbnail
url="(.+?)" height="(.+?)" width="(.+?)"\/\>').findall(content)
+ match=re.compile('<title\>(.+?)<\/title\>\n
<description\>(.+?)<\/description\>\n
<dc:date\>(.+?)<\/dc:date\>\n <link\>(.+?)<\/link\>\n
<guid isPermaLink="(.+?)"\>(.+?)<\/guid\>\n <source
url="(.+?)"\>(.+?)<\/source\>\n
<media:content url="(.+?)" medium="(.+?)" type="(.+?)" fileSize="(.+?)"
expression="(.+?)" duration="(.+?)"\/\>\n <media:status
state="(.+?)" reason="(.+?)" \/\>\n
<media:community\><media:starRating average="(.+?)" min="(.+?)"
max="(.+?)"\/\><\/media:community\>\n <media:thumbnail
url="(.+?)" height="(.+?)" width="(.+?)"\/\>').findall(content)
+
LoginError=False
except:
print "Error opening XML"
diff --git a/plugin.video.watson/resources/language/English/strings.xml
b/plugin.video.watson/resources/language/English/strings.xml
index bdf7d81..b7b02e9 100644
--- a/plugin.video.watson/resources/language/English/strings.xml
+++ b/plugin.video.watson/resources/language/English/strings.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<string id="30000">Watson Username</string>
<string id="30001">Watson Password</string>
@@ -6,10 +7,10 @@
<string id="30005">Temporary dir</string>
<string id="30006">Download dir</string>
<string id="30007">Movies</string>
- <string id="31001">General</string>
- <string id="31002">Directories</string>
- <string id="32001">LiveTV</string>
- <string id="32002">Archive</string>
- <string id="32003">Search recordings...</string>
- <string id="32004">Search from recordings</string>
+ <string id="30101">General</string>
+ <string id="30102">Directories</string>
+ <string id="30201">LiveTV</string>
+ <string id="30202">Archive</string>
+ <string id="30203">Search recordings...</string>
+ <string id="30204">Search from recordings</string>
</strings>
\ No newline at end of file
diff --git a/plugin.video.watson/resources/language/Finnish/strings.xml
b/plugin.video.watson/resources/language/Finnish/strings.xml
index f319d3e..3f7c6b2 100644
--- a/plugin.video.watson/resources/language/Finnish/strings.xml
+++ b/plugin.video.watson/resources/language/Finnish/strings.xml
@@ -1,14 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<string id="30000">Watson Kayttajatunnus</string>
<string id="30001">Watson Salasana</string>
<string id="30003">Videon laatu</string>
<string id="30004">Haku</string>
- <string id="30005">Väliaikaistiedostot</string>
+ <string id="30005">Väliaikaistiedostot</string>
<string id="30006">Lataus hakemisto</string>
- <string id="31001">Yleiset</string>
- <string id="31002">Hakemistot</string>
- <string id="32001">LiveTV</string>
- <string id="32002">Arkisto</string>
- <string id="32003">Etsi...</string>
- <string id="32004">Hae tallenteista</string>
+ <string id="30101">Yleiset</string>
+ <string id="30102">Hakemistot</string>
+ <string id="30201">LiveTV</string>
+ <string id="30202">Arkisto</string>
+ <string id="30203">Etsi...</string>
+ <string id="30204">Hae tallenteista</string>
</strings>
diff --git a/plugin.video.watson/resources/language/Swedish/strings.xml
b/plugin.video.watson/resources/language/Swedish/strings.xml
index f319d3e..75df0b3 100644
--- a/plugin.video.watson/resources/language/Swedish/strings.xml
+++ b/plugin.video.watson/resources/language/Swedish/strings.xml
@@ -1,14 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
- <string id="30000">Watson Kayttajatunnus</string>
- <string id="30001">Watson Salasana</string>
- <string id="30003">Videon laatu</string>
- <string id="30004">Haku</string>
- <string id="30005">Väliaikaistiedostot</string>
- <string id="30006">Lataus hakemisto</string>
- <string id="31001">Yleiset</string>
- <string id="31002">Hakemistot</string>
- <string id="32001">LiveTV</string>
- <string id="32002">Arkisto</string>
- <string id="32003">Etsi...</string>
- <string id="32004">Hae tallenteista</string>
+ <string id="30000">Watson anvandarnamn</string>
+ <string id="30001">Watson losenord</string>
+ <string id="30003">Video kvalitet</string>
+ <string id="30004">Sok</string>
+ <string id="30005">Tillfalliga filer</string>
+ <string id="30006">Nerladdnings mapp</string>
+ <string id="30101">Allmanna</string>
+ <string id="30102">Mappar</string>
+ <string id="30201">LiveTV</string>
+ <string id="30202">Arkiv</string>
+ <string id="30203">Sok..</string>
+ <string id="30204">Sok bland nerladdade</string>
</strings>
diff --git a/plugin.video.watson/resources/settings.xml
b/plugin.video.watson/resources/settings.xml
index 36c6d6a..9f5dbfa 100644
--- a/plugin.video.watson/resources/settings.xml
+++ b/plugin.video.watson/resources/settings.xml
@@ -1,11 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
- <category label="31001">
+ <category label="30101">
<setting id="username" type="text" label="30000" default=""/>
<setting id="password" type="text" option="hidden" label="30001"
default=""/>
<setting type="sep" />
<setting id="bitrate" type="enum" label="30003" values="Quality
high|Quality low" default="Quality high"/>
</category>
- <category label="31002">
+ <category label="30102">
<setting label="30005" type="folder" id="tempdir" source="auto"
option="writeable" default=""/>
<setting label="30006" type="folder" id="savedir" source="auto"
option="writeable" default=""/>
</category>
-----------------------------------------------------------------------
Summary of changes:
plugin.video.watson/addon.xml | 4 +-
plugin.video.watson/changelog.txt | 1 +
plugin.video.watson/default.py | 109 +++++++++++---------
.../resources/language/English/strings.xml | 13 ++-
.../resources/language/Finnish/strings.xml | 15 ++--
.../resources/language/Swedish/strings.xml | 25 +++--
plugin.video.watson/resources/settings.xml | 5 +-
7 files changed, 93 insertions(+), 79 deletions(-)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons