Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
                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():