RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

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

Nqweqweqwe's questions

Martin Hope
Nqweqweqwe
Asked: 2024-02-14 21:50:40 +0000 UTC

js 哪里可以获得 just-validate.min.js?

  • 2

当您从 GitHub 下载并打开存档时,会出现一堆不同的文件和文件夹。我正是需要它just-validate.min.js。

PS 别像达斯那样自作聪明,说废话。程序员会立即理解这个问题,并且不会说“重命名任何文件以进行验证”。

javascript
  • 1 个回答
  • 46 Views
Martin Hope
Nqweqweqwe
Asked: 2024-02-13 16:12:23 +0000 UTC

css 3 和 html 5,如何按屏幕对产品卡进行排序?

  • 5

我margin在主结构中添加了卡片,但是复制它时,所有卡片都会向下移动,但我需要它们按顺序向左移动,如果没有空间,则在底部。如何实施?

.card {
  background-color: #eeeded;
  width: 175px;
  border-radius: 20px;
  padding: 20px 10px;
  box-shadow: 10px 10px 20px rgba(67, 64, 64, .4);
  margin: 80px 100px;
}

.card-img {
  border-radius: 11px;
  /*margin-right: 100px;*/
}

.card-title {
  margin-top: 20px;
  font-size: 14px;
  font-weight: 501;
}

.card-description {
  font-size: 12px;
  font-weight: 300;
  margin-top: 20px;
}

.btn-keeper {
  margin-top: 20px;
  text-align: center;
}

.btn-add {
  /*padding: 7px 12px;*/
  /*margin-right: 500px;*/
  color: red;
  background-color: #EEEDEDFF;
  border-radius: 10px;
}

.btn-delete-from-cart {
  color: red;
  background-color: #EEEDEDFF;
  border-radius: 10px;
}

.btn-delete-from-cart:hover {
  color: red;
}

.btn-add:hover {
  color: red;
}
<div class="product-card">
  <!-- wrapper -->
  <div class="card">
    <img class="card-img" src="menu/6za700.jpg">
    <div class="card-title">6 за 700</div>
    <div class="card-description">3 крылышка, 3 стрипса. картошка фри, соус барбекью .кола 0,33. твистер с курей</div>
    <div class="btn-keeper">
      <a href="#" class="btn-delete-from-cart">
        <ion-icon name="remove-circle-outline"></ion-icon>
      </a>
      <a href="#" class="btn-add">
        <ion-icon name="add-circle-outline"></ion-icon>
      </a>
    </div>
  </div>
</div>

html
  • 1 个回答
  • 52 Views
Martin Hope
Nqweqweqwe
Asked: 2024-02-10 15:23:41 +0000 UTC

来自 Yandex、python 的任务“装饰支票”

  • 5

这是我的代码,但我不明白如何正确对齐数字的边缘,因为...... 如果写的数字很大,就会出界。我重新编写了代码,但最终没有任何效果,它给出了错误。代码中还有一个注释掉的部分可以工作,但您需要以某种方式将其与边缘对齐。这是代码:

a = str(input()) # Название
b = int(input()) # Цена
c = int(input()) # Вес
d = int(input()) # Кол-во денег

#print(f'{"Чек":=^32}\nТовар:{"": >30}{a}\nЦена:{"": >30}{c}кг * {b}руб/кг\nИтого:{"": >30}{(b*c)}руб\nВнесено:{"": >30}{d}руб\nСдача:{"": >30}{(d-b*c)}руб\n{"":=^35}')
print(f'{"Чек":=^32}')
print(f'Товар:{"": ^{(a)}}{a}')
print(f'Цена:{"": ^{(b)}}{(c)}кг * {(b)}руб/кг')
print(f'Итого:{"": ^{(b*c)}}{(b*c)}руб')
print(f'Внесено:{"": ^{(d)}}{(d)}руб')
print(f'Сдача:{"": ^{(d-b*c)}}{(d-b*c)}руб')
print(f'{"":=^32}')

UPD:我更改了代码,但它仍然不对齐

a = str(input()) # Название
b = int(input()) # Цена
c = int(input()) # Вес
d = int(input()) # Кол-во денег

