Merge remote-tracking branch 'origin/main'

This commit is contained in:
远野千束 2024-08-15 16:40:58 +08:00
commit 65ad377099
9 changed files with 126 additions and 129 deletions

2
.gitignore vendored
View File

@ -3,6 +3,8 @@
.vscode/ .vscode/
.cache/ .cache/
venv/
node_modules/ node_modules/
data/ data/
db/ db/

View File

@ -45,7 +45,7 @@ def get_local_data(ulang_code: str) -> dict:
return { return {
"monday" : ulang.get("weather.monday"), "monday" : ulang.get("weather.monday"),
"tuesday" : ulang.get("weather.tuesday"), "tuesday" : ulang.get("weather.tuesday"),
"wednesday": ulang.get("weather.wednesday"), "wednesday" : ulang.get("weather.wednesday"),
"thursday" : ulang.get("weather.thursday"), "thursday" : ulang.get("weather.thursday"),
"friday" : ulang.get("weather.friday"), "friday" : ulang.get("weather.friday"),
"saturday" : ulang.get("weather.saturday"), "saturday" : ulang.get("weather.saturday"),
@ -55,6 +55,15 @@ def get_local_data(ulang_code: str) -> dict:
"day" : ulang.get("weather.day"), "day" : ulang.get("weather.day"),
"night" : ulang.get("weather.night"), "night" : ulang.get("weather.night"),
"no_aqi" : ulang.get("weather.no_aqi"), "no_aqi" : ulang.get("weather.no_aqi"),
"now-windVelocity" : ulang.get("weather.now-windVelocity"),
"now-humidity" : ulang.get("weather.now-humidity"),
"now-feelsLike" : ulang.get("weather.now-feelsLike"),
"now-precip" : ulang.get("weather.now-precip"),
"now-pressure" : ulang.get("weather.now-pressure"),
"now-vis" : ulang.get("weather.now-vis"),
"now-cloud" : ulang.get("weather.now-cloud"),
"astronomy-sunrise" : ulang.get("weather.astronomy-sunrise"),
"astronomy-sunset" : ulang.get("weather.astronomy-sunset"),
} }

View File

@ -10,3 +10,12 @@ weather.night=Night
weather.today=Today weather.today=Today
weather.tomorrow=Tomorrow weather.tomorrow=Tomorrow
weather.no_aqi=No AQI data weather.no_aqi=No AQI data
weather.now-windVelocity=WS
weather.now-humidity=RH
weather.now-feelsLike=FL
weather.now-precip=PPT
weather.now-pressure=MSLP
weather.now-vis=VIS
weather.now-cloud=CC
weather.astronomy-sunrise=SR
weather.astronomy-sunset=SS

View File

@ -10,3 +10,12 @@ weather.night=夜
weather.today=今日 weather.today=今日
weather.tomorrow=明日 weather.tomorrow=明日
weather.no_aqi=空気質データなし weather.no_aqi=空気質データなし
weather.now-windVelocity=風速
weather.now-humidity=湿度
weather.now-feelsLike=体感温度
weather.now-precip=降水量
weather.now-pressure=気圧
weather.now-vis=能視距離
weather.now-cloud=雲量
weather.astronomy-sunrise=日出
weather.astronomy-sunset=日没

View File

@ -10,3 +10,12 @@ weather.night=夜晚
weather.today=今天 weather.today=今天
weather.tomorrow=明天 weather.tomorrow=明天
weather.no_aqi=暂无AQI数据 weather.no_aqi=暂无AQI数据
weather.now-windVelocity=风矢
weather.now-humidity=湿度
weather.now-feelsLike=体感
weather.now-precip=降水
weather.now-pressure=气压
weather.now-vis=能见
weather.now-cloud=云量
weather.astronomy-sunrise=日出
weather.astronomy-sunset=日落

View File

