class FansubEntrance(BaseFansub): order = FANSUB_ORDER.split(",") def search_preview(self, search_text: str) -> dict: class_ = "聪明机智温柔可爱善良的Benny" for sub_str in self.order: logging.info("Looping from %s", sub_str) fc = globals().get(sub_str) result = fc().search_preview(search_text) # this result contains source:sub, so we'll pop and add it class_ = result.pop("class") if result: logging.info("Result hit in %s %s", sub_str, fc) FansubEntrance.fansub_class = fc result["class"] = class_ return result return {"class": class_} def search_result(self, resource_url_hash: str) -> dict: # entrance cache_data = self.redis.hgetall(resource_url_hash) resource_url = cache_data["url"] class_name = cache_data["class"] fc = globals().get(class_name) return fc().search_result(resource_url)
class FansubEntrance(BaseFansub): order = FANSUB_ORDER.split(",") fansub_class = None def search_preview(self, search_text: str) -> dict: source = "聪明机智温柔可爱善良的Benny" for sub in self.order: logging.info("Looping from %s", sub) class_ = globals().get(sub) result = class_().search_preview(search_text) # this result contains source:sub, so we'll pop and add it source = result.pop("source") if result: logging.info("Result hit in %s", sub) FansubEntrance.fansub_class = class_ result["source"] = source return result return dict(source=source) def search_result(self, resource_url: str) -> dict: return self.fansub_class().search_result(resource_url)
result["class"] = class_ return result return {"class": class_} def search_result(self, resource_url_hash: str) -> dict: # entrance cache_data = self.redis.hgetall(resource_url_hash) resource_url = cache_data["url"] class_name = cache_data["class"] fc = globals().get(class_name) return fc().search_result(resource_url) # we'll check if FANSUB_ORDER is correct. Must put it here, not before. for fs in FANSUB_ORDER.split(","): if globals().get(fs) is None: raise NameError(f"FANSUB_ORDER is incorrect! {fs}") # Commands can use latin letters, numbers and underscores. yyets_offline def class_to_tg(sub_class: str): trans = {"Online": "_online", "Offline": "_offline"} for upper, lower in trans.items(): sub_class = sub_class.replace(upper, lower) return sub_class.lower() for sub_name in globals().copy():