print(f'{"Чек":=^35}')
print(f'{"Товар:": <35}{a}')
print(f'{"Цена:": <35}{c}кг * {b}кг/руб')
print(f'{"Итого:": <35}{b*c}руб')
print(f'{"Внесено:": <35}{d}')
print(f'{"Сдача": <35}{d-b*c}')
print(f'{"":=^35}')

任务本身: 只是截图,如果我把任务复制到这里,都是粗体的

python
  • 3 个回答
  • 62 Views
Martin Hope
Nqweqweqwe
Asked: 2024-02-09 17:41:26 +0000 UTC

如何从数据库中获取所有密码?sqlite3 aiogram

  • 4

只显示一行,我现在只有 2 行。这是我用来显示密码的代码:

db.conn.execute('select password from accounts').fetchall()[0]

仅显示我的密码。

python
  • 2 个回答
  • 38 Views
Martin Hope
Nqweqweqwe
Asked: 2024-02-04 21:54:21 +0000 UTC

pascalABC.net:如果你输了,你输了的消息会显示两次

  • 4

我做了一个猜数字的游戏,由于我需要在不同的地方做同样的检查,所以我决定研究一下函数和程序。我做了一个函数,如果一个玩家的尝试次数小于或等于0,那么他会写Yo​​u has run out of attempts, restart...,但是当尝试次数用完时,这个短语会被写两次。这是代码:

uses crt;

label restart;
procedure wrn(text: string);
begin
  writeln(text);
end;

function check1(at: integer): boolean;
var abc: boolean;
begin
  if at <= 0 then begin
    wrn('У вас закончились попытки!');
    wrn('Перезапуск...');
    check1 := True;
    {print(at);}
  end
  else check1 := False;
  {print(at);}
end;

begin
  randomize;
  var _restart: boolean;
  var _attempts: integer;
  restart: _restart := False;
  _attempts := 10;
  var random_number := random(100);
  {print(random_number);}
  var a := ReadInteger('Введите любое число от 1 до 100: ');
  if a > 100 then begin
    wrn('Вы написали число больше 100!');
    _restart := True;
    goto restart;
  end;
  while _restart <> True do
  begin
    var b := ReadInteger('Угадывайте: ');
    if b > random_number then begin
      check1(_attempts);
      if check1(_attempts) = True then begin
        goto restart;
      end;
      _attempts := _attempts - 1;
      wrn('Ваше число больше загаданного.');
    end;
    if b < random_number then begin
      check1(_attempts);
      if check1(_attempts) = True then begin
        goto restart;
      end;
      _attempts := _attempts - 1;
      wrn('Ваше число меньше загаданного.');
    end;
    if b = random_number then begin
      wrn('Вы угадали число!');
      wrn('Перезапуск...');
      _restart := True;
      goto restart;
    end;
  end;
end.

请不要完全重做代码,只需重做我犯错误的地方即可。剩下的你就简单指出来,方便我以后研究。先感谢您!

pascal
  • 1 个回答
  • 26 Views
Martin Hope
Nqweqweqwe
Asked: 2024-02-04 15:50:16 +0000 UTC

PascalABCNet,重新启动代码时该函数被调用两次

  • 5

昨天我做了一个计算器,点击检查代码健康按钮,发现由于设计过时,我的健康状况有 64%。我阅读了官方文档并重写了代码。现在代码的健康度显示为134%,但是当输入符号时,重新启动程序后,检查正确输入符号的功能将重新启动两次,然后您可以再次使用该程序。这是输出:

Введите знак(/,*,+,-): *
Введите первое число:  1
Введите второе число:  2
Ответ: 2
Введите знак(/,*,+,-): Вы используете несуществующий символ для вычисления!
Введите знак(/,*,+,-): Вы используете несуществующий символ для вычисления!
Введите знак(/,*,+,-): 

更新的代码:

{program calculator;}
label restart;
begin
  var rest: integer;
  restart: rest := 0;
  while rest <> 1 do
  begin
    var sign := ReadChar('Введите знак(/,*,+,-):');
    if (sign <> '-') and (sign <> '+') and (sign <> '/') and (sign <> '*') then begin
      writeln('Вы используете несуществующий символ для вычисления!');
      goto restart;
    end;
    var a := ReadInteger('Введите первое число: ');
    var b := ReadInteger('Введите второе число: ');
    if sign = '+' then begin
      writeln('Ответ: ', a + b);
    end;
    if sign = '-' then begin
      writeln('Ответ: ', a - b);
    end;
    if sign = '/' then begin
      if b <> 0 then begin
        writeln('Ответ: ', a / b);
      end
      else
    writeln('Нельзя делить на 0!');
      goto restart;
    end;
    if sign = '*' then begin
      writeln('Ответ: ', a * b);
    end;
  end;
