вывод категорий
This commit is contained in:
33
main.py
33
main.py
@@ -26,32 +26,18 @@ import uvicorn
|
||||
|
||||
import requests
|
||||
|
||||
# Добавляем импорт psycopg2
|
||||
import psycopg2
|
||||
|
||||
# Локальные импорты
|
||||
# import settings_work as sw
|
||||
import work_parser as wp
|
||||
|
||||
DOCUMENTS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "documents")
|
||||
|
||||
# Создаём соединение с PostgreSQL
|
||||
conn = psycopg2.connect(
|
||||
dbname="parsed_url",
|
||||
user="postgres",
|
||||
password="qwertyqwerty123123",
|
||||
host="45.129.78.228",
|
||||
connect_timeout=100,
|
||||
options="-c statement_timeout=30000" # таймаут запроса 30 сек
|
||||
)
|
||||
conn.autocommit = True
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
"""Управление жизненным циклом приложения"""
|
||||
# Startup
|
||||
scheduler.add_job(scheduled_parser_1, "cron", hour=10, minute=0)
|
||||
scheduler.add_job(scheduled_parser_2, "cron", hour=11, minute=0)
|
||||
scheduler.add_job(scheduled_parser_1, "cron", hour=0, minute=0)
|
||||
scheduler.add_job(scheduled_parser_2, "cron", hour=1, minute=0)
|
||||
scheduler.start()
|
||||
yield
|
||||
# Shutdown
|
||||
@@ -416,7 +402,7 @@ def start_pars_all_istochnik(url:str, promt:str):
|
||||
continue
|
||||
|
||||
# Фильтрация по ключевым словам (пример для новостных сайтов)
|
||||
path_lower = parsed.path.lower()
|
||||
# path_lower = parsed.path.lower()
|
||||
# if any(keyword in path_lower for keyword in ['/news/', 'article', '2026', '2027', '/blog/', '/post/']):
|
||||
print(f"Парсинг {abs_url}")
|
||||
if check_url(abs_url) == False and wp.check_error_url(abs_url):
|
||||
@@ -488,10 +474,19 @@ def get_tasks_offset(limit: int = Query(10, gt=0), offset: int = Query(0, ge=0))
|
||||
def get_settings():
|
||||
return wp.get_all_promt()
|
||||
|
||||
@app.get("/categories_promt", summary="Метод получения categories_promt")
|
||||
def get_categories_promt():
|
||||
return wp.get_all_categories_promt()
|
||||
|
||||
class Source(BaseModel):
|
||||
url: str
|
||||
name: str
|
||||
promt: str
|
||||
|
||||
# POST метод для установки настроек
|
||||
@app.post("/settings", summary="Метод сохранения настроек парсера")
|
||||
def set_settings(settings: wp.Source):
|
||||
return wp.update_promt(settings)
|
||||
def set_settings(settings: Source):
|
||||
return wp.update_promt(settings.url, settings.name, settings.promt)
|
||||
|
||||
@app.delete("/delete_task/{task_id}", summary="Метод удаления задачи")
|
||||
def delete_task(task_id: int):
|
||||
|
||||
Reference in New Issue
Block a user