aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/UserScripts
diff options
context:
space:
mode:
authorJa.KooLit <jimmielovejay@gmail.com>2024-05-05 00:11:05 +0900
committerGitHub <noreply@github.com>2024-05-05 00:11:05 +0900
commite27bc1e75280f02a0798e7150d7e7c775ee1aff6 (patch)
tree156f3d32fc5f6d20389baa84b496ad94f9406d6a /config/hypr/UserScripts
parent41c3de1b08d253a8b9a78f7c15ee1eb2ac1d9395 (diff)
parentc32e177c6696c3d283188cbabc1a78cd4364476c (diff)
Merge pull request #233 from JaKooLit/development
V2.2.10 Changes
Diffstat (limited to 'config/hypr/UserScripts')
-rwxr-xr-xconfig/hypr/UserScripts/QuickEdit.sh10
-rwxr-xr-xconfig/hypr/UserScripts/Weather.py206
2 files changed, 111 insertions, 105 deletions
diff --git a/config/hypr/UserScripts/QuickEdit.sh b/config/hypr/UserScripts/QuickEdit.sh
index 658d7b03..af5c65d2 100755
--- a/config/hypr/UserScripts/QuickEdit.sh
+++ b/config/hypr/UserScripts/QuickEdit.sh
@@ -12,8 +12,9 @@ menu(){
printf "5. view Monitors\n"
printf "6. view Laptop-Keybinds\n"
printf "7. view User-Settings\n"
- printf "8. view Default-Settings\n"
- printf "9. view Default-Keybinds\n"
+ printf "8. view Workspace-Rules\n"
+ printf "9. view Default-Settings\n"
+ printf "10. view Default-Keybinds\n"
}
main() {
@@ -41,9 +42,12 @@ main() {
kitty -e nano "$UserConfigs/UserSettings.conf"
;;
8)
+ kitty -e nano "$UserConfigs/WorkspaceRules.conf"
+ ;;
+ 9)
kitty -e nano "$configs/Settings.conf"
;;
- 9)
+ 10)
kitty -e nano "$configs/Keybinds.conf"
;;
*)
diff --git a/config/hypr/UserScripts/Weather.py b/config/hypr/UserScripts/Weather.py
index 2b13a977..14c9cfe0 100755
--- a/config/hypr/UserScripts/Weather.py
+++ b/config/hypr/UserScripts/Weather.py
@@ -1,122 +1,124 @@
#!/usr/bin/env python3
-# From https://raw.githubusercontent.com/rxyhn/dotfiles/main/home/rxyhn/modules/desktop/waybar/scripts/waybar-wttr.py
-# ensure to insert city inside ""
-city = ""
+import subprocess
+from pyquery import PyQuery # install using `pip install pyquery`
import json
-import requests
-from datetime import datetime
-WEATHER_CODES = {
- '113': '',
- '116': '󰖕',
- '119': '',
- '122': '',
- '143': '',
- '176': '',
- '179': '',
- '182': '',
- '185': '',
- '200': '⛈️',
- '227': '🌨️',
- '230': '🌨️',
- '248': '☁️ ',
- '260': '☁️',
- '263': '🌧️',
- '266': '🌧️',
- '281': '🌧️',
- '284': '🌧️',
- '293': '🌧️',
- '296': '🌧️',
- '299': '🌧️',
- '302': '🌧️',
- '305': '🌧️',
- '308': '🌧️',
- '311': '🌧️',
- '314': '🌧️',
- '317': '🌧️',
- '320': '🌨️',
- '323': '🌨️',
- '326': '🌨️',
- '329': '❄️',
- '332': '❄️',
- '335': '❄️',
- '338': '❄️',
- '350': '🌧️',
- '353': '🌧️',
- '356': '🌧️',
- '359': '🌧️',
- '362': '🌧️',
- '365': '🌧️',
- '368': '🌧️',
- '371': '❄️',
- '374': '🌨️',
- '377': '🌨️',
- '386': '🌨️',
- '389': '🌨️',
- '392': '🌧️',
- '395': '❄️'
-}
-data = {}
+# original code https://gist.github.com/Surendrajat/ff3876fd2166dd86fb71180f4e9342d7
+# weather icons
+weather_icons = {
+ "sunnyDay": "",
+ "clearNight": "",
+ "cloudyFoggyDay": "",
+ "cloudyFoggyNight": "",
+ "rainyDay": "",
+ "rainyNight": "",
+ "snowyIcyDay": "",
+ "snowyIcyNight": "",
+ "severe": "",
+ "default": "",
+}
+# get location_id
+# to get your own location_id, go to https://weather.com & search your location.
+# once you choose your location, you can see the location_id in the URL(64 chars long hex string)
+# like this: https://weather.com/en-PH/weather/today/l/bca47d1099e762a012b9a139c36f30a0b1e647f69c0c4ac28b537e7ae9c1c200
+location_id = "bca47d1099e762a012b9a139c36f30a0b1e647f69c0c4ac28b537e7ae9c1c200" # TODO
-weather = requests.get(f"https://wttr.in/{city}?format=j1").json()
+# NOTE to change to deg F, change the URL to your preffered location after weather.com
+# Default is English-Philippines with Busan, South Korea as location_id
+# get html page
+url = "https://weather.com/en-PH/weather/today/l/" + location_id
+html_data = PyQuery(url=url)
+# current temperature
+temp = html_data("span[data-testid='TemperatureValue']").eq(0).text()
+# print(temp)
-def format_time(time):
- return time.replace("00", "").zfill(2)
+# current status phrase
+status = html_data("div[data-testid='wxPhrase']").text()
+status = f"{status[:16]}.." if len(status) > 17 else status
+# print(status)
+# status code
+status_code = html_data("#regionHeader").attr("class").split(" ")[2].split("-")[2]
+# print(status_code)
-def format_temp(temp):
- return (hour['FeelsLikeC']+"°").ljust(3)
+# status icon
+icon = (
+ weather_icons[status_code]
+ if status_code in weather_icons
+ else weather_icons["default"]
+)
+# print(icon)
+# temperature feels like
+temp_feel = html_data(
+ "div[data-testid='FeelsLikeSection'] > span > span[data-testid='TemperatureValue']"
+).text()
+temp_feel_text = f"Feels like {temp_feel}c"
+# print(temp_feel_text)
-def format_chances(hour):
- chances = {
- "chanceoffog": "Fog",
- "chanceoffrost": "Frost",
- "chanceofovercast": "Overcast",
- "chanceofrain": "Rain",
- "chanceofsnow": "Snow",
- "chanceofsunshine": "Sunshine",
- "chanceofthunder": "Thunder",
- "chanceofwindy": "Wind"
- }
+# min-max temperature
+temp_min = (
+ html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']")
+ .eq(0)
+ .text()
+)
+temp_max = (
+ html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']")
+ .eq(1)
+ .text()
+)
+temp_min_max = f" {temp_min}\t\t {temp_max}"
+# print(temp_min_max)
- conditions = []
- for event in chances.keys():
- if int(hour[event]) > 0:
- conditions.append(chances[event]+" "+hour[event]+"%")
- return ", ".join(conditions)
+# wind speed
+wind_speed = html_data("span[data-testid='Wind']").text().split("\n")[1]
+wind_text = f"煮 {wind_speed}"
+# print(wind_text)
-tempint = int(weather['current_condition'][0]['FeelsLikeC'])
-extrachar = ''
-if tempint > 0 and tempint < 10:
- extrachar = '+'
+# humidity
+humidity = html_data("span[data-testid='PercentageValue']").text()
+humidity_text = f" {humidity}"
+# print(humidity_text)
+# visibility
+visbility = html_data("span[data-testid='VisibilityValue']").text()
+visbility_text = f" {visbility}"
+# print(visbility_text)
-data['text'] = ' '+WEATHER_CODES[weather['current_condition'][0]['weatherCode']] + \
- " "+extrachar+weather['current_condition'][0]['FeelsLikeC']+"°"
+# air quality index
+air_quality_index = html_data("text[data-testid='DonutChartValue']").text()
+# print(air_quality_index)
-data['tooltip'] = f"<b>{weather['current_condition'][0]['weatherDesc'][0]['value']} {weather['current_condition'][0]['temp_C']}°</b>\n"
-data['tooltip'] += f"Feels like: {weather['current_condition'][0]['FeelsLikeC']}°\n"
-data['tooltip'] += f"Wind: {weather['current_condition'][0]['windspeedKmph']}Km/h\n"
-data['tooltip'] += f"Humidity: {weather['current_condition'][0]['humidity']}%\n"
-for i, day in enumerate(weather['weather']):
- data['tooltip'] += f"\n<b>"
- if i == 0:
- data['tooltip'] += "Today, "
- if i == 1:
- data['tooltip'] += "Tomorrow, "
- data['tooltip'] += f"{day['date']}</b>\n"
- data['tooltip'] += f"⬆️{day['maxtempC']}° ⬇️{day['mintempC']}° "
- data['tooltip'] += f"🌅{day['astronomy'][0]['sunrise']} 🌇{day['astronomy'][0]['sunset']}\n"
- for hour in day['hourly']:
- if i == 0:
- if int(format_time(hour['time'])) < datetime.now().hour-2:
- continue
- data['tooltip'] += f"{format_time(hour['time'])} {WEATHER_CODES[hour['weatherCode']]} {format_temp(hour['FeelsLikeC'])} {hour['weatherDesc'][0]['value']}, {format_chances(hour)}\n"
+# hourly rain prediction
+prediction = html_data("section[aria-label='Hourly Forecast']")(
+ "div[data-testid='SegmentPrecipPercentage'] > span"
+).text()
+prediction = prediction.replace("Chance of Rain", "")
+prediction = f"\n\n (hourly) {prediction}" if len(prediction) > 0 else prediction
+# print(prediction)
+# tooltip text
+tooltip_text = str.format(
+ "\t\t{}\t\t\n{}\n{}\n{}\n\n{}\n{}\n{}{}",
+ f'<span size="xx-large">{temp}</span>',
+ f"<big> {icon}</big>",
+ f"<b>{status}</b>",
+ f"<small>{temp_feel_text}</small>",
+ f"<b>{temp_min_max}</b>",
+ f"{wind_text}\t{humidity_text}",
+ f"{visbility_text}\tAQI {air_quality_index}",
+ f"<i> {prediction}</i>",
+)
-print(json.dumps(data))
+# print waybar module data
+out_data = {
+ "text": f"{icon} {temp}",
+ "alt": status,
+ "tooltip": tooltip_text,
+ "class": status_code,
+}
+print(json.dumps(out_data))
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage