Example #1
0
 def getSessionID(self):
     http = httplib2.Http()
     url = 'http://listen.grooveshark.com'
     response, src = http.request(url, 'GET', headers=HEADER)
     src = src.lower().replace(' ', '')
     start = src.find('session')
     end = src[start:].find("',")
     startSession = src[start:end + start].find("'") + 1
     return src[startSession + start:end + start]
Example #2
0
    def GetFileSize(self, songKey, streamServer, proxy=False):
        http = httplib2.Http()
        url = 'http://' + streamServer + '/stream.php'  #use self. so that any outer program can access it (not local)
        params = urllib.urlencode({'streamKey': songKey})

        if proxy:
            f = proxy.open(url, params)
        else:
            f = urllib.urlopen(url, params)
        file_size = f.info().dict['content-length']
        return file_size
Example #3
0
 def popular(self):
     http = httplib2.Http()
     url = 'http://cowbell.grooveshark.com/more.php?popularGetSongs'
     popularPOSTdata = (
         '''{"header":{"token":"%s","session":"%s","uuid":"%s","client":"gslite","clientRevision":"%s"},'''
         '''"parameters":{},"method":"popularGetSongs"}''' %
         (self.token, self.session, self.uuid, self.clientRevision))
     request, reply = http.request(url,
                                   'POST',
                                   headers=HEADER,
                                   body=popularPOSTdata)
     return json.loads(reply)['result']['Songs']
Example #4
0
 def getToken(self):
     http = httplib2.Http()
     url = 'https://cowbell.grooveshark.com/service.php'
     self.secretKey = hashlib.md5(self.session).hexdigest()
     tokenPOSTdata = (
         '''{"header":{"session":"%s","uuid":"%s","client":"gslite","clientRevision":"%s"},'''
         '''"parameters":{"secretKey":"%s"},"method":"getCommunicationToken"}'''
         % (self.session, self.uuid, self.clientRevision, self.secretKey))
     request, reply = http.request(url,
                                   'POST',
                                   headers=HEADER,
                                   body=tokenPOSTdata)
     return json.loads(reply)['result']
Example #5
0
 def search(self, search_string):
     http = httplib2.Http()
     data = (
         '''{"header":{"session":"%s","uuid":"%s","client":"gslite","clientRevision":"%s","token":"%s"},'''
         '''"parameters":{"type":"Songs","query":"%s"},"method":"getSearchResults"}'''
         % (self.session, self.uuid, self.clientRevision, self.token,
            search_string.lower()))
     self.response, self.result = http.request(self.search_url,
                                               'POST',
                                               headers=header,
                                               body=data)
     self.result = self.result
     self.searchResults = json.loads(self.result)['result']['Return']
     return self.searchResults
Example #6
0
    def download(self, songKey, streamServer, file_name, proxy=None):
        http = httplib2.Http()
        #use self. so that any outer program can access it (not local)
        self.mp3URL = 'http://' + streamServer + '/stream.php'
        data = {}
        data['streamKey'] = songKey
        #@@songHeader = dict(header)
        #@@songHeader['content-length'] = str(len(urllib.urlencode(data)))
        #@@songHeader['content-type'] = 'application/x-www-form-urlencoded'
        #@@response, self.song = http.request(self.mp3URL, 'POST', headers = songHeader, body = urllib.urlencode(data))
        #@@print response

        #{'content-length': '30', 'content-type': 'application/x-www-form-urlencoded', 'u
        #ser-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/2
        #0090824 Firefox/3.5.3 (.NET CLR 3.5.30729)'}

        # using urlgrabber to grab the file, more responsive than httplib2,
        # file saves as it downloads as opposed to when completed
        headers = (
            ('content-length', str(len(urllib.urlencode(data)))),
            ('content-type', 'application/x-www-form-urlencoded'),
            ('user-agent', HEADER['user-agent']),
        )
        #prog = urlgrabber.progress.text_progress_meter()
        #response = urlgrabber.urlopen(self.mp3URL, data=urllib.urlencode(data), http_headers=headers) #, progress_obj=prog)
        #response = urlgrabber.urlread(self.mp3URL, data=urllib.urlencode(data), http_headers=headers) #, progress_obj=prog)
        #file_name = system_files.GetDirectories(self.parent).BuildTempFile('temp.mp3')
        #proxies={ 'http' : 'http://*****:*****@@f = open('temp.mp3', 'wb')
        #@@f.write(self.song)
        #@@f.close()
        return response
Example #7
0
 def songKeyfromID(self, id):
     http = httplib2.Http()
     self.songID = id
     songKeyURL = '  http://cowbell.grooveshark.com/more.php?getStreamKeyFromSongID'
     songKeyPOSTdata = (
         '''{"header":{"token":"%s","session":"%s","uuid":"%s","client":"gslite","clientRevision":"%s"},'''
         '''"parameters":{"songID":%s,"prefetch":false},"method":"getStreamKeyFromSongID"}'''
     ) % (self.token, self.session, self.uuid, self.clientRevision,
          self.songID)
     request, reply = http.request(songKeyURL,
                                   'POST',
                                   headers=HEADER,
                                   body=songKeyPOSTdata)
     self.reply = json.loads(reply)['result']
     print reply
     streamServer = self.reply['result']['streamServer']
     self.songKey = self.reply['result']['streamKey']
     return (self.songKey, streamServer)