Compare commits
3
Commits
f31f0def29
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2db373f54a | ||
|
|
b7bf1d8c98 | ||
|
|
5b4c818451 |
+1
-1
@@ -1,4 +1,4 @@
|
||||
FROM python:3.9
|
||||
FROM python:3.11
|
||||
|
||||
WORKDIR /app
|
||||
COPY ./install.sh ./requirements.txt ./
|
||||
|
||||
+17
-7
@@ -1,14 +1,19 @@
|
||||
import pprint
|
||||
from datetime import datetime
|
||||
from typing import List
|
||||
from urllib.parse import quote
|
||||
|
||||
import httpx
|
||||
from aiocache import cached, Cache
|
||||
from bs4 import BeautifulSoup
|
||||
from pydantic import BaseModel
|
||||
|
||||
_http = httpx.AsyncClient(timeout=20, follow_redirects=True)
|
||||
_http = httpx.AsyncClient(
|
||||
timeout=20,
|
||||
follow_redirects=True,
|
||||
headers={
|
||||
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0'
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class PrayerTimes(BaseModel):
|
||||
@@ -29,11 +34,16 @@ async def parse_prayer_times(url: str) -> List[PrayerTimes]:
|
||||
|
||||
items = []
|
||||
for row in soup.select('#tab-1 .vakit-table tbody tr'):
|
||||
cell_texts = (c.text.strip() for c in row.select('td'))
|
||||
headers = PrayerTimes.__fields__.keys()
|
||||
parsed = dict(zip(headers, cell_texts))
|
||||
parsed['date'] = datetime.strptime(parsed['date'], '%d.%m.%Y')
|
||||
items.append(PrayerTimes(**parsed))
|
||||
cells = [c.text.strip() for c in row.select('td')]
|
||||
items.append(PrayerTimes(
|
||||
date=datetime.strptime(cells[0], '%d.%m.%Y'),
|
||||
fajr=cells[2],
|
||||
sun=cells[3],
|
||||
dhuhr=cells[4],
|
||||
asr=cells[5],
|
||||
maghrib=cells[6],
|
||||
isha=cells[7],
|
||||
))
|
||||
return items
|
||||
|
||||
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
beautifulsoup4==4.10.0
|
||||
fastapi==0.74.1
|
||||
httpx==0.22.0
|
||||
httpx==0.23.3
|
||||
uvicorn==0.17.5
|
||||
aiocache==0.11.1
|
||||
pydantic==1.10.7
|
||||
|
||||
Reference in New Issue
Block a user