The branch, frodo has been updated
       via  146b748b25b7b862d42f5d4203e3d2c7b0bb325f (commit)
       via  7ed4d403de2bf1cefbb7c70ced29f406f4cc9aee (commit)
      from  6f379be1b3e8e6cc6d3df9d3ada94af16a6a7a2b (commit)

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

commit 146b748b25b7b862d42f5d4203e3d2c7b0bb325f
Author: beenje <[email protected]>
Date:   Mon Dec 2 22:38:56 2013 +0100

    [plugin.audio.cherrymusic] updated to version 0.0.5

diff --git a/plugin.audio.cherrymusic/addon.xml 
b/plugin.audio.cherrymusic/addon.xml
index c8a58a9..31caaa9 100644
--- a/plugin.audio.cherrymusic/addon.xml
+++ b/plugin.audio.cherrymusic/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.audio.cherrymusic" name="CherryMusic" version="0.0.4" 
provider-name="Sets">
+<addon id="plugin.audio.cherrymusic" name="CherryMusic" version="0.0.5" 
provider-name="Sets">
        <requires>
                <import addon="xbmc.python" version="2.1.0"/>
        </requires>
diff --git a/plugin.audio.cherrymusic/changelog.txt 
b/plugin.audio.cherrymusic/changelog.txt
index bfeef36..fae3a7c 100644
--- a/plugin.audio.cherrymusic/changelog.txt
+++ b/plugin.audio.cherrymusic/changelog.txt
@@ -1,3 +1,7 @@
+[B]0.0.5[/B]
+Fixed: Add http:// to host if not entered
+Added: Note under host and port field in settings, to avoid implicit entry
+
 [B]0.0.4[/B]
 Fixed: Error if never configured
 
diff --git a/plugin.audio.cherrymusic/cherrymusic.py 
b/plugin.audio.cherrymusic/cherrymusic.py
index 8538c23..217fb86 100644
--- a/plugin.audio.cherrymusic/cherrymusic.py
+++ b/plugin.audio.cherrymusic/cherrymusic.py
@@ -85,7 +85,7 @@ class UI(object):
         playlist.add(urllib.unquote(url), listitem)
         self.show_message("CherryMusic", translated(30015), 6000)
 
-    def create_playlist(self, data):
+    def create_playlist(self, host, data):
         """ Creates playlist out of data """
         playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC)
         playlist.clear()
@@ -119,7 +119,7 @@ class UI(object):
                 self.add_item(item['title'], str(item['plid']),3)
             self.end_of_directory()
 
-    def search_menu(self, data):
+    def search_menu(self, host, data):
         """ Load Playlist menu """
         if data is not None:
             for item in data['data']:
@@ -128,27 +128,20 @@ class UI(object):
                 self.add_item(item.get("label"), url, 1)
             self.end_of_directory()
 
-    def load_playlist_menu(url, data):
-        """ Load selected playlist """
-        playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC)
-        playlist.clear()
-        for item in data:
-            listitem = xbmcgui.ListItem('test')
-            listitem.setInfo(type='music', infoLabels={'title': 
item.get("label")})
-            url = urlparse.urljoin(host, "/serve/")
-            url = urlparse.urljoin(url, item['urlpath'])
-            playlist.add(url, listitem)
-        xbmc.Player().play(playlist)
-
 
 class Main(object):
 
     def __init__(self):
         self.session_id = None
-        self.host = host
+        self.host = self.fix_host(host)
         self.username = username
         self.password = password
 
+    def fix_host(self, host):
+        if host.lower().startswith("http://";) or 
host.lower().startswith("https://";):
+            return host
+        else:
+            return "http://"; + host
 
     def main(self):
 
@@ -170,15 +163,15 @@ class Main(object):
         elif mode == '1' and url is None:
             data = UI().get_data_from_keyboard()
             if data:
-                UI().search_menu(self.search(data))
+                UI().search_menu(self.host, self.search(data))
         elif mode == '1' and url:
            UI().add_to_current_playlist(name, url)
         elif mode == '2':
-            UI().create_playlist(self.get_random_list())
+            UI().create_playlist(self.host, self.get_random_list())
         elif mode == '3' and url is None:
             UI().show_playlists_menu(self.get_playlists())
         elif mode == '3' and url:
-            UI().create_playlist(self.get_playlist(url))
+            UI().create_playlist(self.host, self.get_playlist(url))
 
     def login(self, host, username, password):
         """ Login to CherryMusic using POST method """
@@ -197,7 +190,7 @@ class Main(object):
 
     def get_random_list(self):
         """ CherryMusic server generates random playlist, function returns 
deserialised data """
-        request = urllib2.Request(urlparse.urljoin(host, 
"api/generaterandomplaylist"))
+        request = urllib2.Request(urlparse.urljoin(self.host, 
"api/generaterandomplaylist"))
         request.add_header("Cookie", self.session_id)
         try:
             response = urllib2.urlopen(request)