@ -187,37 +187,37 @@
.ad-box { .ad-box {
margin-bottom: 20px; margin-bottom: 20px;
img {
border-radius: 60px;
}
} }
.sub-info { #ad {
border-radius: 60px;
}
#sub-info {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
gap: 10px; gap: 10px;
color: var(--main-text-color); color: var(--main-text-color);
font-size: 40px; font-size: 36px;
align-items: center; align-items: center;
} }
.sub-info>div { .sub-item {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 5px; gap: 5px;
overflow: hidden; overflow: hidden;
padding-left: 20px; padding-left: 20px;
}
/*要问就问html调svg为什么那么不友好*/ /*要问就问为什么html调svg那么不友好*/
img { .sub-svg {
transform: translateY(-80px); transform: translateY(-80px);
/*自定义颜色*/ /*此处用作自定义颜色*/
filter: drop-shadow(var(--main-text-color) 0 80px); filter: drop-shadow(var(--main-text-color) 0 80px);
/*自定义透明度*/ /*此处用作自定义透明度*/
opacity: 1; opacity: 1;
padding-right: 10px; padding-right: 10px;
}
} }
.attribution-box { .attribution-box {
@ -225,8 +225,9 @@
position: relative; position: relative;
display: flex; display: flex;
justify-content: center; justify-content: center;
}
#attribution-info { #attribution-info {
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
padding: 0 5px 0; padding: 0 5px 0;
background-color: rgba(0, 0, 0, 0.5); background-color: rgba(0, 0, 0, 0.5);
@ -236,5 +237,4 @@
word-wrap: break-word; word-wrap: break-word;
color: var(--sub-text-color); color: var(--sub-text-color);
text-align: center; text-align: center;
}
} }

View File

@ -54,7 +54,7 @@ if ("aqi" in aqi) {
} }
templates = { let templates = {
"time": weatherNow["now"]["obsTime"], "time": weatherNow["now"]["obsTime"],
"city": locationData["name"], "city": locationData["name"],
"adm": locationData["country"] + " " + locationData["adm1"] + " " + locationData["adm2"], "adm": locationData["country"] + " " + locationData["adm1"] + " " + locationData["adm2"],
@ -69,31 +69,48 @@ for (let id in templates) {
} }
subtemplates = { let subtemplates = {
"now-windDirect": weatherNow["now"]["windDir"] + " " + weatherNow["now"]["wind360"] + "°", "now-windDirect": weatherNow["now"]["windDir"] + " " + weatherNow["now"]["wind360"] + "°",
"now-windVelocity": "风矢 " + weatherNow["now"]["windScale"] + "级 " + weatherNow["now"]["windSpeed"] + "km/h", "now-windVelocity": localData["now-windVelocity"] + " " + weatherNow["now"]["windScale"] + "级 " + weatherNow["now"]["windSpeed"] + "km/h",
"now-humidity": "湿度 " + weatherNow["now"]["humidity"] + "%", "now-humidity": localData["now-humidity"] + " " + weatherNow["now"]["humidity"] + "%",
"now-feelsLike": "体感 " + weatherNow["now"]["feelsLike"] + "°C", "now-feelsLike": localData["now-feelsLike"] + " " + weatherNow["now"]["feelsLike"] + "°C",
"now-precip": "降水 " + weatherNow["now"]["precip"] + "mm", "now-precip": localData["now-precip"] + " " + weatherNow["now"]["precip"] + "mm",
"now-pressure": "气压 " + weatherNow["now"]["pressure"] + "hPa", "now-pressure": localData["now-pressure"] + " " + weatherNow["now"]["pressure"] + "hPa",
"vis": "能见 " + weatherNow["now"]["vis"] + "km", "now-vis": localData["now-vis"] + " " + weatherNow["now"]["vis"] + "km",
"cloud ": "云量 " + (weatherNow["now"]["cloud"] == "" ? "无数据" : (weatherNow["now"]["cloud"] + "%")), "now-cloud": localData["now-cloud"] + " " + (weatherNow["now"]["cloud"] == "" ? "无数据" : (weatherNow["now"]["cloud"] + "%")),
"astronomy-sunrise": "日出 " + get_time_hour(weatherAstronomy["sunrise"]), "astronomy-sunrise": localData["astronomy-sunrise"] + " " + get_time_hour(weatherAstronomy["sunrise"]),
"astronomy-sunset": "日落 " + get_time_hour(weatherAstronomy["sunset"]) "astronomy-sunset": localData["astronomy-sunset"] + " " + get_time_hour(weatherAstronomy["sunset"])
} }
let subItemDivTemplate = document.importNode(document.getElementById("sub-info-template").content, true); let subiconMap = {
"now-windDirect": "windDirect",
"now-windVelocity": "windVelocity",
"now-humidity": "humidity",
"now-feelsLike": "feelsLike",
"now-precip": "precip",
"now-pressure": "pressure",
"now-vis": "vis",
"now-cloud": "cloud",
"astronomy-sunrise": "sunrise",
"astronomy-sunset": "sunset"
};
let subItemDiv = subItemDivTemplate.querySelector(".sub-info"); let subtemplate = document.getElementById('sub-info-template').content;
let subcontainer = document.getElementById('sub-info');
for (let id in subtemplates) { Object.keys(subtemplates).forEach(id => {
let element = subItemDiv.querySelector(`#${id}`); let subItemDiv = document.importNode(subtemplate, true).querySelector('.sub-item');
if (element) {
element.innerText = subtemplates[id]; subItemDiv.querySelector(`div`).innerText = subtemplates[id];
}
} let iconName = subiconMap[id];
subItemDiv.querySelector(`img`).src = `./img/svg/${iconName}.svg`;
subItemDiv.querySelector(`img`).alt = `SVG ${id}`;
subcontainer.appendChild(subItemDiv);
});
document.getElementById('sub-info').appendChild(subItemDiv);
let maxHourlyItem = 8 let maxHourlyItem = 8
let percentWidth = 1 / (maxHourlyItem * 1.5) * 100 let percentWidth = 1 / (maxHourlyItem * 1.5) * 100
@ -161,7 +178,6 @@ function get_time_hour(fxTime) {
return fxTime.split("T")[1].split("+")[0] return fxTime.split("T")[1].split("+")[0]
} }
let attrinfo = document.getElementById('attribution-info');
if (!is_dev & !attr) attrinfo.parentElement.style.display = "none"
attrinfo.innerText = is_dev ? "Weather Service Drived by QWeather" : (attr ? attr : "Weather Service Drived by QWeather") let attrinfo = document.getElementById('attribution-info');
attrinfo.innerText = is_dev ? "Weather Service Drived by QWeather" : (attr ? attr : "Weather Service Drived by QWeather");

