-import urllib2, md5, unicodedata, re, os, traceback, sys, pickle, socket, xbmc
-from operator import itemgetter, attrgetter
+import urllib2, md5, os, traceback, sys, pickle, socket, xbmc
+from operator import itemgetter
class LoginTokensExceededError(Exception):
def __init__(self):
return []
def startSession(self):
- response = urllib2.urlopen("http://www.moovida.com/services/grooveshark/session_start")
- result = response.read()
- result = self.simplejson.loads(result)
- response.close()
+ try:
+ response = urllib2.urlopen("http://www.moovida.com/services/grooveshark/session_start")
+ result = response.read()
+ result = self.simplejson.loads(result)
+ response.close()
+ except:
+ return ''
+
if 'fault' in result:
return ''
else:
return 0
else:
return 0
+
+ def playlistCreateUnique(self, name, songIds):
+ if self.loggedIn == 1:
+ result = self.callRemote("playlist.createunique", {"name": name, "songIDs": songIds})
+ if 'result' in result:
+ return result['result']['playlistID']
+ else:
+ return 0
+ else:
+ return 0
def playlistGetSongs(self, playlistId, limit=25):
result = self.callRemote("playlist.getSongs", {"playlistID": playlistId})
def playlistDelete(self, playlistId):
if self.loggedIn == 1:
- return self.callRemote("playlist.delete", {"playlistID": playlistId})
+ result = self.callRemote("playlist.delete", {"playlistID": playlistId})
+ if 'fault' in result:
+ return 0
+ else:
+ return 1
+ else:
+ return 0
def playlistRename(self, playlistId, name):
if self.loggedIn == 1:
return 1
else:
return 0
+
+ def playlistDeleteSong(self, playlistId, position):
+ if self.loggedIn == 1:
+ result = self.callRemote("playlist.removeSong", {"playlistID": playlistId, "position": position})
+ if 'fault' in result:
+ return 0
+ else:
+ return 1
+ else:
+ return 0
def playlistReplace(self, playlistId, songIds):
if self.loggedIn == 1:
f = open(path, 'rb')
radio = pickle.load(f)
f.close()
- print radio
except:
print "Failed to open " + path
radio = {}
s['artistID'],\
s['albumName'].encode('ascii', 'ignore'),\
s['albumID'],\
- s['image']['tiny'].encode('ascii', 'ignore')])
+ s['image']['medium'].encode('ascii', 'ignore')])
except:
print 'GrooveShark: Could not parse album number: ' + str(i)
traceback.print_exc()