@@ -214,7 +207,7 @@ class Main(object):
 
     def get_playlists(self):
         """ CherryMusic server returns available playlists, function returns 
deserialised data """
-        request = urllib2.Request(urlparse.urljoin(host, "api/showplaylists"))
+        request = urllib2.Request(urlparse.urljoin(self.host, 
"api/showplaylists"))
         request.add_header("Cookie", self.session_id)
         try:
             response = urllib2.urlopen(request)
@@ -232,7 +225,7 @@ class Main(object):
 
     def get_playlist(self, id):
         """ CherryMusic server returns playlists by id, function returns 
deserialised data """
-        request = urllib2.Request(urlparse.urljoin(host, "api/loadplaylist"))
+        request = urllib2.Request(urlparse.urljoin(self.host, 
"api/loadplaylist"))
         data = urllib.urlencode({"data": json.dumps({"playlistid": id})})
         request.add_header("Cookie", self.session_id)
         response = urllib2.urlopen(request, data=data)
@@ -242,7 +235,7 @@ class Main(object):
 
     def search(self, text):
         """ CherryMusic server returns found tracks by sting, function returns 
deserialised data """
-        request = urllib2.Request(urlparse.urljoin(host, "api/search"))
+        request = urllib2.Request(urlparse.urljoin(self.host, "api/search"))
         data = urllib.urlencode({"data": json.dumps({"searchstring": text})})
         request.add_header("Cookie", self.session_id)
         try:
diff --git a/plugin.audio.cherrymusic/resources/language/English/strings.po 
b/plugin.audio.cherrymusic/resources/language/English/strings.po
index 6f6f8fd..06fccd4 100644
--- a/plugin.audio.cherrymusic/resources/language/English/strings.po
+++ b/plugin.audio.cherrymusic/resources/language/English/strings.po
@@ -29,6 +29,10 @@ msgctxt "#30003"
 msgid "Password"
 msgstr ""
 
+msgctxt "#30004"
+msgid "Note: Field 'Host and port' should be like this: http://HOST:PORT";
+msgstr ""
+
 msgctxt "#30010"
 msgid "Search by Title"
 msgstr ""
diff --git a/plugin.audio.cherrymusic/resources/language/Russian/strings.po 
b/plugin.audio.cherrymusic/resources/language/Russian/strings.po
index 72ca871..6a71046 100644
--- a/plugin.audio.cherrymusic/resources/language/Russian/strings.po
+++ b/plugin.audio.cherrymusic/resources/language/Russian/strings.po
@@ -29,6 +29,10 @@ msgctxt "#30003"
 msgid "Password"
 msgstr "Пароль"
 
+msgctxt "#30004"
+msgid "Note: Field 'Host and port' should be like this: http://HOST:PORT";
+msgstr "Важно: Поле 'Узел и порт' должно быть 
таким: http://Хост:Порт";
+
 msgctxt "#30010"
 msgid "Search by Title"
 msgstr "Искать по имени"
diff --git a/plugin.audio.cherrymusic/resources/settings.xml 
b/plugin.audio.cherrymusic/resources/settings.xml
index f06c435..0dc8116 100644
--- a/plugin.audio.cherrymusic/resources/settings.xml
+++ b/plugin.audio.cherrymusic/resources/settings.xml
@@ -2,6 +2,7 @@
 <settings>
        <category label="30000">
                <setting id="cherrymusichost" type="text" label="30001" 
default=""/>
+               <setting label="30004" type="lsep"/>
                <setting id="cherrymusicuser" type="text" label="30002" 
default=""/>
                <setting id="cherrymusicpass" type="text" label="30003" 
default="" option="hidden"/>
        </category>

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

commit 7ed4d403de2bf1cefbb7c70ced29f406f4cc9aee
Author: beenje <[email protected]>
Date:   Mon Dec 2 22:38:56 2013 +0100

    [plugin.video.zapiks] updated to version 1.1.2

diff --git a/plugin.video.zapiks/addon.xml b/plugin.video.zapiks/addon.xml
index 45390cd..c784827 100644
--- a/plugin.video.zapiks/addon.xml
+++ b/plugin.video.zapiks/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.video.zapiks"
        name="Zapiks"
-       version="1.1.1"
+       version="1.1.2"
        provider-name="divingmule">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
diff --git a/plugin.video.zapiks/changelog.txt 
b/plugin.video.zapiks/changelog.txt
index 3f9fa81..14d2a0a 100644
--- a/plugin.video.zapiks/changelog.txt
+++ b/plugin.video.zapiks/changelog.txt
@@ -1,3 +1,6 @@
+Version 1.1.2
+fix website changes
+
 Version 1.1.1
 update fanart
 
diff --git a/plugin.video.zapiks/default.py b/plugin.video.zapiks/default.py
index e8677b7..8c48c01 100644
--- a/plugin.video.zapiks/default.py
+++ b/plugin.video.zapiks/default.py
@@ -1,3 +1,4 @@
+import re
 import urllib
 import urllib2
 from urlparse import urlparse, parse_qs
