write_jinja_x11_up.py 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. import sys
  2. from pathlib import Path
  3. PROJECT_ROOT = Path(__file__).resolve().parents[2] # 往上两级就是项目根
  4. sys.path.insert(0, str(PROJECT_ROOT))
  5. from pre_data.common.client_tools import write_jinja,del_jinja,write_multi_key,write_multi_common_key
  6. type_id ="201c51890c31c308310100218003484748000000000000000000000000000040"
  7. zone_ids=["0"]
  8. rectype_ids=["1","2"]
  9. popular_ids=["1"]
  10. custom_ids=["2"]
  11. # 通用模板?如果洗衣机干衣机都一样怎么处理
  12. # key_common = "broadcast-template-jinja:"+type_id+":common"
  13. value_common_second_key="broadcast-template-jinja:single_card:dry:common"
  14. value_common = """
  15. {% macro count_round(value) %}
  16. {% set value = value | int %}
  17. {{ (value / 10) | round(0) | int * 10 }}
  18. {% endmacro %}
  19. {% macro approx_fraction(p) -%}
  20. {%- set p = 99 if p |int >= 100 else p -%}
  21. {%- if p >= 50 -%}
  22. 百分之{{ ['','一','二','三','四','五','六','七','八','九'][p//10] }}{{ '十' if p >= 10 else '' }}{{
  23. ['','一','二','三','四','五','六','七','八','九'][p%10] if p%10 else '' }}
  24. {%- elif p >= 40 -%}一半
  25. {%- else -%}三分之一
  26. {%- endif -%}
  27. {%- endmacro %}
  28. {# ---------------------内部随机用的数组 --------------------- #}
  29. {% set greeting = ["嗨", "哈喽"] %}
  30. {% set assistant1 = ["小优来啦", "你的洗护小管家来啦", "你的洗护小助手来啦", "你的洗护小精灵来啦", "你的洗护小管家上线啦", "你的洗护小助手上线啦", "你的洗护小精灵上线啦", "小优前来报到",
  31. "洗护小管家前来报道", "洗护小助手前来报道", "洗护小精灵前来报到"] %}
  32. {% set assistant2 = ["干衣推荐来啦", "干衣小贴士来啦", "又要烘干衣服啦", "又来烘干衣服啦", "干衣时间到啦"] %}
  33. {% set user1 = [ "位用户", "位邻居", "位朋友", "户家庭", "个小伙伴"] %}
  34. {% set user2 = ["用户", "小伙伴", "邻居"] %}
  35. {# 干燥度枚举映射 #}
  36. {% set dry_level_map = {
  37. "1": "潮湿",
  38. "2": "即熨",
  39. "3": "即穿",
  40. "4": "储藏",
  41. "5": "特干"
  42. } %}
  43. {# 温度枚举映射 #}
  44. {% set dry_temp_map = {
  45. "0": "冷风",
  46. "1": "低温",
  47. "2": "中温",
  48. "3": "高温"
  49. } %}
  50. {%- macro commands_params(changed_params) -%}
  51. {%- if changed_params is none or changed_params == {} or changed_params == "" -%}
  52. {{ "" }}
  53. {%- else -%}
  54. {# 注意:不要用 or 取值,因为 0 会被当成 false #}
  55. {%- set dryLevel_raw = dry_level_map.get(changed_params['DryLevel']|string|trim) if 'DryLevel' in changed_params else changed_params.get('干燥度') -%}
  56. {%- set dryTemp_raw = dry_temp_map.get(changed_params['DryTemp']|string|trim)if 'DryTemp' in changed_params else changed_params.get('温度') -%}
  57. {%- set fanLevel_raw = changed_params['FanLevel'] if 'FanLevel' in changed_params else changed_params.get('风力') -%}
  58. {{ [
  59. "干燥度:{}".format(dryLevel_raw) if dryLevel_raw else "",
  60. "温度:{}".format(dryTemp_raw) if dryTemp_raw else "",
  61. "风力{}挡".format(fanLevel_raw) if fanLevel_raw and fanLevel_raw != "0" else ""
  62. ] | reject("equalto", "") | join(",") }}
  63. {%- endif -%}
  64. {%- endmacro %}
  65. {# --------------------- 人气/定制简短模板函数 --------------------- #}
  66. {% set prefix_message %}
  67. {% set program_id = program_id | string | trim %}
  68. {% set program_name = program_name_map.get(program_id) %}
  69. {% if program_name %}
  70. {% if rerank_reason |upper == "PIN_CONSECUTIVE" %}
  71. {%set commands_text = commands_params(changed_params) | trim %}
  72. {{[
  73. "{0}好呀,小优发现你最近几次干衣都喜欢用{1}程序,{2}给你准备好了。".format(period, program_name,
  74. commands_text~"," if commands_text else ""
  75. ),
  76. "{0},发现你最近几次干衣都使用{1},{2}给你准备好了。".format(assistant1 | random, program_name,
  77. commands_text~"," if commands_text else ""
  78. ),
  79. "{0},为你推荐最近几次常用的{1}程序,{2}赶快启动吧!".format(assistant2 | random, program_name,
  80. commands_text~"," if commands_text else ""
  81. ),
  82. "{0},最懂你的小优来啦,你最近几次干衣都使用了{1}程序,{2}这次还这么用吧。".format(greeting |random, program_name,
  83. commands_text~"," if commands_text else ""
  84. ),
  85. "又能帮你烘干衣服了,小优很开心哦。前几次干衣你都使用{0}程序,我猜你这次还想用它。".format(
  86. program_name
  87. )
  88. ] | random
  89. }}
  90. {% elif rerank_reason |upper == "PIN_WEEKLY" %}
  91. {%set feature_week_name="每周这个时间都喜欢用"%}
  92. {%set commands_text = commands_params(changed_params) | trim %}
  93. {{[
  94. "{0}好呀,小优发现你{1}{2}程序,{3}给你准备好了。".format(
  95. period,
  96. feature_week_name,
  97. program_name,
  98. commands_text~"," if commands_text else ""
  99. ),
  100. "{0}好呀,小优准备了你{1}的{2}程序。{3}快来启动吧。".format(
  101. period,
  102. feature_week_name,
  103. program_name,
  104. commands_text~"," if commands_text else ""
  105. ),
  106. "{0},{1},推荐你{2}的{3}程序。{4}".format(
  107. greeting |random,
  108. assistant1 | random,
  109. feature_week_name,
  110. program_name,
  111. commands_text~"。" if commands_text else ""
  112. ),
  113. "{0},你{1}的{2}程序,{3}给你准备好了。".format(
  114. assistant1 | random,
  115. feature_week_name,
  116. program_name,
  117. commands_text~"这个使用习惯" if commands_text else ""
  118. ),
  119. "{0},小优准备了你{1}的{2}程序,{3}赶快启动吧!".format(
  120. assistant2 | random,
  121. feature_week_name,
  122. program_name,
  123. commands_text~"," if commands_text else ""
  124. )
  125. ] | random}}
  126. {% elif recommend_type |upper == "POPULAR" %}
  127. {{ [
  128. "{0},给你准备了{1}人气最高的{2}程序。".format(assistant1 | random, city, program_name),
  129. "{0},这个时间{1}程序在{2}使用率最高哦。".format(assistant2 | random, program_name, city),
  130. "{0}好呀,为你推荐{1}人气最高的{2}程序。".format(period, city, program_name),
  131. "嗨,小优发现这个时间{0},{1}程序人气最高哦。".format(city, program_name),
  132. "{0}干衣推荐来啦,{1}程序是{2}当前的热门程序哦。".format(season, program_name, city)
  133. ] | random
  134. }}
  135. {% elif recommend_type |upper == "CUSTOM" %}
  136. {%set commands_text = commands_params(changed_params) | trim %}
  137. {{ [
  138. "{0}好呀,小优发现你{1}{2}程序,{3}给你准备好了。".format(period, feature_name, program_name, commands_text~"," if commands_text else ""),
  139. "{0}好呀,小优准备了你{1}的{2}程序。{3}".format(period, feature_name, program_name, commands_text~"。" if commands_text else ""),
  140. "{0},推荐你{1}的{2}程序。{3}".format(assistant1 | random, feature_name, program_name, commands_text~"。" if commands_text else ""),
  141. "{0},为你准备了你{1}的{2}程序。{3}".format(assistant1 | random, feature_name, program_name, commands_text~"。" if commands_text else ""),
  142. "{0},你{1}的{2}程序,{3}已经准备就绪。".format(assistant2 | random, feature_name, program_name, commands_text if commands_text else "")
  143. ]| random }}
  144. {% endif %}
  145. {% else %}
  146. 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。
  147. {% endif %}
  148. {% endset %}
  149. """
  150. value_popular_second_key="broadcast-template-jinja:single_card:dry:time_popular"
  151. # 人气模板
  152. # def key_popular_fun(zone_id:str):
  153. # return "broadcast-template-jinja:"+type_id+":"+zone_id+":time_made_popularity:1"
  154. value_popular = """
  155. {% set program_id = program_id | string | trim %}
  156. {% set program_name = program_name_map.get(program_id) %}
  157. {% set count = count_round(count) | int %}
  158. {% set user_count = count_round(user_count) |int %}
  159. {% set user_proportion = user_proportion | int %}
  160. {% if program_name %}
  161. {% if rerank_reason |upper == "PIN_CONSECUTIVE" %}
  162. {%set commands_text = commands_params(changed_params) | trim %}
  163. {{[
  164. "{0}好呀,小优发现你最近几次干衣都喜欢用{1}程序,{2}给你准备好了。".format(period, program_name,
  165. commands_text~"," if commands_text else ""
  166. ),
  167. "{0},发现你最近几次干衣都使用{1},{2}给你准备好了。".format(assistant1 | random, program_name,
  168. commands_text~"," if commands_text else ""
  169. ),
  170. "{0},为你推荐最近几次常用的{1}程序,{2}赶快启动吧!".format(assistant2 | random, program_name,
  171. commands_text~"," if commands_text else ""
  172. ),
  173. "{0},最懂你的小优来啦,你最近几次干衣都使用了{1}程序,{2}这次还这么用吧。".format(greeting |random, program_name,
  174. commands_text~"," if commands_text else ""
  175. ),
  176. "又能帮你烘干衣服了,小优很开心哦。前几次干衣你都使用{0}程序,我猜你这次还想用它。".format(
  177. program_name
  178. )
  179. ] | random
  180. }}
  181. {% elif rerank_reason |upper == "PIN_WEEKLY" %}
  182. {%set feature_week_name="每周这个时间都喜欢用"%}
  183. {%set commands_text = commands_params(changed_params) | trim %}
  184. {{[
  185. "{0}好呀,小优发现你{1}{2}程序,{3}给你准备好了。".format(
  186. period,
  187. feature_week_name,
  188. program_name,
  189. commands_text~"," if commands_text else ""
  190. ),
  191. "{0}好呀,小优准备了你{1}的{2}程序。{3}快来启动吧。".format(
  192. period,
  193. feature_week_name,
  194. program_name,
  195. commands_text~"," if commands_text else ""
  196. ),
  197. "{0},{1},推荐你{2}的{3}程序。{4}".format(
  198. greeting |random,
  199. assistant1 | random,
  200. feature_week_name,
  201. program_name,
  202. commands_text~"。" if commands_text else ""
  203. ),
  204. "{0},你{1}的{2}程序,{3}给你准备好了。".format(
  205. assistant1 | random,
  206. feature_week_name,
  207. program_name,
  208. commands_text~"这个使用习惯" if commands_text else ""
  209. ),
  210. "{0},小优准备了你{1}的{2}程序,{3}赶快启动吧!".format(
  211. assistant2 | random,
  212. feature_week_name,
  213. program_name,
  214. commands_text~"," if commands_text else ""
  215. )
  216. ] | random}}
  217. {% else %}
  218. {{ [
  219. "{0}好呀,为你推荐{1}人气最高的{2}程序。{3}".format(
  220. period,
  221. city,
  222. program_name,
  223. ("近期有" ~ user_count ~ "多" ~ (user1 | random) ~ "都喜欢用呢。" if user_count >= 30 else "")
  224. ),
  225. "{0}好呀,为你推荐{1}人气最高的{2}程序。{3}".format(
  226. period,
  227. city,
  228. program_name,
  229. ("近期有" ~ approx_fraction(user_proportion) ~ "的" ~ (user2 | random) ~ "都喜欢用呢。" if user_proportion >= 30 else "")
  230. ),
  231. "{0}好呀,小优发现{1}程序在{2}的人气很高哦,{3}咱也来试试吧!".format(
  232. period,
  233. program_name,
  234. city,
  235. ("近期有" ~ count ~"多次使用记录呢," if count >= 100 else "")
  236. ),
  237. "{0},给你准备了{1}人气最高的{2}程序,{3}".format(
  238. assistant1 |random,
  239. city,
  240. program_name,
  241. ("近期有"~ user_count ~"多" ~ (user1 | random) ~ "都喜欢用呢。咱们也来试试看吧!" if user_count >= 30 else "快来试试看吧!")
  242. ),
  243. "{0},{1}程序在{2}很受欢迎呢,{3}咱们也来试试看吧!".format(
  244. assistant1 |random,
  245. program_name,
  246. city,
  247. ("是" ~ user_count ~"多"~ (user1 | random) ~ "的共同选择。" if user_count >= 30 else "")
  248. ),
  249. "{0},{1},这个时间段{2}程序在{3}人气最高,{4}给你也准备好了。".format(
  250. greeting | random,
  251. assistant1 | random,
  252. program_name,
  253. city,
  254. ("超过" ~ approx_fraction(user_proportion) ~ "的" ~ (user2 |random) ~ "都在用呢," if user_proportion >= 30 else "")
  255. ),
  256. "{0},为你推荐当前人气最高的{1}程序,{2}".format(
  257. assistant2 | random,
  258. program_name,
  259. (city ~ "超过"~ approx_fraction(user_proportion) ~"的"~ (user2 |random) ~"都在用哦" if user_proportion >= 30 else "都准备好了,直接启动就行。")
  260. ),
  261. "{0},给你准备了{1}人气最高的{2}程序,{3}".format(
  262. assistant2 | random,
  263. city,
  264. program_name,
  265. ("近期有"~ user_count ~"多" ~ (user1 | random) ~ "都喜欢用呢。咱们也来试试看吧!" if user_count >= 30 else "快启动试试吧!")
  266. ),
  267. "{0},{1}程序在{2}人气最高,{3}咱们也来试试看吧!".format(
  268. assistant2 | random,
  269. program_name,
  270. city,
  271. ("是"~ user_count ~"多"~ (user1 | random) ~ "的共同选择。" if user_count >= 30 else "")
  272. ),
  273. "{0},{1},{2}程序给你准备好了,{3}快来试试看吧!".format(
  274. greeting | random,
  275. assistant2 | random,
  276. program_name,
  277. ("这个时间"~ city ~"有超过"~ approx_fraction(user_proportion) ~"的"~ (user2 |random) ~"都在用它," if user_proportion >= 30 else "")
  278. ),
  279. "{0}好呀,根据全网用户的使用偏好,我帮你选好了{1}程序,你放心用就好了。".format(
  280. period,
  281. program_name
  282. ),
  283. "{0}好呀,小优发现大家都爱用{1}程序,今天我们也来试试吧。".format(
  284. period,
  285. program_name
  286. ),
  287. "{0},为你准备好了全网使用率最高的{1}程序,来试试效果怎么样吧。".format(
  288. assistant1 | random,
  289. program_name
  290. ),
  291. "{0}!{1},{2}程序很受欢迎,给你也准备好了,快启动体验一下吧".format(
  292. greeting | random,
  293. assistant2 | random,
  294. program_name
  295. ),
  296. "{0}!{1},今天我们来试试这个人气最高的程序吧。".format(
  297. greeting | random,
  298. assistant2 | random
  299. )
  300. ] | random }}
  301. {% endif %}
  302. {% else %}
  303. 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。
  304. {% endif %}
  305. """
  306. # 定制模板
  307. value_custom_second_key="broadcast-template-jinja:single_card:dry:time_custom"
  308. # def key_custom_fun(zone_id:str):
  309. # return "broadcast-template-jinja:"+type_id+":"+zone_id+":time_made_popularity:2"
  310. value_custom="""
  311. {% set program_id = program_id | string | trim %}
  312. {% set program_name = program_name_map.get(program_id) %}
  313. {% if program_name %}
  314. {%set commands_text = commands_params(changed_params) | trim %}
  315. {% if rerank_reason |upper == "PIN_CONSECUTIVE" %}
  316. {{[
  317. "{0}好呀,小优发现你最近几次干衣都喜欢用{1}程序,{2}给你准备好了。".format(period, program_name,
  318. commands_text~"," if commands_text else ""
  319. ),
  320. "{0},发现你最近几次干衣都使用{1},{2}给你准备好了。".format(assistant1 | random, program_name,
  321. commands_text~"," if commands_text else ""
  322. ),
  323. "{0},为你推荐最近几次常用的{1}程序,{2}赶快启动吧!".format(assistant2 | random, program_name,
  324. commands_text~"," if commands_text else ""
  325. ),
  326. "{0},最懂你的小优来啦,你最近几次干衣都使用了{1}程序,{2}这次还这么用吧。".format(greeting |random, program_name,
  327. commands_text~"," if commands_text else ""
  328. ),
  329. "又能帮你烘干衣服了,小优很开心哦。前几次干衣你都使用{0}程序,我猜你这次还想用它。".format(
  330. program_name
  331. )
  332. ] | random
  333. }}
  334. {% elif rerank_reason |upper == "PIN_WEEKLY" %}
  335. {%set feature_week_name="每周这个时间都喜欢用"%}
  336. {{[
  337. "{0}好呀,小优发现你{1}{2}程序,{3}给你准备好了。".format(
  338. period,
  339. feature_week_name,
  340. program_name,
  341. commands_text~"," if commands_text else ""
  342. ),
  343. "{0}好呀,小优准备了你{1}的{2}程序。{3}快来启动吧。".format(
  344. period,
  345. feature_week_name,
  346. program_name,
  347. commands_text~"," if commands_text else ""
  348. ),
  349. "{0},{1},推荐你{2}的{3}程序。{4}".format(
  350. greeting |random,
  351. assistant1 | random,
  352. feature_week_name,
  353. program_name,
  354. commands_text~"。" if commands_text else ""
  355. ),
  356. "{0},你{1}的{2}程序,{3}给你准备好了。".format(
  357. assistant1 | random,
  358. feature_week_name,
  359. program_name,
  360. commands_text~"这个使用习惯" if commands_text else ""
  361. ),
  362. "{0},小优准备了你{1}的{2}程序,{3}赶快启动吧!".format(
  363. assistant2 | random,
  364. feature_week_name,
  365. program_name,
  366. commands_text~"," if commands_text else ""
  367. )
  368. ] | random}}
  369. {% elif feature_name!="" %}
  370. {{ [
  371. "{0}好呀,小优发现你{1}{2}程序,{3}给你准备好了。".format(
  372. period,
  373. feature_name,
  374. program_name,
  375. commands_text~"," if commands_text else ""
  376. ),
  377. "{0}好呀,小优准备了你{1}的{2}程序。{3}快来启动吧".format(
  378. period,
  379. feature_name,
  380. program_name,
  381. commands_text~"。" if commands_text else ""
  382. ),
  383. "{0}好呀,{1}程序已经准备就绪了,它可是你{2}的程序。{3}赶快启动吧".format(
  384. period,
  385. program_name,
  386. feature_name,
  387. commands_text~"的习惯参数也帮你设置好了。" if commands_text else ""
  388. ),
  389. "{0},{1},推荐你{2}的{3}程序,{4}".format(
  390. greeting | random,
  391. assistant1 | random,
  392. feature_name,
  393. program_name,
  394. commands_text~"。" if commands_text else ""
  395. ),
  396. "{0},{1},为你准备了你{2}的{3}程序。{4}".format(
  397. greeting | random,
  398. assistant1 | random,
  399. feature_name,
  400. program_name,
  401. commands_text~"。" if commands_text else ""
  402. ),
  403. "{0},你{1}的{2}程序{3}".format(
  404. assistant2 | random,
  405. feature_name,
  406. program_name,
  407. "和"~commands_text~"的习惯参数给你准备好了。" if commands_text else ",给你准备好了。"
  408. ),
  409. "{0},为你推荐{1}的{2}程序,{3}赶快启动吧!".format(
  410. assistant2 | random,
  411. feature_name,
  412. program_name,
  413. commands_text~"。" if commands_text else ""
  414. ),
  415. "{0},你{1}的{2}程序,{3}已经准备就绪。".format(
  416. assistant2 | random,
  417. feature_name,
  418. program_name,
  419. commands_text~"。" if commands_text else ""
  420. ),
  421. "我发现你喜欢这么用,我给你准备好了,现在开始烘干吗?",
  422. "又是为你贴心服务的一天,今天为你专属定制{0}程序,{1}赶快启动吧。".format(
  423. program_name,
  424. commands_text~"。" if commands_text else ""
  425. ),
  426. ]| random }}
  427. {% else %}
  428. {{"你好,推荐您常用的{0}程序,已准备好了,快开始启动吧。".format(program_name)}}
  429. {% endif %}
  430. {% else %}
  431. 抱歉,ID为'{{ program_id }}'的程序不存在或暂未收录。
  432. {% endif %}
  433. """
  434. # 天气模板--二级key
  435. value_weather_second_key="broadcast-template-jinja:single_card:dry:time_weather"
  436. value_weather = """
  437. {% set wd_link = wd_link | string |trim %}
  438. {% set washdry = washdry | string |trim %}
  439. {{
  440. [ prefix_message |trim,
  441. [
  442. "今天阴天,洗完烘干更省心哦。" if weather == '阴' else
  443. "天气预报今天有{},洗完烘干更省心哦。".format(weather) if weather in ['小雨','中雨','大雨','暴雨','小雪','中雪','大雪','暴雪','雾霾','中度雾霾','重度雾霾','沙尘'] else
  444. "今天天气不太好,洗完烘干更省心哦。"
  445. ] | first if washdry == "_wd" else ''
  446. ]| reject("equalto", "") | join("")
  447. }}
  448. """
  449. #=====季节模板
  450. value_season_second_key="broadcast-template-jinja:single_card:dry:time_season"
  451. value_season="""
  452. {% set program_id = program_id | string | trim %}
  453. {% set program_name = program_name_map.get(program_id) %}
  454. {{ [
  455. "立春启新,暖意渐浓!轻盈的春装该提前准备了。{}".format(
  456. "为您推荐"~program_name~"程序,烘干同时守护面料防水性能,春日出行清爽随行。"
  457. if program_id == '52' else "")
  458. if time_term == '立春' and filter_rule_code== 'time_season_in' else
  459. "立春时节,天气渐暖。厚重冬衣,烘干后收纳才靠谱。{}".format(
  460. "为您推荐"~program_name~"程序,将冬日暖意妥善封存。" if program_id in ["3","10"] else "")
  461. if time_term == '立春' and filter_rule_code== 'time_season_storage' else
  462. "立夏时节,暑气渐长。轻薄的夏日穿搭该提前准备好啦。{}".format(
  463. "为您推荐"~program_name~"程序,让您的夏日穿搭清爽挺括。" if program_id == "22" else "")
  464. if time_term == '立夏' and filter_rule_code== 'time_season_in' else
  465. "立夏潮闷,春装收纳正当时。{}".format(
  466. "推荐使用"~program_name~"程序,彻底烘干衣物潮气与风尘,防止霉变,便于安心久存。" if program_id == '52' else "")
  467. if time_term == '立夏' and filter_rule_code== 'time_season_storage' else
  468. "立秋已至,暑去凉来。是时候取出压箱底的秋装,准备添衣了。{}".format(
  469. "为您推荐"~program_name~"程序,守护面料防水与防风性能,伴您从容出行。" if program_id == '52' else "")
  470. if time_term == '立秋' and filter_rule_code== 'time_season_in' else
  471. "立秋换季,夏装可以功成身退啦。{}".format(
  472. "推荐使用"~program_name~"程序,帮您留住夏日风采~"
  473. if program_id == "22" else "")
  474. if time_term == '立秋' and filter_rule_code== 'time_season_storage' else
  475. "立冬安康,寒潮将至。保暖的冬装该登场了。{}".format(
  476. "为您推荐"~program_name~"程序,均匀烘干去除潮气,让衣物恢复蓬松柔软,为您锁住冬日温暖。" if program_id in ["10","3"] else "")
  477. if time_term == '立冬' and filter_rule_code== 'time_season_in' else
  478. "立冬时节,薄款秋装该收纳入库啦。{}".format(
  479. "为您推荐"~program_name~"程序,温和烘干去除潮气,让衣物处于最佳储存状态,静待明年春日。" if program_id == '52' else "")
  480. if time_term == '立冬' and filter_rule_code== 'time_season_storage'
  481. ]| random}}
  482. """
  483. #关怀模板
  484. value_care_second_key="broadcast-template-jinja:single_card:dry:time_care"
  485. value_care = """
  486. {% set night_dry_on = care.get("night_dry", {}).get("active", 0) == 1 %}
  487. {% set night_dry_name = care.get("night_dry", {}).get("display_name", "夜间烘") %}
  488. {% set wind_cruise_on = care.get("wind_cruise", {}).get("active", 0) == 1 %}
  489. {% set wind_cruise_name = care.get("wind_cruise", {}).get("display_name", "延取防皱") %}
  490. {{ [prefix_message |trim, [
  491. ["夜深了,帮你打开{0}和{1}功能啦。".format(night_dry_name, wind_cruise_name),
  492. "时间有点晚了,已为你开启{0}和{1},衣物久放也不皱。".format(night_dry_name, wind_cruise_name),
  493. "{0}已开启,静音干衣,{1}为您守护衣物至天明。".format(night_dry_name, wind_cruise_name),
  494. "已开启{0},自动降噪并开启{1}防止褶皱。".format(night_dry_name, wind_cruise_name)
  495. ] |random if night_dry_on and wind_cruise_on else
  496. ["夜深了,帮你打开{0}啦,静音不扰眠。".format(night_dry_name),
  497. "时间有点晚了,我会静悄悄的。",
  498. "夜间干衣,已自动开启静音功能,守护您的安宁。",
  499. "夜间烘也准备好了,干衣机会低噪运行,让您静享安宁。"
  500. ] |random if night_dry_on else
  501. ["夜深了,帮你打开{0},智能保管衣物。".format(wind_cruise_name) ,
  502. "时间有点晚了,{0}功能帮你守护衣物到天明。".format(wind_cruise_name),
  503. "夜间干衣,帮你打开{0}了,衣物久放也不用怕。".format(wind_cruise_name),
  504. "{0}也准备好了,烘干完成会帮你智能保管衣物。".format(wind_cruise_name)
  505. ]|random if wind_cruise_on else
  506. ""
  507. ] | first] | reject("equalto", "") | join("") }}
  508. """
  509. #=====环保模板
  510. value_env_second_key="broadcast-template-jinja:single_card:dry:time_environmental"
  511. value_env="""
  512. {{ [prefix_message |trim,"马上就到错峰用电时间段了,建议您预约烘干。"] |reject("equalto", "") | join("")}}
  513. """
  514. #================ 写入X11干机模板==========================================
  515. # 通用
  516. write_multi_common_key(type_id, zone_ids, value_common_second_key)
  517. write_jinja(value_common_second_key, value_common, notify=True)
  518. # 人气
  519. write_multi_key("time_made_popularity", zone_ids, popular_ids, type_id, value_popular_second_key)
  520. write_jinja(value_popular_second_key,value_popular, notify=True)
  521. # 定制
  522. write_multi_key("time_made_popularity", zone_ids, custom_ids, type_id, value_custom_second_key)
  523. write_jinja(value_custom_second_key,value_custom, notify=True)
  524. # 天气_洗干分区下单烘干程序专用
  525. # 写入多个指向同一个key
  526. write_multi_key("time_weather", zone_ids, rectype_ids, type_id, value_weather_second_key)
  527. write_jinja(value_weather_second_key,value_weather, notify=True)
  528. # # 季节
  529. write_multi_key("time_season_storage", zone_ids, rectype_ids, type_id, value_season_second_key)
  530. write_multi_key("time_season_in", zone_ids, rectype_ids, type_id, value_season_second_key)
  531. write_jinja(value_season_second_key,value_season, notify=True)
  532. # # 关怀
  533. write_multi_key("time_care", zone_ids, rectype_ids, type_id, value_care_second_key)
  534. write_jinja(value_care_second_key,value_care, notify=True)
  535. # # 环保
  536. write_multi_key("time_environmental", zone_ids, rectype_ids, type_id, value_env_second_key)
  537. write_jinja(value_env_second_key,value_env, notify=True)