月相:{{item.moonPhase}} 月出:{{item.sunrise}} 月落:{{item.moonset}}
-
\ No newline at end of file
diff --git a/lib/routes/qweather/templates/now.art b/lib/routes/qweather/templates/now.art
deleted file mode 100644
index dfdbdf7e0..000000000
--- a/lib/routes/qweather/templates/now.art
+++ /dev/null
@@ -1,16 +0,0 @@
-天气:{{item.text}}
-
-气温:{{item.temp}}℃
-
-体感温度:{{item.feelsLike}}℃
-
-风向:{{item.windDir}}
-
-风力:{{item.windScale}}级 风速:{{item.windSpeed}}km/h
-
-湿度:{{item.humidity}}% 大气压强:{{item.pressure}}hPa
-
-本小时降水量:{{item.precip}}mm
-
-能见度:{{item.vis}}km
-
\ No newline at end of file
diff --git a/lib/routes/qweather/util.tsx b/lib/routes/qweather/util.tsx
new file mode 100644
index 000000000..273d46f18
--- /dev/null
+++ b/lib/routes/qweather/util.tsx
@@ -0,0 +1,89 @@
+import { renderToString } from 'hono/jsx/dom/server';
+
+interface WeatherForecastItem {
+ fxDate: string;
+ textDay: string;
+ textNight: string;
+ tempMin: number;
+ tempMax: number;
+ humidity: number;
+ aqi: number;
+ aqiCategory: string;
+ pressure: number;
+ uvIndex: number;
+ windDirDay: string;
+ windScaleDay: number;
+ windSpeedDay: number;
+ windDirNight: string;
+ windScaleNight: number;
+ windSpeedNight: number;
+ vis: number;
+ sunrise: string;
+ sunset: string;
+ moonPhase: string;
+ moonset: string;
+}
+
+interface NowItem {
+ text: string;
+ temp: number;
+ feelsLike: number;
+ windDir: string;
+ windScale: number;
+ windSpeed: number;
+ humidity: number;
+ pressure: number;
+ precip: number;
+ vis: number;
+}
+
+const render3DaysDescription = (item: WeatherForecastItem) => renderToString();
+const renderNowDescription = (item: NowItem) => renderToString();
+
+const WeatherForecast = ({ item }: { item: WeatherForecastItem }) => (
+
+ 白天:{item.textDay}——夜间:{item.textNight}
+
+ 气温:{item.tempMin}℃~{item.tempMax}℃
+
+ 相对湿度:{item.humidity}%
+
+ 空气质量指数:{item.aqi} ({item.aqiCategory})
+
+ 大气压强:{item.pressure}百帕
+
+ 紫外线强度:{item.uvIndex}
+
+ 白天风向:{item.windDirDay} 风力:{item.windScaleDay}级 风速:{item.windSpeedDay}公里/小时
+
+ 夜间风向:{item.windDirNight} 风力:{item.windScaleNight}级 风速:{item.windSpeedNight}公里/小时
+
+ 能见度:{item.vis}公里
+
+ 日出:{item.sunrise} 日落: {item.sunset}
+
+ 月相:{item.moonPhase} 月出:{item.sunrise} 月落:{item.moonset}
+
+);
+
+const Now = ({ item }: { item: NowItem }) => (
+
+ 天气:{item.text}
+
+ 气温:{item.temp}℃
+
+ 体感温度:{item.feelsLike}℃
+
+ 风向:{item.windDir}
+
+ 风力:{item.windScale}级 风速:{item.windSpeed}km/h
+
+ 湿度:{item.humidity}% 大气压强:{item.pressure}hPa
+
+ 本小时降水量:{item.precip}mm
+
+ 能见度:{item.vis}km
+
+);
+
+export { render3DaysDescription, renderNowDescription, type WeatherForecastItem, type NowItem };