The branch, frodo has been updated
via 11bd97e855eac5c9a83dea7cf8ec916a4db11c35 (commit)
from dd048eda1df34f72baddaaff7db529b2870c3ce8 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=11bd97e855eac5c9a83dea7cf8ec916a4db11c35
commit 11bd97e855eac5c9a83dea7cf8ec916a4db11c35
Author: beenje <[email protected]>
Date: Tue Jan 14 14:00:34 2014 +0100
[plugin.video.esa] updated to version 1.0.6
diff --git a/plugin.video.esa/addon.xml b/plugin.video.esa/addon.xml
index 55afa3d..8d49d5e 100644
--- a/plugin.video.esa/addon.xml
+++ b/plugin.video.esa/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.esa" name="ESA Videos" version="1.0.5"
provider-name="Jose Antonio Montes (jamontes)">
+<addon id="plugin.video.esa" name="ESA Videos" version="1.0.6"
provider-name="Jose Antonio Montes (jamontes)">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
</requires>
diff --git a/plugin.video.esa/changelog.txt b/plugin.video.esa/changelog.txt
index 50d2d9f..11ec87b 100644
--- a/plugin.video.esa/changelog.txt
+++ b/plugin.video.esa/changelog.txt
@@ -1,3 +1,8 @@
+1.0.6
+- Fixes made due to website internal changes.
+- Improved the scraper to add info tags to the videos.
+- Changed icon image.
+- Added "Show thumbnails as fanart" feature into settings menu.
1.0.5
- Fixed some international string tags.
- Added web tag to addon.xml file.
diff --git a/plugin.video.esa/default.py b/plugin.video.esa/default.py
index 9795ba3..a8e5384 100644
--- a/plugin.video.esa/default.py
+++ b/plugin.video.esa/default.py
@@ -31,6 +31,8 @@ plugin_id = 'plugin.video.esa'
settings = lutil.get_plugin_settings(plugin_id)
lutil.set_debug_mode(settings.getSetting("debug"))
translation = settings.getLocalizedString
+root_dir = settings.getAddonInfo('path')
+lutil.set_fanart_file(root_dir)
language_id = settings.getSetting("language")
# Language options selected from add-on settings.
@@ -48,6 +50,8 @@ except:
language_id = settings.getSetting("language")
language = language_list[int(language_id)]
+show_fanart = settings.getSetting('show_fanart') == 'true'
+
if language == 'system':
# We need to get the system language used by the GUI.
syslanguage = lutil.get_system_language()
@@ -64,7 +68,7 @@ sort_method = sort_list[int(sort_criteria)]
lutil.log("esa.main language selected for videos: %s" % language)
lutil.log("esa.main sort method selected for videos: %s" % sort_method)
-root_url = 'http://spaceinvideos.esa.int'
+root_url = 'http://www.esa.int'
# Entry point
@@ -83,65 +87,68 @@ def run():
# Main menu
def create_index(params):
- lutil.log("greenpeace.create_index "+repr(params))
+ lutil.log("esa.create_index "+repr(params))
action = 'main_list'
# All Videos entry
url =
'http://spaceinvideos.esa.int/content/search?SearchText=&result_type=videos_online&sortBy=%s'
% sort_method
title = translation(30107)
+ genre = 'All the Videos'
lutil.log('esa.create_index action=["%s"] title=["All the Videos"]
url=["%s"]' % (action, url))
- lutil.addDir(action=action, title=title, url=url)
+ lutil.addDir(action=action, title=title, url=url, genre=genre)
# Euronews
url =
'http://spaceinvideos.esa.int/content/search?SearchText=&result_type=euronews&sortBy=published'
title = 'Euronews'
lutil.log('esa.create_index action=["%s"] title=["%s"] url=["%s"]' %
(action, title, url))
- lutil.addDir(action=action, title=title, url=url)
+ lutil.addDir(action=action, title=title, url=url, genre=title)
# Earth from Space
url =
'http://spaceinvideos.esa.int/content/search?SearchText=%22Earth+from+Space%3A%22&SearchButton=Go'
title = 'Earth from Space'
lutil.log('esa.create_index action=["%s"] title=["%s"] url=["%s"]' %
(action, title, url))
- lutil.addDir(action=action, title=title, url=url)
+ lutil.addDir(action=action, title=title, url=url, genre=title)
# Science@ESA
url =
'http://spaceinvideos.esa.int/content/search?SearchText=%22Science@ESA%3A%22&SearchButton=Go'
title = 'Science@ESA'
lutil.log('esa.create_index action=["%s"] title=["%s"] url=["%s"]' %
(action, title, url))
- lutil.addDir(action=action, title=title, url=url)
+ lutil.addDir(action=action, title=title, url=url, genre=title)
# Other Categories
action = 'other_categories'
url = ''
title = translation(30108)
+ genre = 'Other Categories'
lutil.log('esa.create_index action=["%s"] title=["Other Categories"]
url=["%s"]' % (action, url))
- lutil.addDir(action=action, title=title, url=url)
+ lutil.addDir(action=action, title=title, url=url, genre=genre)
# Search
action = 'search'
url = ''
title = translation(30104)
+ genre = 'Search'
lutil.log('esa.create_index action=["%s"] title=["Search"] url=["%s"]' %
(action, url))
- lutil.addDir(action=action, title=title, url=url)
+ lutil.addDir(action=action, title=title, url=url, genre=genre)
lutil.close_dir(pluginhandle, updateListing=False)
# Other Categories menu
def other_categories(params):
- lutil.log("greenpeace.other_categories "+repr(params))
+ lutil.log("esa.other_categories "+repr(params))
action = 'main_list'
- page_url = 'http://spaceinvideos.esa.int/Videos'
+ page_url = 'http://www.esa.int/spaceinvideos/Videos'
buffer_web = lutil.carga_web(page_url)
- category_pattern = '<a href="(/Directorates/[^"]*?)"
title="[^"]*?">([^<]*?)</a>'
+ category_pattern = '<a href="(/spaceinvideos/Directorates/[^"]*?)"
title="[^"]*?">([^<]*?)</a>'
for category_link, title in lutil.find_multiple(buffer_web,
category_pattern):
url = '%s%s/(sortBy)/%s' % (root_url, category_link, sort_method)
title = title.replace('"', '"').replace(''',
'´').replace('&', '&') # Cleanup the title.
lutil.log('esa.other_categories action=["%s"] title=["%s"] url=["%s"]'
% (action, title, url))
- lutil.addDir(action=action, title=title, url=url)
+ lutil.addDir(action=action, title=title, url=url, genre=title)
lutil.close_dir(pluginhandle, updateListing=False)
@@ -153,17 +160,28 @@ def main_list(params):
# Loads the web page from ESA with the video list.
page_url = params.get("url")
reset_cache = params.get("reset_cache")
+ genre = params.get("genre")
buffer_web = lutil.carga_web(page_url)
# Extract video items from the html content
- pattern_videos = '<div class="psr_image arrow">[^<]+<a
href="([^"]*?)">[^<]+<img src="([^"]*?)".*?<li><a
href="[^"]*?">([^<]+)</a></li>'
- pattern_released = '<li>Released: ([^<]+)</li>'
- pattern_nextpage = '<span class="next"><a href="([^"]*?)">'
- pattern_next = '/\(offset\)/([0-9]+)'
- pattern_last = '<span class="other">\.\.\.</span><span class="other"><a
href="[^"]*?">([^<]+)</a></span>'
- pattern_no_last = '<span class="other"><a href="[^"]*?">([^<]+)</a></span>'
+ pattern_nextpage = '<span class="next"><a href="([^"]*?)">'
+ pattern_next = '/\(offset\)/([0-9]+)'
+ pattern_last = '<span class="other">\.\.\.</span><span
class="other"><a href="[^"]*?">([^<]+)</a></span>'
+ pattern_no_last = '<span class="other"><a
href="[^"]*?">([^<]+)</a></span>'
pattern_search_text = '\?SearchText=(.+)\&result_type='
+ pattern_videos = '<div class="psr_image
arrow">(.*?)</div>[^<]+</div>[^<]+<div class="clear">'
+ pattern_videolink = '<a href="([^"]*?)">'
+ pattern_thumbnail = '<img src="([^"]*?)"'
+ pattern_title = '<li><a href="[^"]*?">([^<]+)</a></li>'
+ pattern_date = '<li>Released: ([^<]+)</li>'
+ pattern_duration = '<li>Length: ([^<]+)</li>'
+ pattern_rating = 'class="ezsr-star-rating-small" title="Currently
([0-9\.]+)'
+ pattern_votes = '<li class="psr_rating_li">Votes:
<b>([^<]*?)</b></li>'
+ pattern_views = '<li class="psr_rating_li">Views:
<b>[^0-9]*?([0-9]+)</b></li>'
+
+ lutil.set_content_list(pluginhandle, 'tvshows')
+ lutil.set_plugin_category(pluginhandle, genre)
page_offset = lutil.find_first(page_url, pattern_next)
@@ -176,22 +194,47 @@ def main_list(params):
lutil.log("esa.main_list Value of prev_page_url: %s" % prev_page_url)
reset_cache = "yes"
- lutil.addDir(action="main_list", title="<< %s (%s)" %
(translation(30106), (int(page_offset) / 10)), url=prev_page_url,
reset_cache=reset_cache)
+ lutil.addDir(action="main_list", title="<< %s (%s)" %
(translation(30106), (int(page_offset) / 10)), url=prev_page_url,
reset_cache=reset_cache, genre=genre)
# This is to force ".." option to go back to main index instead of
previous page list.
updateListing = reset_cache == "yes"
- videolist = lutil.find_multiple(buffer_web,pattern_videos)
-
- for video_link, thumbnail_link, title in videolist:
- title = title.replace('"', '"').replace(''',
'´').replace('&', '&') # Cleanup the title.
- url = '%s%s' % (root_url, video_link)
- thumbnail = '%s%s' % (root_url, thumbnail_link)
- lutil.log('esa.main_list Videolist: URL: "%s" Title: "%s" Thumbnail:
"%s"' % (url, title, thumbnail))
+ videolist = lutil.find_multiple(buffer_web, pattern_videos)
+
+ for video_entry in videolist:
+ video_info = {}
+ video_link = lutil.find_first(video_entry, pattern_videolink)
+ thumbnail_link = lutil.find_first(video_entry, pattern_thumbnail)
+ title = lutil.find_first(video_entry, pattern_title)
+ title = title.replace('"', '"').replace(''',
'´').replace('&', '&') # Cleanup the title.
+ date = lutil.find_first(video_entry, pattern_date)
+ duration = lutil.find_first(video_entry, pattern_duration)
+ rating = lutil.find_first(video_entry, pattern_rating)
+ votes = lutil.find_first(video_entry, pattern_votes)
+ views = lutil.find_first(video_entry, pattern_views)
+ url = '%s%s' % (root_url, video_link)
+ thumbnail = '%s%s' % (root_url, thumbnail_link)
+ lutil.log('esa.main_list Videolist: URL: "%s" Title: "%s" Thumbnail:
"%s" Duration: "%s" Rating: "%s" Date: "%s"' % (url, title, thumbnail,
duration, rating, date))
- plot = title # The description only appears when we load the link, so
a this point we copy the description with the title content.
+ if date:
+ video_info['Aired'] = date
+ video_info['Dateadded'] = date
+ video_info['Premiered'] = date
+ video_info['Year'] = date.split('/')[-1]
+ if duration:
+ tduration = duration.split(':')
+ minutes = str(int(tduration[-3]) * 60 + int(tduration[-2]))
+ if minutes == '0':
+ minutes = '1' # Round the minimun video duration up to 1
minute.
+ video_info['Duration'] = minutes
+ video_info['Rating'] = "%s" % rating
+ video_info['Votes'] = votes
+ video_info['Playcount'] = views
+ video_info['Genre'] = genre
+ video_info['Plot'] = 'Released: %s | Views: %s | Length:
%s\n%s' % (date, views, duration, title) # The description only appears when we
load the link.
+
# Appends a new item to the xbmc item list
- lutil.addLink(action="play_video", title=title, plot=plot,
url=url,thumbnail=thumbnail)
+ lutil.addLink(action="play_video", title=title, url=url,
thumbnail=thumbnail, video_info=video_info, show_fanart=show_fanart)
# Here we get the next page URL to add it at the end of the current video
list page.
next_page_url = lutil.find_first(buffer_web, pattern_nextpage)
@@ -208,12 +251,13 @@ def main_list(params):
next_page_url = "%s%s" % (root_url, next_page_url.replace('&',
'&').replace('"', '"'))
search_text = lutil.find_first(next_page_url, pattern_search_text)
if search_text:
- encoded_text = lutil.get_url_encoded(search_text)
- lutil.log("esa.main_list Value of search_text original: '%s'
encoded: '%s'" % (search_text, encoded_text))
- next_page_url = next_page_url.replace(search_text, encoded_text)
+ if page_offset:
+ next_page_url = page_url.replace(page_offset, "%s" %
(int(page_offset) + 10))
+ else:
+ next_page_url = page_url.replace('content/search',
'content/search/(offset)/10')
lutil.log("esa.main_list Value of next_page_url: %s" % next_page_url)
- lutil.addDir(action="main_list", title=">> %s (%s/%s)" %
(translation(30010), int(next_page)/10 + 1, last_page), url=next_page_url,
reset_cache=reset_cache)
+ lutil.addDir(action="main_list", title=">> %s (%s/%s)" %
(translation(30010), int(next_page)/10 + 1, last_page), url=next_page_url,
reset_cache=reset_cache, genre=genre)
lutil.close_dir(pluginhandle, updateListing=updateListing)
diff --git a/plugin.video.esa/icon.png b/plugin.video.esa/icon.png
index b0a3fa7..b85f446 100644
Binary files a/plugin.video.esa/icon.png and b/plugin.video.esa/icon.png differ
diff --git a/plugin.video.esa/icons_and_fanart_credits.txt
b/plugin.video.esa/icons_and_fanart_credits.txt
index dde26a8..84548cc 100644
--- a/plugin.video.esa/icons_and_fanart_credits.txt
+++ b/plugin.video.esa/icons_and_fanart_credits.txt
@@ -1,5 +1,5 @@
fanart.jpg
Source: https://www.facebook.com/EuropeanSpaceAgency
-incon.png
-Source: https://twitter.com/esa
+icon.jpg
+Source: http://commons.wikimedia.org/wiki/File:Saturn_ecl\261
diff --git a/plugin.video.esa/lutil.py b/plugin.video.esa/lutil.py
index 0191ff7..98195e1 100644
--- a/plugin.video.esa/lutil.py
+++ b/plugin.video.esa/lutil.py
@@ -23,10 +23,12 @@
'''
# First of all We must import all the libraries used for plugin development.
-import sys, re, urllib, urllib2, json
+import sys, re, urllib, urllib2, json, os
import xbmcplugin, xbmcaddon, xbmcgui, xbmcaddon, xbmc
debug_enable = False # The debug logs are disabled by default.
+fanart_file = "" # Initialize the global var for the fanart file location.
+
# This function returns the plugin settings object to main module.
def get_plugin_settings(plugin_id=""):
@@ -45,6 +47,13 @@ def set_debug_mode(debug_flag=""):
debug_enable = True
+# This function setup the file and global plugin fanart.
+def set_fanart_file(root_path=""):
+ global fanart_file
+ fanart_file = os.path.join(root_path, "fanart.jpg")
+ xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart_file)
+
+
# This function logs the messages into the main XBMC log file. Called from
main plugin module.
def log(message):
if debug_enable:
@@ -83,6 +92,23 @@ def get_url_encoded(url):
return urllib.quote_plus(url)
+# This function sets the view mode into the video list.
+def set_view_mode(viewid):
+ _log("set_view_mode mode: " + viewid)
+ xbmc.executebuiltin('Container.SetViewMode('+viewid+')')
+
+
+# This function sets the video contents for the video list.
+def set_content_list(pluginhandle, contents="episodes"):
+ _log("set_content_list contents: " + contents)
+ xbmcplugin.setContent(pluginhandle, contents)
+
+
+# This function sets the plugin genre for the video list.
+def set_plugin_category(pluginhandle, genre=''):
+ xbmcplugin.setPluginCategory(pluginhandle, genre)
+
+
# This function gets an input text from the keyboard.
def get_keyboard_text(prompt):
_log('get_keyboard_text prompt: "%s"' % prompt)
@@ -131,23 +157,29 @@ def find_first(text,pattern):
# This function adds a directory entry into the XBMC GUI throught the API
-def addDir(action = "", title = "", url = "", thumbnail = "", reset_cache =
"no"):
- _log('addDir action = "%s" url = "%s" thumbnail = "%s" reset_cache = "%s"'
% (action, url, thumbnail, reset_cache))
+def addDir(action = "", title = "", url = "", genre = "", reset_cache = "no"):
+ _log('addDir action = "%s" url = "%s" reset_cache = "%s"' % (action, url,
reset_cache))
- dir_url = '%s?action=%s&reset_cache=%s&url=%s' % (sys.argv[0], action,
reset_cache, urllib.quote_plus(url))
- dir_item = xbmcgui.ListItem(title, iconImage = "DefaultFolder.png",
thumbnailImage = thumbnail)
- dir_item.setInfo(type = "Video", infoLabels = {"Title": title})
+ dir_url = '%s?action=%s&reset_cache=%s&url=%s&genre=%s' % (sys.argv[0],
action, reset_cache, urllib.quote_plus(url), urllib.quote_plus(genre))
+ dir_item = xbmcgui.ListItem(title, iconImage = "DefaultFolder.png",
thumbnailImage = '')
+ dir_item.setInfo(type = "Video", infoLabels = {"Title": title, "Genre":
genre})
+ dir_item.setProperty('Fanart_Image', fanart_file)
return xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url =
dir_url, listitem = dir_item, isFolder = True)
# This function adds a video link entry into the XBMC GUI throught the API
-def addLink(action = "", title = "", plot = "", url = "", thumbnail = ""):
- _log("addLink action = [" + action + "] title = [" + title + "] plot = ["
+ plot + "] url = [" + url + "] thumbnail = [" + thumbnail + "]")
+def addLink(action = "", title = "", url = "", thumbnail = "", video_info =
{}, show_fanart = False):
+ _log("addLink action = [" + action + "] title = [" + title + "] url = [" +
url + "] thumbnail = [" + thumbnail + "]")
link_url = '%s?action=%s&url=%s' % (sys.argv[0], action,
urllib.quote_plus(url))
link_item = xbmcgui.ListItem(title, iconImage = "DefaultVideo.png",
thumbnailImage = thumbnail)
- link_item.setInfo(type = "Video", infoLabels = {"Title": title, "Plot":
plot})
+ video_info['Title'] = title
+ link_item.setInfo(type = "Video", infoLabels = video_info)
link_item.setProperty('IsPlayable', 'true')
+ if show_fanart:
+ link_item.setProperty('Fanart_Image', thumbnail)
+ else:
+ link_item.setProperty('Fanart_Image', fanart_file)
return xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url =
link_url, listitem = link_item, isFolder = False)
diff --git a/plugin.video.esa/resources/language/Czech/strings.xml
b/plugin.video.esa/resources/language/Czech/strings.xml
index 72579c3..46c7200 100644
--- a/plugin.video.esa/resources/language/Czech/strings.xml
+++ b/plugin.video.esa/resources/language/Czech/strings.xml
@@ -11,4 +11,5 @@
<string id="30106">PÅedchozà Stránka</string>
<string id="30107">Všechny Videa</string>
<string id="30108">Ostatnà kategorie</string>
+ <string id="30109">Použijte miniatury na pozadÃ</string>
</strings>
diff --git a/plugin.video.esa/resources/language/English/strings.xml
b/plugin.video.esa/resources/language/English/strings.xml
index 7ead856..f0c677d 100644
--- a/plugin.video.esa/resources/language/English/strings.xml
+++ b/plugin.video.esa/resources/language/English/strings.xml
@@ -11,4 +11,5 @@
<string id="30106">Previous Page</string>
<string id="30107">All the Videos</string>
<string id="30108">Other Categories</string>
+ <string id="30109">Show thumbnails as fanart</string>
</strings>
diff --git a/plugin.video.esa/resources/language/French/strings.xml
b/plugin.video.esa/resources/language/French/strings.xml
index 92976ff..0815184 100644
--- a/plugin.video.esa/resources/language/French/strings.xml
+++ b/plugin.video.esa/resources/language/French/strings.xml
@@ -11,4 +11,5 @@
<string id="30106">Page Précédente</string>
<string id="30107">Toutes les Vidéos</string>
<string id="30108">Autres Catégories</string>
+ <string id="30109">Afficher les vignettes comme fanart</string>
</strings>
diff --git a/plugin.video.esa/resources/language/German/strings.xml
b/plugin.video.esa/resources/language/German/strings.xml
index 79eae2c..51efe96 100644
--- a/plugin.video.esa/resources/language/German/strings.xml
+++ b/plugin.video.esa/resources/language/German/strings.xml
@@ -10,4 +10,5 @@
<string id="30106">Vorherige Seite</string>
<string id="30107">Alle Videos</string>
<string id="30108">Weitere Kategorien</string>
+ <string id="30109">Thumb als Fanart nutzen</string>
</strings>
diff --git a/plugin.video.esa/resources/language/Greek/strings.xml
b/plugin.video.esa/resources/language/Greek/strings.xml
index 4f7b2df..4b555fb 100644
--- a/plugin.video.esa/resources/language/Greek/strings.xml
+++ b/plugin.video.esa/resources/language/Greek/strings.xml
@@ -11,4 +11,5 @@
<string id="30106">Î ÏοηγοÏμενη Σελίδα</string>
<string id="30107">Îλα Ïα ÎίνÏεο</string>
<string id="30108">ÎοιÏÎÏ ÎαÏηγοÏίεÏ</string>
+ <string id="30109">ÎμÏάνιÏη μικÏογÏαÏιÏν ÏÏ
fanart</string>
</strings>
diff --git a/plugin.video.esa/resources/language/Italian/strings.xml
b/plugin.video.esa/resources/language/Italian/strings.xml
index f77ca8b..8290e68 100644
--- a/plugin.video.esa/resources/language/Italian/strings.xml
+++ b/plugin.video.esa/resources/language/Italian/strings.xml
@@ -11,4 +11,5 @@
<string id="30106">Pagina Precedente</string>
<string id="30107">Tutti i Video</string>
<string id="30108">Altre Categorie</string>
+ <string id="30109">Mostra miniature come fanart</string>
</strings>
diff --git a/plugin.video.esa/resources/language/Portuguese/strings.xml
b/plugin.video.esa/resources/language/Portuguese/strings.xml
index e4fa541..54456c6 100644
--- a/plugin.video.esa/resources/language/Portuguese/strings.xml
+++ b/plugin.video.esa/resources/language/Portuguese/strings.xml
@@ -11,4 +11,5 @@
<string id="30106">Página Anterior</string>
<string id="30107">Todos os VÃdeos</string>
<string id="30108">Outras Categorias</string>
+ <string id="30109">Exibir miniaturas como fanart</string>
</strings>
diff --git a/plugin.video.esa/resources/language/Spanish/strings.xml
b/plugin.video.esa/resources/language/Spanish/strings.xml
index 2145b66..a1a83db 100644
--- a/plugin.video.esa/resources/language/Spanish/strings.xml
+++ b/plugin.video.esa/resources/language/Spanish/strings.xml
@@ -11,4 +11,5 @@
<string id="30106">Página Anterior</string>
<string id="30107">Todos los VÃdeos</string>
<string id="30108">Otras CategorÃas</string>
+ <string id="30109">Utilizar miniaturas para el fondo</string>
</strings>
diff --git a/plugin.video.esa/resources/settings.xml
b/plugin.video.esa/resources/settings.xml
index 94246ca..91cee0f 100644
--- a/plugin.video.esa/resources/settings.xml
+++ b/plugin.video.esa/resources/settings.xml
@@ -2,5 +2,6 @@
<settings>
<setting id="language" type="enum" label="30101" values="System
default|Äesky|English|Español|Français|Deutsch|Îλληνικά|Italiano|Dutch|Português"
default="System default"/>
<setting id="sort" type="enum" label="30103" values="By Date|Most
Viewed|Most Rated|Most Voted" default="By Date"/>
+ <setting id="show_fanart" type="bool" label="30109" default="false"/>
<setting id="debug" type="bool" label="30102" default="false"/>
</settings>
-----------------------------------------------------------------------
Summary of changes:
plugin.video.esa/addon.xml | 2 +-
plugin.video.esa/changelog.txt | 5 +
plugin.video.esa/default.py | 108 ++++++++++++++------
plugin.video.esa/icon.png | Bin 19955 -> 48885 bytes
plugin.video.esa/icons_and_fanart_credits.txt | 4 +-
plugin.video.esa/lutil.py | 50 ++++++++--
.../resources/language/Czech/strings.xml | 1 +
.../resources/language/English/strings.xml | 1 +
.../resources/language/French/strings.xml | 1 +
.../resources/language/German/strings.xml | 1 +
.../resources/language/Greek/strings.xml | 1 +
.../resources/language/Italian/strings.xml | 1 +
.../resources/language/Portuguese/strings.xml | 1 +
.../resources/language/Spanish/strings.xml | 1 +
plugin.video.esa/resources/settings.xml | 1 +
15 files changed, 134 insertions(+), 44 deletions(-)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons