Задать вопрос
  • Как сделать минимального бота?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Берём простейший эхобот на %любимый_язык_программирования% и чуть-чуть подправляем текст ответного сообщения под свои требования.

    Если %любимого_языка_программирования% нет, как и вообще навыков программирования, то обращаемся на фриланс.
    Ответ написан
    Комментировать
  • Как выдать роль пользователю?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    user = await self.bot.get_user(ctx.from_id)

    Тут получаем пользователя, который отправил это сообщение.

    await basa.register.main.adm(user)

    Тут мы этого пользователя передаём в функцию adm.

    await cur.execute("UPDATE profile SET admin='Хелпер' WHERE uid=%s", user.id)


    Тут мы в этой функции меняем значение поля admin у этого пользователя.

    Странно спрашивать, почему код работает так, как он был написан. Явно же имелось в виду, что в функцию adm надо передавать не отправителя команды, а то, что передано параметром команды.
    Ответ написан
  • Пишу код для Telegram Бота, как не делать тупые ошибки?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Сначала надо изучить язык программирования, потом освоить нужную библиотеку и уже тогда писать бота. А то это как выехать на трассу, купив водительсике права, но не изучив азы вождения.
    Ответ написан
    Комментировать
  • Как заставить телеграм бота работать через аккаунт пользователя от имени пользователя?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Да, это возможно, но придётся вместо Bot API использовать клиентский API (с протоколом MTProto). Тут наиболее распространены библиотека telethon для Python и официальная библиотека tdlib.
    Ответ написан
    Комментировать
  • В чем преимущества процессов над потоками?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Вопрос уровня "в чём преимущества грибов над ягодами?" Это просто разные вещи со своими особенностями и нюансами, и нет смысла говорить о преимуществе одних или других без конкретного описания условий и требований.

    На самом деле процесс и поток в реализации конкретной OS могут быть близки до такой степени, что потоки могут быть видны даже в списке процессов. Поэтому вполне можно сказать, что это практически одно и то же. Но не совсем.

    Для создания нового процесса в UNIX-системах делаетя вызов fork, который создаёт полную копию текущего процесса, включая его код и данные (в других системах может не быть fork, но есть свои способы создания процесса). Для создания же нового потока также делается новый "процесс", но вместо копии данных и кода в нём передаётся ссылка на те же самые данные и код (очень по-питоновски - ссылка вместо deepcopy данных). Поэтому потоки могут работать с одними и теми же данными, а самостоятельные процессы нет. Но иногда это как раз и нужно. Например, потоки должны как-то отслеживать конфликты с доступом к одним и тем же данным, а для процессов такой проблемы не стоит.

    Отдельно надо сказать, что понятие потоков и процессов в разных языках может быть реализовано не так, как это реализовано на уровне операционной системы. Например, JVM умеет делать потоки даже на системах без поддержки многозадачности. Она просто имитирует их внутри себя. Это же машина, виртуалка такая.
    Ответ написан
    Комментировать
  • Как получить id всех участников группы в тг?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В Telegram Bot API нельзя получить список участников группы, только общее количество getChatMemberCount, список администраторов getChatAdministrators и информацию о конкретном участнике чата по заранее известному id пользователя getChatMember. Именно поэтому вагоны примеров в поисковиках в основном используют библиотеку telethon.
    Ответ написан
    Комментировать
  • Error Ayncio, sqlite??

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    RuntimeWarning: coroutine 'test' was never awaited

    Вызов test без await. Вообще, ей и не нужен async, потому что запускается в треде.
    Ответ написан
  • Sql запрос UPDATE, что делать?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    SET admin=Хелпер означает, что полю admin надо присвоить то же значение, что и у поля Хелпер. Но у нас нет в таблице никакого Хелпер.

    Чтобы присвоить значение не по имени столбца, а конкретное значение, его надо обернуть в одинарные кавычки:

    UPDATE profile SET admin='Хелпер' WHERE ...

    Вообще, советую почитать элементарные основы SQL, тогда таких вопросов возникать не будет.
    Ответ написан
  • Сколько различных значений поля category в таблице stories?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    SELECT COUNT(DISTINCT category) FROM your_table_name
    Ответ написан
  • Как в telebot отправить сообщение в виде таблицы?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Очевидно, что если в цикле вызывать send_message, то будет отправлено столько сообщений, сколько итераций цикла. Надо собрать сообщение в одну переменную и затем одной операцией send_message его отправить. Примерно так:

    message_text = ""
    for res in cursor.fetchall():
        message_text += "{0} {1}".format(res[0], res[1]))
    bot.send_message(..., message_text)
    Ответ написан
  • Как узнать апи пользователя который отправил сообщение телеграмм боту?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Никак, бот не может узнать IP пользователя.
    Ответ написан
  • Изза чего Ошибка time, aiogram, Python?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    import time в начале скрипта сделан? Откуда он узнает, что такое time?
    Ответ написан
    2 комментария
  • Как сделать аналог google play на wordpress?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Магазин приложений - это прежде всего про удобную их установку. Скачивать apk с сайта, разрешать установку из недоверенных источников - это неудобно и отпугивает. Для магазина приложений нужно приложение-установщик. Которое в идеале ещё и в Google Play либо в штатные прошивки каких-то телефонов надо будет протолкнуть, чтобы пользователям не приходилось его с бубном устанавливать.

    Вопросы монетизации для авторов приложений, вопросы привлечения именитых разработчиков и дистрибьюторов я даже разъяснять не буду - тут и так всё понятно.

    На вордпрессе можно сделать в лучшем случае блог о приложениях со ссылками на их apk. Но это даже не 5% от того, что нужно для "аналога Google Play". И да, не надо делать как те недавно высмеянные дельцы, которые с пафосом презентовали "российский play", оказавшийся переименованным f-droid...
    Ответ написан
    Комментировать
  • Как отправить сообщение от телеграм-бота на python определенным пользователям, при запросе от создателя?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Для начала, id - это число. Зачем хранить их в виде строк?

    Далее, при отправке from_user.id сравнивается также со строкой. Конечно же, равенство строки и числа невозможно.

    И, наконец, отправка должна идти по числовому id.

    Надеюсь, все адмиины из массива нажали /start у бота? Без этого им сообщения отправлять будет нельзя.
    Ответ написан
    7 комментариев
  • Как запретить пользователю отвечать на свои сообщения | Aiogram?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Проверять id отправителя того сообщения и сравнивать с id текущего пользователя.

    message.reply_to_message.from_user.id == message.from_user.id


    Если совпадают то не повышать репутацию.
    Ответ написан
    Комментировать
  • Как перенаправить трафик пользователя через gateway интерфейс используя iproute2 или iptables?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    iptables -m owner -h

    Маркируем пакет от пользователя (-j MARK) и затем policy routing (ip rule add fwmark XXX lookup vpn) перекидываем в другую таблицу маршрутизации.
    Ответ написан
  • Хочу сделать смену префикса бота командой, но получаю ошибку, как исправить?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Очевидно, что в файле prefixes.json не json, вот и ругается при попытке его прочитать как json.
    Ответ написан
    Комментировать
  • Как удалить кнопку из клавиатуры telebot?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нельзя удалить одну кнопку. Можно либо удалить всю клавиатуру целиком, либо отправить другую клавиатуру на замену. Соответственно, для удаления всего одной кнопки нужно помнить, какую клавиатуру отправлял в прошлый раз (хранить это явным образом или определять из контекста), чтобы отправить новую клавиатуру без этой кнопки.
    Ответ написан
    Комментировать
  • Пытаюсь запросить данные из MySQL через PHP. Где ошибка?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В чём глубокий смысл перезатирать $link результатом запроса?

    $link = mysqli_query($link, "SELECT * FROM 'table-name' WHERE USER_ID = 1620");


    Я уж не говорю о том, что дефис в имени таблицы это чересчур...
    Ответ написан
    Комментировать
  • Как использовать слэш команды в дискорде с помощью бота?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Во-первых, слеш-команды - это НЕ сообщения, начинающиеся на /, а отдельные сущности со своей инфраструктурой и своим способом взаимодействия. На это вполне намекает, что у разных ботов могут быть команды с одинаковыми именами, а ответ бота может быть виден только отправившему команду пользователю. Отправка ботами команд для других ботов не предусмотрена вообще.

    Во-вторых, даже с классическими командами, которые были текстовыми с префиксом, в большинстве правильно написанных ботов на них делали проверку, что отправлял команду не бот. Это связано с тем, что при любых ошибках легко начинался ботофлуд, при котором боты очень быстро и активно начинали общаться друг с другом. Поэтому с ними подобный фокус тоже часто не прокатывал.

    Посылать команды может разве что юзербот, но их использование запрещено правилами Discord.
    Ответ написан