diff --git a/plugins/weather.py b/plugins/weather.py index 445b1f6..ded39b0 100644 --- a/plugins/weather.py +++ b/plugins/weather.py @@ -186,7 +186,7 @@ async def handle_weather(bot, event: MessageEvent, args: List[str]): try: # 渲染HTML模板为图片 base64_image = await image_manager.render_template_to_base64( - "weather.html", weather_info, output_name="weather.png", width=1080 + "weather.html", weather_info, output_name="weather.png", width=400, height=500 ) if base64_image: diff --git a/templates/weather.html b/templates/weather.html index 6576f55..8ef9578 100644 --- a/templates/weather.html +++ b/templates/weather.html @@ -4,23 +4,16 @@ 天气查询结果 + + + -
-
-
-
-
-
+
+ +
+
{{ city_name }}
+ + {% set first_day = weather_data[0] %} +
+ {{ first_day.temperature.split(' / ')[0].replace('℃', '') if ' / ' in first_day.temperature else first_day.temperature.replace('℃', '') }} + °C +
+ +
+ {{ first_day.weather }} +
+ 风力 {{ first_day.wind_power }}
-
天气查询
-
-
-

天气查询结果

-

{{ timestamp }}

-
- -
-
{{ city_name }}
-
查询时间: {{ query_time }}
-
- -
- {% for day_weather in weather_data %} -
-
-
{{ day_weather.day }}
-
{{ day_weather.weather }}
-
-
-
{{ day_weather.temperature }}
-
-
-
-
风力
-
{{ day_weather.wind_power }}
-
-
-
风向
-
{{ day_weather.wind_direction }}
-
+ +
+
+ {% set month = query_time.split('年')[1].split('月')[0] if '年' in query_time else '3' %} + {# 星期名称映射 #} + {% set week_names = ['日', '一', '二', '三', '四', '五', '六'] %} + {# 从第一天数据中提取今天是星期几 #} + {% set first_day_text = weather_data[0].day %} + {% set today_week_text = first_day_text.split('(')[1].replace(')', '') if '(' in first_day_text else '今天' %} + {# 将文字星期转换为数字:今天=0, 明天=1, 后天=2, 周一=1, 周二=2... #} + {% if today_week_text == '今天' %} + {% set today_week_num = 0 %} + {% elif today_week_text == '明天' %} + {% set today_week_num = 1 %} + {% elif today_week_text == '后天' %} + {% set today_week_num = 2 %} + {% elif '周' in today_week_text %} + {% set week_day_char = today_week_text.replace('周', '').replace('星期', '') %} + {% set week_map = {'日': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6} %} + {% set today_week_num = week_map[week_day_char] if week_day_char in week_map else 0 %} + {% else %} + {% set today_week_num = 0 %} + {% endif %} + {% for day_weather in weather_data[:5] %} +
+
+ {% set day_text = day_weather.day %} + {% set day_num = day_text.split('日')[0] %} + {% if loop.index0 == 0 %} + 今日 + {% elif loop.index0 == 1 %} + 明日 + {% elif loop.index0 == 2 %} + 后日 + {% else %} + {# 计算这一天的星期:今天 + 天数偏移 #} + {% set target_week_num = (today_week_num + loop.index0) % 7 %} + 星期{{ week_names[target_week_num] }} + {% endif %} + {{ month }}/{{ day_num }}
+
{% endfor %}
- + +
+ + - + +