@@ -53,10 +54,10 @@ def make_request(url, post_data=None):
 def cache_categories():
     soup = BeautifulSoup(make_request(base_url), 'html.parser')
     items = soup('ul', attrs={'id' : "sports_navigation"})[0]('a')
-    cats = [{'name': i.string.encode('utf-8'), 'url': i['href']} for i in 
items]
+    cats = [{'name': i.string.encode('utf-8'), 'url': i['href']} for i in 
items if i.string]
     return cats
-    
-    
+
+
 def cache_pro_categories():
     label_list = ['marques', 'events', 'prods', 'riders', 'crews', 'media']
     label_dict = {}
@@ -69,15 +70,15 @@ def cache_pro_categories():
                  'items': [{'title': x.a['title'].encode('utf-8'),
                             'url': x.a['href'],
                             'thumb': x.img['src']} for
-            x in i('div')]} for i in soup('div', class_='pro-type-bloc')]
+            x in i('div', class_='pro-preview')]} for i in soup('div', 
class_='pro-type-bloc')]
     return pro_list
-    
-    
+
+
 def display_pro_categories():
     for i in range(30002, 30008):
         add_dir(language(i), 'pro_cat', icon, 'get_pro_cat')
-        
-        
+
+
 def display_pro_category(cat_name):
     cat_list = cache.cacheFunction(cache_pro_categories)
     items = [i['items'] for i in cat_list if i['label'] == cat_name][0]
@@ -89,7 +90,6 @@ def display_categories():
     add_dir(language(30000), None, icon, 'get_partners')
     items = cache.cacheFunction(cache_categories)
     for i in items:
-        if i['name'] == 'more sports': continue
         add_dir(i['name'].title(), i['url'], icon, 'get_category')
 
 
@@ -104,12 +104,23 @@ def display_category(url):
     else:
         soup = BeautifulSoup(make_request(base_url + url), 'html.parser')
     if '/pro/' in url:
-        items = soup.find('div', attrs={'id': 'content'})('div', 
class_='media_thumbnail')
+        items = soup('div', class_='media_thumbnail')
     else:
-        items = soup.find('div', class_='col wrapper')('div', 
class_='media_thumbnail')
+        items = soup.find('div', attrs={'id': 'list-media'})('div', 
class_='media_thumbnail')
+    thumb_data = soup.find('style', attrs={'type': 'text/css'})
+    thumb_items = thumb_data.get_text().replace(' ', '').split('@media')
+    id_pattern = re.compile('thumbnail_container.(.+?){')
+    url_pattern = re.compile("background-image:url\('(.+?)'\);")
+    thumb_dict = {}
+    for i in thumb_items:
+        thumb_dict[id_pattern.findall(i)[0]] = url_pattern.findall(i)[0]
     for i in items:
-        title = i.a['title'].encode('utf-8')
-        add_dir(title, base_url + i.a['href'], i.img['src'], 'resolve_url')
+        try:
+            title = i.a['title'].encode('utf-8')
+            thumb_id = i.div['class'][1]
+            add_dir(title, base_url + i.a['href'], thumb_dict[thumb_id], 
'resolve_url')
+        except:
+            addon_log('addonException display_category: %s' %format_exc())
 
     try:
         page_url = soup.find('h4', class_='page_navigator')('a', 
class_='next')[0]['href']
@@ -121,7 +132,7 @@ def display_category(url):
 
 def get_navigation(url):
     soup = BeautifulSoup(make_request(url), 'html.parser')
-    nav_tags = soup.find('div', attrs={'id': 'content'})('div', 
class_='col')[:3]
+    nav_tags = soup('div', class_='top-videos-block')
     page_url = soup.find('div', attrs={'id': 'central_block'}).a['href']
     nav = {'url': page_url,
            'filters': [{'name': i.a['title'].encode('utf-8').title(),
@@ -156,7 +167,7 @@ def resolve_url(url, thumb):
             addon_log('addonException: hd.file: %s' %format_exc())
             pass
     return data['config']['file']
-    
+
 
 def add_dir(name, url, iconimage, mode):
     params = {'name': name, 'url': url, 'mode': mode, 'thumb': iconimage}
@@ -207,7 +218,7 @@ elif mode == 'resolve_url':
 elif mode == 'select_filter':
     select_filter()
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
-    
+
 elif mode == 'get_partners':
     display_pro_categories()
     xbmcplugin.endOfDirectory(int(sys.argv[1]))

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

Summary of changes:
 plugin.audio.cherrymusic/addon.xml                 |    2 +-
 plugin.audio.cherrymusic/changelog.txt             |    4 ++
 plugin.audio.cherrymusic/cherrymusic.py            |   37 +++++++----------
 .../resources/language/English/strings.po          |    4 ++
 .../resources/language/Russian/strings.po          |    4 ++
 plugin.audio.cherrymusic/resources/settings.xml    |    1 +
 plugin.video.zapiks/addon.xml                      |    2 +-
 plugin.video.zapiks/changelog.txt                  |    3 +
 plugin.video.zapiks/default.py                     |   43 ++++++++++++-------
 9 files changed, 60 insertions(+), 40 deletions(-)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to