From 61f4382da4f70faab05d6c1967cd67944cc80d59 Mon Sep 17 00:00:00 2001 From: bigbyto Date: Fri, 28 Jun 2024 04:42:20 +0800 Subject: [PATCH] feat: telegraph --- .gitignore | 6 +- README.md | 19 +- assets/iv.png | Bin 0 -> 181399 bytes config.example.json | 8 + pdm.lock | 81 ++++- pyproject.toml | 4 +- requirements.txt | 6 + src/catgpt/commands/chat.py | 25 +- src/catgpt/commands/conversation.py | 52 ++- src/catgpt/commands/key.py | 1 + src/catgpt/commands/list.py | 1 - src/catgpt/context.py | 11 +- src/catgpt/main.py | 1 + src/catgpt/share/__init__.py | 22 +- src/catgpt/share/github.py | 14 +- src/catgpt/share/preview.py | 33 ++ src/catgpt/share/telegraph.py | 313 ++++++++++++++++++ src/catgpt/storage/sqlite3_session_storage.py | 28 +- src/catgpt/storage/types.py | 6 +- src/catgpt/types.py | 7 + src/catgpt/user_profile.py | 2 + 21 files changed, 598 insertions(+), 42 deletions(-) create mode 100644 assets/iv.png create mode 100644 src/catgpt/share/preview.py create mode 100644 src/catgpt/share/telegraph.py diff --git a/.gitignore b/.gitignore index 8f94f1e..94e68d9 100644 --- a/.gitignore +++ b/.gitignore @@ -221,10 +221,12 @@ ENV/ .pdm-python .pdm-build/ -data.db +data*.db config.json endpoints.json sessions/ logs/* test/* -file::* \ No newline at end of file +file::* +telegraph.json +conversation_preview.json \ No newline at end of file diff --git a/README.md b/README.md index e67d372..e4bca1a 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ CatGPT is a Telegram bot that integrates with OpenAI's api for people who like t ![new topic](assets/new.png) -* **/topic** `[share | download | title]` +* **/topic** `[share | download | iv | inner | title]` There are three optional operations that you can use to perform some task quickly. @@ -86,9 +86,19 @@ CatGPT is a Telegram bot that integrates with OpenAI's api for people who like t Use `/topic download` to download the topic's content directly without a confirmation operation. The content will be encoded as Markdown file - * **other characters** + * `iv` - Any other characters will be treated as a title, and the topic's title will be updated." + Display the chat history of this conversation in the form of Instant View even if the text length does not overflow. + + ![instant view](assets/iv.png) + + * `inner` + + Display the chat history of this conversation in the form of Telegram Message. + + * **other characters** + + Any other characters will be treated as a title, and the topic's title will be updated." ​ ![operations](assets/dl_share.png) @@ -176,6 +186,8 @@ options: * `respond_group_message`: If true, the bot will respond to group messages even if it is not mentioned. default: `false`, can be changed at runtime using the command `/respond` in groups. +* `topic_preview_type`: **TELEGRAPH** or **INTERNAL** + * `endpoinds`: your endpoints endpint: @@ -202,6 +214,7 @@ options: "access_key": "Specify Access Key to use this bot", "proxy": "http://proxy:port", "respond_group_message": false, + "topic_preview_type": "INTERNAL or TELEGRAPH", "share": [ { "name": "notes", diff --git a/assets/iv.png b/assets/iv.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0038b1ac8e703741d5b9833dda1e356bac37a0 GIT binary patch literal 181399 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

