From f18a99ca741dfb664d9d2777ebed9b82862f10c5 Mon Sep 17 00:00:00 2001 From: AnnushkaStark <130693211+AnnushkaStark@users.noreply.github.com> Date: Thu, 18 Jul 2024 00:56:13 +0300 Subject: [PATCH] auto posting teklegraph --- requirements.txt | 3 ++- .../__init__.py | 0 telegraph_poster/config.py | 13 +++++++++++++ telegraph_poster/content.txt | 14 ++++++++++++++ telegraph_poster/doctype.py | 10 ++++++++++ telegraph_poster/main.py | 18 ++++++++++++++++++ telegraph_poster/post_manager.py | 16 ++++++++++++++++ telegraph_poster/utillies.py | 15 +++++++++++++++ telegreph_poster/post_manager.py | 0 9 files changed, 88 insertions(+), 1 deletion(-) rename {telegreph_poster => telegraph_poster}/__init__.py (100%) create mode 100644 telegraph_poster/config.py create mode 100644 telegraph_poster/content.txt create mode 100644 telegraph_poster/doctype.py create mode 100644 telegraph_poster/main.py create mode 100644 telegraph_poster/post_manager.py create mode 100644 telegraph_poster/utillies.py delete mode 100644 telegreph_poster/post_manager.py diff --git a/requirements.txt b/requirements.txt index 3731439..1cbbc6f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ httpx==0.27.0 -black==24.4.2 \ No newline at end of file +black==24.4.2 +telegraph==2.2.0 \ No newline at end of file diff --git a/telegreph_poster/__init__.py b/telegraph_poster/__init__.py similarity index 100% rename from telegreph_poster/__init__.py rename to telegraph_poster/__init__.py diff --git a/telegraph_poster/config.py b/telegraph_poster/config.py new file mode 100644 index 0000000..e29e88a --- /dev/null +++ b/telegraph_poster/config.py @@ -0,0 +1,13 @@ +AUTHOR_DATA = {"short_name": "Cat", "author_name": "Sucko", "author_url": ""} + +ACCOUNT = { + "short_name": "Cat", + "author_name": "", + "author_url": "", + "access_token": "3ee8660c069341156021691341c4905ef8603d961e4717fa112c37c9846d", + "auth_url": "https://edit.telegra.ph/auth/M0wwp9Tg7F00f6QgShq36YCm2IZ1oZBaX5EnfxBkaz", +} + +TEST_CONTENT_URL = ( + "https://pressanybutton.ru/post/novosti/redizajn-i-novyj-razdel-na-sajte/" +) diff --git a/telegraph_poster/content.txt b/telegraph_poster/content.txt new file mode 100644 index 0000000..360904c --- /dev/null +++ b/telegraph_poster/content.txt @@ -0,0 +1,14 @@ + +

Редизайн и новый раздел на сайте

+

Редизайн и новый раздел на сайте! Подробности в посте.

+

Приветствуем.

+ +

У нас два объявления!>

+ +

Первое: Хотим представить вам редизайн сайта "Код на салфетке", + правда, пока только на одной странице. В будущем и другие будут переделаны, + а сейчас нам нужны ваши отзывы по новому внешнему виду!

+

Второе: Новая страница сайта, представляющая вам проекты над которыми мы работали и работаем. + Что-то вроде нашего портфолио, которое будет только пополняться! + Быть может кому-то из вас нужны разработчики для реализации? + Мы всегда готовы обсудить условия.

diff --git a/telegraph_poster/doctype.py b/telegraph_poster/doctype.py new file mode 100644 index 0000000..5a15694 --- /dev/null +++ b/telegraph_poster/doctype.py @@ -0,0 +1,10 @@ +START_FILE = """ + + + + + Document + +""" + +END_FILE = "" diff --git a/telegraph_poster/main.py b/telegraph_poster/main.py new file mode 100644 index 0000000..0bc2b0c --- /dev/null +++ b/telegraph_poster/main.py @@ -0,0 +1,18 @@ +import asyncio + +import config +from post_manager import create_new_account, create_post, update_post, telegraph +from utillies import check_tags + + +### Создание aккаунта в telegraph + +account = asyncio.run(create_new_account(short_name=config.AUTHOR_DATA["short_name"])) + + +### Создание поста в telegraph + +article_file = open("content.txt", "r", encoding="utf-8") +article_file = article_file.read() +checked_article = asyncio.run(check_tags(content=article_file)) +new_post = asyncio.run(create_post(title="test_title", content=checked_article)) diff --git a/telegraph_poster/post_manager.py b/telegraph_poster/post_manager.py new file mode 100644 index 0000000..2de917e --- /dev/null +++ b/telegraph_poster/post_manager.py @@ -0,0 +1,16 @@ +import asyncio + +from telegraph.aio import Telegraph +import config + +telegraph = Telegraph(config.ACCOUNT["access_token"]) + + +async def create_new_account(short_name: str) -> dict: + account = await telegraph.create_account(short_name=short_name) + print(account) + + +async def create_post(title: str, content: str) -> dict: + new_article = await telegraph.create_page(title=title, html_content=content) + print("https://telegra.ph/{}".format(new_article["path"])) diff --git a/telegraph_poster/utillies.py b/telegraph_poster/utillies.py new file mode 100644 index 0000000..17e9a1f --- /dev/null +++ b/telegraph_poster/utillies.py @@ -0,0 +1,15 @@ +import asyncio + +from doctype import START_FILE, END_FILE + + +async def check_tags( + content: str, +) -> str: + content = content.replace(START_FILE, "") + content = content.replace(END_FILE, "") + content = content.replace("h5", "h4") + content = content.replace("h3", "h4") + content = content.replace("h2", "h4") + content = content.replace("