import sys import os base_dir = os.path.dirname(os.path.abspath(__file__)) if '__file__' in globals() else os.getcwd() project_root = os.path.abspath(os.path.join(base_dir, "..", "..")) sys.path.append(project_root) from pre_data.common.client_tools import write_jinja,del_jinja key_w_common = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3: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 -%} {% set down_prog_map = { "1": {"name":"棉麻","desc":"适用于棉麻类衣物的洗涤。"}, "2": {"name":"化纤","desc":"适用于化纤类衣物的洗涤。"}, "3": {"name":"羽绒","desc":"适用于可机洗的羽绒类衣物及填充物为合成纤维的棉服。例如:羽绒外套、丝棉背心等。"}, "6": {"name":"衬衣","desc":"适用于棉质、亚麻、合成纤维及其混纺类衬衣的洗涤。"}, "7": {"name":"童装","desc":"适用于婴幼儿棉质及混纺衣物的洗涤。例如:婴儿服、爬服、婴儿床品等。建议使用适用于婴幼儿衣物的洗涤剂。"}, "9": {"name":"烫烫净","desc":"适用于可耐高温的棉麻类衣物的除菌洗涤;例如:婴幼儿棉质衣物、床品或较脏的衣物。"}, "10":{"name":"羊毛","desc":"适用于可机洗的羊毛及羊毛混纺衣物的洗涤,洗衣强度较低,以轻柔地护理羊毛织物,降低缩水、毡化"}, "13":{"name":"筒自洁","desc":"适用于清洁洗衣机内外筒,借助离子净化技术结合高温水流,深入清洁内筒缝隙中的污垢与细菌。为了避免高温导致泡沫溢出,请勿添加任何清洗剂。"}, "14": {"name":"内衣","desc":"适用于可机洗内衣的洗涤,如秋衣秋裤、保暖衣的日常洗涤。"}, "15": {"name":"速洗","desc":"适用于有轻微污渍的衣物的快速洗涤。例如:夏季日常换洗的衣物。"}, "17": {"name":"大件","desc":"适用于可机洗的棉质、亚麻及混合面料的大件织物的日常洗涤。例如:棉质床单、被罩、毛巾被、秋冬季棉质工装等。"}, "18": {"name":"运动服","desc":"适用于棉质、合成纤维等运动类衣物的洗涤。低温水流有效保护衣物纤维,维持衣物功能性。"}, "19": {"name":"超柔","desc":"适用于可机洗的真丝类、手洗类衣物的洗涤。易褶皱类衣物请降低脱水转速,衣量不超过一公斤。"}, "27": {"name":"漂+脱","desc":"仅对衣物进行漂洗和脱水操作,也可用于手洗后漂洗脱水。请确认要漂洗的衣物适合机洗。"}, "28": {"name":"单脱水","desc":"仅对衣物进行脱水操作,也可用于手洗后衣物的脱水。请确认要脱水的衣物适合机洗。"}, "40": {"name":"强力洗","desc":"适用于耐磨的棉、麻及其混纺衣物的洗涤。通过增强洗护力度实现深层去污。"}, "52": {"name":"冲锋衣","desc":"适用于含有防水涂层面料的户外衣物的洗涤。例如:冲锋衣、户外裤、夹克等。建议洗前拉上拉链,切勿使用柔顺剂。"}, "56": {"name":"智慧洗","desc":"适用于棉、麻、合成纤维类衣物的洗涤。程序会根据衣物的重量自动调节洗涤方式,确保衣物达到最佳洗护效果。"}, "58": {"name":"浴巾","desc":"适用于毛巾、浴巾等用品的洗涤,通过持续高温水流有效杀菌和消除衣物上的污渍和异味。"} } %} """ # 人气模板 key_w_popular = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_popularity:1" value_w_popular = """ {% set program_id = program_id | string | trim %} {% set prog = down_prog_map.get(program_id) %} {% if prog %} {{ [ "{0}程序,是{1}当前人气最高的程序哦。{2}".format( down_prog_map[program_id].name, city, "它"~down_prog_map[program_id].desc ), "{0}程序,在{1}人气最高哦。{2}".format( down_prog_map[program_id].name, city, "它"~down_prog_map[program_id].desc ), "{0}程序,在{1}很受欢迎呢。{2}".format( down_prog_map[program_id].name, city, "它"~down_prog_map[program_id].desc ), "{0}程序,是全网人气最高的程序哦。{1}".format( down_prog_map[program_id].name, "它"~down_prog_map[program_id].desc ), "{0}程序,在全网都很受欢迎呢。{1}".format( down_prog_map[program_id].name, "它"~down_prog_map[program_id].desc ) ] | random }} {% else %} 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。 {% endif %} """ # 定制模板 key_w_made = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_made:2" value_w_made =""" {% set program_id = program_id | string | trim %} {% set prog = down_prog_map.get(program_id) %} {% if prog %} {% if feature_name != "" %} {% set commands_text = commands_params(changed_params) %} {% if commands_text != "" %} {{ [[ "{0}程序,是你{1}的程序呢".format( down_prog_map[program_id].name, feature_name ), "发现你{0}{1}程序呢".format( feature_name, down_prog_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( down_prog_map[program_id].name, feature_name, "它" ~ down_prog_map[program_id].desc ), "发现你{0}{1}程序呢。{2}".format( feature_name, down_prog_map[program_id].name, "它" ~ down_prog_map[program_id].desc ), "这是你{0}的程序呢,{1}".format( feature_name, "它" ~ down_prog_map[program_id].desc ) ] | random }} {% endif %} {% else %} 帮你准备了{{down_prog_map[program_id].name}}程序,它{{down_prog_map[program_id].desc}} {% endif %} {% else %} 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。 {% endif %} """ # 天气模板 key_w_weather = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_weather:0" 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 }} """ # 季节模板——当季推荐 key_w_season_in = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_season_in:0" value_w_season_in = """ {% set program_id = program_id | string | trim %} {% set prog = down_prog_map.get(program_id) %} {% if prog %} {% set program_name = down_prog_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 %} """ # 季节模板——收纳推荐 key_w_season_storage = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_season_storage:0" value_w_season_storage = """ {% set program_id = program_id | string | trim %} {% set prog = down_prog_map.get(program_id) %} {% if prog %} {% set program_name = down_prog_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 %} """ # 关怀模板 Key_w_care = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_care:0" 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 }} """ # 环保模板 key_w_environmental = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_environmental:0" value_w_environmental = """ AI守护提醒您,马上就到错峰用电时间段了,建议您预约洗护。 """ # 健康模板 key_w_health = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_health:0" value_w_health = """ {% set program_id = program_id | string | trim %} {% set prog = down_prog_map.get(program_id) %} {% if prog %} {% set health_name = down_prog_map[program_id].name %} {{ "您的洗衣筒需要清洁了,请及时使用{}程序清洗。".format(health_name) if remainderNum |int <= 0 else "" }} {%- endif -%} """ # 默认模板+筒自洁 key_w_default = "broadcast-template-jinja:201c51890c31c308050400218003484843000001000000000000000000000040:3:time_basic:0" value_w_default = """ {% set program_id = program_id | string | trim %} {% set program_data = down_prog_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 %} """ # =================== H+ 多卡写入下筒洗衣机模板 ================ # 通用 write_jinja(key_w_common,value_w_common) # 人气 write_jinja(key_w_popular,value_w_popular) #定制 write_jinja(key_w_made,value_w_made) # 天气 write_jinja(key_w_weather,value_w_weather) # 季节 write_jinja(key_w_season_in,value_w_season_in) write_jinja(key_w_season_storage,value_w_season_storage) # 关怀 write_jinja(Key_w_care,value_w_care) # 环保 write_jinja(key_w_environmental,value_w_environmental) # 健康 write_jinja(key_w_health,value_w_health) # 默认+筒自洁 write_jinja(key_w_default,value_w_default) # 通用 # del_jinja(key_w_common) # # 人气 # del_jinja(key_w_popular) # #定制 # del_jinja(key_w_made) # # 天气 # del_jinja(key_w_weather) # # 季节 # del_jinja(key_w_season_in) # del_jinja(key_w_season_storage) # # 关怀 # del_jinja(Key_w_care) # # 环保 # del_jinja(key_w_environmental) # # 默认+筒自洁 # del_jinja(key_w_default)