Merge branch 'master' into patch-2

This commit is contained in:
Igor Chubin 2022-06-06 12:36:49 +02:00 committed by GitHub
commit 7ee34404ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 87 additions and 92 deletions

View file

@ -22,7 +22,7 @@ WORKDIR /app
COPY ./requirements.txt /app
ENV LLVM_CONFIG=/usr/bin/llvm10-config
ENV LLVM_CONFIG=/usr/bin/llvm11-config
RUN apk add --no-cache --virtual .build \
autoconf \

View file

@ -59,11 +59,8 @@ You can see it running here: [wttr.in](https://wttr.in).
` ├── 9.6 - `Configure wttr.in<br>
` └── 9.7 - `Configure the HTTP-frontend service<br>
<br>
======================================================================
======================================================================
[Documentation](https://wttr.in/:help) | [Usage](https://github.com/chubin/wttr.in#usage) | [One-line output](https://github.com/chubin/wttr.in#one-line-output) | [Data-rich output format](https://github.com/chubin/wttr.in#data-rich-output-format-v2) | [Map view](https://github.com/chubin/wttr.in#map-view-v3) | [Output formats](https://github.com/chubin/wttr.in#different-output-formats) | [Moon phases](https://github.com/chubin/wttr.in#moon-phases) | [Internationalization](https://github.com/chubin/wttr.in#internationalization-and-localization) | [Windows issues](https://github.com/chubin/wttr.in#windows-users) | [Installation](https://github.com/chubin/wttr.in#installation)
## Usage
@ -239,6 +236,7 @@ To specify your own custom output format, use the special `%`-notation:
M Moon day,
p Precipitation (mm/3 hours),
P Pressure (hPa),
u UV index (1-12),
D Dawn*,
S Sunrise*,

View file

@ -84,6 +84,7 @@ def parse_query(args):
if 'm' in q:
result['use_metric'] = True
if 'M' in q:
result['use_metric'] = True
result['use_ms_for_wind'] = True
if 'u' in q:
result['use_imperial'] = True

View file

@ -167,6 +167,14 @@ def render_pressure(data, query):
answer += 'hPa'
return answer
def render_uv_index(data, query):
"""
UV Index (u)
"""
answer = data.get('uvIndex', '')
return answer
def render_wind(data, query):
"""
wind (w)
@ -284,6 +292,7 @@ FORMAT_SYMBOL = {
'p': render_precipitation,
'o': render_precipitation_chance,
'P': render_pressure,
"u": render_uv_index,
}
FORMAT_SYMBOL_ASTRO = {

View file

@ -31,6 +31,7 @@ def get_wetter(parsed_query):
returncode = 0
if not location_not_found:
stdout, stderr, returncode = _wego_wrapper(location, parsed_query)
first_line, stdout = _wego_postprocessing(location, parsed_query, stdout)
if location_not_found or \
(returncode != 0 \
@ -57,13 +58,8 @@ def get_wetter(parsed_query):
not_found_footer = "\n".join("\033[48;5;91m " + x + " \033[0m"
for x in not_found_footer.splitlines() if x) + "\n"
stdout = not_found_header + "\n----\n" + stdout + not_found_footer
if "\n" in stdout:
first_line, stdout = _wego_postprocessing(location, parsed_query, stdout)
else:
first_line = ""
stdout = not_found_header + "\n----\n" + stdout + not_found_footer
if html:
return _htmlize(stdout, first_line, parsed_query)

View file

@ -5,52 +5,53 @@
أنواع الأماكن المدعومة:
/paris # أسم المدينة
/paris # اسم المدينة
/~Eiffel+tower # أي مكان
/Москва # أسم يونيكود ﻷي مكان بأي لغة
/muc # airport code (3 letters)
/@stackoverflow.com # أسم النطاق
/Москва # اسم يونيكود ﻷي مكان بأي لغة
/muc # الاسم النمطي للمطار (3 احرف)
/@stackoverflow.com # اسم النطاق
/94107 # رمز المنطقة
/-78.46,106.79 # GPS إحداثيات الـ
الأماكن الخاصة:
/moon # مرحلة القمر (أضف ,+US أو ,+France لهؤلاء المدن)
/moon@2016-10-25 # مرحلة القمر بتاريخ (@2016-10-25)
/moon # مرحلة القمر (أضف ,+US أو ,+France لمدينة معينة)
/moon@2016-10-25 # مرحلة القمر بتاريخ (2016-10-25)
الوحدات:
m # المتريّ (SI) (يستخدم في العادة في كل الأماكن ما عدا الولايات المتحدة)
m # النظام المتريّ (SI) (يستخدم في العادة في كل الأماكن ما عدا الولايات المتحدة)
u # وحدات القياس العرفية الأمريكية (يستخدم في العادة في الولايات المتحدة)
M # إظهار سرعة الرياح بوحدة م/ث
خيارات العرض:
0 # فقط الطقس الحالي
1 # الطقس الحالي + 1 يوم
2 # الطقس الحالي + 2 يوم
A # تجاهل الوكيل المستخدم وقم بإجبار تنسيق المعهد القومى الأمريكى للتنميط (الطرفية)
0 # الطقس الحالي فقط
1 # الطقس الحالي وطقس اليوم
2 # الطقس الحالي وطقس اليوم ويوم غد
A # تجاهل الوكيل المستخدم وقم بتطبيق نمط ANSI (الطرفية)
F # "لا تظهر سطر "المتابعة
n # النسخة الضيقة (النهار والليل فقط)
n # النسخة الخفيفة جدا (النهار والليل فقط)
q # النسخة الصامتة (من غير عبارة "تقرير جوي")
Q # النسخة الصامتة كليا (من غير عبارة "تقرير جوي", من غير أسم المدينة)
T # إطفاء تسلسل الطرفية (من غير ألوان)
Q # النسخة الصامتة كليا (بدون عبارة "تقرير جوي" أو اسم المدينة)
T # العودة لنمط تسلسل الطرفية (من غير ألوان)
PNG خيارات:
/paris.png # png إنشاء صورة بصيغة
/paris.png # PNG إنشاء صورة بصيغة
p # إضافة إطار حول المخرج
t # الشفافية 150
transparency=... # الشفافية من 0 إلي 255 (255 = غير شفاف)
transparency=... # الشفافية من 0 إلي 255 (255 = غير شفاف)
background=... # لون الخلفية بنمط RRGGBB
يمكن جمع الخيارات:
/Paris?0pq
/Paris?0pq&lang=fr
/Paris_0pq.png # خيار الملف يتم تحديده في ما بعد PNG في
/Paris_0pq.png # يتم تحديد خيار ملف PNG بعد الشرطة السفلية
/Rome_0pq_lang=it.png # الخيارات الطويلة يتم فصلهم عن طريق شرطة سفلية
حصر المكان:
الترجمة:
$ curl fr.wttr.in/Paris
$ curl wttr.in/paris?lang=fr
@ -63,7 +64,7 @@
روابط URLs خاصة :
/:help # إظهار هذه الصفحة
/:bash.function # wttr() bash إظهار الميزة الخاصةبـ
/:translation # إظهار المعلومات حول المترجمين
/:help # عرض هذه الصفحة
/:bash.function # wttr() bash عرض الميزة الخاصةبـ
/:translation # عرض المعلومات حول المترجمين

View file

@ -1,47 +1,47 @@
113: صَافٍ : Clear
113: مُشْمِسٌ : Sunny
116: غَائِمٌ جزئياً‏ : Partly cloudy
119: غَائِمٌ : Cloudy
122: مُلبَّد بالغُيُوم : Overcast
143: ضَبَاب خَفيف : Mist
176: مِنَ الْمُمْكِنِ هُطول أمطار متفرِّقة : Patchy rain possible
179: مِنَ الْمُمْكِنِ هُطول ثُلُوج متفرِّقة : Patchy snow possible
182: مِنَ الْمُمْكِنِ هُطول المطر الثلجي متفرِّقة : Patchy sleet possible
185: مِنَ الْمُمْكِنِ هُطول أمطار متفرِّقة : Patchy freezing drizzle possible
200: مِنَ الْمُمْكِنِ ظُهورَ الرَعد : Thundery outbreaks possible
227: ثُلُوج غَزِيْرَةُ : Blowing snow
230: عاصِفة ثلجية : Blizzard
248: ضَّبَابُ كَثيف : Fog
260: ضَّبَابُ جامِد : Freezing fog
263: رَّذاذُ مَطَرِ متفرِّق : Patchy light drizzle
266: رَّذاذُ مَطَرِ : Light drizzle
281: رَّذاذُ مُتَجمَّد : Freezing drizzle
284: رَّذاذُ مُتَجمَّد غَزير : Heavy freezing drizzle
293: أمطار خَفيفة متفرِّقة : Patchy light rain
296: أمطار خَفيفة : Light rain
299: أمطار مُعْتَدِلَةُ في بَعْضِ الأوْقات : Moderate rain at times
302: أمطار مُعْتَدِلَةُ : Moderate rain
305: أمطار كَثيفة في بَعْضِ الأوْقات : Heavy rain at times
308: أمطار كَثيفة : Heavy rain
311: أمطار مُتَجمَّدة خَفيفة : Light freezing rain
314: أمطار مُتَجمَّدة مُعْتَدِلَةُ أو كَثيفة : Moderate or heavy freezing rain
317: مطر ثلجي خَفيف : Light sleet
320: مطر ثلجي مُعْتَدِلَ أو كَثيف : Moderate or heavy sleet
323: ثُلُوج خَفيفة متفرِّقة : Patchy light snow
326: ثُلُوج خَفيفة : Light snow
329: ثُلُوج مُعْتَدِلَةُ متفرِّقة : Patchy moderate snow
332: ثُلُوج مُعْتَدِلَةُ : Moderate snow
335: ثُلُوج كَثيفة متفرِّقة : Patchy heavy snow
338: ثُلُوج كَثيفة : Heavy snow
350: حُبَيْبات جليدية : Ice pellets
353: رَّذاذُ مَطَرٌ خَفِيف : Light rain shower
356: رَّذاذُ مَطَرٌ مُعْتَدِلَ أو كَثيف : Moderate or heavy rain shower
359: رَّذاذُ مطر غَزِيْرَ : Torrential rain shower
362: رَّذاذُ مطر ثلجي خَفيف : Light sleet showers
365: رَّذاذُ مطر ثلجي مُعْتَدِلَ أو كَثيف : Moderate or heavy sleet showers
368: رَّذاذُ ثلجي خَفيف : Light snow showers
371: رَّذاذُ ثلجي خَفيف : Moderate or heavy snow showers
386: أمطار خَفيفة متفرِّقة مَصحوبة بالرَعد : Patchy light rain with thunder
389: أمطار مُعْتَدِلَةُ أو كَثيفة متفرِّقة مَصحوبة بالرَعد : Moderate or heavy rain with thunder
392: ثُلُوج خَفيفة متفرِّقة مَصحوبة بالرَعد : Patchy light snow with thunder
395: ثُلُوج مُعْتَدِلَةُ أو كَثيفة متفرِّقة مَصحوبة بالرَعد : Moderate or heavy snow with thunder
113: صاف : Clear
113: مشمس : Sunny
116: غائم جزئياً‏ : Partly cloudy
119: غائم : Cloudy
122: ملبد بالغيوم : Overcast
143: شبورة : Mist
176: احتمال هطول أمطار متفرقة : Patchy rain possible
179: احتمال هطول ثلوج متفرقة : Patchy snow possible
182: احتمال هطول المطر الثلجي متفرقة : Patchy sleet possible
185: احتمال هطول أمطار متفرقة : Patchy freezing drizzle possible
200: احتمال ظهور الرعد : Thundery outbreaks possible
227: هبوب ثلجية : Blowing snow
230: عاصفة ثلجية : Blizzard
248: ضباب : Fog
260: ضباب بارد : Freezing fog
263: رذاذ خفيف متقطع : Patchy light drizzle
266: رذاذ خفيف : Light drizzle
281: رذاذ بارد : Freezing drizzle
284: رذاذ غزير بارد : Heavy freezing drizzle
293: أمطار خفيفة متفرقة : Patchy light rain
296: أمطار خفيفة : Light rain
299: أمطار معتدلة أحياناً : Moderate rain at times
302: أمطار معتدلة : Moderate rain
305: أمطار كثيفة أحياناً : Heavy rain at times
308: أمطار كثيفة : Heavy rain
311: أمطار باردة خفيفة : Light freezing rain
314: أمطار باردة معتدلة أو كثيفة : Moderate or heavy freezing rain
317: مطر ثلجي خفيف : Light sleet
320: مطر ثلجي معتدل أو كثيف : Moderate or heavy sleet
323: ثلوج خفيفة متفرقة : Patchy light snow
326: ثلوج خفيفة : Light snow
329: ثلوج معتدلة متفرقة : Patchy moderate snow
332: ثلوج معتدلة : Moderate snow
335: ثلوج كثيفة متفرقة : Patchy heavy snow
338: ثلوج كثيفة : Heavy snow
350: حبيبات جليدية : Ice pellets
353: رذاذ مطر خفيف : Light rain shower
356: رذاذ مطر معتدل أو كثيف : Moderate or heavy rain shower
359: رذاذ مطر غزير : Torrential rain shower
362: رذاذ مطر ثلجي خفيف : Light sleet showers
365: رذاذ مطر ثلجي معتدل أو كثيف : Moderate or heavy sleet showers
368: رذاذ ثلجي خفيف : Light snow showers
371: رذاذ ثلجي معتدل أو كثيف : Moderate or heavy snow showers
386: أمطار خفيفة متفرقة مصحوبة بالرعد : Patchy light rain with thunder
389: أمطار معتدلة أو كثيفة متفرقة مصحوبة بالرعد : Moderate or heavy rain with thunder
392: ثلوج خفيفة متفرقة مصحوبة بالرعد : Patchy light snow with thunder
395: ثلوج معتدلة أو كثيفة متفرقة مصحوبة بالرعد : Moderate or heavy snow with thunder

View file

@ -865,17 +865,9 @@ func formatCond(cur []string, c cond, current bool) (ret []string) {
}
}
if config.RightToLeft {
ret = append(ret, fmt.Sprintf("%v %v %v", cur[0], desc, icon[0]))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[1], formatTemp(c), icon[1]))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[2], formatWind(c), icon[2]))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[3], formatVisibility(c), icon[3]))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[4], formatRain(c), icon[4]))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[0], desc, icon[0]), fmt.Sprintf("%v %v %v", cur[1], formatTemp(c), icon[1]), fmt.Sprintf("%v %v %v", cur[2], formatWind(c), icon[2]), fmt.Sprintf("%v %v %v", cur[3], formatVisibility(c), icon[3]), fmt.Sprintf("%v %v %v", cur[4], formatRain(c), icon[4]))
} else {
ret = append(ret, fmt.Sprintf("%v %v %v", cur[0], icon[0], desc))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[1], icon[1], formatTemp(c)))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[2], icon[2], formatWind(c)))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[3], icon[3], formatVisibility(c)))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[4], icon[4], formatRain(c)))
ret = append(ret, fmt.Sprintf("%v %v %v", cur[0], icon[0], desc), fmt.Sprintf("%v %v %v", cur[1], icon[1], formatTemp(c)), fmt.Sprintf("%v %v %v", cur[2], icon[2], formatWind(c)), fmt.Sprintf("%v %v %v", cur[3], icon[3], formatVisibility(c)), fmt.Sprintf("%v %v %v", cur[4], icon[4], formatRain(c)))
}
return
}
@ -1095,9 +1087,7 @@ func getDataFromAPI() (ret resp) {
if len(config.City) > 0 {
params = append(params, "q="+url.QueryEscape(config.City))
}
params = append(params, "format=json")
params = append(params, "num_of_days="+strconv.Itoa(config.Numdays))
params = append(params, "tp=3")
params = append(params, "format=json", "num_of_days="+strconv.Itoa(config.Numdays), "tp=3")
if config.Lang != "" {
params = append(params, "lang="+config.Lang)
}