end.
pascal
  • 1 个回答
  • 12 Views
Martin Hope
Nqweqweqwe
Asked: 2024-02-03 23:31:27 +0000 UTC

PascalABCNET 检查不起作用

  • 5

我做了一个选择性计算器,即 您可以在其中选择计算的符号和数字,为了避免输入符号时出现错误,我决定进行一项检查,如果sign <> 'знак',而不是我有 +、- 等的“符号”。 ,但即使输入正确,检查每次都会起作用。问题是什么?代码:

program test;
label restart;
var
  a,b,signnum,rest:integer;
  sign:string;
begin
restart: rest := 0;
while rest <> 1 do
begin
a := 0;
b:=0;
sign:='';
writeln('Введите знак(/,*,+,-):');
readln(sign);
if (sign <> '-') or (sign <> '+') or (sign <> '/') or (sign <> '*') then
begin
  writeln('Вы используете несуществующий символ для вычисления!');
  goto restart;
end
else
continue;
writeln('Введите первое число: ');
readln(a);
writeln('Введите второе число: ');
readln(b);
if sign = '+' then
begin
writeln(a+b);
end;
if sign = '-' then
begin
writeln(a-b);
end;
if sign = '/' then
begin
writeln(a/b);
end;
if sign = '*' then
begin
writeln(a*b);
end;
end;
end.
pascal
  • 1 个回答
  • 27 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-30 23:55:17 +0000 UTC

未进行 aiogram 检查

  • 5

我做了一项检查,应该更改用户状态:

async def status_up(msg: Message):
    print('started')
    status = db.status(msg.from_user.id).fetchone()[0] # Какой статус на данный момент
    refs = db.count_referals(msg.from_user.id).fetchone()[0] # Кол-во рефов
    states = ['🔸 Гость', '🔸 Новичек', '🥉 Освоившийся', '🥈 Профессионал', '🌟 Просветлённый', '🎖 Ветеран', '🏆PREMIUM'] # Список со статусами
    frase= msg.answer(f'Ваш статус был повышен! Подробнее в вашем профиле.\nВаш новый статус - {status}')
    # Если статус еще не равен первому в списке, ранг равен 1 и рефералов 0, то начисляется
    # новый статус и всякие плюшки(см. ниже)
    if status != states[0] and db.rang(msg.from_user.id).fetchone()[0]==1 and refs == 0:
        db.status(msg.from_user.id, status=1)
        await frase
        db.RPC(msg.from_user.id, count=0.01) # Кол-во заработка
        db.clicks(msg.from_user.id, limit=100) # Кол-во кликов
    if status != states[1] and db.rang(msg.from_user.id).fetchone()[0]==2 and refs == 3:
        db.status(msg.from_user.id, status=2)
        await frase
        db.RPC(msg.from_user.id, count=0.07)
        db.clicks(msg.from_user.id, limit=100)
    if status != states[2] and db.rang(msg.from_user.id).fetchone()[0]==3 and refs == 5:
        db.status(msg.from_user.id, status=3)
        await frase
        db.RPC(msg.from_user.id, count=0.14)
        db.clicks(msg.from_user.id, limit=150)
    if status != states[3] and db.rang(msg.from_user.id).fetchone()[0]==4 and refs == 25:
        db.status(msg.from_user.id, status=4)
        await frase
        db.RPC(msg.from_user.id, count=0.25)
        db.clicks(msg.from_user.id, limit=150)
    if status != states[4] and db.rang(msg.from_user.id).fetchone()[0]==5 and refs == 75:
        db.status(msg.from_user.id, status=5)
        await frase
        db.RPC(msg.from_user.id, count=0.33)
        db.clicks(msg.from_user.id, limit=200)
    if status != states[5] and db.rang(msg.from_user.id).fetchone()[0]==6 and refs == 120:
        db.status(msg.from_user.id, status=6)
        await frase
        db.RPC(msg.from_user.id, count=0.40)
        db.clicks(msg.from_user.id, limit=200)
    if status != states[6] and db.rang(msg.from_user.id).fetchone()[0]==7 and refs == 350:
        db.status(msg.from_user.id, status=7)
        await frase
        db.RPC(msg.from_user.id, count=0.55)
        db.clicks(msg.from_user.id, limit=275)

