diff --git a/main.py b/main.py index 2e158a0..45224d0 100644 --- a/main.py +++ b/main.py @@ -100,6 +100,7 @@ def fetch_with_proxy(url, proxy, verify, timeout): return None except: return None + # Перемешивает список прокси для случайного начала def get_shuffled_proxies(proxies_list): shuffled = proxies_list.copy() @@ -483,6 +484,8 @@ async def process_parser_two_ist(background_tasks: BackgroundTasks): class Parserall(BaseModel): url: HttpUrl promt: str +class Parserall_url(BaseModel): + url: HttpUrl @app.post("/add_sources" , summary="Добавление парсинга любого источника") async def add_sources_all_ist(sources: Parserall): @@ -493,6 +496,10 @@ async def add_sources_all_ist(sources: Parserall): async def get_all_sources(): return wp.get_all_sources() +@app.delete("/delete_sources", summary="Метод удаления источника") +async def delete_sources(url: str): + return print(wp.delete_sources(url)) + @app.post("/parser_all" , summary="Запуск процеса парсинга любого источника") async def process_parser_all_ist(url: Parserall, background_tasks: BackgroundTasks): background_tasks.add_task(start_pars_all_istochnik, str(url.url), url.promt) @@ -630,6 +637,6 @@ async def get_logs(): lines = file.readlines()[-10:] # последние 10 строк return {"logs": lines} -# if __name__ == "__main__": -# uvicorn.run("main:app", port=8001, reload=True) +if __name__ == "__main__": + uvicorn.run("main:app", port=8001, reload=True) diff --git a/work_parser.py b/work_parser.py index 3b1d698..dfd7391 100644 --- a/work_parser.py +++ b/work_parser.py @@ -268,6 +268,25 @@ def get_all_sources(): return {"sources": sources} finally: pass + +def delete_sources(url: str): + """Удаляет источник по URL из таблицы sourse""" + conn = get_connection() + try: + with conn.cursor() as cur: + cur.execute("DELETE FROM sourse WHERE url=%s RETURNING *", (url,)) + deleted_task = cur.fetchone() + conn.commit() + if deleted_task: + return {"message": f"Источник {url} удалён", "deleted": True} + else: + return {"message": f"Источник с url {url} не найден", "deleted": False} + except Exception as e: + print(f"Ошибка при удалении источника: {e}") + return {"error": str(e), "deleted": False} + finally: + pass + # Пример использования # if __name__ == "__main__": # # create_table_config_gpt() # <-- раскомментировать эту строку @@ -278,4 +297,5 @@ def get_all_sources(): # }) # # print(get_promt("japan")) # # create_table_error_url() - # create_table_add_sourse() \ No newline at end of file + # create_table_add_sourse() + # delete_sources("https://www.taipeitimes.com/") \ No newline at end of file