本文整理汇总了Python中aniDBmaper.AniDBMaper类的典型用法代码示例。如果您正苦于以下问题:Python AniDBMaper类的具体用法?Python AniDBMaper怎么用?Python AniDBMaper使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AniDBMaper类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Episode
class Episode(aniDBabstractObject):
def __init__(self, aniDB, number=None, epid=None, filePath=None, fid=None, epno=None, paramsA=None, paramsF=None, load=False, calculate=False):
if not aniDB and not number and not epid and not file and not fid:
return None
self.maper = AniDBMaper()
self.epid = epid
self.filePath = filePath
self.fid = fid
self.epno = epno
if calculate:
(self.ed2k, self.size) = self._calculate_file_stuff(self.filePath)
if not paramsA:
self.bitCodeA = "C000F0C0"
self.paramsA = self.maper.getFileCodesA(self.bitCodeA)
else:
self.paramsA = paramsA
self.bitCodeA = self.maper.getFileBitsA(self.paramsA)
if not paramsF:
self.bitCodeF = "7FF8FEF8"
self.paramsF = self.maper.getFileCodesF(self.bitCodeF)
else:
self.paramsF = paramsF
self.bitCodeF = self.maper.getFileBitsF(self.paramsF)
super(Episode, self).__init__(aniDB, load)
def load_data(self):
"""load the data from anidb"""
if self.filePath and not (self.ed2k or self.size):
(self.ed2k, self.size) = self._calculate_file_stuff(self.filePath)
self.rawData = self.aniDB.file(fid=self.fid, size=self.size, ed2k=self.ed2k, aid=self.aid, aname=None, gid=None, gname=None, epno=self.epno, fmask=self.bitCodeF, amask=self.bitCodeA)
self._fill(self.rawData.datalines[0])
self._build_names()
self.laoded = True
def add_to_mylist(self, status=None):
"""
status:
0 unknown - state is unknown or the user doesn't want to provide this information (default)
1 on hdd - the file is stored on hdd
2 on cd - the file is stored on cd
3 deleted - the file has been deleted or is not available for other reasons (i.e. reencoded)
"""
if self.filePath and not (self.ed2k or self.size):
(self.ed2k, self.size) = self._calculate_file_stuff(self.filePath)
try:
self.aniDB.mylistadd(size=self.size, ed2k=self.ed2k, state=status)
except Exception, e :
self.log(u"exception msg: " + str(e))
else:
示例2: __init__
def __init__(self, aniDB, number=None, epid=None, filePath=None, fid=None, epno=None, paramsA=None, paramsF=None, load=False, calculate=False):
self.maper = AniDBMaper()
self.epid = epid
self.filePath = filePath
self.fid = fid
self.epno = epno
if calculate:
(self.ed2k, self.size) = self._calculate_file_stuff(self.filePath)
if not paramsA:
self.bitCodeA = "C000F0C0"
self.paramsA = self.maper.getFileCodesA(self.bitCodeA)
else:
self.paramsA = paramsA
self.bitCodeA = self.maper.getFileBitsA(self.paramsA)
if not paramsF:
self.bitCodeF = "7FF8FEF8"
self.paramsF = self.maper.getFileCodesF(self.bitCodeF)
else:
self.paramsF = paramsF
self.bitCodeF = self.maper.getFileBitsF(self.paramsF)
super(Episode, self).__init__(aniDB, load)
示例3: __init__
def __init__(self, aniDB, number=None, epid=None, filePath=None, fid=None, epno=None, paramsA=None, paramsF=None, load=False):
if not aniDB and not number and not epid and not file and not fid:
return None
self.maper = AniDBMaper()
self.epid = epid
self.filePath = filePath
self.fid = fid
self.epno = epno
if not paramsA:
self.bitCodeA = "C000F0C0"
self.paramsA = self.maper.getFileCodesA(self.bitCodeA)
else:
self.paramsA = paramsA
self.bitCodeA = self.maper.getFileBitsA(self.paramsA)
if not paramsF:
self.bitCodeF = "7FF8FEF8"
self.paramsF = self.maper.getFileCodesF(self.bitCodeF)
else:
self.paramsF = paramsF
self.bitCodeF = self.maper.getFileBitsF(self.paramsF)
aniDBabstractObject.__init__(self, aniDB, load)
示例4: Anime
class Anime(aniDBabstractObject):
def __init__(self, aniDB, name=None, aid=None, tvdbid=None, paramsA=None, autoCorrectName=False, load=False):
self.maper = AniDBMaper()
self.tvDBMap = TvDBMap()
self.allAnimeXML = None
self.name = name
self.aid = aid
self.tvdb_id = tvdbid
if self.tvdb_id and not self.aid:
self.aid = self.tvDBMap.get_anidb_for_tvdb(self.tvdb_id)
if not (self.name or self.aid):
raise AniDBIncorrectParameterError("No aid or name available")
if not self.aid:
self.aid = self._get_aid_from_xml(self.name)
if not self.name or autoCorrectName:
self.name = self._get_name_from_xml(self.aid)
if not (self.name or self.aid):
raise ValueError
if not self.tvdb_id:
self.tvdb_id = self.tvDBMap.get_tvdb_for_anidb(self.aid)
if not paramsA:
self.bitCode = "b2f0e0fc000000"
self.params = self.maper.getAnimeCodesA(self.bitCode)
else:
self.paramsA = paramsA
self.bitCode = self.maper.getAnimeBitsA(self.paramsA)
super(Anime, self).__init__(aniDB, load)
def load_data(self):
"""load the data from anidb"""
if not (self.name or self.aid):
raise ValueError
self.rawData = self.aniDB.anime(aid=self.aid, aname=self.name, amask=self.bitCode)
if self.rawData.datalines:
self._fill(self.rawData.datalines[0])
self._builPreSequal()
self.laoded = True
def get_groups(self):
if not self.aid:
return []
self.rawData = self.aniDB.groupstatus(aid=self.aid)
self.release_groups = []
for line in self.rawData.datalines:
self.release_groups.append({"name":unicode(line["name"], "utf-8"),
"rating":line["rating"],
"range":line["episode_range"]
})
return self.release_groups
#TODO: refactor and use the new functions in anidbFileinfo
def _get_aid_from_xml(self, name):
if not self.allAnimeXML:
self.allAnimeXML = self._read_animetitels_xml()
regex = re.compile('( \(\d{4}\))|[%s]' % re.escape(string.punctuation)) # remove any punctuation and e.g. ' (2011)'
#regex = re.compile('[%s]' % re.escape(string.punctuation)) # remove any punctuation and e.g. ' (2011)'
name = regex.sub('', name.lower())
lastAid = 0
for element in self.allAnimeXML.getiterator():
if element.get("aid", False):
lastAid = int(element.get("aid"))
if element.text:
testname = regex.sub('', element.text.lower())
if testname == name:
return lastAid
return 0
#TODO: refactor and use the new functions in anidbFileinfo
def _get_name_from_xml(self, aid, onlyMain=True):
if not self.allAnimeXML:
self.allAnimeXML = self._read_animetitels_xml()
for anime in self.allAnimeXML.findall("anime"):
if int(anime.get("aid", False)) == aid:
for title in anime.getiterator():
currentLang = title.get("{http://www.w3.org/XML/1998/namespace}lang", False)
currentType = title.get("type", False)
if (currentLang == "en" and not onlyMain) or currentType == "main":
return title.text
return ""
def _read_animetitels_xml(self, path=None):
if not path:
path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "animetitles.xml")
f = open(path, "r")
#.........这里部分代码省略.........
示例5: Anime
class Anime(aniDBabstractObject):
def __init__(self, aniDB, name=None, aid=None, paramsA=None, autoCorrectName=False, load=False):
self.maper = AniDBMaper()
self.allAnimeXML = None
self.name = name
self.aid = aid
if not (self.name or self.aid):
raise AniDBIncorrectParameterError("No aid or name available")
if not (self.name or self.aid):
raise ValueError
if not paramsA:
self.bitCode = "b2f0e0fc000000"
self.params = self.maper.getAnimeCodesA(self.bitCode)
else:
self.paramsA = paramsA
self.bitCode = self.maper.getAnimeBitsA(self.paramsA)
aniDBabstractObject.__init__(self, aniDB, load)
def load_data(self):
"""load the data from anidb"""
if not (self.name or self.aid):
raise ValueError
self.rawData = self.aniDB.anime(aid=self.aid, aname=self.name, amask=self.bitCode)
if self.rawData.datalines:
self.fill(self.rawData.datalines[0])
self.builPreSequal()
self.loaded = True
def get_groups(self):
if not self.aid:
return []
self.rawData = self.aniDB.groupstatus(aid=self.aid)
self.release_groups = []
for line in self.rawData.datalines:
self.release_groups.append({"name":unicode(line["name"], "utf-8"),
"rating":line["rating"],
"range":line["episode_range"]
})
return self.release_groups
def builPreSequal(self):
if self.dataDict.has_key('related_aid_list') and self.dataDict.has_key('related_aid_type'):
try:
for i in range(len(self.related_aid_list)):
if self.related_aid_type[i] == 2:
self.dataDict["prequal"] = self.dataDict['related_aid_list'][i]
elif self.related_aid_type[i] == 1:
self.dataDict["sequal"] = self.dataDict['related_aid_list'][i]
except:
if self.related_aid_type == 2:
self.dataDict["prequal"] = self.dataDict['related_aid_list']
elif self.str_related_aid_type == 1:
self.dataDict["sequal"] = self.dataDict['related_aid_list']