# Цикл который я запускаю для запуска функции
async def test(msg: Message):
    while True:
        print('working...')
        await status_up(msg)
        await asyncio.sleep(1)

这是我用来更改数据库中的状态的代码:

    def status(self, usd, status=None):
        '''Смена статуса для пользователей'''
        states = ['🔸 Гость','🔸 Новичек','🥉 Освоившийся','🥈 Профессионал','🌟 Просветлённый','🎖 Ветеран', '🏆PREMIUM']
        if status is not None:
            if status == 1:
                self.cur.execute(f"UPDATE users SET status =? WHERE user_id=?", (states[0], usd))
                return self.conn.commit()
            elif status == 2:
                self.cur.execute(f"UPDATE users SET status =? WHERE user_id=?", (states[1], usd))
                return self.conn.commit()
            elif status == 3:
                self.cur.execute(f"UPDATE users SET status =? WHERE user_id=?", (states[2], usd))
                return self.conn.commit()
            elif status == 4:
                self.cur.execute(f"UPDATE users SET status =? WHERE user_id=?", (states[3], usd))
                return self.conn.commit()
            elif status == 5:
                self.cur.execute(f"UPDATE users SET status =? WHERE user_id=?", (states[4], usd))
                return self.conn.commit()
            elif status == 6:
                self.cur.execute(f"UPDATE users SET status =? WHERE user_id=?", (states[5], usd))
                return self.conn.commit()
            elif status == 7:
                self.cur.execute(f"UPDATE users SET status =? WHERE user_id=?", (states[6], usd))
                return self.conn.commit()
        else:
            """Выводит значение в остальных случаях"""
            return self.conn.execute("SELECT status FROM users WHERE user_id=?", (usd,))

它不会显示任何错误,机器人通常在运行此功能后即可工作,到目前为止我在 /start 中运行它,你能告诉我如何在机器人启动时运行检查吗?先感谢您!

python
  • 2 个回答
  • 18 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-28 01:53:42 +0000 UTC

无法将文件发送到 aiogram3 python

  • 6

我正在尝试使用以下方式发送.txt文件:

@router.message(Command(commands='test', prefix='!'))
async def abbreviatures(msg: Message):
    await msg.answer('text')
    with open('ab.txt', 'rb') as file:
        await msg.answer_document(file)

但它给出了这个错误:

ValidationError: 2 validation errors for SendDocument
document.is-instance[InputFile]
  Input should be an instance of InputFile [type=is_instance_of, input_value=<_io.BufferedReader name='ab.txt'>, input_type=BufferedReader]
    For further information visit https://errors.pydantic.dev/2.5/v/is_instance_of
document.str
  Input should be a valid string [type=string_type, input_value=<_io.BufferedReader name='ab.txt'>, input_type=BufferedReader]
    For further information visit https://errors.pydantic.dev/2.5/v/string_type
