# -*- coding: cp949 -*- import urllib2 import codeshift import util from api_base_v3 import api_base_v3 class api_album_v3(api_base_v3): ''' Maniadb OpenAPI v0.3 앨범 상세 정보 검색 클래스 ''' def search(self, album_id): ''' 앨범 상세 정보 검색 함수 Args: album_id: 앨범의 아이디. Maniadb에서 자체적으로 앨범마다 지정한 수. 문자열로 된 숫자나 실제 정수형이나 관계없이 입력 가능. 텍스트의 경우 가급적 유니코드로 입력할 것. Returns: 서버로부터 전달된 응답 문서. XML 형식으로 되어 있다. 만일 네트워크 장애로 XML 문서를 전달받지 못한 경우 None을 리턴한다. Raises: ''' request_url = codeshift.uni2utf8(self.__make_request_url(album_id)) try: req = urllib2.urlopen(request_url) except Exception as e: util.trace_error(u'An error in api_album_v3:', e) return None return req.read(self.max_buffer) def __make_request_url(self, album_id): ''' 요청 URL 생성 함수 ''' _url = self.__REQUEST_BASE_URL _url += u'?key=' + self.api_key _url += u'&' + self.api_version _url += u'&a=' + str(album_id) return _url __REQUEST_BASE_URL = u'http://www.maniadb.com/api/album.asp' if __name__ == '__main__': album = api_album_v3() r = album.search(121480) if r: print codeshift.utf82loc(r)