вывод категорий
Some checks failed
continuous-integration/drone/push Build encountered an error
continuous-integration/drone Build is passing

This commit is contained in:
2026-04-11 00:28:29 +10:00
parent 0fb2dc63e0
commit 8de5320b42
2 changed files with 27 additions and 36 deletions

33
main.py
View File

@@ -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):