Traceback (most recent call last):
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 309, in _process_update
    response = await self.feed_update(bot, update, **kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 158, in feed_update
    response = await self.update.wrap_outer_middleware(
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\middlewares\error.py", line 25, in __call__
    return await handler(event, data)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\middlewares\user_context.py", line 27, in __call__
    return await handler(event, data)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\fsm\middleware.py", line 41, in __call__
    return await handler(event, data)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\telegram.py", line 121, in trigger
    return await wrapped_inner(event, kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\handler.py", line 43, in call
    return await wrapped()
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 276, in _listen_update
    return await self.propagate_event(update_type=update_type, event=event, **kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\router.py", line 128, in propagate_event
    return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\router.py", line 123, in _wrapped
    return await self._propagate_event(
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\router.py", line 156, in _propagate_event
    response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\router.py", line 128, in propagate_event
    return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\router.py", line 123, in _wrapped
    return await self._propagate_event(
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\router.py", line 148, in _propagate_event
    response = await observer.trigger(event, **kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\telegram.py", line 121, in trigger
    return await wrapped_inner(event, kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\handler.py", line 43, in call
    return await wrapped()
  File "C:\Users\Danil\Desktop\Bot translator\handlers.py", line 35, in abbreviatures
    await msg.answer_document(photo)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\types\message.py", line 1182, in answer_document
    return SendDocument(
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\pydantic\main.py", line 164, in __init__
    __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
pydantic_core._pydantic_core.ValidationError: 2 validation errors for SendDocument
document.is-instance[InputFile]
python
  • 1 个回答
  • 18 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-27 17:35:17 +0000 UTC

如果消息中包含列表中的单词,如何删除消息?爱图3

  • 6

我做了这个代码:

@router.message()
async def message_censore(msg: Message):
    with open('sensore.txt', 'r') as f:
        censored_letters = [line.strip() for line in f]
    if str(censored_letters) in msg.text:
        await msg.delete()

但只有当censored_letters您将其替换为引号中的单词时,它才有效,例如'мат'。我尝试显示一个列表,所有单词都已导入。

python
  • 3 个回答
  • 55 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-27 15:05:03 +0000 UTC

机器人启动时如何运行函数?爱格拉姆3.3.0

  • 6

我正在制作一个主持人机器人,我需要一个在机器人启动时进行所有必要检查的功能,但问题是在启动检查的功能中,msg: Message如果使用启动则无法通过if __name__ == '__main__':。我尝试在内部创建一个函数if __name__ == '__main__',并认为它会自行启动,但机器人只是关闭了。这是机器人启动代码:

async def main(msg: Message):
    bot = Bot(token=config.bot_token)
    dp = Dispatcher(storage=MemoryStorage())
    dp.include_router(router)
    await bot.delete_webhook(drop_pending_updates=True)
    await handlers.bot_started_check(msg) # Для запуска нужно передавать msg
    print('Бот запущен')
    await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types(), on_startup=DB.bot_startup(1), on_shutdown=DB.bot_startup(0))

if __name__ == '__main__':
    async def start(msg: Message):
        logging.basicConfig(level=logging.INFO)
        asyncio.run(main(msg))

我不知道如何解决它。

更新:代码handlers.py

from aiogram import types, F, Router
from aiogram.types import Message
from aiogram.filters import Command
from aiogram.fsm.state import State, StatesGroup
from aiogram.fsm.context import FSMContext
from aiogram.types.message import ContentType
from aiogram.filters import ADMINISTRATOR, IS_ADMIN, IS_MEMBER, IS_NOT_MEMBER
from aiogram import Bot
import asyncio
from database import ModerDB
import pydantic_core
DB = ModerDB('DB.db')

import config
import swears
bot = Bot(token=config.bot_token)
router = Router()

async def bot_started_check(msg: Message):
    while True:
        if DB.bot_startup().fetchone()[0] == 1:
            await bot.send_message(msg.chat.id,'Бот включен')
            pass
        else:
            await bot.send_message(msg.chat.id, 'Бот выключен')
        await asyncio.sleep(1)

async def bot_stopped(msg: Message):
    if DB.bot_startup().fetchone()[0] != 1:
        await bot.send_message(msg.chat.id, 'Бот выключен.')

@router.message(Command(commands='start', prefix='!'))
async def start(msg: Message):
    if not DB.bot_exist(bot.id):
        DB.bot_activate(bot.id)
        await bot.send_message(msg.chat.id, 'Бот был активирован✅')
    await bot_started_check(msg)

@router.message(Command(commands='админ1', prefix='+'))
async def prefix(msg: Message):
    member_name = ' '.join(msg.text.split()[1:])
    if DB.username_exist(member_name):
        await bot.send_message(msg.from_user.id, f'Участник {member_name} стал администратором первого уровня.')
    else:
        await bot.send_message(msg.chat.id, 'Учатник не найден.')
    await bot.set_chat_administrator_custom_title(msg.chat.id, msg.reply_to_message.from_user.id, f'{member_name}')

@router.message(F.text, lambda msg: any(x in msg.text.lower().replace("ё", "е") for x in swears.swears))
async def censure(msg: Message):
    await msg.delete()
    await msg.answer("Без мата, пожалуйста ⛔")

python
  • 1 个回答
  • 34 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-25 19:39:48 +0000 UTC

启动机器人时出错,不支持可调用

  • 5

我通过 HowdyHo 视频付款,我写了所有内容,但它给出了错误 unsupporte callable。包含错误的代码:

@router.message(ContentType.SUCCESSFUL_PAYMENT)
async def succ_pay(msg: Message):
    paymentinfo = msg.successful_payment.provider_payment_charge_id # Здесь должно быть .to_python() но я не знаю как это выглядит в aoigram3.3.0
    for k, v in paymentinfo:
        print(f'{k} = {v}')
    await bot.send_message(msg.chat.id, f'Платеж на сумму {msg.successful_payment.total_amount // 100} {msg.successful_payment.currency} прошёл успешно!')
    #DB.status_up(msg.from_user.id, 8)
    #await rang_up(msg)

错误:

Traceback (most recent call last):
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\inspect.py", line 1123, in getfullargspec
    sig = _signature_from_callable(func,
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\inspect.py", line 2216, in _signature_from_callable
    raise TypeError('{!r} is not a callable object'.format(obj))
TypeError: <ContentType.SUCCESSFUL_PAYMENT: 'successful_payment'> is not a callable object

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Danil\Desktop\So2 bot\main.py", line 10, in <module>
    from handlers import router
  File "C:\Users\Danil\Desktop\So2 bot\handlers.py", line 368, in <module>
    async def succ_pay(msg: Message):
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\telegram.py", line 138, in wrapper
    self.register(callback, *filters, flags=flags, **kwargs)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\telegram.py", line 87, in register
    filters=[FilterObject(filter_) for filter_ in filters],
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\telegram.py", line 87, in <listcomp>
    filters=[FilterObject(filter_) for filter_ in filters],
  File "<string>", line 4, in __init__
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\handler.py", line 72, in __post_init__
    super(FilterObject, self).__post_init__()
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\dispatcher\event\handler.py", line 30, in __post_init__
    spec = inspect.getfullargspec(callback)
  File "C:\Users\Danil\AppData\Local\Programs\Python\Python38\lib\inspect.py", line 1132, in getfullargspec
    raise TypeError('unsupported callable') from ex
TypeError: unsupported callable

python
  • 1 个回答
  • 32 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-24 19:34:37 +0000 UTC

aiogram 3.3.0:如何替换 FSMContext 模块中的 set?

  • 5

我正在为机器人制作一个禁止命令,我发现了一篇文章,其中禁止命令是通过FSMContext. 一眼就能看出aiogram它已经老了。这是我重写的一段代码:

@dp.message_handler(content_types=['text'], text='Добавить в ЧС')
async def hanadler(message: types.Message, state: FSMContext):
  if message.chat.id == ADMIN:
    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard.add(types.InlineKeyboardButton(text="Назад"))
    await message.answer('Введите id пользователя, которого нужно заблокировать.\nДля отмены нажмите кнопку ниже', reply_markup=keyboard)
    await dialog.blacklist.set() # Вот здесь подсвечивается жёлтым

当你将鼠标悬停在它上面时,set()它说模块中没有这个属性State。如何更换?我用编辑器PyCharm。以防万一,带有教程的文章的链接 - https://habr.com/ru/articles/599199/

python
  • 1 个回答
  • 31 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-22 21:59:56 +0000 UTC

如何让管理员收到用户的消息?远程机器人

  • 5

我做了一个代码:如果你在聊天中写入смс,用户输入的短语应该发送给管理员

def sms(message):
    bot.send_message(message.chat.id, '❗ПРЕДУПРЕЖДЕНИЕ:❗\nПри спаме вы навсегда потеряете доступ к боту на данном аккаунте!')
    bot.send_message(message.chat.id, 'Напишите вашу идею для проекта.')
    bot.register_next_step_handler(message, sms_global)
    return

def sms_global(message):
    user_guess = message.text

    print('Кто-то отправил вам смс')
    bot.send_message(config_reader.admin_id, user_guess)
    print(user_guess)
    return

但该消息会被发送回撰写该消息的用户。是否可以用一小行代码来实现这一点,以免欺骗您的头脑?机器人一般只需要发送媒体文件,并且需要此功能以便用户可以发送项目想法。

python
  • 1 个回答
  • 30 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-21 22:03:56 +0000 UTC

发送文件时,机器人每隔一段时间发送一次,不会出现远程机器人错误

  • 5

我什至延迟了 1 秒,由于某种原因,机器人每隔一段时间就发送一次文件,而没有给出错误。

def download(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn_stop = types.KeyboardButton('🛑Отмена🛑')
    markup.add(btn_stop)
    bot.send_message(message.chat.id, 'Для начала нужно узнать код с помощью фразы "Посмотреть список документаций".\nЕсли вы это не сделали, нажмите на кнопку "🛑Отмена🛑"', reply_markup=markup)
    bot.send_message(message.chat.id, 'Введите код проекта:')
    BotDB.btn('update_1', message.from_user.id)
    bot.register_next_step_handler(message, download_global)
    return

def download_global(message):
    global codes

    user_input = message.text

    try:
        if str(user_input) == 'Отмена' or user_input == '🛑Отмена🛑':
            BotDB.btn('update_0', message.from_user.id)
            buttons(message)
            return
        elif int(user_input) in codes:
            if int(user_input) == codes[0]:
                bot.send_message(message.chat.id, 'С вашего счёта списано 0 рублей')
                bot.send_message(message.from_user.id, 'Проект по выбранному проекту:')
                with open('tutorial/goroda.docx', 'rb') as file:
                    time.sleep(1)
                    bot.send_document(message.from_user.id, file)
            buttons(message)
            return
        else:
            bot.send_message(message.chat.id, 'Проекта с таким id не существует!')
            bot.register_next_step_handler(message, download_global)
            return
    except ValueError:
        bot.send_message(message.chat.id, 'Возникла ошибка. Возможно вы написали букву вместо цифры!\nМожете прямо сейчас повторить попытку')
        bot.register_next_step_handler(message, download_global)
        return
python
  • 1 个回答
  • 26 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-19 19:08:19 +0000 UTC

telebot:从列表中删除姓名,以便将它们在一条消息中发送

  • 6

代码:

def check_codes(message):
    projects = ['aa','bb','cc']
    for i in range(len(projects)):
        b = f"id: {i}, {projects[i]}"
    bot.send_message(message.chat.id, f'{b}\n*Текст*')

我需要在编号后将列表中的所有值projects显示在一条消息中并转移到新行。上面的代码只记住变量 b 中的最后一个值并显示它。我需要如何对所有名称进行编号才能将它们显示在一条消息中?

模块 -telebot版本python 3.12

python
  • 1 个回答
  • 15 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-17 17:02:17 +0000 UTC

sqlite3 `cursor.execute()` 和 `conn.execute()` 有什么区别?

  • 6

我用UPDATE、 、执行了不同的命令SELECT,INSERT并且不理解光标和 conn 之间的区别。两者的工作原理相同。你能解释一下吗

sqlite3
  • 2 个回答
  • 37 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-16 13:03:46 +0000 UTC

如何将值保存到数据库?远程机器人、sqlite3

  • 5

我有两个文件,一个是数据库文件,另一个是主文件。在主文件中,有两个函数负责更改 attempts 变量。但是如果我使用此代码保存到尝试数据库:

    def set_attempts(self, attempts):
        self.cursor.execute('''INSERT INTO users (attempts) VALUES (?)''', (attempts,))
        return self.conn.commit()w

PS 然后数据库中没有任何更新。print(get_init_storage(message.from_user.id))在调用数据库写入函数之前和之后,我使用它显示数据库中的数据进行了检查。这是函数代码:

    def get_init_storage(self, user_id):
        result = self.conn.execute('''SELECT id,user_id,username, random_num,dev_mode_on, attempts, rand_one, rand_two FROM users WHERE user_id=?''', (user_id,)).fetchone()
        return result

同样在带有数据库的文件中,在保存到数据库尝试的功能中,我设置了print(attempts),它显示了我写入的值,但是在输出时,get_init_storage(message.from_user.id)保留了相同的值,并且程序SqliteStudio创建了一个带有 user_id、user_name 值的新配置文件NULL,但我设置的尝试发生了变化:

以下是在主文件中保存 attempts 变量的代码:

<@bot.message_handler(commands=['setattempts'])
def set_attempts(message):

    bot.send_message(message.chat.id, 'Введите новое кол-во попыток:')
    bot.register_next_step_handler(message, set_attempts_global)

def set_attempts_global(message):

    user_guess = message.text

    if not user_guess.isdigit():
        msg = bot.reply_to(message, '❌Ошибка!❌\nВведите числo, а не буквы!')
        bot.register_next_step_handler(msg, set_attempts_global)
        return

    if int(user_guess) != 0:
        global attempts_default
        attempts = int(user_guess)
        attempts = BotDB.set_attempts(attempts) # не работает
        BotDB.set_attempts(attempts) # не работает
        attempts_default = attempts
        bot.send_message(message.chat.id, f'✅Попытки успешно изменены✅\nНовое кол-во попыток: {attempts}')
        print('------------------------------------')
        print('attempts updated')
        print(BotDB.get_data_storage(message.from_user.id))
        print('------------------------------------')
    else:
        print('------------------------------------')
        print('attempts loose update')
        print(BotDB.get_data_storage(message.from_user.id))
        print('------------------------------------')
        msg = bot.reply_to(message, '❌Ошибка!❌\nНельзя поставить число 0!')
        bot.register_next_step_handler(msg, set_attempts_global)
        return>

表结构:

我使用模块telebot,sqlite3. Python版本:python 3.12

python
  • 1 个回答
  • 50 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-15 16:38:14 +0000 UTC

如何在 sqlitestudio 中正确创建用户名、尝试次数、范围的表并用 Python 编写它们?远程机器人、sqlite3

  • 5

我制作了一个猜测数字的机器人,一切正常,但我有一个功能可以更改数字生成范围并更改尝试次数,如果两个人正在玩,其中一个人更改了尝试或范围,那么它将为每个人带来改变。

这是我将其保存到字典中的代码,它是一个集成的数据库。

storage = dict()

def init_storage(user_id):
    storage[user_id] = dict(attemps=None, random_num=None)

def set_init_storage(user_id, key,value):
    storage[user_id][key] = value

def get_init_storage(user_id):
    return storage[user_id]

这就是我在这个集成数据库中记录值的方式:

    set_init_storage(message.chat.id, 'a', default_a)
    set_init_storage(message.chat.id, 'b', default_b)

它们的输出使用:

get_init_storage(message.chat.id) # Получает все значения сразу
get_init_storage(message.chat.id)['attempts'] # Получает одно значение, если ввести его название в квадратные скобы

PS 如何正确创建表格,我的意思是放置哪些复选框。 这里有很多不同的复选框,它们的设置 我需要此设置来尝试、范围、用户名。

我使用该模块telebot,sqlite3python版本是3.12

python
  • 1 个回答
  • 35 Views
Martin Hope
Nqweqweqwe
Asked: 2024-01-13 20:18:48 +0000 UTC

如何在变量中输入以逗号分隔的 2 个数字

  • 5

我正在创建代码以允许用户自己选择随机数选择范围。a我尝试在b命令函数本身中创建变量并使用 分隔它们split(',')。它仍然给出一个错误。

@bot.message_handler(commands=['setrange'])
def set_range(message):
    # global random_num
    # global a
    # global b

    #user_guess = message.text
    send = bot.send_message(message.chat.id, 'Введите от какого числа до какого будет 
генерироваться число в формате [от, до]:')

bot.register_next_step_handler(send, set_range_global)

def set_range_global(message):
    #global random_num
    #global a, b

    user_guess = int(message.text)

    a, b = map(float(int, user_guess.split(', ')))
    bot.reply_to(message, a,b)

    user_guess = message.text
    arr = list(map(int, user_guess.split(',')))

    if int(user_guess) != arr[0] and int(user_guess) != arr[1]:
        default_a = a
        default_b = b
        bot.send_message(message.chat.id, f'Диапазон генерирования числа успешно 
изменен!\nНовый диапазон: {a, b}')

default_a这些是输入命令时的默认default_b值的变量ab/start

错误:

"C:\Users\Danil\AppData\Local\Programs\Python\Python312\Lib\site-packages\telebot\util.py", line 90, in run
    task(*args, **kwargs)
  File "C:\Users\Danil\Desktop\Tg_game\main.py", line 66, in 
   set_range_global
    a, b = map(float(int, user_guess.split(', ')))
                          ^^^^^^^^^^^^^^^^
AttributeError: 'int' object has no attribute 'split'
python
  • 2 个回答
  • 68 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