View File

@ -7,7 +7,6 @@
<link rel="stylesheet" href="./css/card.css"> <link rel="stylesheet" href="./css/card.css">
<link rel="stylesheet" href="./css/fonts.css"> <link rel="stylesheet" href="./css/fonts.css">
<link rel="stylesheet" href="css/weather_now.css"> <link rel="stylesheet" href="css/weather_now.css">
<link rel="stylesheet" href="css/extra_info.css">
</head> </head>
<!-- qw_icon: https://a.hecdn.net/img/common/icon/202106d/%d.png--> <!-- qw_icon: https://a.hecdn.net/img/common/icon/202106d/%d.png-->
@ -38,68 +37,9 @@
</template> </template>
<template id="sub-info-template"> <template id="sub-info-template">
<div class="sub-info"> <div class="sub-item">
<div> <img class="sub-svg" src="" alt="SVG" width="50" height="50">
<img src="./img/svg/windDirect.svg" alt="SVG windDirect" width="60" height="60"> <div>示例信息</div>
<div id="now-windDirect">
西北风 315°
</div>
</div>
<div><img src="./img/svg/windVelocity.svg" alt="SVG windVelocity" width="60" height="60">
<div id="now-windVelocity">
风矢 2级 10km/h
</div>
</div>
<div>
<img src="./img/svg/humidity.svg" alt="SVG humidity" width="60" height="60">
<div id="now-humidity">
湿度 45%
</div>
</div>
<div>
<img src="./img/svg/feelsLike.svg" alt="SVG feelsLike" width="60" height="60">
<div id="now-feelsLike">
体感 32°C
</div>
</div>
<div>
<img src="./img/svg/precip.svg" alt="SVG precip" width="60" height="60">
<div id="now-precip">
降水 0.0mm
</div>
</div>
<div>
<img src="./img/svg/pressure.svg" alt="SVG pressure" width="60" height="60">
<div id="now-pressure">
气压 979hPa
</div>
</div>
<div>
<img src="./img/svg/vis.svg" alt="SVG sunset" width="60" height="60">
<div id="vis">
能见 5km
</div>
</div>
<div>
<img src="./img/svg/cloud.svg" alt="SVG sunset" width="60" height="60">
<div id="cloud">
云量 50%
</div>
</div>
<div>
<img src="./img/svg/sunrise.svg" alt="SVG sunrise" width="60" height="60">
<div id="astronomy-sunrise">
日出 06:37
</div>
</div>
<div>
<img src="./img/svg/sunset.svg" alt="SVG sunset" width="60" height="60">
<div id="astronomy-sunset">
日落 19:01
</div>
</div>
</div> </div>
</template> </template>

View File

@ -107,6 +107,10 @@
margin-bottom: 10px; margin-bottom: 10px;
margin-left: 20px; margin-left: 20px;
text-align: left; text-align: left;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: calc(100% - 40px);
z-index: 2; z-index: 2;
} }
@ -124,4 +128,3 @@
color: var(--sub-text-color); color: var(--sub-text-color);
text-align: right; text-align: right;
} }