diff --git a/addons.xml b/addons.xml index 56d1b7c..a833351 100644 --- a/addons.xml +++ b/addons.xml @@ -23,7 +23,7 @@ provider-name="pieh"> - + @@ -35,7 +35,7 @@ @@ -52,9 +52,9 @@ provider-name="pieh"> - - - + + + - - - + + + 0: + ArtistStr = ArtistStr + '&' + + ArtistStr = ArtistStr + 'artists[]=' + urllib.quote(art['name']) + + Artists + + url = 'http://api.bandsintown.com/events/search?%sformat=json&location=use_geoip&app_id=%s' % (ArtistStr, bandsintown_apikey) + + log('request: %s' % url) + + response = GetStringFromUrl(url) + results = json.loads(response) + + return HandleResult(results) diff --git a/script.ExtraMusicInfo/Utils.py b/script.ExtraMusicInfo/Utils.py index 4b4bfa0..6e2f2e0 100644 --- a/script.ExtraMusicInfo/Utils.py +++ b/script.ExtraMusicInfo/Utils.py @@ -4,7 +4,8 @@ def log(msg): print ' >> script.ExtraMusicInfo: %s' % str(msg) def GetStringFromUrl(encurl): - f = urllib.urlopen( encurl ) + + f = urllib.urlopen( encurl) doc = f.read() f.close() diff --git a/script.ExtraMusicInfo/default.py b/script.ExtraMusicInfo/default.py index 5ead4cb..85b027c 100644 --- a/script.ExtraMusicInfo/default.py +++ b/script.ExtraMusicInfo/default.py @@ -8,12 +8,13 @@ import os from MusicBrainz import GetMusicBrainzId, SetMusicBrainzIDsForAllArtists -from BandsInTown import GetEvents +from BandsInTown import GetEvents, GetNearEvents from Lastfm import GetSimiliarById from Utils import log, GetStringFromUrl, GetValue, GetAttribute, Notify +import xbmcaddon def GetXBMCArtists(): - sqlQuery = "SELECT DISTINCT artist.strArtist, song.idArtist, song.strMusicBrainzArtistID FROM song JOIN artist ON artist.idArtist=song.idArtist" + sqlQuery = "SELECT DISTINCT artist.strArtist, song.idArtist, song.strMusicBrainzArtistID FROM song JOIN artist ON artist.idArtist=song.idArtist ORDER BY COUNT(song.idSong) DESC" results = xbmc.executehttpapi( "QueryMusicDatabase(%s)" % urllib.quote_plus( sqlQuery ) ) records = re.findall( "(.+?)", results, re.DOTALL ) @@ -42,12 +43,13 @@ def GetThumbForArtistName(ArtistName): return thumb +''' def GetArtists(): retval = xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "AudioLibrary.GetArtists", "id": 1 }') results = json.loads(retval) return results['result']['artists'] - +''' def GetSimiliarInLibrary(id): simi_artists = GetSimiliarById(id) if simi_artists == None: @@ -90,7 +92,9 @@ def passDataToSkin(prefix, data): if data != None: wnd.setProperty('%s.Count' % prefix, str(len(data))) + log( "%s.Count = %s" % (prefix, str(len(data)) ) ) for (count, result) in enumerate(data): + log( "%s.%i = %s" % (prefix, count + 1, str(result) ) ) for (key,value) in result.iteritems(): wnd.setProperty('%s.%i.%s' % (prefix, count + 1, str(key)), unicode(value)) else: @@ -125,21 +129,55 @@ def passDataToSkin(prefix, data): elif param.startswith('window='): Window = int(arg[7:]) + elif param.startswith('settuplocation'): + settings = xbmcaddon.Addon(id='script.ExtraMusicInfo') + country = settings.getSetting('country') + city = settings.getSetting('city') + + log('stored country/city: %s/%s' % (country, city) ) + + kb = xbmc.Keyboard('', 'Country:') + kb.doModal() + country = kb.getText() + + kb = xbmc.Keyboard('', 'City:') + kb.doModal() + city = kb.getText() + + log('country/city: %s/%s' % (country, city) ) + + settings.setSetting('location_method', 'country_city') + settings.setSetting('country',country) + settings.setSetting('city',city) + + log('done with settings') + else: AdditionalParams.append(param) - + +passDataToSkin('SimiliarArtists', None) +passDataToSkin('MusicEvents', None) + for info in infos: if info == 'similiarartistsinlibrary': - passDataToSkin('SimiliarArtists', None) artists = GetSimiliarInLibrary(Artist_mbid) - passDataToSkin('SimiliarArtists', artists) + passDataToSkin('SimiliarArtistsInLibrary', artists) - elif info == 'artistsevents': - passDataToSkin('MusicEvents', None) + elif info == 'artistevents': events = GetEvents(Artist_mbid) - passDataToSkin('MusicEvents', events) + passDataToSkin('ArtistEvents', events) + + elif info == 'nearevents': + events = GetNearEvents() + passDataToSkin('NearEvents', events) + + elif info == 'topartistsnearevents': + artists = GetXBMCArtists() + + events = GetNearEvents(artists[0:15]) + passDataToSkin('TopArtistsNearEvents', events) elif info == 'updatexbmcdatabasewithartistmbidbg': SetMusicBrainzIDsForAllArtists(False, 'forceupdate' in AdditionalParams) elif info == 'updatexbmcdatabasewithartistmbid': - SetMusicBrainzIDsForAllArtists(True, 'forceupdate' in AdditionalParams) \ No newline at end of file + SetMusicBrainzIDsForAllArtists(True, 'forceupdate' in AdditionalParams) diff --git a/script.ExtraMusicInfo/script.ExtraMusicInfo-0.0.2.zip b/script.ExtraMusicInfo/script.ExtraMusicInfo-0.0.2.zip index 716bae3..f36c11c 100644 Binary files a/script.ExtraMusicInfo/script.ExtraMusicInfo-0.0.2.zip and b/script.ExtraMusicInfo/script.ExtraMusicInfo-0.0.2.zip differ diff --git a/script.ImageCacher/addon.xml b/script.ImageCacher/addon.xml index a266460..f9776f6 100644 --- a/script.ImageCacher/addon.xml +++ b/script.ImageCacher/addon.xml @@ -5,7 +5,7 @@ provider-name="pieh"> - + diff --git a/script.ImageCacher/script.ImageCacher-0.0.1.zip b/script.ImageCacher/script.ImageCacher-0.0.1.zip index 0c62aa9..8489967 100644 Binary files a/script.ImageCacher/script.ImageCacher-0.0.1.zip and b/script.ImageCacher/script.ImageCacher-0.0.1.zip differ diff --git a/script.module.rssengine/script.module.rssengine-1.0.3.zip b/script.module.rssengine/script.module.rssengine-1.0.3.zip new file mode 100644 index 0000000..3eed018 Binary files /dev/null and b/script.module.rssengine/script.module.rssengine-1.0.3.zip differ diff --git a/script.rssclient-standalone/addon.xml b/script.rssclient-standalone/addon.xml index e7d6a67..f52d5b9 100644 --- a/script.rssclient-standalone/addon.xml +++ b/script.rssclient-standalone/addon.xml @@ -5,9 +5,9 @@ provider-name="pieh"> - - - + + + - - - + + +