The branch, frodo has been updated
via 52c189b2f4a87b41b8ae94186bb946cb216fb9f2 (commit)
via 081bdc9c40e7bd2990dafa7f7effdda64547c411 (commit)
via 901ef1083e025375539b0a13e2db8255fd081d07 (commit)
from 122f88490a6c8e47fc6b07e349710234c2aae0be (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=52c189b2f4a87b41b8ae94186bb946cb216fb9f2
commit 52c189b2f4a87b41b8ae94186bb946cb216fb9f2
Author: Martijn Kaijser <[email protected]>
Date: Tue Jun 10 11:36:19 2014 +0200
[plugin.video.noco] 1.0.8
diff --git a/plugin.video.noco/addon.py b/plugin.video.noco/addon.py
index 3e345ad..3c1de37 100755
--- a/plugin.video.noco/addon.py
+++ b/plugin.video.noco/addon.py
@@ -139,7 +139,14 @@ def indexPlaylist(playlist):
for video in playlist.split(','):
v = api.get_videodata(token['token'], video)
videos.append(getVideoInfos(v))
- return plugin.finish(videos)
+ if plugin.get_setting('showseen') == 'true':
+ return plugin.finish(videos)
+ else:
+ vid = []
+ for v in videos:
+ if v['info']['playcount'] == "0":
+ vid.append(v)
+ return vid
@plugin.route('/partners/<partner>/themes/<theme>')
def indexThemes(partner, theme):
@@ -209,10 +216,16 @@ def playVideo(partner, family, video):
plugin.set_resolved_url(api.get_video(video, token['token'], quality))
def getVideoInfos(video):
- if video['show_TT'] == None:
- label = video['family_TT'].encode('utf-8')+' -
'+str(video['episode_number'])
+ if str(video['episode_number']) == '0':
+ if video['show_TT'] == None:
+ label = video['family_TT'].encode('utf-8')
+ else:
+ label = video['family_TT'].encode('utf-8')+' -
'+unicode(video['show_TT']).encode('utf-8')
else:
- label = video['family_TT'].encode('utf-8')+' -
'+str(video['episode_number']).encode('utf-8')+' -
'+unicode(video['show_TT']).encode('utf-8')
+ if video['show_TT'] == None:
+ label = video['family_TT'].encode('utf-8')+' -
'+str(video['episode_number'])
+ else:
+ label = video['family_TT'].encode('utf-8')+' -
'+str(video['episode_number']).encode('utf-8')+' -
'+unicode(video['show_TT']).encode('utf-8')
if video['show_resume'] == None and video['family_resume'] == None:
resume = ''
elif video['show_resume'] == None and video['family_resume'] != None:
diff --git a/plugin.video.noco/addon.xml b/plugin.video.noco/addon.xml
index 915b9a5..cf317d8 100644
--- a/plugin.video.noco/addon.xml
+++ b/plugin.video.noco/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.noco" name="noco" version="1.0.7"
provider-name="Julien Gormotte (gormux)">
+<addon id="plugin.video.noco" name="noco" version="1.0.8"
provider-name="Julien Gormotte (gormux)">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.xbmcswift2" version="2.4.0"/>
diff --git a/plugin.video.noco/changelog.txt b/plugin.video.noco/changelog.txt
index 1c3052f..da16f81 100644
--- a/plugin.video.noco/changelog.txt
+++ b/plugin.video.noco/changelog.txt
@@ -21,3 +21,8 @@ v1.0.6
v1.0.7
- Added an option to show a random element in shows directories
+
+v1.0.8
+ - Now the plugin only shows subscribed sections (in the menus, still to do in
+ search results)
+ - Do not show episode number when not set
diff --git a/plugin.video.noco/resources/lib/api.py
b/plugin.video.noco/resources/lib/api.py
index cbe6767..97bb093 100644
--- a/plugin.video.noco/resources/lib/api.py
+++ b/plugin.video.noco/resources/lib/api.py
@@ -65,7 +65,7 @@ class nocoApi():
def get_partners(self, token):
partners = []
request = {'access_token': token, 'partner_key': ''}
- data = json.loads(requests.get(mainURL+'partners',
params=request).text)
+ data = json.loads(requests.get(mainURL+'partners/subscribed',
params=request).text)
for element in data:
if not element['nb_shows'] == None:
partners.append(element)
@@ -106,10 +106,27 @@ class nocoApi():
def get_last(self, partner, token, num_video):
request = {'access_token': token, 'partner_key': partner,
'elements_per_page': num_video}
data = json.loads(requests.get(mainURL+'shows/', params=request).text)
+
+ if plugin.get_setting('showseen') == 'true':
+ return data
+ else:
+ d = []
+ for e in data:
+ if e['mark_read'] == None:
+ d.append(e)
+ return d
return data
def get_popular(self, partner, token, num_video):
request = {'access_token': token, 'partner_key': partner,
'elements_per_page': num_video}
data = json.loads(requests.get(mainURL+'shows/most_popular',
params=request).text)
+ if plugin.get_setting('showseen') == 'true':
+ return data
+ else:
+ d = []
+ for e in data:
+ if e['mark_read'] == None:
+ d.append(e)
+ return d
return data
def get_fambytype(self, partner, typename, token):
request = {'access_token': token, 'partner_key': partner, 'type_key':
typename, 'elements_per_page': '4000'}
@@ -123,8 +140,8 @@ class nocoApi():
request = {'access_token': token}
playlists = []
data = json.loads(requests.get(mainURL+'users/queue_list',
params=request).text)
- for playlist in data:
- playlists.append(playlist)
+ for p in data:
+ playlists.append(p)
return playlists
def get_videodata(self, token, vid):
request = {'access_token': token, 'id_show': vid}
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=081bdc9c40e7bd2990dafa7f7effdda64547c411
commit 081bdc9c40e7bd2990dafa7f7effdda64547c411
Author: Martijn Kaijser <[email protected]>
Date: Tue Jun 10 11:33:45 2014 +0200
[plugin.video.jupiterbroadcasting] 3.1.0
diff --git a/plugin.video.jupiterbroadcasting/README.md
b/plugin.video.jupiterbroadcasting/README.md
index 66f442f..df6b63d 100644
--- a/plugin.video.jupiterbroadcasting/README.md
+++ b/plugin.video.jupiterbroadcasting/README.md
@@ -15,6 +15,8 @@ Watch shows from the [Jupiter
Broadcasting](http://jupiterbroadcasting.com) netw
* [Plan B](http://www.jupiterbroadcasting.com/show/planb/)
* [SciByte](http://www.jupiterbroadcasting.com/show/scibyte/)
* [Unfilter](http://www.jupiterbroadcasting.com/show/unfilter/)
+* [Tech Talk Today](http://www.jupiterbroadcasting.com/show/today/)
+* [HowTo Linux](http://www.jupiterbroadcasting.com/show/h2l/)
## Archive
@@ -37,11 +39,18 @@ Watch shows from the [Jupiter
Broadcasting](http://jupiterbroadcasting.com) netw
## Development
+### Environment
+
```bash
$ cd ~/.xbmc/addons/
$ git clone [email protected]:RobLoach/plugin.video.jupiterbroadcasting.git
```
+### Tools
+
+* [Google Python Style
Guide](http://google-styleguide.googlecode.com/svn/trunk/pyguide.html) for
consistent styles
+* [Pylint](http://pylint.org)
+
## About
diff --git a/plugin.video.jupiterbroadcasting/addon.xml
b/plugin.video.jupiterbroadcasting/addon.xml
index 89aabed..f196173 100644
--- a/plugin.video.jupiterbroadcasting/addon.xml
+++ b/plugin.video.jupiterbroadcasting/addon.xml
@@ -1,24 +1,32 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.jupiterbroadcasting"
- name="Jupiter Broadcasting"
- version="3.0.4"
- provider-name="Rob Loach">
- <requires>
- <import addon="xbmc.python" version="2.1.0"/>
- <import addon="script.module.beautifulsoup" version="3.0.8"/>
- </requires>
- <extension point="xbmc.python.pluginsource"
- library="default.py">
+<?xml version="1.0" encoding="UTF-8"?>
+<addon
+ id="plugin.video.jupiterbroadcasting"
+ name="Jupiter Broadcasting"
+ version="3.1.0"
+ provider-name="Rob Loach">
+ <requires>
+ <import addon="xbmc.python" version="2.1.0" />
+ <import addon="script.module.beautifulsoup" version="3.0.8" />
+ </requires>
+ <extension point="xbmc.python.pluginsource" library="default.py">
<provides>video</provides>
- </extension>
- <extension point="xbmc.addon.metadata">
- <summary lang="en">Jupiter Broadcasting video addon</summary>
- <description lang="en">Watch shows from the Jupiter Broadcasting Network
including the Linux Action Show, TechSNAP, SciByte, FauxShow, Coder Radio, and
more.</description>
- <disclaimer lang="en">For more information, visit
JupiterBroadcasting.com.</disclaimer>
- <license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license>
- <website>http://jupiterbroadcasting.com</website>
-
<source>http://github.com/robloach/plugin.video.jupiterbroadcasting</source>
- <platform>all</platform>
- <language>en</language>
- </extension>
+ </extension>
+ <extension point="xbmc.addon.metadata">
+ <summary lang="en">Jupiter Broadcasting video addon</summary>
+ <description lang="en">
+ Watch shows from the Jupiter Broadcasting Network including the
+ Linux Action Show, TechSNAP, SciByte, FauxShow, Coder Radio, and
+ more.
+ </description>
+ <disclaimer lang="en">
+ For more information, visit JupiterBroadcasting.com.
+ </disclaimer>
+ <license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license>
+ <website>http://jupiterbroadcasting.com</website>
+ <source>
+ http://github.com/robloach/plugin.video.jupiterbroadcasting
+ </source>
+ <platform>all</platform>
+ <language>en</language>
+ </extension>
</addon>
diff --git a/plugin.video.jupiterbroadcasting/changelog.txt
b/plugin.video.jupiterbroadcasting/changelog.txt
index 51dcde0..209d7ad 100644
--- a/plugin.video.jupiterbroadcasting/changelog.txt
+++ b/plugin.video.jupiterbroadcasting/changelog.txt
@@ -1,3 +1,14 @@
+[B]Version 3.1.0 June 5th, 2014[/B]
+- New Show: Tech Talk Today
+- New Show: HowTo Linux
+- Cleaner source with Pylint
+
+[B]Version 3.0.6 April 6th, 2014[/B]
+- Add new logo for Linux Action Show and Linux Unplugged
+
+[B]Version 3.0.5: April 3rd, 2014[/B]
+- Change Logo to new Jupiter Broadcasting Logo
+
[B]Version 3.0.4: March 23rd, 2014[/B]
- Updated documentation
diff --git a/plugin.video.jupiterbroadcasting/default.py
b/plugin.video.jupiterbroadcasting/default.py
index 4507441..065f530 100644
--- a/plugin.video.jupiterbroadcasting/default.py
+++ b/plugin.video.jupiterbroadcasting/default.py
@@ -1,21 +1,29 @@
-import urllib, urllib2, re, xbmcplugin, xbmcgui, xbmcaddon, os
-from time import strftime
-from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup
+#!/usr/bin/env python
+"""
+Jupiter Broadcasting XBMC Addon
+http://github.com/robloach/plugin.video.jupiterbroadcasting
+"""
+
+import sys, urllib, urllib2, re, xbmcplugin, xbmcgui, xbmcaddon, os
+from BeautifulSoup import BeautifulStoneSoup
__settings__ = xbmcaddon.Addon(id='plugin.video.jupiterbroadcasting')
__language__ = __settings__.getLocalizedString
-def CATEGORIES():
- # List all the shows.
+def get_shows():
+ """
+ List of available Jupiter Broadcasting shows.
+ """
shows = {}
- quality = int(__settings__.getSetting("video_quality"))
+ feedburner = 'http://feeds2.feedburner.com/'
+ jupiter = 'http://www.jupiterbroadcasting.com/'
# All Shows
shows[__language__(30006)] = {
- 'feed': 'http://feeds2.feedburner.com/AllJupiterVideos?format=xml',
- 'feed-low': 'http://feeds2.feedburner.com/AllJupiterVideos?format=xml',
- 'feed-audio':
'http://feeds2.feedburner.com/AllJupiterBroadcastingShowsOgg?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'jupiterbroadcasting.jpg'),
+ 'feed': feedburner + 'AllJupiterVideos?format=xml',
+ 'feed-low': feedburner + 'AllJupiterVideos?format=xml',
+ 'feed-audio': feedburner +
'/AllJupiterBroadcastingShowsOgg?format=xml',
+ 'image': 'jupiterbroadcasting.jpg',
'plot': __language__(30206),
'genre': 'Technology',
'count': 0
@@ -23,184 +31,221 @@ def CATEGORIES():
# Linux Action Show
shows[__language__(30000)] = {
- 'feed': 'http://feeds.feedburner.com/linuxashd?format=xml',
- 'feed-low':
'http://feeds.feedburner.com/linuxactionshowipodvid?format=xml',
- 'feed-audio':
'http://feeds2.feedburner.com/TheLinuxActionShowOGG?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'linuxactionshow.jpg'),
+ 'feed': feedburner + 'linuxashd?format=xml',
+ 'feed-low': feedburner + 'linuxactionshowipodvid?format=xml',
+ 'feed-audio': feedburner + 'TheLinuxActionShowOGG?format=xml',
+ 'image': 'LAS_Colored.jpg',
'plot': __language__(30200),
'genre': 'Technology'
}
# STOked
shows[__language__(30002)] = {
- 'feed': 'http://feeds.feedburner.com/stokedhd?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/stokedipod?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/stoked-ogg?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'stoked.png'),
+ 'feed': feedburner + 'stokedhd?format=xml',
+ 'feed-low': feedburner + 'stokedipod?format=xml',
+ 'feed-audio': feedburner + 'stoked-ogg?format=xml',
+ 'image':'stoked.png',
'plot': __language__(30202),
'genre': 'Technology'
}
# TechSnap
shows[__language__(30008)] = {
- 'feed': 'http://feeds.feedburner.com/techsnaphd?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/techsnapmobile?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/techsnapogg?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'techsnap.jpg'),
+ 'feed': feedburner + 'techsnaphd?format=xml',
+ 'feed-low': feedburner + 'techsnapmobile?format=xml',
+ 'feed-audio': feedburner + 'techsnapogg?format=xml',
+ 'image': 'techsnap.jpg',
'plot': __language__(30208),
'genre': 'Technology'
}
# SCIbyte
shows[__language__(30009)] = {
- 'feed': 'http://feeds.feedburner.com/scibytehd?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/scibytemobile?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/scibyteaudio?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'scibyte.jpg'),
+ 'feed': feedburner + 'scibytehd?format=xml',
+ 'feed-low': feedburner + 'scibytemobile?format=xml',
+ 'feed-audio': feedburner + 'scibyteaudio?format=xml',
+ 'image': 'scibyte.jpg',
'plot': __language__(30209),
'genre': 'Science'
}
# In Depth Look
shows[__language__(30014)] = {
- 'feed': 'http://www.jupiterbroadcasting.com/feeds/indepthlookihd.xml',
- 'feed-low':
'http://www.jupiterbroadcasting.com/feeds/indepthlookmob.xml',
- 'feed-audio':
'http://www.jupiterbroadcasting.com/feeds/indepthlookmp3.xml?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'indepthlook.jpg'),
+ 'feed': jupiter + 'feeds/indepthlookihd.xml',
+ 'feed-low': jupiter + 'feeds/indepthlookmob.xml',
+ 'feed-audio': jupiter + 'feeds/indepthlookmp3.xml?format=xml',
+ 'image': 'indepthlook.jpg',
'plot': __language__(30214),
'genre': 'Technology'
}
# Unfilter
shows[__language__(30016)] = {
- 'feed': 'http://www.jupiterbroadcasting.com/feeds/unfilterHD.xml',
- 'feed-low': 'http://www.jupiterbroadcasting.com/feeds/unfilterMob.xml',
- 'feed-audio':
'http://www.jupiterbroadcasting.com/feeds/unfilterogg.xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'unfilter.jpg'),
+ 'feed': jupiter + 'feeds/unfilterHD.xml',
+ 'feed-low': jupiter + 'feeds/unfilterMob.xml',
+ 'feed-audio': jupiter + 'feeds/unfilterogg.xml',
+ 'image': 'unfilter.jpg',
'plot': __language__(30216),
'genre': 'Technology'
}
# FauxShow
shows[__language__(30011)] = {
- 'feed': 'http://www.jupiterbroadcasting.com/feeds/FauxShowHD.xml',
- 'feed-low':
'http://www.jupiterbroadcasting.com/feeds/FauxShowMobile.xml',
- 'feed-audio':
'http://www.jupiterbroadcasting.com/feeds/FauxShowMP3.xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'fauxshow.jpg'),
+ 'feed': jupiter + 'feeds/FauxShowHD.xml',
+ 'feed-low': jupiter + 'feeds/FauxShowMobile.xml',
+ 'feed-audio': jupiter + 'feeds/FauxShowMP3.xml',
+ 'image': 'fauxshow.jpg',
'plot': __language__(30211),
'genre': 'Comedy'
}
# Jupiter@Nite
shows[__language__(30004)] = {
- 'feed': 'http://feeds.feedburner.com/jupiternitehd?format=xml',
- 'feed-low':
'http://feeds.feedburner.com/jupiternitelargevid?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/jupiternitemp3?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'jupiteratnite.jpg'),
+ 'feed': feedburner + 'jupiternitehd?format=xml',
+ 'feed-low': feedburner + 'jupiternitelargevid?format=xml',
+ 'feed-audio': feedburner + 'jupiternitemp3?format=xml',
+ 'image': 'jupiteratnite.jpg',
'plot': __language__(30204),
'genre': 'Technology'
}
# MMOrgue
shows[__language__(30007)] = {
- 'feed': 'http://feeds.feedburner.com/MMOrgueHD?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/MMOrgueHD?format=xml',
- 'feed-audio':
'http://www.jupiterbroadcasting.com/feeds/AllJupiterBroadcastingShowsOGG.xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'mmorgue.jpg'),
+ 'feed': feedburner + 'MMOrgueHD?format=xml',
+ 'feed-low': feedburner + 'MMOrgueHD?format=xml',
+ 'feed-audio': jupiter + 'feeds/AllJupiterBroadcastingShowsOGG.xml',
+ 'image': 'mmorgue.jpg',
'plot': __language__(30207),
'genre': 'Technology'
}
# LOTSO
shows[__language__(30003)] = {
- 'feed': 'http://feeds.feedburner.com/lotsovideo?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/lotsovideo?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/lotsomp3?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'lotso.jpg'),
+ 'feed': feedburner + 'lotsovideo?format=xml',
+ 'feed-low': feedburner + 'lotsovideo?format=xml',
+ 'feed-audio': feedburner + 'lotsomp3?format=xml',
+ 'image': 'lotso.jpg',
'plot': __language__(30203),
'genre': 'Technology'
}
# Beer is Tasty
shows[__language__(30001)] = {
- 'feed':
'http://feeds2.feedburner.com/jupiterbeeristasty-hd?format=xml',
- 'feed-low': 'http://feeds2.feedburner.com/BeerIsTasty?format=xml',
- 'feed-audio': 'http://feeds2.feedburner.com/BeerIsTasty?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'beeristasty.png'),
+ 'feed': feedburner + 'jupiterbeeristasty-hd?format=xml',
+ 'feed-low': feedburner + 'BeerIsTasty?format=xml',
+ 'feed-audio': feedburner + 'BeerIsTasty?format=xml',
+ 'image': 'beeristasty.png',
'plot': __language__(30201),
'genre': 'Technology'
}
# Jupiter Files
shows[__language__(30005)] = {
- 'feed': 'http://feeds.feedburner.com/ldf-video?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/ldf-video?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/ldf-mp3?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'jupiterfiles.jpg'),
+ 'feed': feedburner + 'ldf-video?format=xml',
+ 'feed-low': feedburner + 'ldf-video?format=xml',
+ 'feed-audio': feedburner + 'ldf-mp3?format=xml',
+ 'image': 'jupiterfiles.jpg',
'plot': __language__(30205),
'genre': 'Technology'
}
# TORked
shows[__language__(30015)] = {
- 'feed': 'http://feeds.feedburner.com/TorkedHd?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/TorkedMobile?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/TorkedMp3?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'torked.jpg'),
+ 'feed': feedburner + 'TorkedHd?format=xml',
+ 'feed-low': feedburner + 'TorkedMobile?format=xml',
+ 'feed-audio': feedburner + 'TorkedMp3?format=xml',
+ 'image': 'torked.jpg',
'plot': __language__(30215),
'genre': 'Technology'
}
# Coder Radio
shows[__language__(30017)] = {
- 'feed': 'http://feeds.feedburner.com/coderradiovideo?format=xml',
- 'feed-low':
'http://www.jupiterbroadcasting.com/feeds/coderradioogg.xml?format=xml',
- 'feed-audio':
'http://www.jupiterbroadcasting.com/feeds/coderradioogg.xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'coderradio.jpg'),
+ 'feed': feedburner + 'coderradiovideo?format=xml',
+ 'feed-low': jupiter + 'feeds/coderradioogg.xml?format=xml',
+ 'feed-audio': jupiter + 'feeds/coderradioogg.xml',
+ 'image': 'coderradio.jpg',
'plot': __language__(30217),
'genre': 'Technology'
}
# Plan B
shows[__language__(30018)] = {
- 'feed': 'http://feeds.feedburner.com/PlanBVideo?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/planbogg?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/planbogg?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'planb.jpg'),
+ 'feed': feedburner + 'PlanBVideo?format=xml',
+ 'feed-low': feedburner + 'planbogg?format=xml',
+ 'feed-audio': feedburner + 'planbogg?format=xml',
+ 'image': 'planb.jpg',
'plot': __language__(30218),
'genre': 'Technology'
}
# Linux Unplugged
shows[__language__(30019)] = {
- 'feed': 'http://feeds.feedburner.com/linuxunvid?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/linuxunogg?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/linuxunogg?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'linuxunplugged.jpg'),
+ 'feed': feedburner + 'linuxunvid?format=xml',
+ 'feed-low': feedburner + 'linuxunogg?format=xml',
+ 'feed-audio': feedburner + 'linuxunogg?format=xml',
+ 'image': 'Linux_Unplugged.jpg',
'plot': __language__(30219),
'genre': 'Technology'
}
+
# BSD Now
shows[__language__(30020)] = {
- 'feed': 'http://feeds.feedburner.com/BsdNowHd?format=xml',
- 'feed-low': 'http://feeds.feedburner.com/BsdNowMobile?format=xml',
- 'feed-audio': 'http://feeds.feedburner.com/BsdNowOgg?format=xml',
- 'image': os.path.join(__settings__.getAddonInfo('path'), 'resources',
'media', 'bsdnow.jpg'),
+ 'feed': feedburner + 'BsdNowHd?format=xml',
+ 'feed-low': feedburner + 'BsdNowMobile?format=xml',
+ 'feed-audio': feedburner + 'BsdNowOgg?format=xml',
+ 'image': 'bsdnow.jpg',
'plot': __language__(30220),
'genre': 'Technology'
}
+ # HowTo Linux
+ shows[__language__(30021)] = {
+ 'feed': feedburner + 'HowtoLinuxHd?format=xml',
+ 'feed-low': feedburner + 'HowtoLinuxMobile?format=xml',
+ 'feed-audio': feedburner + 'HowtoLinuxOgg?format=xml',
+ 'image': 'howtolinux.jpg',
+ 'plot': __language__(30221),
+ 'genre': 'Technology'
+ }
+
+ # Tech Talk Today
+ shows[__language__(30022)] = {
+ 'feed': 'http://feedpress.me/t3mob',
+ 'feed-low': 'http://feedpress.me/t3ogg',
+ 'feed-audio': 'http://feedpress.me/t3ogg',
+ 'image': 'techtalktoday.png',
+ 'plot': __language__(30222),
+ 'genre': 'Technology'
+ }
+
+ return shows
+
+def categories():
+ """
+ Load the available categories for Jupiter Broadcasting.
+ """
+ # List all the shows.
+ shows = get_shows()
+ quality = int(__settings__.getSetting("video_quality"))
+ scale = 'jblive.videocdn.scaleengine.net/'
+
# Jupiter Broadcasting Live via the HLS/RTMP stream
- liveUrl =
'http://videocdn-us.geocdn.scaleengine.net/jblive-iphone/live/jblive.stream/playlist.m3u8'
- if (quality == 1):
- liveUrl =
'rtsp://videocdn-us.geocdn.scaleengine.net/jblive/live/jblive.stream'
- elif (quality == 2):
- liveUrl = 'http://www.jupiterbroadcasting.com/listen/jbradiofm.m3u'
- addLink(
- name = __language__(30010),
- url = liveUrl,
- date = '',
- iconimage = os.path.join(__settings__.getAddonInfo('path'),
'resources', 'media', 'jupiterbroadcasting.jpg'),
- info = {
+ live_url = 'http://' + scale
+ live_url += 'jblive-iphone/live/jblive.stream/playlist.m3u8'
+ if quality == 1:
+ live_url = 'rtsp://' + scale + 'jblive/live/jblive.stream'
+ elif quality == 2:
+ live_url = 'http://jblive.fm'
+ add_link(
+ name=__language__(30010),
+ url=live_url,
+ date='',
+ iconimage=os.path.join(
+ __settings__.getAddonInfo('path'),
+ 'resources',
+ 'media',
+ 'jupiterbroadcasting.jpg'),
+ info={
'title': __language__(30010),
'plot': __language__(30210),
'genre': 'Technology',
@@ -209,188 +254,213 @@ def CATEGORIES():
)
# Loop through each of the shows and add them as directories.
- x = 2
- for name, data in shows.iteritems():
- # @TODO Get the ordering correct.
- data['count'] = x
- x = x + 1
+ iterator = 2
+ for item_name, data in shows.iteritems():
+ data['count'] = iterator
+ iterator += 1
# Check whether to use the high or low quality feed.
feed = data['feed'] # High by default.
- if (quality == 1):
+ if quality == 1:
feed = data['feed-low']
- elif (quality == 2):
+ elif quality == 2:
feed = data['feed-audio']
- addDir(name, feed, 1, data['image'], data)
-
-def INDEX(name, url, page):
+ data['image'] = os.path.join(
+ __settings__.getAddonInfo('path'),
+ 'resources',
+ 'media',
+ data['image'])
+ add_dir(item_name, feed, 1, data['image'], data)
+
+def index(name, url, page):
+ """
+ Presents a list of episodes within the given index page.
+ """
# Load the XML feed.
data = urllib2.urlopen(url)
# Parse the data with BeautifulStoneSoup, noting any self-closing tags.
- soup = BeautifulStoneSoup(data,
convertEntities=BeautifulStoneSoup.XML_ENTITIES,
selfClosingTags=['media:thumbnail', 'enclosure', 'media:content'])
+ soup = BeautifulStoneSoup(
+ data,
+ convertEntities=BeautifulStoneSoup.XML_ENTITIES,
+ selfClosingTags=['media:thumbnail', 'enclosure', 'media:content'])
count = 1
# Figure out where to start and where to stop the pagination.
- # TODO: Fix the Episodes per Page setting.
- episodesperpage = int(float(__settings__.getSetting("episodes_per_page")))
- start = episodesperpage * int(page);
- print "Episodes per Page: " + str(episodesperpage) + "\n"
- print "Start:" + str(start);
- n = 0;
+ episodesperpage = int(float(__settings__.getSetting('episodes_per_page')))
+ start = episodesperpage * int(page)
+ currentindex = 0
# Wrap in a try/catch to protect from broken RSS feeds.
try:
for item in soup.findAll('item'):
# Set up the pagination properly.
- n += 1
- if (n < start):
+ currentindex += 1
+ if currentindex < start:
# Skip this episode since it's before the page starts.
continue
- if (n >= start + episodesperpage):
+ if currentindex >= start + episodesperpage:
# Add a go to next page link, and skip the rest of the loop.
- addDir(
- name = __language__(30300),
- url = url,
- mode= 1,
- iconimage =
os.path.join(__settings__.getAddonInfo('path'), 'resources', 'media',
'next.png'),
- info = {},
- page = page + 1
- )
+ next_image = os.path.join(
+ __settings__.getAddonInfo('path'),
+ 'resources',
+ 'media',
+ 'next.png')
+ add_dir(
+ name=__language__(30300),
+ url=url,
+ mode=1,
+ iconimage=next_image,
+ info={},
+ page=page + 1)
break
# Load up the initial episode information.
info = {}
title = item.find('title')
- info['title'] = str(n) + '. '
- if (title):
+ info['title'] = str(currentindex) + '. '
+ if title:
info['title'] += title.string
info['tvshowtitle'] = name
info['count'] = count
count += 1 # Increment the show count.
# Get the video enclosure.
- video = ''
- enclosure = item.find('enclosure')
- if (enclosure != None):
- video = enclosure.get('href')
- if (video == None):
- video = enclosure.get('url')
- if (video == None):
- video = ''
- size = enclosure.get('length')
- if (size != None):
- info['size'] = int(size)
-
- # TODO: Parse the date correctly.
+ video = get_item_video(item, info)
+
+ # Find the Date
date = ''
pubdate = item.find('pubDate')
- if (pubdate != None):
+ if pubdate != None:
date = pubdate.string
# strftime("%d.%m.%Y", item.updated_parsed)
# Plot outline.
summary = item.find('itunes:summary')
- if (summary != None):
+ if summary != None:
info['plot'] = info['plotoutline'] = summary.string.strip()
# Plot.
- description = item.find('description')
- if (description != None):
- # Attempt to strip the HTML tags.
- try:
- info['plot'] = re.sub(r'<[^>]*?>', '', description.string)
- except:
- info['plot'] = description.string
+ get_item_description(item, info)
# Author/Director.
author = item.find('itunes:author')
- if (author != None):
+ if author != None:
info['director'] = author.string
# Load the self-closing media:thumbnail data.
thumbnail = ''
mediathumbnail = item.findAll('media:thumbnail')
- if (mediathumbnail):
+ if mediathumbnail:
thumbnail = mediathumbnail[0]['url']
# Add the episode link.
- addLink(info['title'], video, date, thumbnail, info)
+ add_link(info['title'], video, date, thumbnail, info)
except:
- pass
- xbmcplugin.setContent(int( sys.argv[1] ), 'episodes')
+ pass
+ xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
xbmcplugin.endOfDirectory(int(sys.argv[1]))
+def get_item_description(item, info):
+ description = item.find('description')
+ if description != None:
+ # Attempt to strip the HTML tags.
+ try:
+ info['plot'] = re.sub(r'<[^>]*?>', '', description.string)
+ except:
+ info['plot'] = description.string
+
+def get_item_video(item, info):
+ enclosure = item.find('enclosure')
+ if enclosure != None:
+ video = enclosure.get('href')
+ if video == None:
+ video = enclosure.get('url')
+ if video == None:
+ video = ''
+ size = enclosure.get('length')
+ if size != None:
+ info['size'] = int(size)
+ return video
+
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
+ """
+ Retrieves the current existing parameters from XBMC.
+ """
+ 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
# Info takes Plot, date, size
-def addLink(name, url, date, iconimage, info):
- liz = xbmcgui.ListItem(name, date, iconImage=iconimage,
thumbnailImage=iconimage)
- liz.setProperty('IsPlayable', 'true')
- liz.setInfo(type="Video", infoLabels = info)
- return xbmcplugin.addDirectoryItem(
- handle = int(sys.argv[1]),
- url = url,
- listitem = liz,
- isFolder = False
- )
-
-def addDir(name, url, mode, iconimage, info, page = 0):
-
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
+ "&page="+str(page)
- ok=True
- info["Title"] = name
- liz=xbmcgui.ListItem(name, iconImage=iconimage, thumbnailImage=iconimage)
- liz.setInfo(type="video", infoLabels=info)
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
- return ok
-
-params = get_params()
-url = None
-name = None
-mode = None
-page = None
+def add_link(name, url, date, iconimage, info):
+ """
+ Adds a link to XBMC's list of options.
+ """
+ liz = xbmcgui.ListItem(
+ name,
+ date,
+ iconImage=iconimage,
+ thumbnailImage=iconimage)
+ liz.setProperty('IsPlayable', 'true')
+ liz.setInfo(type='Video', infoLabels=info)
+ return xbmcplugin.addDirectoryItem(
+ handle=int(sys.argv[1]),
+ url=url,
+ listitem=liz,
+ isFolder=False)
+
+def add_dir(name, url, mode, iconimage, info, page=0):
+ """
+ Adds a directory item to XBMC's list of options.
+ """
+ uri = sys.argv[0] + '?url=' + urllib.quote_plus(url) + '&mode=' + str(mode)
+ uri += '&name=' + urllib.quote_plus(name) + '&page=' + str(page)
+ info['Title'] = name
+ liz = xbmcgui.ListItem(name, iconImage=iconimage, thumbnailImage=iconimage)
+ liz.setInfo(type='video', infoLabels=info)
+ return xbmcplugin.addDirectoryItem(
+ handle=int(sys.argv[1]),
+ url=uri,
+ listitem=liz,
+ isFolder=True)
+
+PARAMS = get_params()
+URL = None
+NAME = None
+MODE = None
+PAGE = None
try:
- url = urllib.unquote_plus(params["url"])
+ URL = urllib.unquote_plus(PARAMS["url"])
except:
- pass
+ pass
try:
- name = urllib.unquote_plus(params["name"])
+ NAME = urllib.unquote_plus(PARAMS["name"])
except:
- pass
+ pass
try:
- mode = int(params["mode"])
+ MODE = int(PARAMS["mode"])
except:
- pass
+ pass
try:
- page = int(params["page"])
+ PAGE = int(PARAMS["page"])
except:
- page = 0
-
-print "Mode: "+str(mode)
-print "URL: "+str(url)
-print "Name: "+str(name)
-print "Page: "+str(page)
+ PAGE = 0
-if mode==None or url==None or len(url)<1:
- CATEGORIES()
-elif mode==1:
- INDEX(name, url, page)
+if MODE == None or URL == None or len(URL) < 1:
+ categories()
+elif MODE == 1:
+ index(NAME, URL, PAGE)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
-
diff --git a/plugin.video.jupiterbroadcasting/fanart.jpg
b/plugin.video.jupiterbroadcasting/fanart.jpg
index 0297def..5361dc3 100644
Binary files a/plugin.video.jupiterbroadcasting/fanart.jpg and
b/plugin.video.jupiterbroadcasting/fanart.jpg differ
diff --git a/plugin.video.jupiterbroadcasting/icon.png
b/plugin.video.jupiterbroadcasting/icon.png
index 1193af1..20dabc3 100644
Binary files a/plugin.video.jupiterbroadcasting/icon.png and
b/plugin.video.jupiterbroadcasting/icon.png differ
diff --git
a/plugin.video.jupiterbroadcasting/resources/language/English/strings.xml
b/plugin.video.jupiterbroadcasting/resources/language/English/strings.xml
index 26cd1d0..cdbe28a 100644
--- a/plugin.video.jupiterbroadcasting/resources/language/English/strings.xml
+++ b/plugin.video.jupiterbroadcasting/resources/language/English/strings.xml
@@ -58,6 +58,12 @@
<string id="30020">BSD Now!</string>
<string id="30220">All things BSD</string>
+ <string id="30021">HowTo Linux</string>
+ <string id="30221">HowTo Linux will guide you through the amazing world of
Linux. From switching to Linux, to building the ultimate home theater,
firewall, office file server, and just about anything else.</string>
+
+ <string id="30022">Tech Talk Today</string>
+ <string id="30222">Daily coverage of the latest technology-related
headlines.</string>
+
<!-- Settings -->
<string id="30100">General</string>
<string id="30101">Quality</string>
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=901ef1083e025375539b0a13e2db8255fd081d07
commit 901ef1083e025375539b0a13e2db8255fd081d07
Author: Martijn Kaijser <[email protected]>
Date: Tue Jun 10 11:31:14 2014 +0200
[plugin.video.corbettreport] 0.0.5
diff --git a/plugin.video.corbettreport/addon.xml
b/plugin.video.corbettreport/addon.xml
index 18dcaaf..e3169ad 100644
--- a/plugin.video.corbettreport/addon.xml
+++ b/plugin.video.corbettreport/addon.xml
@@ -3,7 +3,7 @@
id="plugin.video.corbettreport"
name="CorbettReport.com Video Podcasts"
provider-name="celadoor"
- version="0.0.4">
+ version="0.0.5">
<requires>
<import addon="xbmc.python" version="2.1.0" />
<import addon="script.common.plugin.cache" version="1.5.1" />
diff --git a/plugin.video.corbettreport/changelog.txt
b/plugin.video.corbettreport/changelog.txt
index 6c084b8..c70312a 100644
--- a/plugin.video.corbettreport/changelog.txt
+++ b/plugin.video.corbettreport/changelog.txt
@@ -1,5 +1,8 @@
created by celadoor.
+
+Version 0.0.5 -Update due to website url changes.
+
Version 0.0.4 -Cosmetic UI improvements
Version 0.0.3 -Tidy up strings ready for official repo.
diff --git a/plugin.video.corbettreport/default.py
b/plugin.video.corbettreport/default.py
index 07602d9..a770e3a 100644
--- a/plugin.video.corbettreport/default.py
+++ b/plugin.video.corbettreport/default.py
@@ -16,13 +16,13 @@ __fanart__ = addon.getAddonInfo('fanart')
def CATEGORIES():
-
addDir(__language__(30011),'http://www.corbettreport.com/videos/',1,__icon__,__language__(30018))
-
addDir(__language__(30012),'http://www.corbettreport.com/videos/page/2/',1,__icon__,__language__(30018))
-
addDir(__language__(30013),'http://www.corbettreport.com/videos/page/3/',1,__icon__,__language__(30018))
-
addDir(__language__(30014),'http://www.corbettreport.com/videos/page/4/',1,__icon__,__language__(30018))
-
addDir(__language__(30015),'http://www.corbettreport.com/videos/page/5/',1,__icon__,__language__(30018))
-
addDir(__language__(30016),'http://www.corbettreport.com/podcasts/',3,'',__language__(30018))
-
addDir(__language__(30017),'http://www.corbettreport.com/interviews/',3,'',__language__(30018))
+
addDir(__language__(30011),'http://www.corbettreport.com/category/videos/',1,__icon__,__language__(30018))
+
addDir(__language__(30012),'http://www.corbettreport.com/category/videos/page/2/',1,__icon__,__language__(30018))
+
addDir(__language__(30013),'http://www.corbettreport.com/category/videos/page/3/',1,__icon__,__language__(30018))
+
addDir(__language__(30014),'http://www.corbettreport.com/category/videos/page/4/',1,__icon__,__language__(30018))
+
addDir(__language__(30015),'http://www.corbettreport.com/category/videos/page/5/',1,__icon__,__language__(30018))
+
addDir(__language__(30016),'http://www.corbettreport.com/category/episodes/',3,'',__language__(30018))
+
addDir(__language__(30017),'http://www.corbettreport.com/category/interviews/',3,'',__language__(30018))
def INDEX(url):
@@ -32,10 +32,10 @@ def INDEX(url):
link=response.read()
response.close()
#the rest
- match=re.compile('<a href="(.+?)" rel="bookmark" title="Permanent Link
to (.+?)">').findall(link)
+ match=re.compile('post-title"><a href="(.+?)" rel="bookmark"
title="Permanent Link to (.+?)"').findall(link)
if len(match) > 0:
for url,name in match:
- name = name.replace('"', '"').replace('’', '
').replace('&', '&').replace('–', '-') # Cleanup the title.
+ name = name.replace('–', '"').replace('’', '
').replace('&', '&').replace('‒', "'") # Cleanup the title.
addDir(name,url,2,__icon__,name+__language__(30019)+__language__(30020))
else:
xbmc.log(__language__(30021), xbmc.LOGERROR )
@@ -48,11 +48,11 @@ def INDEX2(url):
link=response.read()
response.close()
#interviews and podcasts
- match=re.compile('\r\n\t\t\t\t<a href="(.+?)" rel="bookmark"
title=".+?">(.+?)</a></h2>\r\n\t\t\t\t<p>Posted by <span class="i_author"(.+?)"
rel="author">(.+?)</a></span> \r\n\t\t\t\t<span
class="i_comment2"><span>Comments Off</span></span> </p> \r\n\t\t\t</div><!--
pright #end -->\r\n\t\t</div><!--post_top #end -->\r\n\r\n\t\t<div
class="clear"> \r\n\t\t\t<p>(.+?)<img class="alignright" src="(.+?)"
alt').findall(link)
+ match=re.compile('post-title"><a href="(.+?)" rel="bookmark"
title="Permanent Link to (.+?)">(.+?)</a></h2>\r\n\r\n\t\t\t\t\t\t<div
class="meta">\r\n\r\n\t<span class="meta-author"><a
href="http://www.corbettreport.com/author/admin/" title="Posts by Corbett"
rel="author">Corbett</a></span> • <span class="meta-date">(.+?)</span>
\r\n\r\n</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p><a href=(.+?)<img
class="alignright" src="(.+?)" alt').findall(link)#corbett
if len(match) > 0:
- for url,name,name2,author,name3,image in match:
- name = name.replace('"', '"').replace('’', '
').replace('&', '&').replace('–', '-') # Cleanup the title.
-
addDir(name,url,2,image,author+name+__language__(30019)+__language__(30020))
+ for url,name,name2,date,name3,image in match:
+ name = name.replace('"', '"').replace('’', '
').replace('&', '&').replace('–', "'") # Cleanup the title.
+ addDir(name,url,2,image,date+"
"+name+__language__(30019)+__language__(30020))
else:
xbmc.log(__language__(30021), xbmc.LOGERROR )
xbmcgui.Dialog().ok(__language__(30022), __language__(30021))
diff --git a/plugin.video.corbettreport/fanart.jpg
b/plugin.video.corbettreport/fanart.jpg
index e29635c..4985652 100644
Binary files a/plugin.video.corbettreport/fanart.jpg and
b/plugin.video.corbettreport/fanart.jpg differ
diff --git a/plugin.video.corbettreport/resources/language/English/strings.xml
b/plugin.video.corbettreport/resources/language/English/strings.xml
index 8317493..32e23cf 100644
--- a/plugin.video.corbettreport/resources/language/English/strings.xml
+++ b/plugin.video.corbettreport/resources/language/English/strings.xml
@@ -5,7 +5,7 @@
<string id="30013">CorbettReport.com Videos 3rd page</string>
<string id="30014">CorbettReport.com Videos 4th page</string>
<string id="30015">CorbettReport.com Videos 5th page</string>
-<string id="30016">CorbettReport.com Audio Podcasts</string>
+<string id="30016">CorbettReport.com Audio Episodes</string>
<string id="30017">CorbettReport.com Audio Interviews</string>
<string id="30018">[The Corbett Report is an independent, listener-supported
alternative news source. It operates on the principle of open source
intelligence and provides podcasts, interviews, articles and videos about
breaking news and important issues from 9/11 Truth and false flag terror to the
Big Brother police state, eugenics, geopolitics, the central banking fraud and
more..</string>
<string id="30019">[COLOR yellow][CR][CR]Please Donate, and support the video
content provider![/COLOR]</string>
-----------------------------------------------------------------------
Summary of changes:
plugin.video.corbettreport/addon.xml | 2 +-
plugin.video.corbettreport/changelog.txt | 3 +
plugin.video.corbettreport/default.py | 26 +-
plugin.video.corbettreport/fanart.jpg | Bin 164777 -> 39858 bytes
.../resources/language/English/strings.xml | 2 +-
plugin.video.jupiterbroadcasting/README.md | 9 +
plugin.video.jupiterbroadcasting/addon.xml | 52 ++-
plugin.video.jupiterbroadcasting/changelog.txt | 11 +
plugin.video.jupiterbroadcasting/default.py | 480 +++++++++++---------
plugin.video.jupiterbroadcasting/fanart.jpg | Bin 257611 -> 37338 bytes
plugin.video.jupiterbroadcasting/icon.png | Bin 92696 -> 11496 bytes
.../resources/language/English/strings.xml | 6 +
.../resources/media/LAS_Colored.jpg | Bin 0 -> 83656 bytes
.../resources/media/Linux_Unplugged.jpg | Bin 0 -> 43157 bytes
.../resources/media/howtolinux.jpg | Bin 0 -> 118714 bytes
.../resources/media/linuxactionshow.jpg | Bin 19805 -> 0 bytes
.../resources/media/linuxunplugged.jpg | Bin 657526 -> 0 bytes
.../resources/media/techtalktoday.png | Bin 0 -> 212461 bytes
plugin.video.noco/addon.py | 21 +-
plugin.video.noco/addon.xml | 2 +-
plugin.video.noco/changelog.txt | 5 +
plugin.video.noco/resources/lib/api.py | 23 +-
22 files changed, 392 insertions(+), 250 deletions(-)
create mode 100644
plugin.video.jupiterbroadcasting/resources/media/LAS_Colored.jpg
create mode 100644
plugin.video.jupiterbroadcasting/resources/media/Linux_Unplugged.jpg
create mode 100644
plugin.video.jupiterbroadcasting/resources/media/howtolinux.jpg
delete mode 100644
plugin.video.jupiterbroadcasting/resources/media/linuxactionshow.jpg
delete mode 100644
plugin.video.jupiterbroadcasting/resources/media/linuxunplugged.jpg
create mode 100644
plugin.video.jupiterbroadcasting/resources/media/techtalktoday.png
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons