pikabar/pika-hyprland-settings/etc/skel/.config/ags/lib.js

179 lines
4.7 KiB
JavaScript
Raw Normal View History

2024-11-17 15:45:46 +01:00
import barConfig from './barConfig.js';
export const getTemp = (temp) => {
if (barConfig?.isAmerican) {
return Math.round((temp * 9 / 5) + 32) + "°F";
}
return temp + "°C";
};
export const getWeatherSymbol = (weatherCode) => {
const dt = new Date();
const hour = dt.getHours();
if (hour <= 7 || hour >= 20) {
return NIGHT_WEATHER_SYMBOL[OMAPI_CODE[weatherCode]];
}
return WEATHER_SYMBOL[OMAPI_CODE[weatherCode]];
};
export const getWeatherDesc = (weatherCode) => {
return OMAPI_CODE_DESC[weatherCode];
};
export const getFormattedTime = () => {
const date = new Date();
let hours = date.getHours();
let minutes = date.getMinutes();
if (hours < 10) hours = "0" + hours;
if (minutes < 10) minutes = "0" + minutes;
return `${hours}:${minutes}`
}
export const getFormattedDate = () => {
const date = new Date();
const day = date.getDay();
const month = date.getMonth();
let dayOfMonth = date.getDate();
switch (dayOfMonth) {
case 1:
case 21:
case 31:
dayOfMonth += "st";
break;
case 2:
case 22:
dayOfMonth += "nd";
break;
case 3:
case 23:
dayOfMonth += "rd";
break;
default:
dayOfMonth += "th";
}
return `${days[day]}, ${dayOfMonth} ${months[month]}`;
}
export const getBattery = (batt) => {
if (batt?.charging) {
return "battery_charging_full";
}
if (batt?.charged) {
return "battery_full";
}
return battIcons[Math.floor(battIcons.length * (batt?.percent / 100))];
}
const battIcons = ["battery_0_bar","battery_1_bar","battery_2_bar","battery_3_bar","battery_4_bar","battery_5_bar", "battery_6_bar"];
const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
const months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
const OMAPI_CODE_DESC = {
"0": "Clear",
"1": "Mostly Clear",
"2": "Partly Cloudy",
"3": "Cloudy",
"45": "Fog",
"48": "Freezing Fog",
"51": "Light Drizzle",
"53": "Drizzle",
"55": "Heavy Drizzle",
"56": "Light Freezing Drizzle",
"57": "Freezing Drizzle",
"61": "Light Rain",
"63": "Rain",
"65": "Heavy Rain",
"66": "Light Freezing Rain",
"67": "Freezing Rain",
"71": "Light Snow",
"73": "Snow",
"75": "Heavy Snow",
"77": "Light Snow Shower",
"80": "Light Rain Shower",
"81": "Rain Shower",
"82": "Heavy Rain Shower",
"85": "Snow Shower",
"86": "Heavy Snow Shower",
"95": "Thunderstorm",
"96": "Heavy Thunderstorm",
"99": "THunderstorm with Hail"
}
const OMAPI_CODE = {
"0": "Sunny",
"1": "PartlyCloudy",
"2": "Cloudy",
"3": "VeryCloudy",
"45": "Fog",
"48": "Fog",
"51": "LightShowers",
"53": "LightRain",
"55": "HeavyShowers",
"56": "LightSleetShowers",
"57": "LightSleet",
"61": "LightRain",
"63": "LightRain",
"65": "HeavyRain",
"66": "LightSleet",
"67": "LightSleet",
"71": "LightSnow",
"73": "HeavySnow",
"75": "HeavySnow",
"77": "LightSnowShowers",
"80": "LightShowers",
"81": "HeavyShowers",
"82": "HeavyShowers",
"85": "LightSnowShowers",
"86": "HeavySnowShowers",
"95": "ThunderyShowers",
"96": "ThunderyHeavyRain",
"99": "ThunderySnowShowers"
}
const WEATHER_SYMBOL = {
"Unknown": "air",
"Cloudy": "cloud",
"Fog": "foggy",
"HeavyRain": "rainy",
"HeavyShowers": "rainy",
"HeavySnow": "snowing",
"HeavySnowShowers": "snowing",
"LightRain": "rainy",
"LightShowers": "rainy",
"LightSleet": "rainy",
"LightSleetShowers": "rainy",
"LightSnow": "cloudy_snowing",
"LightSnowShowers": "cloudy_snowing",
"PartlyCloudy": "partly_cloudy_day",
"Sunny": "clear_day",
"ThunderyHeavyRain": "thunderstorm",
"ThunderyShowers": "thunderstorm",
"ThunderySnowShowers": "thunderstorm",
"VeryCloudy": "cloud",
}
const NIGHT_WEATHER_SYMBOL = {
"Unknown": "air",
"Cloudy": "cloud",
"Fog": "foggy",
"HeavyRain": "rainy",
"HeavyShowers": "rainy",
"HeavySnow": "snowing",
"HeavySnowShowers": "snowing",
"LightRain": "rainy",
"LightShowers": "rainy",
"LightSleet": "rainy",
"LightSleetShowers": "rainy",
"LightSnow": "cloudy_snowing",
"LightSnowShowers": "cloudy_snowing",
"PartlyCloudy": "partly_cloudy_night",
"Sunny": "clear_night",
"ThunderyHeavyRain": "thunderstorm",
"ThunderyShowers": "thunderstorm",
"ThunderySnowShowers": "thunderstorm",
"VeryCloudy": "cloud",
}