Задать вопрос
  • Как получать информацию о подарках в прямых эфирах TikTok?

    Vindicar
    @Vindicar
    RTFM!
    Вот трудно вбить в гугл "API tiktok gift"?
    Вторая же ссылка ведёт на гитхаб подходящей под описание библиотеки. А там и примеры есть...
    Вторая ссылка, Карл!
    Ответ написан
    1 комментарий
  • Какой аналог CryptoJS.AES.encrypt от js?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Симметричный шифр типа AES параметризируется многими настройками. В частности
    - длина ключа и длина блока. Например 128, 192, 256
    - вектором инициализации. Это что-то вроде виртуального первого блока. IV.
    - режимом сцепления блоков (ECB, CFB, CBC ... e.t.c.) в данном случае исходник на Python явным образом нам указывает и режим ECB является вобщем-то самым плохим и нежелательным для нужд криптографии.
    (на этот режим а в JS берется какое-то умолчание).
    - если мы генерируем ключ на основе парольной фразы то нам должен быть известен этот метод. Это не
    всегда преобразование символов в UTF-8. Могут быть нюансы.

    Для выравнивания хвоста открытого текста по границе блока есть еще режимы padding-a.
    Подозреваю что там - несколько вариантов может быть. Это - тоже надо прояснить.

    Поэтому автор должен взять все параметры. Привести их к общему знаменателю и убрать все
    defaults на явные параметры чтоб было все одинаково. Тогда и результат дешифрования будет
    ожидаемый.
    Ответ написан
    Комментировать
  • Как правильно заказать разработку по для контроллера?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    1. Описать что у вас за система - основные характеристики и какие задачи она решает.
    2. Каким именно оборудованием в ней необходимо управлять и с помощью чего (и почему именно).
    3. Описать что именно вы хотите от системы управления - автоматическое управление, ручное, дистанционное и прочее.
    4. Сформировать краткое ТЗ: есть вот такое-то оборудование и такой-то контроллер, надо к нему написать прошивку или разработать плату и написать прошивку, которая делает то-то и то-то.
    5. Сформировать детальное ТЗ со всеми деталями - что, как, где, почему и зачем. Если сами не можете - нанять опытного консультанта, который либо поможет либо сам составит его.
    6. Далее идете на https://freelance.habr.com
    7. Размещаете там заказ с кратким ТЗ. Если детальное ТЗ не секрет - отдельным ПДФ файлом выкладываете. Ключевые слова: разработка микроконтроллеров и/или ПО для микроконтроллеров, встраиваемая разработка.

    ЯП в МК обычно С/С++. В очень редких случаях используется что-то еще. Специалист - разработчик ПО для микроконтроллеров или встраиваемых систем.
    Ответ написан
    5 комментариев
  • Как переслать медиагруппу в Aiogram? Есть ли готовые решения?

    Wispik
    @Wispik
    На aiogram 2 делал так, через middleware:
    class AlbumMiddleware(BaseMiddleware):
        """This middleware is for capturing media groups."""
    
        album_data: dict = {}
    
        def __init__(self, latency = 0.6):
            """
            You can provide custom latency to make sure
            albums are handled properly in highload.
            """
            self.latency = latency
            super().__init__()
    
        async def on_process_message(self, message: types.Message, data: dict):
            if not message.media_group_id:
                if message.photo :
                    data["one_photo"] = message
                elif message.animation or message.video or message.video_note or message.voice or message.audio:
                    data["album"] = [message]
                return
            try:
                self.album_data[message.media_group_id].append(message)
                raise CancelHandler()  # Tell aiogram to cancel handler for this group element
            except KeyError:
                self.album_data[message.media_group_id] = [message]
                await asyncio.sleep(self.latency)
    
                message.conf["is_last"] = True
                data["album"] = self.album_data[message.media_group_id]
    
        async def on_post_process_message(self, message: types.Message, result: dict, data: dict):
            """Clean up after handling our album."""
            if message.media_group_id and message.conf.get("is_last"):
                del self.album_data[message.media_group_id]

    И потом при обработке сообщения, будет 2 переменные album, one_photo:
    async def func(
        message: types.Message,
        album: Optional[List[types.Message]] = None,
        one_photo: Optional[types.Message] = None
    ):

    если в сообщении только одна картинка, она будет в one_photo, в остальном случае все будет в album
    Ответ написан
    2 комментария
  • Как генерировать крипто-кошельки для оплаты?

    @maksam07
    Есть как готовые платежные решения, которые генерируют уникальный кошельки, так и свои собственные кошельки, но там значительно больше разработки. Один из доступных вариантов - westwallet
    Ответ написан
  • Выдает ошибку NameError: name 'send' is not defined?

    @nozzy
    Symfony, Laravel, SQL, Python, Telegram
    message.send("@тгюзернейм" f"отк {message.text}")
    Ответ написан
    Комментировать
  • Как получить api у персонажа из character ai?

    @Everything_is_bad
    не разбераюсь в прогромировании
    вот сначала надо и устранить этот дефект
    Ответ написан
    Комментировать
  • Не прилетают сообщения по websocket из celery?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Скорее всего потому, что таски Celery выполняются в фоне отдельным процессом, в котором нет и быть не может ни цикла событий, обрабатывающего websocket'ы, ни самих соединений с клиентами.
    Ответ написан
    Комментировать
  • Как написать сервисный файл для vps ubuntu для запуска телеграм бота?

    @SunTechnik
    Пишете скрипт, который запускает бота.
    В нем используете явные полные пути (без вызова $(pwd)).
    Проверяете что скрипт отрабатывает.
    Вставляет скрипт в запуск сервиса.
    Ответ написан
    Комментировать
  • Как настроить общее хранилище для состояний Aiogram 3?

    @Everything_is_bad
    Проблема в том, что ты даже не пытался попробовать, хранилище настраиваются у Dispatcher, ему пофиг на кол-во роутеров.

    Хотелось бы понять, как с ним работать?
    открыть доки и почитать, открыть гитхаб и посмотреть примеры, погуглить наконец, а не бежать сразу сюда.
    Ответ написан
    4 комментария
  • Знаю только Python и SQL. Нужно ли наращивать стек знаний перед попыткой смены работы?

    Перед сменой работы следует сначала пройти собеседование и получить оффер, иначе рискуешь остаться и без воробья и без журавля.

    или мне в настоящее время стоит относить себя к т. н. «Разработчикам приложений» (по классификации «Хабр Карьеры»)

    То что ты описываешь - похоже на бэкендера.

    Нужны ли на рынке труда специалисты с таким стеком за такую зарплату

    Вопрос не имеет смысла, ибо он не отвечает на главный вопрос - найдёт ли конкретный соискатель себе рабочее место.
    надо заняться самообразованием, изучая, скажем связку FastAPI + Kafka + Kubernetes?

    Самообразование никогда лишним не будет.
    Ответ написан
    Комментировать
  • Может ли злоумышленник получить ссылку на сайт мини приложения телеграм?

    @Everything_is_bad
    учимся читать доки https://core.telegram.org/bots/webapps#debug-mode-... вариантов куча, например, Go to Settings > Advanced > Experimental settings > Enable webview inspection и все запросы видны
    Ответ написан
    Комментировать
  • Как вызвать случайную asyn функцию в asyn функции?

    fenrir1121
    @fenrir1121
    Начни с документации
    Поставил себе задачу напечатать случайное сообщение при старте программы.
    Вот и положите в список сообщения, а не функции или корутины.
    А лучше с книг начните, в функции process_start_command буквально каждая строчка кричит о том, что вы вообще не понимаете что пишите.
    Ответ написан
    1 комментарий
  • Почему не выводит результат кода на рекурсию для ЕГЭ 16 задания?

    @lnerim
    Медленный питон, именно в данном случае, вообще ни при чём. Не тот пример, чтобы показать его медлительность.
    Чтобы решить задачу, используйте библиотеку math
    from math import factorial as f
    
    print((f(2024) + f(2023)) / f(2022))

    Либо пишите код, не использующий рекурсию, чтобы не выходить за рамки рекурсивных вызовов
    def f(n):
        result = 1
        for i in range(2, n+1):
            result *= i
        return result
    
    
    print((f(2024) + f(2023)) / f(2022))
    Ответ написан
    Комментировать
  • Как взять фото из SQLite и отправить через телеграм бота?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Для начала, картинки - бинарные файлы. Какой тип у поля в базе данных? Если текстовый - поздравляю, картинки уже побились необратимо.

    После пересоздания базы с нужным типом данных у этого поля (BLOB) придётся заново загрузить все файлы.

    А теперь самое главное: хранить файлы в базе - плохая идея. Правильно хранить их отдельно как файлы в файловой системе, а в базе хранить имя файла. Рекомендую сразу же переделать.
    Ответ написан
    3 комментария
  • Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Возможно. Нужно ли? - нет.
    Ответ написан
    Комментировать
  • Как правильно парсить данные из публичного телеграмм бота?

    @maksam07
    Все просто - использовать АПИ телеграмма.
    Ответ написан
    Комментировать
  • Почему возникает проблема с асинхронной функцией?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    c.on_click = lambda event: await self.btn_clicked(event)

    Здесь создаётся лямбда-функция (не асинхронная), из которой вызывается асинхронная функция.
    В этом и проблема.
    Если у вас апи позволяет сюда (c.on_click) подавать асинхронную функцию, то сделайте её замыканием:
    async for r in self.element.content.controls:
        async for c in r.controls:
            async def on_click(event):
                return await self.btn_clicked(event)
            c.on_click = on_click

    Но это всё не нужно, можно просто подавать в вашем конрктеном случае напрямую нужную функцию:
    async for r in self.element.content.controls:
        async for c in r.controls:
            c.on_click = self.btn_clicked

    А если on_click требует только синхронную функцию, то так не прокатит.
    Ответ написан
    Комментировать
  • Как поймать событие считывания со сканера ШК (USB)?

    NeiroNx
    @NeiroNx
    Программист
    У сканеров есть несколько режимов работы. Сейчас в основном используют клавиатуру(отсканированный код вводится как нажатия клавиш на клавиатуре).

    Так что отслеживай нажатия и все. Понять что это сканер можно по задержке между символами.
    Ответ написан
    1 комментарий