|
|
|
@ -3,6 +3,7 @@ from datetime import datetime
|
|
|
|
from typing import List
|
|
|
|
from typing import List
|
|
|
|
|
|
|
|
|
|
|
|
import httpx
|
|
|
|
import httpx
|
|
|
|
|
|
|
|
from aiocache import cached, Cache
|
|
|
|
from bs4 import BeautifulSoup
|
|
|
|
from bs4 import BeautifulSoup
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
|
|
|
|
|
|
@ -19,8 +20,10 @@ class PrayerTimes(BaseModel):
|
|
|
|
isha: str
|
|
|
|
isha: str
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@cached(ttl=60*60, cache=Cache.MEMORY)
|
|
|
|
async def parse_prayer_times(url: str) -> List[PrayerTimes]:
|
|
|
|
async def parse_prayer_times(url: str) -> List[PrayerTimes]:
|
|
|
|
res = await _http.get(url)
|
|
|
|
res = await _http.get(url)
|
|
|
|
|
|
|
|
res.raise_for_status()
|
|
|
|
soup = BeautifulSoup(res.text, 'html.parser')
|
|
|
|
soup = BeautifulSoup(res.text, 'html.parser')
|
|
|
|
|
|
|
|
|
|
|
|
items = []
|
|
|
|
items = []
|
|
|
|
@ -117,16 +120,15 @@ async def _get_countries() -> dict:
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
if __name__ == '__main__':
|
|
|
|
import asyncio
|
|
|
|
import asyncio
|
|
|
|
import core.diyanetdb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def main():
|
|
|
|
async def main():
|
|
|
|
with core.diyanetdb.get_connection() as conn:
|
|
|
|
# with core.diyanetdb.get_connection() as conn:
|
|
|
|
id = core.diyanetdb.get_location_id(conn,
|
|
|
|
# id = core.diyanetdb.get_location_id(conn,
|
|
|
|
country_name='AVUSTURYA',
|
|
|
|
# country_name='AVUSTURYA',
|
|
|
|
city_name='PESSENDELLACH')
|
|
|
|
# city_name='PESSENDELLACH')
|
|
|
|
url = make_location_url(id)
|
|
|
|
# url = make_location_url(id)
|
|
|
|
times = await parse_prayer_times(url)
|
|
|
|
times = await parse_prayer_times('https://namazvakitleri.diyanet.gov.tr/en-US')
|
|
|
|
print(times)
|
|
|
|
print(times)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|