|C>*kJk>FC7g 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 literal 0 HcmV?d00001 diff --git a/config.example.json b/config.example.json index 88b2973..0077609 100644 --- a/config.example.json +++ b/config.example.json @@ -3,6 +3,7 @@ "access_key": "Specify Access Key to use this bot", "proxy": "http://proxy:port", "respond_group_message": false, + "topic_preview_type": "INTERNAL | TELEGRAPH", "share": [ { "name": "share provider name", @@ -10,6 +11,13 @@ "repo": "github repo", "owner": "your github username", "token": "your github personal access token" + }, + { + "name": "telegraph", + "type": "telegraph", + "author": "meiqiu(optional)", + "short_name": "meiqiu(optional)", + "token": "your telegraph token, it will create a new account if you don't provide one" } ], "endpoints": [ diff --git a/pdm.lock b/pdm.lock index 183dbc7..a65c698 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:f3498dcf91d10744e13d3cf3dc830dca0630269593488381f965ecccf4005660" +content_hash = "sha256:b95c35ba2633e00812b6a3a1b588ce16d30a0b5e4dcdb34f41475dadfe23fd3a" [[package]] name = "aiohttp" @@ -135,6 +135,33 @@ files = [ {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, ] +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +requires_python = ">=3.6.0" +summary = "Screen-scraping library" +groups = ["default"] +dependencies = [ + "soupsieve>1.2", +] +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[[package]] +name = "bs4" +version = "0.0.2" +summary = "Dummy package for Beautiful Soup (beautifulsoup4)" +groups = ["default"] +dependencies = [ + "beautifulsoup4", +] +files = [ + {file = "bs4-0.0.2-py2.py3-none-any.whl", hash = "sha256:abf8742c0805ef7f662dce4b51cca104cffe52b835238afc169142ab9b3fbccc"}, + {file = "bs4-0.0.2.tar.gz", hash = "sha256:a48685c58f50fe127722417bae83fe6badf500d54b55f7e39ffe43b798653925"}, +] + [[package]] name = "cachetools" version = "5.3.3" @@ -576,6 +603,35 @@ files = [ {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] +[[package]] +name = "importlib-metadata" +version = "8.0.0" +requires_python = ">=3.8" +summary = "Read metadata from Python packages" +groups = ["default"] +marker = "python_version < \"3.10\"" +dependencies = [ + "zipp>=0.5", +] +files = [ + {file = "importlib_metadata-8.0.0-py3-none-any.whl", hash = "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f"}, + {file = "importlib_metadata-8.0.0.tar.gz", hash = "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812"}, +] + +[[package]] +name = "markdown" +version = "3.6" +requires_python = ">=3.8" +summary = "Python implementation of John Gruber's Markdown." +groups = ["default"] +dependencies = [ + "importlib-metadata>=4.4; python_version < \"3.10\"", +] +files = [ + {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"}, + {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"}, +] + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -894,6 +950,17 @@ files = [ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] +[[package]] +name = "soupsieve" +version = "2.5" +requires_python = ">=3.8" +summary = "A modern CSS selector implementation for Beautiful Soup." +groups = ["default"] +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + [[package]] name = "telegramify-markdown" version = "0.1.4" @@ -1016,3 +1083,15 @@ files = [ {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, ] + +[[package]] +name = "zipp" +version = "3.19.2" +requires_python = ">=3.8" +summary = "Backport of pathlib-compatible object wrapper for zip files" +groups = ["default"] +marker = "python_version < \"3.10\"" +files = [ + {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, + {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, +] diff --git a/pyproject.toml b/pyproject.toml index 331f0b7..16c6095 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,9 @@ dependencies = [ "openai==1.6.0", "aiohttp==3.9.1", "telegramify-markdown==0.1.4", - "google-generativeai==0.7.0" + "google-generativeai==0.7.0", + "markdown", + "bs4" ] requires-python = ">=3.9" readme = "README.md" diff --git a/requirements.txt b/requirements.txt index aa175a6..0b19d0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,8 @@ annotated-types==0.7.0 anyio==4.4.0 async-timeout==4.0.3; python_version < "3.11" attrs==23.2.0 +beautifulsoup4==4.12.3 +bs4==0.0.2 cachetools==5.3.3 certifi==2024.6.2 charset-normalizer==3.3.2 @@ -29,6 +31,8 @@ httpcore==1.0.5 httplib2==0.22.0 httpx==0.27.0 idna==3.7 +importlib-metadata==8.0.0; python_version < "3.10" +markdown==3.6 markdown-it-py==3.0.0 mdurl==0.1.2 mistletoe==1.3.0 @@ -45,9 +49,11 @@ pytelegrambotapi==4.18.1 requests==2.32.3 rsa==4.9 sniffio==1.3.1 +soupsieve==2.5 telegramify-markdown==0.1.4 tqdm==4.66.4 typing-extensions==4.12.2 uritemplate==4.1.1 urllib3==2.2.2 yarl==1.9.4 +zipp==3.19.2; python_version < "3.10" diff --git a/src/catgpt/commands/chat.py b/src/catgpt/commands/chat.py index a814bb5..87e53fc 100644 --- a/src/catgpt/commands/chat.py +++ b/src/catgpt/commands/chat.py @@ -2,8 +2,8 @@ from telebot.asyncio_helper import ApiTelegramException from telebot.types import Message -from ..context import profiles, config, get_bot_name, topic, group_config -from ..types import Endpoint, MessageType +from ..context import profiles, config, get_bot_name, topic, group_config, page_preview +from ..types import Endpoint, MessageType, Preview from ..utils.text import get_timeout_from_text, MAX_TEXT_LENGTH from . import create_convo_and_update_profile from ..provider import ask, ask_stream @@ -107,7 +107,7 @@ async def handle_message(message: Message, bot: AsyncTeleBot) -> None: text = "" try: - text = await do_reply(endpoint, model, messages, reply_msg, bot) + text = await do_reply(endpoint, model, messages, reply_msg, bot, convo) reply_msg.text = text await topic.append_messages(convo_id, message, reply_msg) @@ -131,6 +131,7 @@ async def do_reply( messages: list, reply_msg: Message, bot: AsyncTeleBot, + convo: types.Topic, ): text = "" buffered = "" @@ -185,14 +186,24 @@ async def do_reply( else: raise ae - # if len(buffered) > 0: for removing the endpoint info from the message delta = timeout - (time.time() - start) if delta > 0: await asyncio.sleep(int(delta) + 1) - text += buffered - msg_text = escape(text) + msg_text = escape(text + buffered) if text_overflow or len(msg_text) > MAX_TEXT_LENGTH: + if config.topic_preview == Preview.TELEGRAPH: + msg_text = text + buffered + title = f"{convo.title}_{reply_msg.message_id}" + url = await page_preview.preview_chat(convo.label, title, msg_text) + await bot.edit_message_text( + chat_id=reply_msg.chat.id, + message_id=reply_msg.message_id, + text=url, + disable_web_page_preview=False, + ) + return msg_text + text_overflow = True msg_text = escape(text) @@ -211,7 +222,7 @@ async def do_reply( reply_to_message_id=msg.message_id, ) - return text + return text + buffered async def do_generate_title(convo: types.Topic, messages: list, uid: int, text: str): diff --git a/src/catgpt/commands/conversation.py b/src/catgpt/commands/conversation.py index ff267f2..4ab345c 100644 --- a/src/catgpt/commands/conversation.py +++ b/src/catgpt/commands/conversation.py @@ -3,9 +3,15 @@ from ..utils.md2tgmd import escape from ..utils.text import messages_to_segments -from ..context import profiles, topic, get_bot_name +from ..context import profiles, topic, get_bot_name, config, page_preview from . import share, send_file, handle_share from ..storage import types +from ..types import Preview + +preview_mapping = { + "iv": Preview.TELEGRAPH, + "inner": Preview.INTERNAL, +} async def handle_conversation(message: Message, bot: AsyncTeleBot): @@ -19,16 +25,21 @@ async def handle_conversation(message: Message, bot: AsyncTeleBot): return bot_name = await get_bot_name() - instruction = message.text.replace("/topic", "").replace(bot_name, "").strip() - if len(instruction) == 0: + instruction = ( + message.text.replace("/topic", "").replace(bot_name, "").strip().lower() + ) + if len(instruction) == 0 or instruction in ["inner", "iv"]: + preview_type = preview_mapping.get(instruction, config.topic_preview) await show_conversation( chat_id=message.chat.id, msg_id=message.message_id, uid=uid, bot=bot, convo=convo, + profile=profile, reply_msg_id=message.message_id, thread_id=message.message_thread_id, + preview_type=preview_type, ) return @@ -91,8 +102,10 @@ async def show_conversation( uid: int, bot: AsyncTeleBot, convo: types.Topic, + profile: types.Profile, reply_msg_id: int = None, thread_id: int = None, + preview_type: Preview = None, ): messages: list[types.Message] = convo.messages or [] messages = [ @@ -119,17 +132,31 @@ async def show_conversation( InlineKeyboardButton("dismiss", callback_data=f"topic:dismiss:{context}"), ] ] - for content in segments: - reply_msg: Message = await bot.send_message( + + if preview_type == Preview.TELEGRAPH: + md_content = "\n\n".join(segments) + html_url = await page_preview.preview_md_text(profile, convo.title, md_content) + await bot.send_message( chat_id=chat_id, - text=escape(content), - parse_mode="MarkdownV2", - disable_web_page_preview=True, + text=f"[{convo.title}]({html_url})", reply_to_message_id=last_message_id, + disable_web_page_preview=False, reply_markup=InlineKeyboardMarkup(keyboard), message_thread_id=thread_id, + parse_mode="MarkdownV2", ) - last_message_id = reply_msg.message_id + else: + for content in segments: + reply_msg: Message = await bot.send_message( + chat_id=chat_id, + text=escape(content), + parse_mode="MarkdownV2", + disable_web_page_preview=True, + reply_to_message_id=last_message_id, + reply_markup=InlineKeyboardMarkup(keyboard), + message_thread_id=thread_id, + ) + last_message_id = reply_msg.message_id async def handle_download( @@ -174,9 +201,9 @@ async def do_share( await bot.send_message( chat_id=chat_id, - parse_mode="MarkdownV2", - text=escape(f"share link: {html_url}"), + text=html_url, message_thread_id=message.message_thread_id, + disable_web_page_preview=False, ) await bot.delete_messages(chat_id, msg_ids + [message.message_id]) @@ -207,7 +234,6 @@ def register(bot: AsyncTeleBot, decorator, action_provider): action = { "name": "topic", - "description": "current topic: [share|download|title]", - "delete_after_invoke": False, + "description": "current topic: [share|download|inner|title]", "order": 30, } diff --git a/src/catgpt/commands/key.py b/src/catgpt/commands/key.py index e816eb2..d5c6ea6 100644 --- a/src/catgpt/commands/key.py +++ b/src/catgpt/commands/key.py @@ -1,3 +1,4 @@ +import hashlib import hmac from telebot.async_telebot import AsyncTeleBot diff --git a/src/catgpt/commands/list.py b/src/catgpt/commands/list.py index 6dc5111..d287b6a 100644 --- a/src/catgpt/commands/list.py +++ b/src/catgpt/commands/list.py @@ -51,7 +51,6 @@ async def show_conversation_list( ] ) - print(text) if not text: text = "No conversations found." diff --git a/src/catgpt/context.py b/src/catgpt/context.py index 2865f4f..564c3a4 100644 --- a/src/catgpt/context.py +++ b/src/catgpt/context.py @@ -4,10 +4,11 @@ from .user_profile import UserProfile, Users from .group import GroupConfig -from .types import Endpoint, Configuration +from .types import Endpoint, Configuration, Preview from . import share from .topic import Topic from . import storage +from .share.preview import PagePreview import json @@ -20,6 +21,7 @@ topic: Topic | None = None bot: AsyncTeleBot | None = None bot_name = None +page_preview: PagePreview | None = None async def init_configuration(options): @@ -36,6 +38,8 @@ def load_config(): config.proxy_url = c.get("proxy", None) config.share_info = c.get("share", None) config.respond_group_message = c.get("respond_group_message", False) + preview_type = c.get("topic_preview_type", Preview.TELEGRAPH.name) + config.topic_preview = Preview[preview_type.upper()] endpoints = c.get("endpoints", []) assert len(endpoints) > 0, "endpoints is required" @@ -53,7 +57,7 @@ def load_config(): disable_notification=True, ) - share.init_providers(c.get("share", []), config) + await share.init_providers(c.get("share", []), config) async def init_datasource(options): @@ -61,6 +65,7 @@ async def init_datasource(options): global profiles global users global group_config + global page_preview from .storage.sqlite3_session_storage import ( Sqlite3Datasource, Sqlite3TopicStorage, @@ -87,6 +92,8 @@ async def init_datasource(options): group_storage = Sqlite3GroupInfoStorage() group_config = GroupConfig(group_storage, config.respond_group_message) + page_preview = PagePreview(profiles) + async def init(options): assert options.config is not None, "Config file is required" diff --git a/src/catgpt/main.py b/src/catgpt/main.py index 9abef05..de519db 100644 --- a/src/catgpt/main.py +++ b/src/catgpt/main.py @@ -4,6 +4,7 @@ from telebot.async_telebot import AsyncTeleBot from . import context +from . import share async def main(): diff --git a/src/catgpt/share/__init__.py b/src/catgpt/share/__init__.py index 2aeccea..8fd28c3 100644 --- a/src/catgpt/share/__init__.py +++ b/src/catgpt/share/__init__.py @@ -1,12 +1,14 @@ import importlib -from ..types import ShareType, Configuration +from ..types import ShareType, Configuration, Preview from ..storage.types import Topic +from . import telegraph share_providers = {} +default_providers = {} -def init_providers(providers: list[dict], config: Configuration): +async def init_providers(providers: list[dict], config: Configuration): module_info = {} types = {m.name.lower(): m.value for m in ShareType} @@ -26,11 +28,18 @@ def init_providers(providers: list[dict], config: Configuration): module = importlib.import_module(f".{module_name}", __package__) module_info[module_name] = module - instance = module.create(params) + instance = await module.create(params, config) if not instance: raise Exception(f"Got none from module: {module_name}") share_providers[provider["name"]] = instance + default_providers[module_name] = instance + + if Preview.TELEGRAPH.value not in default_providers: + module = importlib.import_module(f".telegraph", __package__) + instance = await module.create({}, config) + share_providers["telegraph"] = instance + default_providers[Preview.TELEGRAPH.value] = instance async def share(name: str, convo: Topic): @@ -39,3 +48,10 @@ async def share(name: str, convo: Topic): raise Exception(f"Unknown share provider: {name}") return await provider.share(convo) + + +def get_provider_by_type(preview_type: Preview): + if preview_type.value in default_providers: + return default_providers[preview_type.value] + + return None diff --git a/src/catgpt/share/github.py b/src/catgpt/share/github.py index b3b8592..f0043ea 100644 --- a/src/catgpt/share/github.py +++ b/src/catgpt/share/github.py @@ -50,7 +50,7 @@ async def create_github_issue(self, title, body, label): url, headers=headers, json=data, proxy=self.proxy ) as response: if not response.ok: - raise Exception(f"Failed to create issue: {response.text}") + raise Exception(f"Failed to create issue: {await response.text()}") return await response.json() @@ -86,8 +86,18 @@ async def share(self, convo: Topic): label=convo.label, ) + async def share_text(self, article_id, title, content): + return await self.create_or_update_issue( + title=title, + body=content, + label=article_id, + ) + + def get_token(self): + return self.token + -def create(params: dict): +async def create(params: dict, config): return GithubProvider( name=params.get("name"), owner=params.get("owner"), diff --git a/src/catgpt/share/preview.py b/src/catgpt/share/preview.py new file mode 100644 index 0000000..84a1477 --- /dev/null +++ b/src/catgpt/share/preview.py @@ -0,0 +1,33 @@ +from . import get_provider_by_type +from ..types import Preview + + +class PagePreview: + def __init__(self, profiles): + self.provider = get_provider_by_type(Preview.TELEGRAPH) + self.profiles = profiles + + async def preview_md_text(self, profile, title, content): + token = self.provider.get_token() + if profile.preview_url and profile.preview_token == token: + url = await self.provider.update_text(profile.preview_url, title, content) + return url + + result = await self.create_preview_page(content) + if "url" in result and "path" in result: + profile.preview_url = result["path"] + profile.preview_token = token + await self.profiles.update( + profile.uid, profile.chat_id, profile.thread_id, profile + ) + + return result["url"] + + async def preview_chat(self, aid, title, content): + return await self.provider.share_text(aid, title, content) + + async def create_preview_page(self, content): + import uuid + + article_id = str(uuid.uuid4()) + return await self.provider.create_page(article_id, content) diff --git a/src/catgpt/share/telegraph.py b/src/catgpt/share/telegraph.py new file mode 100644 index 0000000..a6ccfa5 --- /dev/null +++ b/src/catgpt/share/telegraph.py @@ -0,0 +1,313 @@ +import json +import aiohttp +import os +import markdown + +from bs4 import BeautifulSoup + +from ..utils.text import messages_to_segments +from ..storage.types import Topic + + +TELEGRAPH_API_URL = "https://api.telegra.ph/createAccount" + + +class TelegraphAPI: + def __init__( + self, + access_token=None, + short_name="mq", + author_name="mq", + author_url=None, + proxy_url=None, + ): + self.access_token = access_token + self.base_url = "https://api.telegra.ph" + + self.short_name = short_name + self.author_name = author_name + self.author_url = author_url + self.proxy = proxy_url + + @staticmethod + async def create( + access_token=None, + short_name="meiqiu", + author_name="meiqiu", + author_url=None, + proxy_url=None, + ): + TelegraphAPI.load_token() + + api = TelegraphAPI( + access_token=access_token, + short_name=short_name, + author_name=author_name, + author_url=author_url, + proxy_url=proxy_url, + ) + + if not api.access_token: + token_info = api.load_token() + if token_info is not None: + api.access_token = token_info["access_token"] + api.short_name = token_info["short_name"] + api.author_name = token_info["author_name"] + else: + access_token = await api._create_ph_account( + short_name, author_name, author_url + ) + api.access_token = access_token + api.save_token( + { + "short_name": api.short_name, + "author_name": api.author_name, + "access_token": api.access_token, + } + ) + + return api + + @staticmethod + def save_token(token): + with open("telegraph.json", "w") as f: + json.dump(token, f, indent=4) + + @staticmethod + def load_token(): + if os.path.exists("telegraph.json"): + with open("telegraph.json", "r") as f: + return json.load(f) + + return None + + async def _create_ph_account(self, short_name, author_name, author_url): + # If no existing valid token in TOKEN_FILE, create a new account + data = { + "short_name": short_name, + "author_name": author_name, + "author_url": author_url, + } + + # Make API request + account = await self.post(TELEGRAPH_API_URL, data=data) + if "result" in account and "access_token" in account["result"]: + return account["result"]["access_token"] + + raise Exception("Failed to create telegra.ph account") + + async def create_page( + self, title, content, author_name=None, author_url=None, return_content=False + ): + url = f"{self.base_url}/createPage" + data = { + "access_token": self.access_token, + "title": title, + "content": json.dumps(content, ensure_ascii=False), + "return_content": return_content, + "author_name": author_name if author_name else self.author_name, + "author_url": author_url if author_url else self.author_url, + } + + response = await self.post(url, data=data) + if "result" not in response: + raise Exception("Failed to create page, " + str(response)) + + return response["result"] + + async def get_account_info(self): + url = f'{self.base_url}/getAccountInfo?access_token={self.access_token}&fields=["short_name","author_name","author_url","auth_url"]' + try: + response = await self.get(url) + return response.get("result", None) + except Exception as e: + print(f"Fail getting telegra.ph token info {e}") + + async def edit_page( + self, + path, + title, + content, + author_name=None, + author_url=None, + return_content=False, + ): + url = f"{self.base_url}/editPage" + data = { + "access_token": self.access_token, + "path": path, + "title": title, + "content": json.dumps(content, ensure_ascii=False), + "return_content": return_content, + "author_name": author_name if author_name else self.author_name, + "author_url": author_url if author_url else self.author_url, + } + + response = await self.post(url, data=data) + if "result" not in response or "url" not in response["result"]: + raise Exception("Failed to edit page, " + str(response)) + + return response["result"]["url"] + + async def get_page(self, path): + url = f"{self.base_url}/getPage/{path}?return_content=true" + response = await self.get(url) + return response.get("result") + + async def create_page_md( + self, + title, + markdown_text, + author_name=None, + author_url=None, + return_content=False, + ): + content = self._md_to_dom(markdown_text) + return await self.create_page( + title, content, author_name, author_url, return_content + ) + + async def edit_page_md( + self, + path, + title, + markdown_text, + author_name=None, + author_url=None, + return_content=False, + ): + content = self._md_to_dom(markdown_text) + return await self.edit_page( + path, title, content, author_name, author_url, return_content + ) + + async def authorize_browser(self): + url = f'{self.base_url}/getAccountInfo?access_token={self.access_token}&fields=["auth_url"]' + response = await self.get(url) + return response["result"]["auth_url"] + + def _md_to_dom(self, markdown_text): + html = markdown.markdown( + markdown_text, + extensions=["markdown.extensions.extra", "markdown.extensions.sane_lists"], + ) + + soup = BeautifulSoup(html, "html.parser") + + def parse_element(element): + tag_dict = {"tag": element.name} + if element.name in ["h1", "h2", "h3", "h4", "h5", "h6"]: + if element.name == "h1": + tag_dict["tag"] = "h3" + elif element.name == "h2": + tag_dict["tag"] = "h4" + else: + tag_dict["tag"] = "p" + tag_dict["children"] = [ + {"tag": "strong", "children": element.contents} + ] + + if element.attrs: + tag_dict["attributes"] = element.attrs + if element.contents: + children = [] + for child in element.contents: + if isinstance(child, str): + children.append(child.strip()) + else: + children.append(parse_element(child)) + tag_dict["children"] = children + else: + if element.attrs: + tag_dict["attributes"] = element.attrs + if element.contents: + children = [] + for child in element.contents: + if isinstance(child, str): + children.append(child.strip()) + else: + children.append(parse_element(child)) + if children: + tag_dict["children"] = children + return tag_dict + + new_dom = [] + for element in soup.contents: + if isinstance(element, str) and not element.strip(): + continue + elif isinstance(element, str): + new_dom.append({"tag": "text", "content": element.strip()}) + else: + new_dom.append(parse_element(element)) + + return new_dom + + async def get(self, url): + async with aiohttp.ClientSession() as session: + async with session.get(url, proxy=self.proxy) as response: + if not response.ok: + raise Exception(f"Failed to get: {await response.text()}") + + return await response.json() + + async def post(self, url, data): + async with aiohttp.ClientSession() as session: + async with session.post(url, json=data, proxy=self.proxy) as response: + if not response.ok: + raise Exception(f"Failed to create issue: {await response.text()}") + + return await response.json() + + +class TelegraphProvider: + def __init__(self, api: TelegraphAPI): + self.api = api + + async def share(self, convo: Topic): + md_content = messages_to_segments(convo.messages, 65535)[0] + result = await self.api.create_page_md( + title=convo.title, + markdown_text=md_content, + ) + + if "url" not in result: + raise Exception("Failed to create page") + + return result.get("url") + + async def share_text(self, article_id: str, title: str, content: str): + result = await self.api.create_page_md( + title=title, + markdown_text=content, + ) + if "url" not in result: + raise Exception("Failed to create page") + + return result.get("url") + + async def update_text(self, path, title, content): + return await self.api.edit_page_md( + path=path, + title=title, + markdown_text=content, + ) + + async def create_page(self, title, content): + return await self.api.create_page_md(title=title, markdown_text=content) + + def get_token(self): + return self.api.access_token + + +async def create(params: dict, config): + author = params.get("author", "meiqiu") + short_name = params.get("short_name", author) + proxy_url = config.proxy_url + api = await TelegraphAPI.create( + access_token=params.get("token"), + short_name=short_name, + author_name=author, + proxy_url=proxy_url, + ) + + return TelegraphProvider(api) diff --git a/src/catgpt/storage/sqlite3_session_storage.py b/src/catgpt/storage/sqlite3_session_storage.py index a7650d8..83abb70 100644 --- a/src/catgpt/storage/sqlite3_session_storage.py +++ b/src/catgpt/storage/sqlite3_session_storage.py @@ -10,7 +10,17 @@ CURRENT_VERSION = "0.1.0" VERSION_CODE = 2406252000 -VERSION = [{"version_name": "0.1.0", "version_code": 2406252010, "sql_list": []}] +VERSION = [ + {"version_name": "0.1.0", "version_code": 2406252010, "sql_list": []}, + { + "version_name": "0.1.1", + "version_code": 2406292020, + "sql_list": [ + "alter table profile add preview_url TEXT;", + "alter table profile add preview_token TEXT;", + ], + }, +] def migrate(connection): @@ -21,19 +31,20 @@ def migrate(connection): vi = ("0.0.1", 0) latest_version = None + cursor = connection.cursor() for version in VERSION: if vi[1] >= version["version_code"]: continue sqlite_list = version.get("sql_list", []) for sql in sqlite_list: - connection.execute(sql) + cursor.execute(sql) latest_version = version if latest_version: sql = "insert into version (version_name, version_code) values (?,?)" - connection.execute( + cursor.execute( sql, (latest_version["version_name"], latest_version["version_code"]) ) @@ -328,7 +339,7 @@ class Sqlite3ProfileStorage(types.ProfileStorage, tx.Transactional): @tx.transactional(tx_type="write") async def create_profile(self, profile: types.Profile) -> int: t = await self.retrieve_transaction() - sql = "insert into profile (uid, model, endpoint, prompt, chat_type, chat_id, thread_id, topic_id) values " + fields = "(uid, model, endpoint, prompt, chat_type, chat_id, thread_id, topic_id, preview_url, preview_token)" columns = ( profile.uid, profile.model, @@ -338,8 +349,11 @@ async def create_profile(self, profile: types.Profile) -> int: profile.chat_id, profile.thread_id or 0, profile.topic_id, + profile.preview_url or "", + profile.preview_token or "", ) - sql += "(" + ",".join("?" * len(columns)) + ")" + placeholders = "(" + ",".join("?" * len(columns)) + ")" + sql = f"insert into profile {fields} values {placeholders}" cursor = t.connection.execute(sql, columns) return cursor.lastrowid @@ -374,7 +388,7 @@ async def update( self, uid: int, chat_id: int, thread_id: int, profile: types.Profile ): t = await self.retrieve_transaction() - sql = f"update profile set model = ?, endpoint = ?, prompt = ?, topic_id = ? where uid = ? and chat_id = ? and thread_id = ?" + sql = f"update profile set model = ?, endpoint = ?, prompt = ?, topic_id = ?, preview_url = ?, preview_token = ? where uid = ? and chat_id = ? and thread_id = ?" t.connection.execute( sql, ( @@ -382,6 +396,8 @@ async def update( profile.endpoint, profile.prompt, profile.topic_id, + profile.preview_url, + profile.preview_token, profile.uid, profile.chat_id, profile.thread_id or 0, diff --git a/src/catgpt/storage/types.py b/src/catgpt/storage/types.py index f181ce1..a20d871 100644 --- a/src/catgpt/storage/types.py +++ b/src/catgpt/storage/types.py @@ -79,6 +79,8 @@ def __init__( chat_id: int, thread_id: int, topic_id: int, + preview_url, + preview_token, ): self.uid = uid self.model = model @@ -88,6 +90,8 @@ def __init__( self.chat_id = chat_id self.thread_id = thread_id self.topic_id = topic_id + self.preview_url = preview_url + self.preview_token = preview_token def get_key(self): return f"{self.uid}-{self.chat_id}-{self.thread_id}" @@ -95,7 +99,7 @@ def get_key(self): def __repr__(self): return ( f"Profile(uid={self.uid}, model={self.model}, endpoint={self.endpoint}, prompt={self.prompt}, " - f"chat_type={self.chat_type}, chat_id={self.chat_id}, thread_id={self.thread_id})" + f"chat_type={self.chat_type}, chat_id={self.chat_id}, thread_id={self.thread_id}), preview_url={self.preview_url}" ) diff --git a/src/catgpt/types.py b/src/catgpt/types.py index 078805a..9c2eb45 100644 --- a/src/catgpt/types.py +++ b/src/catgpt/types.py @@ -64,6 +64,11 @@ def __str__(self): )""" +class Preview(enum.Enum): + INTERNAL = "internal" + TELEGRAPH = "telegraph" + + class Configuration: def __init__(self): @@ -72,6 +77,7 @@ def __init__(self): self.share_info = None self.endpoints: [Endpoint] = [] self.respond_group_message = False + self.topic_preview = Preview.INTERNAL def get_endpoints(self) -> [Endpoint]: return self.endpoints @@ -144,3 +150,4 @@ def get(chat_type: str): class ShareType(enum.Enum): GITHUB = "github" + TELEGRAPH = "telegraph" diff --git a/src/catgpt/user_profile.py b/src/catgpt/user_profile.py index 9bb0277..5d214e5 100644 --- a/src/catgpt/user_profile.py +++ b/src/catgpt/user_profile.py @@ -54,6 +54,8 @@ async def create( chat_id=chat_id, thread_id=thread_id, topic_id=topic_id, + preview_url=None, + preview_token=None, ) await self.storage.create_profile(profile)