-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathapp.py
34 lines (27 loc) · 1.12 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import asyncio
import uvicorn
import config
import storage
from connectors import immoscout, immonet
from fastapi import FastAPI
app = FastAPI()
@app.on_event('startup')
def initial_task():
fetch_time_min = config.get_config()['fetch_time_min'] if 'fetch_time_min' in config.get_config() else 450
fetch_time_max = config.get_config()['fetch_time_max'] if 'fetch_time_max' in config.get_config() else 750
if 'immoscout' in config.get_config():
for url in config.get_config()['immoscout']['urls'].get():
con = immoscout.ImmoscoutConnector()
asyncio.create_task(con.fetch_articles(url, fetch_time_min, fetch_time_max))
if 'immonet' in config.get_config():
for url in config.get_config()['immonet']['urls'].get():
con = immonet.ImmonetConnector()
asyncio.create_task(con.fetch_articles(url, fetch_time_min, fetch_time_max))
@app.get("/")
def root():
return storage.get_storage()
if __name__ == "__main__":
try:
uvicorn.run(app, host="0.0.0.0", loop='asyncio', port=config.get_config()['port'].get())
except asyncio.CancelledError:
pass