import sys from pathlib import Path PROJECT_ROOT = Path(__file__).resolve().parents[2] sys.path.insert(0, str(PROJECT_ROOT)) from pre_data.common.client_tools import write_jinja WASH_COMMON_KEY = "broadcast-template-jinja:multi_card:wash:common" value_w_common =""" {%- macro commands_params(changed_params) -%} {%- if changed_params is none or changed_params == {} or changed_params == "" -%} {{""}} {%- else -%} {%- set setTemp_raw = changed_params.get('setTemp') -%} {%- set speed_raw = changed_params.get('speed') -%} {%- set spinTime_raw = changed_params.get('spinTime') -%} {%- set washTime_raw = changed_params.get('washTime') -%} {%- set setTemp = setTemp_raw | int if setTemp_raw not in [none, ''] else none -%} {%- set speed = speed_raw | int if speed_raw not in [none, ''] else none -%} {%- set spinTime = spinTime_raw | int if spinTime_raw not in [none, ''] else none -%} {%- set washTime = washTime_raw | int if washTime_raw not in [none, ''] else none -%} {{[ "水温常温" if setTemp is not none and setTemp == 0 else "水温95度" if setTemp is not in [none, 65535] and setTemp >= 90 else "水温{}度".format(setTemp) if setTemp is not in [none, 65535] else "", "转速{}转".format(speed * 10) if speed is not in [none, 0, 65535] else "", "漂洗{}次".format(spinTime) if spinTime not in [none, '', 65535 ] else "", "洗涤{}分钟".format(washTime) if washTime not in [none, '', 0, 65535] and washTime <= 255 else "" ] | reject("equalto", "") | join(",") }} {%- endif -%} {%- endmacro -%} """ # 人气模板 WASH_POPULAR_KEY="broadcast-template-jinja:multi_card:wash:time_popular" value_w_popular = """ {% set program_id = program_id | string | trim %} {% set prog = program_name_map.get(program_id) %} {% if prog %} {{ [ "{0}程序,是{1}当前人气最高的程序哦。{2}".format( program_name_map[program_id].name, city, "它"~program_name_map[program_id].desc ), "{0}程序,在{1}人气最高哦。{2}".format( program_name_map[program_id].name, city, "它"~program_name_map[program_id].desc ), "{0}程序,在{1}很受欢迎呢。{2}".format( program_name_map[program_id].name, city, "它"~program_name_map[program_id].desc ), "{0}程序,是全网人气最高的程序哦。{1}".format( program_name_map[program_id].name, "它"~program_name_map[program_id].desc ), "{0}程序,在全网都很受欢迎呢。{1}".format( program_name_map[program_id].name, "它"~program_name_map[program_id].desc ) ] | random }} {% else %} 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。 {% endif %} """ # 定制模板 WASH_CUSTOM_KEY = "broadcast-template-jinja:multi_card:wash:time_custom" value_w_made =""" {% set program_id = program_id | string | trim %} {% set prog = program_name_map.get(program_id) %} {% if prog %} {% if feature_name != "" %} {% set commands_text = commands_params(changed_params) %} {% if commands_text != "" %} {{ [[ "{0}程序,是你{1}的程序呢".format( program_name_map[program_id].name, feature_name ), "发现你{0}{1}程序呢".format( feature_name, program_name_map[program_id].name ), "这是你{0}的程序呢".format( feature_name ) ] | random, [ commands_text ~ "的习惯参数也帮你记着了。", commands_text ~ "的习惯参数也帮你准备好了。", "AI守护帮你设置了习惯的" ~ commands_text ~ "。" ] | random] | reject("equalto", "") | join(",") }} {% else %} {{ [ "{0}程序,是你{1}的程序呢,{2}".format( program_name_map[program_id].name, feature_name, "它" ~ program_name_map[program_id].desc ), "发现你{0}{1}程序呢。{2}".format( feature_name, program_name_map[program_id].name, "它" ~ program_name_map[program_id].desc ), "这是你{0}的程序呢,{1}".format( feature_name, "它" ~ program_name_map[program_id].desc ) ] | random }} {% endif %} {% else %} 帮你准备了{{program_name_map[program_id].name}}程序,它{{program_name_map[program_id].desc}} {% endif %} {% else %} 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。 {% endif %} """ # 天气模板 WASH_WEATHER_KEY = "broadcast-template-jinja:multi_card:wash:time_weather" value_w_weather = """ {{ [ [ "今天阴天,晾晒衣物会比较慢,帮你打开洗烘联动啦。", "今天阴天,晾晒衣物会比较慢,洗烘联动更省心哦。" ] | random if weather == '阴' else [ "今天预报有{},不适合室外晾晒,帮你打开洗烘联动啦。".format(weather), "今天预报有{},不适合室外晾晒,洗烘联动更省心哦。".format(weather) ] | random if weather in ['小雨','中雨','大雨','暴雨'] else [ "今天预报有{},不适合室外晾晒,帮你打开洗烘联动啦。".format(weather), "今天预报有{},不适合室外晾晒,洗烘联动更省心哦。".format(weather) ] | random if weather in ['小雪','中雪','大雪','暴雪'] else [ "今天有{},室外晾晒容易导致二次污染,帮你打开洗烘联动啦。".format(weather), "今天有{},室外晾晒容易导致二次污染,洗烘联动更省心哦。".format(weather) ] | random if weather in ['雾霾','中度雾霾','重度雾霾','沙尘暴'] else [ "今天天气不太好,帮你打开洗烘联动啦。", "今天天气不太好,洗烘联动更省心哦。" ] |random ] | first }} """ # 季节模板——当季推荐 WASH_SEASON_IN_KEY = "broadcast-template-jinja:multi_card:wash:time_season_in" value_w_season_in = """ {% set program_id = program_id | string | trim %} {% set prog = program_name_map.get(program_id) %} {% if prog %} {% set program_name = program_name_map[program_id].name %} {{ [ "立春快乐,春风送暖,是时候准备好轻盈的春装了。{}".format( "AI守护提醒您记得拉好拉链,将"~program_name~"内外翻转后洗涤,不用使用柔顺剂哦。" if program_name == '冲锋衣' else "") if time_term == '立春' else "立夏时节,暑气渐长。轻薄的夏日穿搭该拿出来洗洗啦。{}".format( "AI守护提醒您使用"~program_name~"专用洗剂,洗护效果更佳哦。" if program_name == '丝绸' else "") if time_term == '立夏' else "立秋已至,暑去凉来。是时候洗净压箱底的秋装,准备添衣了。{}".format( "AI守护提醒您记得拉好拉链,将"~program_name~"内外翻转后洗涤,不用使用柔顺剂哦。" if program_name == '冲锋衣' else "") if time_term == '立秋' else "立冬安康,寒潮将至。保暖的冬装该登场了。{}".format( "AI守护提醒您使用"~program_name~"专用洗剂,洗护效果更佳哦。" if program_name == '羊毛' else "AI守护提醒您"~program_name~"衣物洗前记得拉好拉链,内外翻转后洗涤。" if program_name =="羽绒" else "") if time_term == '立冬' ]| first}} {% else %} 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。 {% endif %} """ # 季节模板——收纳推荐 WASH_SEASON_STORAGE_KEY = "broadcast-template-jinja:multi_card:wash:time_season_storage" value_w_season_storage = """ {% set program_id = program_id | string | trim %} {% set prog = program_name_map.get(program_id) %} {% if prog %} {% set program_name = program_name_map[program_id].name %} {{ [ "立春时节,是时候洗好厚重衣物收纳起来啦。{}".format( "AI守护提醒您使用"~program_name~"专用洗剂,洗护效果更佳哦。" if program_name == '羊毛' else "AI守护提醒您羽绒衣物洗前记得拉好拉链,内外翻转后洗涤。" if program_name =="羽绒" else "") if time_term == '立春' else "立夏潮闷,春装收纳正当时。{}".format( "AI守护提醒您记得拉好拉链,将"~program_name~"内外翻转后洗涤,不用使用柔顺剂哦。" if program_name == '冲锋衣' else "") if time_term == '立夏' else "立秋换季,夏装可以功成身退啦。{}".format( "AI守护提醒您使用"~program_name~"专用洗剂,洗护效果更佳哦。" if program_name == '丝绸' else "") if time_term == '立秋' else "立冬时节,薄款秋装该收起来啦。{}".format( "AI守护提醒您记得拉好拉链,将"~program_name~"内外翻转后洗涤,不用使用柔顺剂哦。" if program_name == '冲锋衣' else "") if time_term == '立冬' ]| first}} {% else %} 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。 {% endif %} """ # 关怀模板 SEASON_CARE_KEY = "broadcast-template-jinja:multi_card:wash:time_care" value_w_care = """ {% set name_wash = "夜间洗" %} {% set name_wind = "延取防皱" %} {% set night_wash = washNight if washNight !="0" else ""%} {% set wind_cruise = WFreeCn if WFreeCn !="0" else ""%} {{ [ ["夜深了,AI守护已为您开启{0}和{1}啦,衣服就放心交给我吧。".format(name_wash, name_wind) , "时间有点晚了,已为你开启{0}和{1},衣物久放也不闷。".format(name_wash, name_wind), "{0}已开启,静音洗衣,不扰眠。{1}为您守护衣物至天明。".format(name_wash, name_wind), "AI守护已开启{0}和{1},降噪洗护,防止衣物产生异味和褶皱。".format(name_wash, name_wind) ] |random if night_wash and wind_cruise else ["夜深了,AI守护已为您开启{}功能,静音洗衣不扰眠。".format(name_wash), "时间有点晚了,我会静悄悄的。", "夜间洗衣,AI守护已自动开启静音洗涤,守护您的安宁。", "夜洗功能已开启,洗衣机会低噪运行,让您静享安宁。" ] |random if night_wash else ["夜深了,AI守护已帮你打开{},智能保管衣物。".format(name_wind) , "时间有点晚了,{}功能会帮你守护衣物到天明。".format(name_wind), "夜间洗衣,帮你开启{}了,衣物久放也不用怕。".format(name_wind), "{}准备好了,洗完会帮你智能保管衣物。".format(name_wind) ]|random if wind_cruise else "" ] | first }} """ # 环保模板 WASH_ENV_KEY = "broadcast-template-jinja:multi_card:wash:time_environmental" value_w_environmental = """ AI守护提醒您,马上就到错峰用电时间段了,建议您预约洗护。 """ # 健康模板 WASH_HEALTH_KEY = "broadcast-template-jinja:multi_card:wash:time_health" value_w_health = """ {% set program_id = program_id | string | trim %} {% set prog = program_name_map.get(program_id) %} {% if prog %} {% set health_name = program_name_map[program_id].name %} {{ "您的洗衣筒需要清洁了,请及时使用{}程序清洗。".format(health_name) if remainderNum |int <= 0 else "" }} {%- endif -%} """ # 默认模板+筒自洁 WASH_BASIC_KEY = "broadcast-template-jinja:multi_card:wash:time_basic" value_w_basic = """ {% set program_id = program_id | string | trim %} {% set program_data = program_name_map.get(program_id)%} {% set program_desc = program_data.desc if program_data else '' %} {% set program_name = program_data.name if program_data else '' %} {%set commands_text = commands_params(changed_params)%} {% if program_name %} {% if program_id == "13" %} {% set remainderNum = remainderNum | int %} {{ "您的洗衣筒还很干净,暂时不需要清洁。" if remainderNum|int > 3 else "洗衣机快到清洁时间啦,先囤好筒洗剂,再洗几次衣服就该给内筒做清洁啦" if remainderNum |int <=3 and remainderNum |int >= 1 else "" }} {% elif commands_text %} {{ ["AI守护为你准备好了,{0}程序最常用的{1}哦。".format(program_name,commands_text), "发现你使用{0}程序时,喜欢调节{1}呢,帮你准备好了。".format(program_name,commands_text), "{0}程序,已按照你的习惯备好,{1}直接启动就可以啦。".format(program_name,commands_text), "AI守护为你贴心定制 {0}程序,{1}已就绪。".format(program_name,commands_text), "根据你的使用习惯,{0} 已调整为{1}".format(program_name,commands_text) ]|random }} {% elif program_desc %} {{ "{0}程序{1}".format(program_name, program_desc) }} {% endif %} {% else %} {{ [ "AI守护会持续守护您的衣物健康。", "AI守护会根据衣物情况,自动帮你匹配最优洗护方案哦。", "衣服交给我你就放心吧。" ]|random }} {% endif %} """ #通用模板 write_jinja(WASH_COMMON_KEY, value_w_common, notify=True) #通用人气模板 write_jinja(WASH_POPULAR_KEY, value_w_popular, notify=True) #通用定制模板 write_jinja(WASH_CUSTOM_KEY, value_w_made, notify=True) #通用天气模板 write_jinja(WASH_WEATHER_KEY, value_w_weather, notify=True) #通用当季模板 write_jinja(WASH_SEASON_IN_KEY, value_w_season_in, notify=True) #通用换季模板 write_jinja(WASH_SEASON_STORAGE_KEY, value_w_season_storage, notify=True) #通用关怀模板 write_jinja(SEASON_CARE_KEY, value_w_care, notify=True) #通用环保模板 write_jinja(WASH_ENV_KEY, value_w_environmental, notify=True) #通用健康模板 write_jinja(WASH_HEALTH_KEY, value_w_health, notify=True) #通用默认模板 write_jinja(WASH_BASIC_KEY, value_w_basic, notify=True)