telegram-notify.ts 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // import type { Plugin } from "@opencode-ai/plugin"
  2. // import { SimpleTelegramBot } from "../lib/telegram-bot"
  3. // export const TelegramNotify: Plugin = async ({ $ }) => {
  4. // // Initialize Telegram bot
  5. // const bot = new SimpleTelegramBot()
  6. // let lastMessage = ""
  7. // return {
  8. // async event(input) {
  9. // if (input.event.type === "session.idle") {
  10. // // Send the last message content along with idle notification
  11. // const message = lastMessage
  12. // ? `🟡 Session idle! Here's your last message:\n\n${lastMessage}`
  13. // : "🟡 Hey! Your OpenCode session is idle - time to check your work!"
  14. // bot.sendMessage(message)
  15. // }
  16. // if (input.event.type === "message.updated") {
  17. // // Reset idle timer when user sends messages
  18. // bot.resetActivity()
  19. // const messageContent = (input.event as any).message?.content ||
  20. // (input.event as any).content || ""
  21. // // Check if it's a command to send last message
  22. // if (messageContent.includes("/send-last") || messageContent.includes("/last")) {
  23. // if (lastMessage) {
  24. // bot.sendMessage(`📱 Here's your last message:\n\n${lastMessage}`)
  25. // } else {
  26. // bot.sendMessage("📱 No previous message found.")
  27. // }
  28. // return
  29. // }
  30. // // Check if it's a command to send to phone
  31. // if (messageContent.includes("/send-to-phone") || messageContent.includes("/phone")) {
  32. // if (lastMessage) {
  33. // bot.sendMessage(`📱 Sending to your phone:\n\n${lastMessage}`)
  34. // } else {
  35. // bot.sendMessage("📱 No message to send to phone.")
  36. // }
  37. // return
  38. // }
  39. // // Try to capture message content from the event
  40. // try {
  41. // // Access message content if available
  42. // const messageContent = (input.event as any).message?.content ||
  43. // (input.event as any).content ||
  44. // "Message updated"
  45. // if (messageContent && messageContent !== "Message updated") {
  46. // lastMessage = messageContent
  47. // // Send a preview of the message to Telegram
  48. // const preview = lastMessage.length > 200
  49. // ? lastMessage.substring(0, 200) + "..."
  50. // : lastMessage
  51. // bot.sendMessage(`📱 Last message preview:\n\n${preview}`)
  52. // }
  53. // } catch (error) {
  54. // // If we can't access the message content, just log it
  55. // console.log("Message updated but couldn't capture content")
  56. // }
  57. // }
  58. // if (input.event.type === "file.edited") {
  59. // // Reset idle timer when user edits files
  60. // bot.resetActivity()
  61. // }
  62. // if (input.event.type === "message.updated") {
  63. // // Reset idle timer when user sends messages
  64. // bot.resetActivity()
  65. // // Try to capture message content from the event
  66. // try {
  67. // // Access message content if available
  68. // const messageContent = (input.event as any).message?.content ||
  69. // (input.event as any).content ||
  70. // "Message updated"
  71. // if (messageContent && messageContent !== "Message updated") {
  72. // lastMessage = messageContent
  73. // // Send a preview of the message to Telegram
  74. // const preview = lastMessage.length > 200
  75. // ? lastMessage.substring(0, 200) + "..."
  76. // : lastMessage
  77. // bot.sendMessage(`📱 Last message preview:\n\n${preview}`)
  78. // }
  79. // } catch (error) {
  80. // // If we can't access the message content, just log it
  81. // console.log("Message updated but couldn't capture content")
  82. // }
  83. // }
  84. // // Also listen for message parts being updated
  85. // if (input.event.type === "message.part.updated") {
  86. // bot.resetActivity()
  87. // try {
  88. // const partContent = (input.event as any).part?.content ||
  89. // (input.event as any).content ||
  90. // "Message part updated"
  91. // if (partContent && partContent !== "Message part updated") {
  92. // lastMessage = partContent
  93. // const preview = lastMessage.length > 200
  94. // ? lastMessage.substring(0, 200) + "..."
  95. // : lastMessage
  96. // bot.sendMessage(`📱 Message part preview:\n\n${preview}`)
  97. // }
  98. // } catch (error) {
  99. // console.log("Message part updated but couldn't capture content")
  100. // }
  101. // }
  102. // }
  103. // }
  104. // }