def request_data(self, title, artist):
     quote_title = urllib.quote(title)
     quote_artist = urllib.quote(artist)
     raw_data = public_curl.get(self.TTPOD_SEARCH_URL % (quote_title, quote_artist))
     json_data = parser_json(raw_data)
     lrc_data = json_data.get('data', {}).get('lrc', None)
     return lrc_data
 def api_request(self, url, method="GET", extra_data=dict(), retry_limit=2,  **params):
     ret = None
     data = {}
     data.update(extra_data)
     data.update(params)
     for key in data:
         if callable(data[key]):
             data[key] = data[key]()
         if isinstance(data[key], (list, tuple, set)):
             data[key] = ",".join(map(str, list(data[key])))
         if isinstance(data[key], unicode):    
             data[key] = data[key].encode("utf-8")
             
     try:        
         if method == "GET":        
             if data:
                 query = urllib.urlencode(data)
                 url = "%s?%s" % (url, query)
             ret = public_curl.get(url)
         elif method == "POST":
             body = urllib.urlencode(data)
             ret = public_curl.post(url, body)
     except CurlException:        
         if retry_limit == 0:
             return data
         else:
             retry_limit -= 1
             return self.api_request(url, method, extra_data, retry_limit, **params)
         
     data = common.parser_json(ret)       
     return data
예제 #3
0
 def request_data(self, title, artist):
     quote_title = urllib.quote(title)
     quote_artist = urllib.quote(artist)
     raw_data = public_curl.get(self.TTPOD_SEARCH_URL %
                                (quote_title, quote_artist))
     json_data = parser_json(raw_data)
     lrc_data = json_data.get('data', {}).get('lrc', None)
     return lrc_data
예제 #4
0
def query_artist_cover_from_xiami(artist_name):
    xiami_search_url = "http://www.xiami.com/search?key={0}&pos=1"
    search_url = xiami_search_url.format(artist_name)
    html = public_curl.get(search_url)
    
    try:
        search_query = PyQuery(html)
    except Exception, e:    
        return False
예제 #5
0
def read_entire_file(uri):
    ''' Return entire_file content. '''
    data = ""
    if get_scheme(uri) == "file":
        f = file(get_path_from_uri(uri), "r")
        data = f.read()
        f.close()
    else:    
        try:
            data = public_curl.get(uri)
        except CurlException, e:    
            logger.logexception("failed read %s, %s", uri, e)
            data = ""
예제 #6
0
def read_entire_file(uri):
    ''' Return entire_file content. '''
    data = ""
    if get_scheme(uri) == "file":
        f = file(get_path_from_uri(uri), "r")
        data = f.read()
        f.close()
    else:
        try:
            data = public_curl.get(uri)
        except CurlException, e:
            logger.logexception("failed read %s, %s", uri, e)
            data = ""
예제 #7
0
def query_album_cover_from_xiami(artist_name, album_name):    
    if not artist_name and not album_name:
        return False
    xiami_album_search_url = 'http://www.xiami.com/search/album?key=' + artist_name + '+' + album_name
    html = public_curl.get(xiami_album_search_url)
    try:
        search_result_object = PyQuery(html)
        album_info_element = search_result_object('div.albumBlock_list div.album_item100_block p.cover a.CDcover100 img')
        info_href_attr = album_info_element.attr('src')
        if not info_href_attr: return False
        return info_href_attr.replace("_1", "_2")
    except:
        return False
 def request(self, title, artist):
     quote_title = urllib.quote(title)
     quote_artist = urllib.quote(artist)
     
     raw_data = public_curl.get(self.TTPOD_SEARCH_URL % (quote_title, quote_artist))
     json_data = parser_json(raw_data)
     
     lrc_infos = []
     lrc_data = json_data.get('data', {}).get('lrc', None)
     if lrc_data:
         temp_url = self.save_to_temp(lrc_data)
         lrc_infos.append((artist, title, temp_url))
     return lrc_infos    
예제 #9
0
    def request(self, title, artist):
        quote_title = urllib.quote(title)
        quote_artist = urllib.quote(artist)

        raw_data = public_curl.get(self.TTPOD_SEARCH_URL %
                                   (quote_title, quote_artist))
        json_data = parser_json(raw_data)

        lrc_infos = []
        lrc_data = json_data.get('data', {}).get('lrc', None)
        if lrc_data:
            temp_url = self.save_to_temp(lrc_data)
            lrc_infos.append((artist, title, temp_url))
        return lrc_infos
예제 #10
0
def query_album_cover_from_xiami(artist_name, album_name):    
    if not is_network_connected():
        return None
    
    if not artist_name and not album_name:
        return False
    xiami_album_search_url = 'http://www.xiami.com/search/album?key=' + artist_name + '+' + album_name
    html = public_curl.get(xiami_album_search_url)
    try:
        search_result_object = PyQuery(html)
        album_info_element = search_result_object('div.albumBlock_list div.album_item100_block p.cover a.CDcover100 img')
        info_href_attr = album_info_element.attr('src')
        if not info_href_attr: return False
        return info_href_attr.replace("_1", "_2")
    except:
        return False
예제 #11
0
    def api_request(self,
                    url,
                    method="GET",
                    extra_data=dict(),
                    retry_limit=2,
                    **params):
        ret = None
        data = {}
        data.update(extra_data)
        data.update(params)
        for key in data:
            if callable(data[key]):
                data[key] = data[key]()
            if isinstance(data[key], (list, tuple, set)):
                data[key] = ",".join(map(str, list(data[key])))
            if isinstance(data[key], unicode):
                data[key] = data[key].encode("utf-8")

        try:
            if method == "GET":
                if data:
                    query = urllib.urlencode(data)
                    url = "%s?%s" % (url, query)
                ret = public_curl.get(url)
            elif method == "POST":
                body = urllib.urlencode(data)
                ret = public_curl.post(url, body)
        except CurlException:
            if retry_limit == 0:
                return data
            else:
                retry_limit -= 1
                return self.api_request(url, method, extra_data, retry_limit,
                                        **params)

        data = common.parser_json(ret)
        return data