RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-505252

Zlets's questions

Martin Hope
Zlets
Asked: 2022-08-25 00:32:35 +0000 UTC

导入错误 - 请解释原因:from vkbottle import Bot, Message ImportError: cannot import name 'Message' from 'vkbottle'

  • 2
from vkbottle import Bot, Message
from vkbottle.api.keyboard import Keyboard, Text
from vkbottle.branch import Branch, ExitBranch


bot=Bot('')

dialogs = {}
wait = []
emoji = '' # Спасибо моему IDLE :)

start_keyboard = Keyboard(one_time=False)
start_keyboard.add_row()
start_keyboard.add_button(Text(label="Поиск собеседника"), color="negative")

wait_keyboard = Keyboard(one_time=True)
wait_keyboard.add_row()
wait_keyboard.add_button(Text(label="Отменить поиск"), color="positive")

stop_keyboard = Keyboard(one_time=False)
stop_keyboard.add_row()
stop_keyboard.add_button(Text(label="Отключиться от диалога"), color="primary")


@bot.on.message(text='Поиск собеседника', lower = True)
async def start(ans: Message):
    if ans.from_id not in wait and ans.from_id not in dialogs:
        if len(wait) == 0:
            await ans(f'{emoji} Вы добавлены в очередь поиска собеседника.', keyboard=wait_keyboard)
            wait.append(ans.from_id)
            await bot.branch.add(ans.peer_id, "wait")
        else:
            dialogs[ans.from_id] = wait[0]
            dialogs[wait[0]] = ans.from_id
            await bot.api.messages.send(peer_id=ans.from_id, random_id=0, message=f'{emoji} Мы нашли вам собеседника!', keyboard=stop_keyboard)
            await bot.api.messages.send(peer_id=wait[0], random_id=0, message=f'{emoji} Мы нашли вам собеседника!', keyboard=stop_keyboard)
            await bot.branch.add(ans.from_id, "dialog")
            await bot.branch.add(wait[0], "dialog")
            del wait[0]

@bot.branch.simple_branch("wait")
async def branch(ans: Message):
    if ans.text == "Отменить поиск":
        await ans(f"{emoji} Поиск собеседника остановлен.", keyboard=start_keyboard)
        await bot.branch.exit(ans.peer_id)
        del wait[0]
    else:
        await ans(f'{emoji} Вы находитесь в поиске собеседника.', keyboard=wait_keyboard)

@bot.branch.simple_branch("dialog")
async def branch(ans: Message):
    if ans.text == "Отключиться от диалога":
        await bot.api.messages.send(peer_id=ans.from_id, random_id=0, message=f'{emoji} Диалог был остановлен.', keyboard=start_keyboard)
        await bot.api.messages.send(peer_id=dialogs[ans.from_id], random_id=0, message=f'{emoji} Собеседник остановил диалог.', keyboard=start_keyboard)
        await bot.branch.exit(dialogs[ans.from_id])
        await bot.branch.exit(ans.from_id)
        del dialogs[dialogs[ans.from_id]]
        del dialogs[ans.from_id]
    else:
        await bot.api.messages.send(peer_id=dialogs[ans.from_id], random_id=0, message='Собеседник: ' + ans.text)

@bot.on.message()
async def all(ans: Message):
    await ans('Привет! Я анонимный чат-бот. Чтобы начать поиск собеседника, воспользуйтесь кнопками.', keyboard=start_keyboard)

bot.run_polling()
python вконтакте
  • 2 个回答
  • 53 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5