Skip to content

Commit 2846890

Browse files
Merge pull request #3 from LessVegetables/feature/typing-indicator
Added typing indicator
2 parents 3538890 + 38bbfbf commit 2846890

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
*.code-workspace
55
/src/__pycache__
66
/testing
7+
requirements copy.txt

src/mvp.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
database = Database(DB_DSN)
2929
chatgpt = MyChatGPT(database)
3030

31+
async def keep_typing(chat_id):
32+
asyncio.sleep(5) # wait before "typing" the text
33+
while True:
34+
await bot.send_chat_action(chat_id, "typing")
35+
await asyncio.sleep(4) # Refresh every 4s (before 5s limit)
3136

3237

3338
# /start
@@ -50,7 +55,11 @@ async def message_handler(message: Message):
5055
user_info = f"Received message from {message.from_user.full_name} (ID: {message.from_user.id})"
5156
print(user_info) # Log user info (use dp.message.middleware(LoggingMiddleware()); class LoggingMiddleware(BaseMiddleware):)
5257
print("\tQ:", message.text)
58+
59+
task = asyncio.create_task(keep_typing(message.chat.id)) # change this (message.chat.id) if you ever plan on adding groupchat support
5360
answer = await chatgpt.message_chatgpt(message.text, message.from_user.id)
61+
task.cancel()
62+
5463
print("\tA:", answer)
5564
await message.answer(answer)
5665

0 commit comments

Comments
 (0)