예제 #1
0
 def tradegood_lang2title(cls, tradegood, lang):
     filepath = os.path.join(FILE_DIR, "tmplt.{}.part.txt".format(lang))
     data = {
         "tradegood_name": Tradegood.tradegood_lang2name(tradegood, lang),
     }
     title = str2strip(HenriqueJinja2.textfile2text(filepath, data))
     return title
예제 #2
0
        def product2data(product):
            tg_codename = Product.product2tradegood(product)
            tg = Tradegood.codename2tradegood(tg_codename)

            h = {
                "name": Tradegood.tradegood_lang2name(tg, lang),
            }
            return h
예제 #3
0
    def codename_lang2json(cls, tradegood_codename, lang):
        ports = Port.tradegood2ports(tradegood_codename)
        tradegood = Tradegood.codename2tradegood(tradegood_codename)

        data = {cls.Field.TRADEGOOD_NAME: Tradegood.tradegood_lang2name(tradegood, lang),
                cls.Field.PORT_NAMES: sorted([Port.port_lang2name(port, lang) for port in ports],)
                }
        return data
예제 #4
0
    def codename_lang2text(cls, tradegood_codename, lang):
        tradegood = Tradegood.codename2tradegood(tradegood_codename)

        prefer_list = Prefer.tradegood2prefers(tradegood_codename)

        def prefer2culture_name(prefer):
            culture = Culture.codename2culture(Prefer.prefer2culture(prefer))
            culture_name = Culture.culture_lang2name(culture, lang)
            return culture_name

        preferred_culture_list = lmap(prefer2culture_name, prefer_list)
        preferred_cultures = ", ".join(preferred_culture_list)

        filepath = os.path.join(FILE_DIR, "tmplt.{}.part.txt".format(lang))
        data = {
            "tradegood_name": Tradegood.tradegood_lang2name(tradegood, lang),
            "preferred_cultures": preferred_cultures,
        }
        text_out = str2strip(HenriqueJinja2.textfile2text(filepath, data))

        return text_out
예제 #5
0
 def _price_lang2text(cls, price, tradegood_codename, lang):
     price_text = PriceSkill.price_lang2text(price, lang)
     tradegood_name = Tradegood.tradegood_lang2name(
         Tradegood.codename2tradegood(tradegood_codename), lang)
     return "{} {}".format(tradegood_name, price_text)
예제 #6
0
 def _dict_tradegood_en2port(cls):
     return merge_dicts([{cls.name2norm(Tradegood.tradegood_lang2name(tg, "en")): tg}
                         for tg in Tradegood.list_all()],
                        vwrite=vwrite_no_duplicate_key)
예제 #7
0
    def codename_lang2text(cls, tradegood_codename, lang):
        logger = HenriqueLogger.func_level2logger(cls.codename_lang2text,
                                                  logging.DEBUG)

        tradegood = Tradegood.codename2tradegood(tradegood_codename)

        filepath = os.path.join(FILE_DIR, "tmplt.{}.part.txt".format(lang))

        tgt_codename = Tradegood.tradegood2tradegoodtype(tradegood)
        tgt = Tradegoodtype.codename2tradegoodtype(
            tgt_codename) if tgt_codename else None
        category = Tradegoodtype.tradegoodtype2category(tgt) if tgt else None

        ports_selling = Port.tradegood2ports(tradegood_codename)
        prefers = Prefer.tradegood2prefers(tradegood_codename)

        # def prefers2cultures(prefers):
        #     culture_codenames = luniq(map(Prefer.prefer2culture, prefers))
        #     return lmap(Culture.codename2culture, culture_codenames)

        culture_codenames_preferred = luniq(map(Prefer.prefer2culture,
                                                prefers)) if prefers else []
        # culture_list_preferred = prefers2cultures(prefers) if prefers else []
        port_list_preferred = lchain(
            *map(Port.culture2ports, culture_codenames_preferred))

        def port2is_resistant(port):
            if not tgt:
                return False

            products = Product.port2products(Port.port2codename(port))
            tgt_codenames_port = smap(Product.product2tradegoodtype, products)

            logger.debug({
                "tgt": tgt,
                "tgt_codenames_port": tgt_codenames_port
            })
            return Tradegoodtype.tradegoodtype2codename(
                tgt) in tgt_codenames_port

        port_list_preferred_resistant = lfilter(port2is_resistant,
                                                port_list_preferred)

        def ports2str(ports):
            if not ports:
                return None

            return ", ".join(
                [Port.port_lang2name(port, lang) for port in ports])

        def culture_codenames2str(culture_codenames):
            if not culture_codenames:
                return None

            logger.debug({"culture_codenames": culture_codenames})
            cultures = lmap(Culture.codename2culture, culture_codenames)
            return ", ".join([
                Culture.culture_lang2name(culture, lang)
                for culture in cultures
            ])

        logger.debug(
            {"culture_codenames_preferred": culture_codenames_preferred})

        data = {
            "name":
            Tradegood.tradegood_lang2name(tradegood, lang),
            "category":
            Tradegoodcategory.tradegoodcategory2str(category)
            if category else None,
            "tradegoodtype":
            Tradegoodtype.tradegoodtype_lang2name(tgt, lang) if tgt else None,
            "ports_selling":
            ports2str(ports_selling),
            "cultures_preferred":
            culture_codenames2str(culture_codenames_preferred),
            "ports_preferred_resistant":
            ports2str(port_list_preferred_resistant),
        }
        text_out = str2strip(HenriqueJinja2.textfile2text(filepath, data))

        return text_out