diff --git a/main.py b/main.py index db01691..5ad6075 100644 --- a/main.py +++ b/main.py @@ -39,7 +39,7 @@ wp.create_table() app.add_middleware( CORSMiddleware, - allow_origins=["*"], # или список разрешенных адресов, например ["http://localhost:8080"] + allow_origins=["http://localhost:5173", "http://45.129.78.228:8000"], # или список разрешенных адресов, например [""] allow_credentials=True, allow_methods=["*"], allow_headers=["*"], @@ -351,7 +351,28 @@ def start_pars_two_istochnik(): wp.update_task(task_id, status='completed', finished_at=datetime.utcnow()) +# Функции для автоматического запуска +def scheduled_parser_1(): + """Планировщик для первого парсера""" + istochnik = "" # пустая строка = текущая дата + start_pars_one_istochnik(istochnik.split(".")) +def scheduled_parser_2(): + """Планировщик для второго парсера""" + start_pars_two_istochnik() + +@app.on_event("startup") +async def start_scheduler(): + """Запуск планировщика при старте приложения""" + scheduler.add_job(scheduled_parser_1, "cron", hour=10, minute=0) + scheduler.add_job(scheduled_parser_2, "cron", hour=11, minute=0) + + scheduler.start() + +@app.on_event("shutdown") +async def stop_scheduler(): + """Остановка планировщика при выключении""" + scheduler.shutdown() class ParserOneRequest(BaseModel): time: str @@ -381,35 +402,10 @@ def get_settings(): @app.post("/settings", summary="Метод сохранения настроек парсера") def set_settings(settings: sw.Source): return sw.update_source(settings) - -# Функции для автоматического запуска -def scheduled_parser_1(): - """Планировщик для первого парсера""" - print("Запуск планировщика парсера 1") - istochnik = "" # пустая строка = текущая дата - start_pars_one_istochnik(istochnik.split(".")) -def scheduled_parser_2(): - """Планировщик для второго парсера""" - print("Запуск планировщика парсера 2") - start_pars_two_istochnik() - -@app.on_event("startup") -async def start_scheduler(): - """Запуск планировщика при старте приложения""" - # Парсер 1 - каждый день в 6:00 - scheduler.add_job(scheduled_parser_1, "cron", hour=10, minute=0) - - # Парсер 2 - каждый день в 7:00 - scheduler.add_job(scheduled_parser_2, "cron", hour=11, minute=0) - - scheduler.start() - print("Планировщик запущен: парсер 1 в 6:00, парсер 2 в 7:00") - -@app.on_event("shutdown") -async def stop_scheduler(): - """Остановка планировщика при выключении""" - scheduler.shutdown() +@app.delete("/delete_task/{task_id}", summary="Метод удаления задачи") +def delete_task(task_id: int): + return print(wp.delete_task(task_id)) # if __name__ == "__main__": -# uvicorn.run("main:app", port=8001, reload=True) \ No newline at end of file +# uvicorn.run("main:app", port=8001, reload=True) diff --git a/work_parser.py b/work_parser.py index 9e0c5a4..d2ca443 100644 --- a/work_parser.py +++ b/work_parser.py @@ -38,12 +38,6 @@ def insert_task(status, source_url=None, source_id=None, priority=0): task_id = cur.fetchone()[0] return task_id -def get_task(task_id): - with conn.cursor(cursor_factory=RealDictCursor) as cur: - cur.execute("SELECT * FROM work_parser WHERE id = %s;", (task_id,)) - task = cur.fetchone() - return task - def get_tasks_offset(limit, offset): with conn.cursor(cursor_factory=RealDictCursor) as cur: @@ -55,6 +49,14 @@ def get_tasks_offset(limit, offset): tasks = cur.fetchall() return tasks +def delete_task(task_id: int): + with conn.cursor(cursor_factory=RealDictCursor) as cur: + cur.execute("DELETE FROM work_parser WHERE id = %s RETURNING *;", (task_id,)) + deleted_task = cur.fetchone() + if deleted_task: + return {"message": f"Задача {task_id} удалена", "deleted_task": dict(deleted_task)} + else: + return {"message": f"Задача с id {task_id} не найдена"} def update_task(task_id, **fields): # dynamic update query generator