First commit
This commit is contained in:
commit
9c9daacdb7
63
moon.py
Normal file
63
moon.py
Normal file
@ -0,0 +1,63 @@
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
from hijridate import Hijri
|
||||
from datetime import date
|
||||
|
||||
def phase(country, city):
|
||||
response = requests.get(f"https://www.timeanddate.com/moon/phases/{country}/{city}")
|
||||
soup = BeautifulSoup(response.content, "html.parser")
|
||||
|
||||
moon_image = soup.find("img", id="cur-moon")
|
||||
moon_image_src = f"https://www.timeanddate.com{moon_image.get('src')}" if moon_image else "Image not found"
|
||||
|
||||
moon_percent_span = soup.find("span", id="cur-moon-percent")
|
||||
moon_percent = moon_percent_span.get_text(strip=True) if moon_percent_span else "Percent not found"
|
||||
|
||||
info_table = soup.find("div", class_="bk-focus__info").find("table")
|
||||
table_data = []
|
||||
|
||||
if info_table:
|
||||
rows = info_table.find_all("tr")
|
||||
for row in rows:
|
||||
cells = row.find_all(["th", "td"])
|
||||
row_data = [cell.get_text(strip=True) for cell in cells]
|
||||
table_data.append(row_data)
|
||||
curtime = table_data[0][1]
|
||||
curphase = table_data[1][1]
|
||||
else:
|
||||
table_data = "Table not found"
|
||||
curtime = None
|
||||
curphase = None
|
||||
|
||||
result = {
|
||||
"image" :moon_image_src,
|
||||
"percent" :moon_percent,
|
||||
"time" :curtime,
|
||||
"phase" :curphase
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
def hijri():
|
||||
hijri = Hijri.today()
|
||||
result = {
|
||||
"isoformat":hijri.isoformat(),
|
||||
"day":{
|
||||
"number":date.fromisoformat(hijri.isoformat()).day,
|
||||
"ar":hijri.day_name('ar'),
|
||||
"en":hijri.day_name('en')
|
||||
},
|
||||
"month":{
|
||||
"number":date.fromisoformat(hijri.isoformat()).month,
|
||||
"ar":hijri.month_name('ar'),
|
||||
"en":hijri.month_name('en')
|
||||
},
|
||||
"year":date.fromisoformat( hijri.isoformat() ).year,
|
||||
"notation":{
|
||||
"ar":hijri.notation('ar'),
|
||||
"en":hijri.notation('en')
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
22
usage.py
Normal file
22
usage.py
Normal file
@ -0,0 +1,22 @@
|
||||
import moon
|
||||
from datetime import datetime
|
||||
|
||||
country = "Indonesia"
|
||||
city = "Jakarta"
|
||||
|
||||
phase = moon.phase(country.lower().replace(" ", "-"), city.lower().replace(" ", "-"))
|
||||
hijri = moon.hijri()
|
||||
|
||||
print("================================================")
|
||||
print(phase['image'])
|
||||
print(phase['phase'], f"({phase['percent']})")
|
||||
print("================================================")
|
||||
print(hijri['day']['ar'], f"({hijri['day']['en']})")
|
||||
print(hijri['day']['number'], hijri['month']['ar'], f"({hijri['month']['en']})", hijri['year'], hijri['notation']['en'])
|
||||
print(f"{country}, {city}")
|
||||
print("================================================")
|
||||
print(datetime.now().strftime("%I:%M:%S %p"))
|
||||
print("================================================")
|
||||
|
||||
# Not support a day changing on sunset (Maghrib)
|
||||
# NEXT: Prayer times
|
Loading…
Reference in New Issue
Block a user