def j_page2text(cls, j_page): logger = FoxylibLogger.func_level2logger(cls.j_page2text, logging.DEBUG) j_responspan_list = jdown(j_page, ["responses"]) if j_responspan_list is None: return None assert_true(j_responspan_list, j_page) j_response = l_singleton2obj(j_responspan_list) str_text = jdown(j_response, ["fullTextAnnotation", "text"]) return str_text
def _j_stats_jpaths2comprank(cls, j_stats, jpath_list): comprank_list = lfilter( is_not_none, map(lambda jpath: jdown(j_stats, jpath), jpath_list)) if not comprank_list: return None return list2singleton(comprank_list)
def tuple2pair(cls, t): logger = HenriqueLogger.func_level2logger(cls.tuple2pair, logging.DEBUG) def chatuser_uuid2channel_user(chatuser_uuid, alias=None): if not chatuser_uuid: return None row = ChatuserTable.uuid2row(chatuser_uuid) if not row: logger.debug({"chatuser_uuid":chatuser_uuid}) return None channel_user = ChatuserTable.row2channel_user(row, alias=alias) return channel_user j_postgres = t[PortTradegoodStateTable.index_json()] sender_name = j_postgres.get("sender_name") created_at = DatetimeTool.fromisoformat(j_postgres["created_at"]) port_name_en = PortTradegoodStateTable.tuple2port_name_en(t) port = cls.name_en2port(port_name_en) tradegood_name_en = PortTradegoodStateTable.tuple2tradegood_name_en(t) tradegood = cls.name_en2tradegood(tradegood_name_en) rate = PortTradegoodStateTable.tuple2rate(t) trend = PortTradegoodStateTable.tuple2trend(t) chatuser_uuid = PortTradegoodStateTable.tuple2chatuser_uuid(t) channel_user = chatuser_uuid2channel_user(chatuser_uuid, alias=sender_name) channel_user_code = ChannelUser.channel_user2codename(channel_user) if channel_user else None server_alias = str2lower(jdown(j_postgres, ["server", "name"])) # logger.debug({"server_alias":server_alias}) server = Server.alias_lang2server(server_alias, "ko") assert_true(server,server_alias) marketprice = {MarketpriceDoc.Field.CREATED_AT: created_at, MarketpriceDoc.Field.PORT: Port.port2codename(port), MarketpriceDoc.Field.TRADEGOOD: Tradegood.tradegood2codename(tradegood), MarketpriceDoc.Field.RATE: rate, MarketpriceDoc.Field.TREND: trend, MarketpriceDoc.Field.CHANNEL_USER: channel_user_code, MarketpriceDoc.Field.SERVER: Server.server2codename(server), } return marketprice, channel_user
def tuple2j_doc(t, i): j_postgres = t[PortTradegoodStateTable.index_json()] sender_name = j_postgres.get("sender_name") j_doc = { MarkettrendDoc.Field.SERVER: jdown(j_postgres, ["server", "name"]), MarkettrendDoc.Field.CREATED_AT: datetime.fromisoformat(j_postgres["created_at"]), MarkettrendDoc.Field.PORT_ID: MongoDBTool.doc2id(j_port_list[i]), MarkettrendDoc.Field.TRADEGOOD_ID: tradegood_id_list[i], MarkettrendDoc.Field.RATE: rate_list[i], MarkettrendDoc.Field.TREND: trend_list[i], } if sender_name: j_doc[MarkettrendDoc.Field.SENDER_NAME] = sender_name return j_doc
def j_result2total_count(cls, j_result): return jdown(j_result, ["hits", "total", "value"])
def j_result2j_hit_list(cls, j_result): j_hit_list = jdown(j_result, ["hits", "hits"]) return j_hit_list
def aggrname2j_bucket_list(cls, j_result, aggrname): return jdown(j_result, ["aggregations", aggrname, "buckets"])
def j_hit2_id(cls, j_hit): return jdown(j_hit, ["_id"])
def j_lang2name(cls, j, lang): return jdown(j, [cls.Field.NAME, lang])
def lang2name(cls, lang): j_yaml = cls.j_yaml() return jdown(j_yaml, [cls.YAML.NAME, lang])
def j_config2self_ref_config(cls, j_config): return jdown(j_config, [cls.Config.SELF_REF_CONFIG])