The branch, eden has been updated
       via  3313140686c3727e4b494db23686bda7f883d6de (commit)
       via  1c6f64ac4df1dbc96ab97b76a2536b7a1517eec5 (commit)
       via  09c1b8de5e23bc90ec5a40d03f20a250d976cc4f (commit)
       via  7bdaffd572a92166090ce33adc917a63838a74d0 (commit)
      from  533dcb2a7bc4964dd50594703b4a418f37ff4c3d (commit)

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


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

commit 1c6f64ac4df1dbc96ab97b76a2536b7a1517eec5
Author: spiff <[email protected]>
Date:   Tue Nov 6 09:25:02 2012 +0100

    [plugin.video.itunes_podcasts] updated to version 1.0.1

diff --git a/plugin.video.itunes_podcasts/addon.py 
b/plugin.video.itunes_podcasts/addon.py
index 8a1bbed..9d22a08 100644
--- a/plugin.video.itunes_podcasts/addon.py
+++ b/plugin.video.itunes_podcasts/addon.py
@@ -39,12 +39,16 @@ STRINGS = {
 

 @plugin.route('/')

 def show_root():

-    # If we are on Eden we redirect the view to a simple switch for video/audio

-    # If on Frodo get the content_type from the request args

+    # If we are on Eden get the content_type from the FolderPath

+    # On Frodo we get the content_type from the request args

     if not 'content_type' in plugin.request.args:

-        url = plugin.url_for(endpoint='show_content_types')

-        return plugin.redirect(url)

-    content_type = plugin.request.args['content_type']

+        folder_path = xbmc.getInfoLabel('Container.FolderPath')

+        if 'video' in folder_path:

+            content_type = ('video', )

+        elif 'audio' in folder_path:

+            content_type = ('audio', )

+    else:

+        content_type = plugin.request.args['content_type']

     if isinstance(content_type, (list, tuple)):

         content_type = content_type[0]

     items = (

@@ -64,21 +68,6 @@ def show_root():
     return plugin.finish(items)

 

 

[email protected]('/content_types/')

-def show_content_types():

-    items = (

-        {'label': _('video'), 'path': plugin.url_for(

-            endpoint='show_root',

-            content_type='video'

-        )},

-        {'label': _('audio'), 'path': plugin.url_for(

-            endpoint='show_root',

-            content_type='audio'

-        )}

-    )

-    return plugin.finish(items)

-

-

 @plugin.route('/<content_type>/genres/')

 def show_genres(content_type):

     show_subgenres = plugin.get_setting('show_subgenres') == 'true'

diff --git a/plugin.video.itunes_podcasts/addon.xml 
b/plugin.video.itunes_podcasts/addon.xml
index ddec900..4285a9d 100644
--- a/plugin.video.itunes_podcasts/addon.xml
+++ b/plugin.video.itunes_podcasts/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.itunes_podcasts" name="Apple iTunes Podcasts" 
version="0.9.1" provider-name="Tristan Fischer ([email protected])">
+<addon id="plugin.video.itunes_podcasts" name="Apple iTunes Podcasts" 
version="1.0.1" provider-name="Tristan Fischer ([email protected])">
     <requires>
         <import addon="xbmc.python" version="2.0"/>
         <import addon="script.module.simplejson" version="2.0.10"/>
diff --git a/plugin.video.itunes_podcasts/changelog.txt 
b/plugin.video.itunes_podcasts/changelog.txt
index f693114..9e0e7ad 100644
--- a/plugin.video.itunes_podcasts/changelog.txt
+++ b/plugin.video.itunes_podcasts/changelog.txt
@@ -1,3 +1,7 @@
+1.0.1

+ - Autodetect content-type in Eden

+1.0.0

+ - Initial release in the Eden-Repository

 0.9.1

  - changed add-on name to "Apple iTunes Podcasts"

  - fixed spaces in search term

@@ -5,7 +9,7 @@
 0.9.0

  - initial release

  Features:

-        - more than 60 genres

-        - audio and video Podcasts

-        - search for podcasts

-        - manage "My Podcasts" favorites
\ No newline at end of file
+     - more than 60 genres

+     - audio and video Podcasts

+     - search for podcasts

+     - manage "My Podcasts" favorites
\ No newline at end of file

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

commit 09c1b8de5e23bc90ec5a40d03f20a250d976cc4f
Author: spiff <[email protected]>
Date:   Tue Nov 6 09:23:23 2012 +0100

    [plugin.audio.radio_de] updated to version 2.0.1

diff --git a/plugin.audio.radio_de/addon.py b/plugin.audio.radio_de/addon.py
index 9cece8d..0363934 100644
--- a/plugin.audio.radio_de/addon.py
+++ b/plugin.audio.radio_de/addon.py
@@ -1,273 +1,276 @@
-import os
-import simplejson as json
-
-from xbmcswift import Plugin, xbmc, xbmcplugin, xbmcgui, clean_dict
-import resources.lib.scraper as scraper
-
-__addon_name__ = 'Radio'
-__id__ = 'plugin.audio.radio_de'
-
-
-class Plugin_mod(Plugin):
-
-    def add_items(self, iterable, view_mode=None):
-        items = []
-        urls = []
-        for i, li_info in enumerate(iterable):
-            items.append(self._make_listitem(**li_info))
-            if self._mode in ['crawl', 'interactive', 'test']:
-                print '[%d] %s%s%s (%s)' % (i + 1, '', li_info.get('label'),
-                                            '', li_info.get('url'))
-                urls.append(li_info.get('url'))
-        if self._mode is 'xbmc':
-            if view_mode:
-                xbmc.executebuiltin('Container.SetViewMode(%s)' % view_mode)
-            xbmcplugin.addDirectoryItems(self.handle, items, len(items))
-            xbmcplugin.addSortMethod(self.handle,
-                                     xbmcplugin.SORT_METHOD_UNSORTED,
-                                     label2Mask="%X")
-            xbmcplugin.endOfDirectory(self.handle)
-        return urls
-
-    def _make_listitem(self, label, label2='', iconImage='', thumbnail='',
-                       path='', **options):
-        li = xbmcgui.ListItem(label, label2=label2, iconImage=iconImage,
-                              thumbnailImage=thumbnail, path=path)
-        cleaned_info = clean_dict(options.get('info'))
-        if cleaned_info:
-            li.setInfo('music', infoLabels=cleaned_info)
-        if options.get('is_playable'):
-            li.setProperty('IsPlayable', 'true')
-        if options.get('context_menu'):
-            li.addContextMenuItems(options['context_menu'], replaceItems=False)
-        return options['url'], li, options.get('is_folder', True)
-
-plugin = Plugin_mod(__addon_name__, __id__, __file__)
-
-
[email protected]('/', default=True)
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+#     Copyright (C) 2012 Tristan Fischer ([email protected])
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+from xbmcswift2 import Plugin, xbmc
+from resources.lib.api import RadioApi, RadioApiError
+
+STRINGS = {
+    'editorials_recommendations': 30100,
+    'top_100_stations': 30101,
+    'browse_by_genre': 30102,
+    'browse_by_topic': 30103,
+    'browse_by_country': 30104,
+    'browse_by_city': 30105,
+    'browse_by_language': 30106,
+    'local_stations': 30107,
+    'my_stations': 30108,
+    'search_for_station': 30200,
+    'enter_name_country_or_language': 30201,
+    'add_to_my_stations': 30400,
+    'remove_from_my_stations': 30401,
+    'edit_custom_station': 30402,
+    'please_enter': 30500,
+    'name': 30501,
+    'thumbnail': 30502,
+    'stream_url': 30503,
+    'add_custom': 30504
+}
+
+
+plugin = Plugin()
+radio_api = RadioApi()
+my_stations = plugin.get_storage('my_stations.json', file_format='json')
+
+
[email protected]('/')
 def show_root_menu():
-    __log('show_root_menu start')
-    items = []
-    items.append({'label': plugin.get_string(30107),
-                  'url': plugin.url_for('show_local_stations')})
-
-    items.append({'label': plugin.get_string(30100),
-                  'url': plugin.url_for('show_recommendation_stations')})
-
-    items.append({'label': plugin.get_string(30101),
-                  'url': plugin.url_for('show_top_stations')})
-
-    items.append({'label': plugin.get_string(30102),
-                  'url': plugin.url_for('show_station_categories',
-                                        category_type='genre')})
-
-    items.append({'label': plugin.get_string(30103),
-                  'url': plugin.url_for('show_station_categories',
-                                        category_type='topic')})
-
-    items.append({'label': plugin.get_string(30104),
-                  'url': plugin.url_for('show_station_categories',
-                                        category_type='country')})
-
-    items.append({'label': plugin.get_string(30105),
-                  'url': plugin.url_for('show_station_categories',
-                                        category_type='city')})
-
-    items.append({'label': plugin.get_string(30106),
-                  'url': plugin.url_for('show_station_categories',
-                                        category_type='language')})
-
-    items.append({'label': plugin.get_string(30200),
-                  'url': plugin.url_for('search')})
-
-    items.append({'label': plugin.get_string(30108),
-                  'url': plugin.url_for('show_mystations')})
-
-    __log('show_root_menu end')
-    return plugin.add_items(items)
-
-
[email protected]('/local_stations/')
+    items = (
+        {'label': _('local_stations'),
+         'path': plugin.url_for('show_local_stations')},
+        {'label': _('editorials_recommendations'),
+         'path': plugin.url_for('show_recommendation_stations')},
+        {'label': _('top_100_stations'),
+         'path': plugin.url_for('show_top_stations')},
+        {'label': _('browse_by_genre'),
+         'path': plugin.url_for('show_station_categories',
+                                category_type='genre')},
+        {'label': _('browse_by_topic'),
+         'path': plugin.url_for('show_station_categories',
+                                category_type='topic')},
+        {'label': _('browse_by_country'),
+         'path': plugin.url_for('show_station_categories',
+                                category_type='country')},
+        {'label': _('browse_by_city'),
+         'path': plugin.url_for('show_station_categories',
+                                category_type='city')},
+        {'label': _('browse_by_language'),
+         'path': plugin.url_for('show_station_categories',
+                                category_type='language')},
+        {'label': _('search_for_station'),
+         'path': plugin.url_for('search')},
+        {'label': _('my_stations'),
+         'path': plugin.url_for('show_my_stations')},
+    )
+    return plugin.finish(items)
+
+
[email protected]('/stations/local/')
 def show_local_stations():
-    __log('show_local_stations start')
-    language = __get_language()
-    stations = scraper.get_most_wanted(language)
-    items = __format_stations(stations['localBroadcasts'])
-    __log('show_local_stations end')
-    return plugin.add_items(items)
+    stations = radio_api.get_local_stations()
+    return __add_stations(stations)
 
 
[email protected]('/recommendation_stations/')
[email protected]('/stations/recommended/')
 def show_recommendation_stations():
-    __log('show_recommendation_stations start')
-    language = __get_language()
-    stations = scraper.get_recommendation_stations(language)
-    items = __format_stations(stations)
-    __log('show_recommendation_stations end')
-    return plugin.add_items(items)
+    stations = radio_api.get_recommendation_stations()
+    return __add_stations(stations)
 
 
[email protected]('/top_stations/')
[email protected]('/stations/top/')
 def show_top_stations():
-    __log('show_top_stations start')
-    language = __get_language()
-    stations = scraper.get_top_stations(language)
-    items = __format_stations(stations)
-    __log('show_top_stations end')
-    return plugin.add_items(items)
+    stations = radio_api.get_top_stations()
+    return __add_stations(stations)
 
 
[email protected]('/stations_by_category/<category_type>/')
[email protected]('/stations/search/')
+def search():
+    search_string = __keyboard(_('enter_name_country_or_language'))
+    if search_string:
+        url = plugin.url_for('search_result', search_string=search_string)
+        plugin.redirect(url)
+
+
[email protected]('/stations/search/<search_string>/')
+def search_result(search_string):
+    stations = radio_api.search_stations_by_string(search_string)
+    return __add_stations(stations)
+
+
[email protected]('/stations/my/')
+def show_my_stations():
+    stations = my_stations.values()
+    return __add_stations(stations, add_custom=True)
+
+
[email protected]('/stations/my/custom/<station_id>')
+def custom_my_station(station_id):
+    if station_id == 'new':
+        station = {}
+    else:
+        stations = my_stations.values()
+        station = [s for s in stations if s['id'] == station_id][0]
+    for param in ('name', 'thumbnail', 'stream_url'):
+        heading = _('please_enter') % _(param)
+        station[param] = __keyboard(heading, station.get(param, '')) or ''
+    station_name = station.get('name', 'custom')
+    station_id = station_name.decode('ascii', 'ignore').encode('ascii')
+    station['id'] = station_id
+    station['is_custom'] = '1'
+    if station_id:
+        my_stations[station_id] = station
+        url = plugin.url_for('show_my_stations')
+        plugin.redirect(url)
+
+
[email protected]('/stations/my/add/<station_id>')
+def add_to_my_stations(station_id):
+    station = radio_api.get_station_by_station_id(station_id)
+    my_stations[station_id] = station
+    my_stations.sync()
+
+
[email protected]('/stations/my/del/<station_id>')
+def del_from_my_stations(station_id):
+    if station_id in my_stations:
+        del my_stations[station_id]
+        my_stations.sync()
+
+
[email protected]('/stations/<category_type>/')
 def show_station_categories(category_type):
-    __log('show_station_categories started with category_type=%s'
-          % category_type)
-    language = __get_language()
-    categories = scraper.get_categories_by_category_type(language,
-                                                         category_type)
+    categories = radio_api.get_categories(category_type)
     items = []
     for category in categories:
         category = category.encode('utf-8')
-        try:
-            items.append({'label': category,
-                          'url': plugin.url_for('show_stations_by_category',
-                                                category_type=category_type,
-                                                category=category)})
-        except:
-            __log('show_station_categories EXCEPTION: %s' % repr(category))
-    __log('show_station_categories end')
-    return plugin.add_items(items)
-
-
[email protected]('/stations_by_category/<category_type>/<category>/')
+        items.append({
+            'label': category,
+            'path': plugin.url_for(
+                'show_stations_by_category',
+                category_type=category_type,
+                category=category,
+            ),
+        })
+    return plugin.finish(items)
+
+
[email protected]('/stations/<category_type>/<category>/')
 def show_stations_by_category(category_type, category):
-    __log(('show_stations_by_category started with '
-           'category_type=%s, category=%s') % (category_type, category))
-    language = __get_language()
-    stations = scraper.get_stations_by_category(language, category_type,
-                                                category)
-    items = __format_stations(stations)
-    __log('show_stations_by_category end')
-    return plugin.add_items(items)
+    stations = radio_api.get_stations_by_category(category_type,
+                                                  category)
+    return __add_stations(stations)
+
+
[email protected]('/station/<station_id>')
+def get_stream_url(station_id):
+    if my_stations.get(station_id, {}).get('is_custom', False):
+        stream_url = my_stations[station_id]['stream_url']
+    else:
+        station = radio_api.get_station_by_station_id(station_id)
+        stream_url = station['stream_url']
+    __log('get_stream_url result: %s' % stream_url)
+    return plugin.set_resolved_url(stream_url)
 
 
[email protected]('/search_station/')
-def search():
-    __log('search start')
-    search_string = None
-    keyboard = xbmc.Keyboard('', plugin.get_string(30201))
+def __keyboard(title, text=''):
+    keyboard = xbmc.Keyboard(text, title)
     keyboard.doModal()
     if keyboard.isConfirmed() and keyboard.getText():
-        search_string = keyboard.getText()
-        __log('search gots a string: "%s"' % search_string)
-        language = __get_language()
-        stations = scraper.search_stations_by_string(language, search_string)
-        items = __format_stations(stations)
-        __log('search end')
-        return plugin.add_items(items)
-
-
[email protected]('/my_stations/')
-def show_mystations():
-    __log('show_mystations start')
-    my_stations = __get_my_stations()
-    items = __format_stations([s['data'] for s in my_stations])
-    __log('show_mystations end')
-    return plugin.add_items(items)
-
-
[email protected]('/my_stations/add/<station_id>/')
-def add_station_mystations(station_id):
-    __log('add_station_mystations started with station_id=%s' % station_id)
-    my_stations = __get_my_stations()
-    if not station_id in [s['station_id'] for s in my_stations]:
-        language = __get_language()
-        station = scraper.get_station_by_station_id(language, station_id)
-        my_stations.append({'station_id': station_id,
-                            'data': station})
-        __set_my_stations(my_stations)
-    __log('add_station_mystations ended with %d items' % len(my_stations))
-
-
[email protected]('/my_stations/del/<station_id>/')
-def del_station_mystations(station_id):
-    __log('del_station_mystations started with station_id=%s' % station_id)
-    my_stations = __get_my_stations()
-    if station_id in [s['station_id'] for s in my_stations]:
-        my_stations = [s for s in my_stations if s['station_id'] != station_id]
-        __set_my_stations(my_stations)
-    __log('del_station_mystations ended with %d items' % len(my_stations))
-
-
[email protected]('/station/<id>/')
-def get_stream(id):
-    __log('get_stream started with id=%s' % id)
-    language = __get_language()
-    station = scraper.get_station_by_station_id(language, id)
-    stream_url = station['streamURL'].strip()
-    __log('get_stream end with stream_url=%s' % stream_url)
-    return plugin.set_resolved_url(stream_url)
+        return keyboard.getText()
 
 
-def __format_stations(stations):
-    __log('__format_stations start')
+def __add_stations(stations, add_custom=False):
+    __log('__add_stations started with %d items' % len(stations))
     items = []
-    my_stations = __get_my_stations()
-    my_station_ids = [s['station_id'] for s in my_stations]
-    for station in stations:
-        if station['picture1Name']:
-            thumbnail = station['pictureBaseURL'] + station['picture1Name']
-        else:
-            thumbnail = ''
-        if not 'genresAndTopics' in station:
-            station['genresAndTopics'] = ','.join(station['genres']
-                                                  + station['topics'])
-        if not str(station['id']) in my_station_ids:
-            my_station_label = plugin.get_string(30400)
-            my_station_url = plugin.url_for('add_station_mystations',
-                                            station_id=str(station['id']))
+    my_station_ids = my_stations.keys()
+    for i, station in enumerate(stations):
+        station_id = str(station['id'])
+        if not station_id in my_station_ids:
+            context_menu = [(
+                _('add_to_my_stations'),
+                'XBMC.RunPlugin(%s)' % plugin.url_for('add_to_my_stations',
+                                                      station_id=station_id),
+            )]
         else:
-            my_station_label = plugin.get_string(30401)
-            my_station_url = plugin.url_for('del_station_mystations',
-                                            station_id=str(station['id']))
-        items.append({'label': station['name'],
-                      'thumbnail': thumbnail,
-                      'info': {'Title': station['name'],
-                               'rating': str(station['rating']),
-                               'genre': station['genresAndTopics'],
-                               'Size': station['bitrate'],
-                               'tracknumber': station['id'],
-                               'comment': station['currentTrack']},
-                      'context_menu': [(my_station_label,
-                                        'XBMC.RunPlugin(%s)'
-                                        % my_station_url), ],
-                      'url': plugin.url_for('get_stream',
-                                            id=str(station['id'])),
-                      'is_folder': False,
-                      'is_playable': True})
-    __log('__format_stations end')
-    return items
-
-
-def __get_my_stations():
-    __log('__get_my_stations start')
-    __migrate_my_stations()
-    my_stations = []
-    profile_path = xbmc.translatePath(plugin._plugin.getAddonInfo('profile'))
-    ms_file = os.path.join(profile_path, 'mystations.json')
-    if os.path.isfile(ms_file):
-        my_stations = json.load(open(ms_file, 'r'))
-    __log('__get_my_stations ended with %d items' % len(my_stations))
-    return my_stations
-
-
-def __set_my_stations(stations):
-    __log('__set_my_stations start')
-    profile_path = xbmc.translatePath(plugin._plugin.getAddonInfo('profile'))
-    if not os.path.isdir(profile_path):
-        os.makedirs(profile_path)
-    ms_file = os.path.join(profile_path, 'mystations.json')
-    json.dump(stations, open(ms_file, 'w'), indent=1)
+            context_menu = [(
+                _('remove_from_my_stations'),
+                'XBMC.RunPlugin(%s)' % plugin.url_for('del_from_my_stations',
+                                                      station_id=station_id),
+            )]
+        if station.get('is_custom', False):
+            context_menu.append((
+                _('edit_custom_station'),
+                'XBMC.RunPlugin(%s)' % plugin.url_for('custom_my_station',
+                                                      station_id=station_id),
+            ))
+        items.append({
+            'label': station.get('name', ''),
+            'thumbnail': station.get('thumbnail', '').replace('_1', '_4'),
+            'icon': station.get('thumbnail', ''),
+            'info': {
+                'title': station.get('name', ''),
+                'rating': str(station.get('rating', '0.0')),
+                'genre': station.get('genre', ''),
+                'size': int(station.get('bitrate', 0)),
+                'comment': station.get('current_track', ''),
+                'count': i,
+            },
+            'context_menu': context_menu,
+            'path': plugin.url_for(
+                'get_stream_url',
+                station_id=station_id,
+            ),
+            'is_playable': True,
+        })
+    if add_custom:
+        items.append({
+            'label': _('add_custom'),
+            'path': plugin.url_for('custom_my_station', station_id='new'),
+        })
+    finish_kwargs = {
+        'sort_methods': [
+            ('UNSORTED', '%X'),
+            ('TITLE', '%X'),
+            'SONG_RATING',
+        ],
+    }
+    if plugin.get_setting('force_viewmode') == 'true':
+        finish_kwargs['view_mode'] = 'thumbnail'
+    return plugin.finish(items, **finish_kwargs)
+
+
+def migrate_my_stations():
+    if not plugin.get_setting('migrate') == 'done':
+        __log('migrate_my_stations')
+        import os
+        import simplejson as json
+        profile_path = xbmc.translatePath(
+            plugin._addon.getAddonInfo('profile')
+        )
+        ms_file = os.path.join(profile_path, 'mystations.json')
+        if os.path.isfile(ms_file):
+            my_stations_old = json.load(open(ms_file, 'r'))
+            for old_station in my_stations_old:
+                station_id = old_station['station_id']
+                __log('migrating: %s' % station_id)
+                station = radio_api.get_station_by_station_id(station_id)
+                my_stations[station_id] = station
+            my_stations.sync()
+        plugin.set_setting('migrate', 'done')
 
 
 def __get_language():
@@ -284,30 +287,26 @@ def __get_language():
         else:
             plugin.open_settings()
         plugin.set_setting('not_first_run', '1')
-    lang_id = plugin.get_setting('language')
+    lang_id = plugin.get_setting('language') or 0
     return ('english', 'german', 'french')[int(lang_id)]
 
 
-def __migrate_my_stations():
-    if not plugin.get_setting('my_stations'):
-        __log('__migrate_my_stations nothing to migrate')
-        return
-    my_stations = plugin.get_setting('my_stations').split(',')
-    __log('__migrate_my_stations start migration mystations: %s' % my_stations)
-    language = __get_language()
-    stations = []
-    for station_id in my_stations:
-        station = scraper.get_station_by_station_id(language, station_id)
-        if station:
-            stations.append({'station_id': station_id,
-                             'data': station})
-    __set_my_stations(stations)
-    plugin.set_setting('my_stations', '')
-    __log('__migrate_my_stations migration done')
+def __log(text):
+    plugin.log.info(text)
 
 
-def __log(text):
-    xbmc.log('%s addon: %s' % (__addon_name__, text))
+def _(string_id):
+    if string_id in STRINGS:
+        return plugin.get_string(STRINGS[string_id])
+    else:
+        __log('String is missing: %s' % string_id)
+        return string_id
 
 if __name__ == '__main__':
-    plugin.run()
+    radio_api.set_language(__get_language())
+    radio_api.log = __log
+    migrate_my_stations()
+    try:
+        plugin.run()
+    except RadioApiError:
+        plugin.notify(msg=_('network_error'))
diff --git a/plugin.audio.radio_de/addon.xml b/plugin.audio.radio_de/addon.xml
index 57170ec..036d493 100644
--- a/plugin.audio.radio_de/addon.xml
+++ b/plugin.audio.radio_de/addon.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.audio.radio_de" name="Radio" version="1.1.0" 
provider-name="Tristan Fischer ([email protected])">
+<addon id="plugin.audio.radio_de" name="Radio" version="2.0.1" 
provider-name="Tristan Fischer ([email protected])">
   <requires>
     <import addon="xbmc.python" version="2.0"/>
-    <import addon="script.module.xbmcswift" version="0.2.0"/>
+    <import addon="script.module.xbmcswift2" version="1.2.0" />
     <import addon="script.module.simplejson" version="2.0.10"/>
   </requires>
   <extension point="xbmc.python.pluginsource" library="addon.py">
@@ -14,8 +14,10 @@
     <summary lang="en">Access &gt;4000 radio broadcasts</summary>
     <summary lang="de">Zugriff auf &gt;4000 Radiosender</summary>
     <summary lang="fr">Ecoutez plus de 4000 stations de radio</summary>
+    <summary lang="es">Escuche más de 4.000 emisoras de radio</summary>
     <description lang="en">Music plugin to access over 4000 international 
radio broadcasts from rad.io, radio.de and radio.fr[CR]Currently features[CR]- 
English, german and french translated[CR]- Browse stations by location, genre, 
topic, country, city and language[CR]- Search for stations[CR]- 115 genres, 59 
topics, 94 countrys, 1010 citys, 63 languages</description>
     <description lang="de">Das Radio im Internet mit über 4000 Radiosendern, 
Internetradio Stationen, gratis Streams und Podcasts live von rad.io, radio.de 
und radio.fr.[CR]Features[CR]- Auf deutsch, englisch und französisch 
übersetzt[CR]- Sortiert nach: in der nähe, Genre, Thema, Land und 
Sprache[CR]- nach Sendern suchen[CR]- 115 Genre, 59 Themen, 94 Länder, 1010 
Städte, 63 Sprachen</description>
     <description lang="fr">Plugin musical pour écouter plus de 4000 stations 
de radio internationales de rad.io, radio.de et 
radio.fr[CR]Fonctionnalités[CR]- Traduit en Anglais, Allemand et 
Français[CR]- Parcourir les stations par genre, thème, pays, ville et 
langue[CR]- Recherche de stations[CR]- 115 genres, 59 thèmes, 94 pays, 1010 
villes, 63 langues</description>
+    <description lang="es">Plugin de música para escuchar más de 4.000 
emisoras de radio internacionales desde rad.io, radio.de y 
radio.fr.[CR]Características:[CR]- Traducciones al inglés, alemán, francés 
y español.[CR]- Buscador de emisoras por ubicación, género, tema, país, 
ciudad o idioma.[CR]- Buscador de emisoras.[CR]- 115 géneros, 59 temas, 94 
países, 1.010 ciudades, 63 idiomas.</description>
   </extension>
 </addon>
\ No newline at end of file
diff --git a/plugin.audio.radio_de/changelog.txt 
b/plugin.audio.radio_de/changelog.txt
index 5980f7b..b3d180e 100644
--- a/plugin.audio.radio_de/changelog.txt
+++ b/plugin.audio.radio_de/changelog.txt
@@ -1,4 +1,21 @@
-1.1.0 (unreleased)
+2.0.1 (03.11.2012)
+    - added migration code to convert old my_stations to new system
+    - fixed unicode in custom station title
+    - Added spanish translation (thx to Patrizia)
+    - Added french translation (thx to stombi)
+
+2.0.0 (unreleased)
+    - Code Rewrite
+    - Possibility to add custom (user defined) Stations
+    - Thumbnail View (You can disable in the add-on settings)
+    - Change to the xbmcswift2 framework
+    - New Icon
+    - Possibilty to add Stations to the XBMC Favorites
+
+1.1.1 (Unreleased)
+    - Added spanish translation (thx to Patrizia)
+
+1.1.0 (13.07.2012)
     - New My Station logic (listing should be much faster after initial 
migration)
     - Small fixes
 
diff --git a/plugin.audio.radio_de/icon.png b/plugin.audio.radio_de/icon.png
index c5b6d64..f3d9a56 100644
Binary files a/plugin.audio.radio_de/icon.png and 
b/plugin.audio.radio_de/icon.png differ
diff --git a/plugin.audio.radio_de/resources/language/English/strings.xml 
b/plugin.audio.radio_de/resources/language/English/strings.xml
index cf972fd..5d94cfa 100644
--- a/plugin.audio.radio_de/resources/language/English/strings.xml
+++ b/plugin.audio.radio_de/resources/language/English/strings.xml
@@ -20,8 +20,20 @@
     <string id="30301">English</string>
     <string id="30302">German</string>
     <string id="30303">French</string>
+    <string id="30310">Force ViewMode to Thumbnail</string>
     
     <!-- Context Menu -->
     <string id="30400">Add to "My Stations"</string>
     <string id="30401">Remove from "My Stations"</string>
+    <string id="30402">Edit custom Station</string>
+
+    <!-- Custom Station -->
+    <string id="30500">Please enter %s</string> <!-- %s will be filled by 
30501, 30502 or 30503 -->
+    <string id="30501">title</string>
+    <string id="30502">thumbnail url or path</string>
+    <string id="30503">stream url</string>
+    <string id="30504">Add custom Station...</string>
+
+    <!-- Error Message -->
+    <string id="30600">Network Error</string>
 </strings>
diff --git a/plugin.audio.radio_de/resources/language/French/strings.xml 
b/plugin.audio.radio_de/resources/language/French/strings.xml
index 400c6c1..6b34b12 100644
--- a/plugin.audio.radio_de/resources/language/French/strings.xml
+++ b/plugin.audio.radio_de/resources/language/French/strings.xml
@@ -20,8 +20,20 @@
     <string id="30301">Anglais</string>
     <string id="30302">Allemand</string>
     <string id="30303">Français</string>
+    <string id="30310">Forcer la vue Vignette</string>
 
     <!-- Context Menu -->
     <string id="30400">Ajouter à "Mes stations"</string>
     <string id="30401">Supprimer de "Mes stations"</string>
-</strings>
\ No newline at end of file
+    <string id="30402">Modifier la station personnalisée</string>
+
+    <!-- Custom Station -->
+    <string id="30500">Veuillez entrer %s</string> <!-- %s will be filled by 
30501, 30502 or 30503 -->
+    <string id="30501">le titre</string>
+    <string id="30502">l'url de la vignette ou le chemin</string>
+    <string id="30503">l'url du flux</string>
+    <string id="30504">Ajouter une station personnalisée...</string>
+
+    <!-- Error Message -->
+    <string id="30600">Erreur réseau</string>
+</strings>
diff --git a/plugin.audio.radio_de/resources/language/German/strings.xml 
b/plugin.audio.radio_de/resources/language/German/strings.xml
index a608d73..c1cb65a 100644
--- a/plugin.audio.radio_de/resources/language/German/strings.xml
+++ b/plugin.audio.radio_de/resources/language/German/strings.xml
@@ -20,8 +20,20 @@
     <string id="30301">Englisch</string>
     <string id="30302">Deutsch</string>
     <string id="30303">Französisch</string>
+    <string id="30310">ViewMode "Thumbnail" erzwingen</string>
 
     <!-- Context Menu -->
     <string id="30400">Zu "Meine Sender" hinzufügen</string>
     <string id="30401">Von "Meine Sender" entfernen</string>
+    <string id="30402">Sender editieren</string>
+
+    <!-- Custom Station -->
+    <string id="30500">Bitte %s angeben</string> <!-- %s will be filled by 
30501, 30502 or 30503 -->
+    <string id="30501">Titel</string>
+    <string id="30502">Thumbnail url oder Pfad</string>
+    <string id="30503">Stream url</string>
+    <string id="30504">Neuen Sender anlegen...</string>
+
+    <!-- Error Message -->
+    <string id="30600">Netzwerk Fehler</string>
 </strings>
\ No newline at end of file
diff --git a/plugin.audio.radio_de/resources/settings.xml 
b/plugin.audio.radio_de/resources/settings.xml
index 6d284d8..51f3c0d 100644
--- a/plugin.audio.radio_de/resources/settings.xml
+++ b/plugin.audio.radio_de/resources/settings.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <settings>
        <setting id="language" type="enum" label="30300" 
lvalues="30301|30302|30303" default="0" />
+       <setting id="force_viewmode" type="bool" label="30310" default="true"/>
 </settings>

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

commit 7bdaffd572a92166090ce33adc917a63838a74d0
Author: spiff <[email protected]>
Date:   Tue Nov 6 09:22:52 2012 +0100

    [plugin.video.fox.news] updated to version 2.0.6

diff --git a/plugin.video.fox.news/addon.xml b/plugin.video.fox.news/addon.xml
index c23008f..78961ee 100644
--- a/plugin.video.fox.news/addon.xml
+++ b/plugin.video.fox.news/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

 <addon id="plugin.video.fox.news"

        name="Fox News"

-       version="2.0.5"

+       version="2.0.6"

        provider-name="divingmule">

     <requires>

         <import addon="xbmc.python" version="2.0"/>

diff --git a/plugin.video.fox.news/changelog.txt 
b/plugin.video.fox.news/changelog.txt
index a2c14a5..5f2309e 100644
--- a/plugin.video.fox.news/changelog.txt
+++ b/plugin.video.fox.news/changelog.txt
@@ -1,3 +1,6 @@
+Version 2.0.6

+fix website changes

+

 Version 2.0.5

 fix for setting type change

 

diff --git a/plugin.video.fox.news/default.py b/plugin.video.fox.news/default.py
index b227c51..971283c 100644
--- a/plugin.video.fox.news/default.py
+++ b/plugin.video.fox.news/default.py
@@ -51,10 +51,10 @@ def get_categories():
 

 

 def get_sub_categories(url):

-        if url.startswith('/?'):

-            url = 'http://video.foxnews.com'+url

-        elif url.startswith('//video.foxnews'):

+        if url.startswith('//video.foxnews'):

             url = 'http:'+url

+        elif url.startswith('/'):

+            url = 'http://video.foxnews.com'+url

         data = make_request(url)

         soup = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES)

         featured_name = soup.body.h1.contents[0].strip()


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

Summary of changes:
 plugin.audio.radio_de/addon.py                     |  533 ++++++++++----------
 plugin.audio.radio_de/addon.xml                    |    6 +-
 plugin.audio.radio_de/changelog.txt                |   19 +-
 plugin.audio.radio_de/icon.png                     |  Bin 25377 -> 7957 bytes
 .../resources/language/English/strings.xml         |   12 +
 .../resources/language/French/strings.xml          |   14 +-
 .../resources/language/German/strings.xml          |   12 +
 .../resources/language/Spanish/strings.xml         |   40 ++
 plugin.audio.radio_de/resources/lib/api.py         |  211 ++++++++
 plugin.audio.radio_de/resources/lib/test.py        |   46 ++
 plugin.audio.radio_de/resources/settings.xml       |    1 +
 .../LICENSE.txt                                    |    0
 plugin.audio.shoutcast/addon.py                    |  260 ++++++++++
 plugin.audio.shoutcast/addon.xml                   |   22 +
 plugin.audio.shoutcast/changelog.txt               |   14 +
 plugin.audio.shoutcast/icon.png                    |  Bin 0 -> 40472 bytes
 .../resources/__init__.py                          |    0
 .../resources/language/English/strings.xml         |   20 +
 .../resources/language/German/strings.xml          |   20 +
 .../resources/language/Spanish/strings.xml         |   20 +
 .../resources/lib}/__init__.py                     |    0
 plugin.audio.shoutcast/resources/lib/api.py        |  181 +++++++
 plugin.audio.shoutcast/resources/settings.xml      |    7 +
 plugin.video.fox.news/addon.xml                    |    2 +-
 plugin.video.fox.news/changelog.txt                |    3 +
 plugin.video.fox.news/default.py                   |    6 +-
 plugin.video.itunes_podcasts/addon.py              |   29 +-
 plugin.video.itunes_podcasts/addon.xml             |    2 +-
 plugin.video.itunes_podcasts/changelog.txt         |   12 +-
 29 files changed, 1192 insertions(+), 300 deletions(-)
 create mode 100644 plugin.audio.radio_de/resources/language/Spanish/strings.xml
 create mode 100644 plugin.audio.radio_de/resources/lib/api.py
 create mode 100644 plugin.audio.radio_de/resources/lib/test.py
 copy {plugin.audio.hvsc => plugin.audio.shoutcast}/LICENSE.txt (100%)
 create mode 100644 plugin.audio.shoutcast/addon.py
 create mode 100644 plugin.audio.shoutcast/addon.xml
 create mode 100644 plugin.audio.shoutcast/changelog.txt
 create mode 100644 plugin.audio.shoutcast/icon.png
 copy {plugin.audio.radio_de => plugin.audio.shoutcast}/resources/__init__.py 
(100%)
 create mode 100644 
plugin.audio.shoutcast/resources/language/English/strings.xml
 create mode 100644 plugin.audio.shoutcast/resources/language/German/strings.xml
 create mode 100644 
plugin.audio.shoutcast/resources/language/Spanish/strings.xml
 copy {plugin.audio.radio_de/resources => 
plugin.audio.shoutcast/resources/lib}/__init__.py (100%)
 create mode 100644 plugin.audio.shoutcast/resources/lib/api.py
 create mode 100644 plugin.audio.shoutcast/resources/settings.xml


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
LogMeIn Central: Instant, anywhere, Remote PC access and management.
Stay in control, update software, and manage PCs from one command center
Diagnose problems and improve visibility into emerging IT issues
Automate, monitor and manage. Do more in less time with Central
http://p.sf.net/sfu/logmein12331_d2d
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to