回复消息

This commit is contained in:
2022-12-22 07:35:06 +00:00
parent 5ce3f5d9f8
commit 4352c5a70f
2 changed files with 40 additions and 5 deletions
+3 -1
View File
@@ -5,4 +5,6 @@
/__pycache /__pycache
/tmp_video /tmp_video
/tmp_audio /tmp_audio
/__pycache__ /__pycache__
/venv
/db.sqlite
+37 -4
View File
@@ -13,16 +13,20 @@ import logging
import sys import sys
import time import time
import telebot import telebot
from telebot import apihelper
import requests import requests
import json import json
import html2text import html2text
import sqlite3
''' '''
Basic setup Basic setup
''' '''
logging.basicConfig(format='%(asctime)s: %(levelname)s %(name)s | %(message)s', logging.basicConfig(format='%(asctime)s: %(levelname)s %(name)s | %(message)s',
level=logging.INFO) level=logging.INFO)
logger = telebot.logger.setLevel(logging.INFO) logger = telebot.logger.setLevel(logging.DEBUG)
bots = {} bots = {}
# check if credentials exist, create if not # check if credentials exist, create if not
if not os.path.isfile("config.conf"): if not os.path.isfile("config.conf"):
@@ -55,6 +59,19 @@ if not os.path.isfile("config.conf"):
f.write(misskey_visibility) f.write(misskey_visibility)
print("配置文件已生成,请重新运行") print("配置文件已生成,请重新运行")
exit(0) exit(0)
if not os.path.isfile("db.sqlite"):
# 创建数据库
logging.info("创建数据库")
conn = sqlite3.connect('db.sqlite')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS `messages` (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`channel_id` INTEGER NOT NULL,
`message_id` INTEGER NOT NULL,
`misskeynote_id` TEXT NOT NULL
);''')
conn.commit()
conn.close()
#判断启动参数 #判断启动参数
if len(sys.argv) > 1: if len(sys.argv) > 1:
@@ -94,7 +111,8 @@ else:
# Telegram # Telegram
# parse mode can be either HTML or MARKDOWN # parse mode can be either HTML or MARKDOWN
bot = telebot.TeleBot(telegram_token, parse_mode="MARKDOWN") bot = telebot.TeleBot(telegram_token, parse_mode="MARKDOWN", )
#apihelper.proxy = {'http':'http://127.0.0.1:2080'}
''' '''
@@ -184,11 +202,26 @@ def uploadfile(caption,filename, mimetype, id):
def get_text(message): def get_text(message):
if message.chat.id in bots: if message.chat.id in bots:
logging.info(f"New {message.content_type}") logging.info(f"New {message.content_type}")
conn = sqlite3.connect('db.sqlite')
status_text = footer_text(message) status_text = footer_text(message)
rjson = {'text': status_text, "localOnly": False, "visibility": bots[message.chat.id][2], "viaMobile": False, rjson = {'text': status_text, "localOnly": False, "visibility": bots[message.chat.id][2], "viaMobile": False,
"i": bots[message.chat.id][1]} "i": bots[message.chat.id][1]}
notepost = requests.post(bots[message.chat.id][0] + "/api/notes/create", json=rjson) if message.reply_to_message != None:
logging.info(f"发布帖子成功") c = conn.cursor()
c.execute("SELECT * FROM messages WHERE message_id = (?)", (message.reply_to_message.message_id,))
data = c.fetchone()
if data != None:
rjson["replyId"] = data[3]
notepost = requests.post(bots[message.chat.id][0] + "/api/notes/create", json=rjson)
logging.info("发布帖子成功")
else:
notepost = requests.post(bots[message.chat.id][0] + "/api/notes/create", json=rjson)
logging.info("发布帖子成功")
c = conn.cursor()
c.execute("INSERT INTO messages('channel_id', 'message_id', 'misskeynote_id') VALUES (?, ?, ?)",(message.chat.id, message.message_id, json.loads(notepost.text)["createdNote"]["id"]))
conn.commit()
conn.close()
logging.info("发布帖子成功")
@bot.channel_post_handler(content_types=["photo"]) @bot.channel_post_handler(content_types=["photo"])
def get_image(message): def get_image(message):