• Aiogram: почему в Telegram не визуализируется voice сообщение?

    EntireMusic
    @EntireMusic Автор вопроса
    (:
    Из документации:
    For this to work, your audio must be in an .OGG file encoded with OPUS

    То есть, чтобы войс визуализировался, нужно отправлять его в формате .OGG, тогда и продолжительность будет отображаться корректно. А чтобы отображалась продолжительность (duration) при отправке других форматов, нужно явно её указать при отправке.

    Важное дополнение для Windows:
    1. Скачайте ffmpeg и распакуйте
    2. Добавьте путь в Path
    3. Функция на Python:
    import subprocess
    import io
    
    def mp3_to_ogg(filename, path=''):
        with open(f'{path}{filename}.mp3', 'rb') as input_file, open(f'{path}{filename}.ogg', 'wb') as output_file:
            mp3_io = io.BytesIO(input_file.read())
            ffmpeg_command = ['ffmpeg', '-i', 'pipe:0', '-c:a', 'libopus', '-f', 'ogg', 'pipe:1']
            result = subprocess.run(ffmpeg_command, input=mp3_io.read(), capture_output=True)
            ogg_bytes = result.stdout
            output_file.write(ogg_bytes)

    *вы можете изменить функцию, например добавив путь к файлам, использовав временные файлы и т.д.
    Ответ написан
    1 комментарий
  • Как получить file_id в телеграмм?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Для фоточек думаю доделаете:
    import telebot
    import requests
    
    token = 'токен'
    
    bot = telebot.TeleBot(token)
    
    @bot.message_handler(content_types=['text'])
    def repeat_all_message(message):
    	print(message.text)
    	bot.send_message(message.chat.id,message.text)
    
    @bot.message_handler(content_types=["document", "video", "audio"])
    def handle_files(message):
    	document_id = message.document.file_id
    	file_info = bot.get_file(document_id)
    	print(document_id) # Выводим file_id
    	print(f'http://api.telegram.org/file/bot{token}/{file_info.file_path}') # Выводим ссылку на файл
    	bot.send_message(message.chat.id, document_id) # Отправляем пользователю file_id
    
    if __name__ == '__main__':
    	bot.polling(none_stop=True)
    Ответ написан
    4 комментария
  • Названия it-должностей на английском?

    Evgeny_Shiryaev
    @Evgeny_Shiryaev
    Специалист по поддержке пользователей — Technical Support Engineer/Desktop Support Engineer;
    Системный администратор — System(s) Administrator;
    Сетевой администратор — Network Administrator;
    Системный инженер — System(s) Engineer;
    Архитектор — Architect (по областям, например Software Architect, Infrastructure Architect, и т.д.);
    Ведущий инженер/Старший инженер — Senior Engineer;
    Программист/Разработчик — Software Developer;
    Тестировщик — Tester;
    Руководитель проектов — Project Manager;
    Руководитель группы — Team Leader;
    Начальник отдела ИТ/Технический директор — Chief Technology Officer (CTO);
    Руководитель информационной службы/Директор по информатизации — Chief Information Officer (CIO).

    Разница между CIO и CTO (если упрощенно): CIO — человек бизнеса, который что-то понимает в ИТ, CTO — технический человек, который что-то понимает в бизнесе.
    Ответ написан
    Комментировать
  • Почему порты меньше 1024 называются "небезопасными"?

    sim3x
    @sim3x
    Возможно данное прилагательное использовано с целью оградить юных администраторов от запуска своих дырявых сервисов с правами рута

    Тк порты до 1024 для биндинга требуют прав суперпользователя ака рута

    Похекав дырявый сервис хакер получает рутовый доступ к серверу

    Конечно, в линуксах реализована безопасная работа с такого рода вещами, но о ней чаще всего узнают после потери доступа к машине
    Ответ написан
    1 комментарий
  • Почему порты меньше 1024 называются "небезопасными"?

    Обычно диапазон занят системными сервисами, можно занять порт, необходимый системе.
    Вроде БЫ..
    Ответ написан
    Комментировать
  • Личные Best Practise построения SAN?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Правила такие
    1. RAID5 - последнее дело. Статистика показывает, что вероятность выхода из строя диска во время ребилда - более 70%. Выход из строя второго диска как правило означает, что массив можно выбрасывать.
    2. Создание RAID средствами аппаратного контроллера - плохая идея. Вы таким образом создаете единую точку отказа (этот самый контроллер). Если контроллер выйдет из строя, вам придется искать ему замену (такой же точно контроллер с той же прошивкой), иначе данные из массива будет очень сложно выудить.
    3. Centos содержит придурочный NetworkManager (и systemd, но последнее еще можно пережить). А вот управление сетью через dbus - пережить сложно. Или выламывайте NetwokManager, или переходите на нормальный дистрибутив - SuSE
    4. Классика кластеростроения для виртуалок и миграции, вариант 1.

    Два сервера, на серверах массивы RAID10. Диски отдаются в мир через DRBD в режиме active-active.

    Поверх дисков работает распределенная кластерная система OCFS2.
    Управление кластером осуществляет pacemaker.

    RAID10 - это массив, сочетающий относительно высокую надежность (должно выйти из строя не менее половины всех дисков массива) и относительно высокую скорость работы (за счет разбивки файла по дискам)

    DRBD - это такой сетевой RAID1. Данные во время работы реплицируются между узлами, так что остановка одного узла из пары не приводит к остановке хранилища.

    OCFS2 - это кластерная ФC, которая позволяет куче машин видеть одно блочное устройство как свою локальную ФС. В ней работает отображение файлов в память и глобальные блокировки. И самое полезное для виртуалок - есть возможность создавать reflink. Reflink - это моментально создающаяся копия файла (образа диска виртуалки). Для новой копии, OCFS2 будет только хранить отличия от первоначального файла.

    pacemaker - это менеджер кластера+балансировщик нагрузки.

    Как это все поднять?

    1. Ставите на все машины OpenSuSE 42.1
    2. Собираете RAID10 через LVM (для этого есть GUI - Yast называется)
    3. В том же YAST поднимаете DRBD
    4. Ставите пакет ha-cluster-bootstrap
    5. На одном из узлов делаете ha-cluster-init и следуете его инструкциям
    6. На остальных узлах делаете ha-cluster-join

    Это в общих чертах, задавайте вопросы.
    Ответ написан
    2 комментария
  • Linux во фрилансе и на удаленке - какие направления есть?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Зайдите на апворк и полистайте проекты, поможет пимерно сооринтироваться в технологиях/трендах.
    Ответ написан
    Комментировать
  • Как закрыть досуп горе хакерам?

    @kryvel
    Системный администратор
    можно еще установить fail2ban
    он достаточно хорошо справляется с этой заразой
    Ответ написан
    Комментировать
  • Как закрыть досуп горе хакерам?

    1. Сменить 22 порт
    2. Запретить вход от root /etc/ssh/sshd_config:
    # Authentication:
    LoginGraceTime 20
    #PermitRootLogin without-password
    PermitRootLogin no
    StrictModes yes
    #SSH разрешен только пользователям:
    AllowUsers bla-bla-bla(тут пользователь, которым ты коннектишься)
    #время закрытия неработающей сессии
    ClientAliveInterval 300
    ClientAliveCountMax 0
    3. Fail2ban
    Ответ написан
    Комментировать
  • Основные принципы взлома для чайника?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Си полезно знать для того что-бы рыться в исходниках опенсорса - в поисках дыр.
    Ассемблер полезно знать для реверсинжинеринга не опенсорса и в принципе для понимания что к чему.

    А вообще не на том ресурсе вы задаёте этот вопрос и главное не раскрыли значение слова "систем", да и тему вы подняли на которую в формате Q&A не ответишь.

    Да к слову, напомню про Уголовный кодекс - так, на всякий случай.
    Ответ написан
    Комментировать
  • Как разделить витую пару на двухпортовую розетку?

    Ommonick
    @Ommonick
    qa+dev (scala, golang, ts/js, api, grpc)
    На стороне коммутатора должно быть:
    1 Коннектор с обжатыми проводами БО О БЗ З в разъемы 1,2,3,6
    2 Коннектор с обжатыми проводами БС С БК К в разьемы 1,2,3,6
    4_%D0%BD%D0%B0%D0%B4%D0%B5%D0%BB%D0%B8-%
    на стороне розетки
    1 Розетка провода БО О БЗ З в разъемы БО О БЗ З
    2 Розетка провода БС С БК К в разъемы БО О БЗ З соотв
    eee4140a365ed8d830515237f45c6abe_i-4.jpg
    Картинки рисовать не стал, нашел в интернете
    Ответ написан
    1 комментарий
  • Какая программа подойдёт для мониторинга действий пользователя?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    существует. посмотрите Стахановец, как вариант. ну или тут
    писать видео дело безперспективное. 100 компов - 900 часов видео ежедневно. Даже абстрагировавшись от размера - чтобы просмотреть это видео с 10-и кратной скоростью Вам потребуется 90начальнико-часов в ДЕНЬ.
    Или 10 начальников, которые будут только и делать, что смотреть видео.
    Ответ написан
    Комментировать