• Как можно решить эту задачу?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Этот ресурс не предназначен для того, чтобы решать задачи за вас.
    Судя по вашему описанию задачи вам такое рановато. Тем более без глубокого понимания питона лезть в задачу смысла нет.
    Скорее всего задача с какого-нибудь пентестерского челленджа.
    Могу дать несколько подсказок, как подступиться, но, повторюсь, вам эти подсказки скорее всего не помогут.

    В первой части кода где вычисляется x цикл собирает имена файлов в локальной файловой системе компьютера, на котором выполняется код. Видимо на той машине, на которую предназначалась атака в ФС есть каталог /neroot какими-то данными.

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

    Чтобы распутать этот клубок надо разить код на части (этапы) и анализировать их отдельно подавая на вход правдоподобные данные.

    Там альше видно код. который вычитывает содержимое файлов каталога /neroot и складывает это содержимое в словарь.
    Весь вот этот запутанный код со здвигами призван зашифровать адрес сайта, куда отправляется json с данными из тех файлов.
    Вот этот код расшифровки вы можете выковырять и запустить отдельно, чтобы расшифровать.
    Но без знания языка у вас не получится.
    Ответ написан
    Комментировать
  • Как сделать аудиопроигрыватель с возможностью чтения флешек?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Что-то с такими навыками поиска инфы в сети у вас вряд ли получится достичь задуманного.
    Я вот с микроконтроллерами дело имел только лет двадцать назад в ВУЗе на лабораторных работах, и то нагуглил за пол минуты модуль вроде такого: https://aliexpress.ru/item/1005003021933505.html?s...

    Только вот смысла в такой самоделке я не вижу. Сейчас продается масса дешевых (дешевле отдельных компонентов в розницу) прикольных девайсов, причем даже в локальных магазинах вроде DNS. Там и звук у них хороший (на мой непритязательный вкус), и вид, и дизайн, и питание гибкое от батареек до встроенныз аккумуляторов, тайп-си кабеля, прямого провода от солнечной батареи и чего угодно.

    Удвляюсь, что в такие приборчики массово вайфая на борт не добавляют, веб-интерфейса и вохможностей интернет-радио. Хотя наверняка уже есть готовые таке приборы.
    Смотрели проект Ka-радио? Наверняка кто-то прикручивал к проекту и USB-host
    Ответ написан
    3 комментария
  • Как работает модель text-to-speech?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Это очень наивный вариант TTS.
    Во-первых, не буквы, а звуки. Нужно вспомнить фонетический разбор, которому учили в школе.
    Каждый язык имеет свою специфику. Есть огромное количество нюансов, исключений, особенностей и тонких настроек.
    Если вы планируете на полном серьёзе сделать свой движок TTS с сегодняшним уровнем знаний, то у вас не получится. Просто отсавьте эту проблему и возьмите готовый TTS движок, например Festival. Там же и код глянуть можете как это делается.
    Ответ написан
    3 комментария
  • Как разобрать mp3 файл?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Это слишком широкий вопрос, а вам следует разбить задачу на несколько более простых.
    Вот гуглите отдельно:
    - конвертация mp3 в midi - https://www.google.com/search?q=mp3+%D0%B2+midi&oq...
    - конвертация midi в нотные блоки - https://www.google.com/search?q=midi+to+minecraft+...

    Судя по постановке вопроса ваша задача еще не скоро будет вам подсилу. Учитесь декомпозировать и искать информацию. Без этих навыков вы ничего не добьётесь.
    Ответ написан
    Комментировать
  • Почему методы выводят None?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Прочитайте документацию по этим методам. Именно в документацию нужно идти прежде чем задавать вопросы на подобных ресурсах.
    Вас удивляет, что эти методы не годятся для "чейнинга", поскольку не возвращают нистанс своего объекта? Думаю не это.
    Эти методы модифицируют объект на месте (inplace), а не возвращают новый. После вызова метода сортировки список стал отсортированным. А одноименная функция формирует новый список, куда в отсортированном порядке копирует содержимое оригинального
    Ответ написан
    1 комментарий
  • Какие преимущества у docker?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Основное, что дает докер - это изоляцию частей вашей системы друг от друга. За счет этого гораздо проще всё настраивать.
    - БД настраивается в отдельном докер-контейнере. В большинстве случаев вы используете стандартный образ и подаете ему только настройки.
    - nginx настраивается в отдельном контейнере вместе с certbot'ом, который будет обновлять вам сертификат ssl.
    - бэкенд поднимаетя в отдельном контейнере на стандартном порту (и порт не будет конфликтовать с другими бэкендами в других контейнерах на том же порту.
    - другие какие-то бэкенды и админки будут рядом сидеть в отдельны контейнерах и не будут конфликтовать друг с другом версиями библиотек. интерпретаторов и чего угодно
    - компиляция и сборка тоже делаются в контейнере, который не запускается в прод, но обеспечивает иоляцию этого процесса так, что другие разработчики легко приступят к работе без долгой и уникальной настройки своего рабочего места.

    Весь набор нужных контейнеров для проекта конфигурируется docker-compose файлом и в большинстве случаев при правильной настойке чтобы поднять дев-стенд или продакшн вам достаточно будет склонировать репу на комп и скомандывать docker-compose up.

    Про слои и переиспольование почитайте в документации к докеру. Докер-образы наследуются накладывая свои изменения слоями. Это экономит место на диске и упрощает всю систему минимизируя число возможных состояний.
    Вся файловая система контейнера не примонтированная извне будет стёрта и забыта при перезапуске контейнера. Так можно быть уверенным, что ваш бэкенд не оставляет лишних неучтенных побочных эффектив. Это упрошает отладку и поиск проблем.
    Ответ написан
    2 комментария
  • Что не так с python docx-template)?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Протрассируйте код доошибки ипосмотрите по исхоникам почему ошибка. Выглядит как синтаксическая ошибка в XML в швблоне. Может быть туда попадает какой-то неэкранированный текст. Убедиться по поводу причины можно заглянув в исходники. там указано в какой строке проблема и можно рамотать ее, а при трассировке можно и текст шаблона где ошибка посмотреть
    Ответ написан
    Комментировать
  • Как сделать Telegram Bot, который выдаёт готовый Excel-файл?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Судя по постановке вопроса вам надо к фрилансерам, сами не потянете, ведь нужно "всего лишь" научиться программировать, выбрать любую библиотеку для работы с API, реализовать необходимую функциональность, вызывать её из бота. Элементарно. Хорошо, что для этого не придётся вас сначала учить читать и писать.
    Вот сейчас все соберёмся и начнем вас с нуля обучать всему этому индивидуально и бесплатно. Вы как себе это предствляете?
    Ответ написан
    Комментировать
  • Как проверить запущен ли сервер или нет по его IP адресу на Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Обычно доступность и работоспособность сервера проверяют подключаясь к нему и делая тестовый запрос. В некоторых API для этого есть спецальные точки входа, которые диагностируют и вовзвращают статус работоспособности сервера. Если это веб-сервер, то нужно лишь сделать get-запрос к такому методу. Если это ваш сервер, то вы можете сами реализовать такой метод, если чужой и у него нет такого метода, то можете проверять факт наличия сервера по возможнсти подключиться к порту, на котором он поднят.
    Сделать это можно и без вского питона из командой строки, например с помощью
    telnet <ip> <port>.
    Выдаст ошибку, если подключение не удалось. Как подключиться к порту из питона вам уже показали в соседнем ответе, но, думаю, если поискать, то найдётся пачка готовых библиотек для того же самого.
    Ответ написан
    Комментировать
  • Бесплатный python хостинг?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Использование для своих корыстных не учебных целей сервисы вроде https://replit.com/ - это своего рода пробежка по граблям и нецелевое недобросовестное использование хорошего сервиса. Даже не буду вам рассказывать способы, которыми можно эксплуатировать уязвимости таких сервисов и преодолевать их ограничения. Считаю это неэтичным. Да и полно таких инструкций в сети, ищите сами, если хотите.

    Но я почитал ваши комментарии к другому ответу и вот что я вам скажу. Если ваш код работает на домашнем компе, а не работает на хостинге, это скорее всего проблема именно вашего кода и очень маловероятно, что это как-то связано с ограничениями хостинга.

    Часто код бывает не правильно написано в плане кроссплатформенности, использует какие-то глобально установленные библиотеки, которые вы забвли поставить на хочтинге, неправильно работает с кодировками или файловой системой.

    Для таких задач как ваша надо брать VDS. Подойдёт самая дешевая баксов за 5. А ещё у таких VDS есть бесплатный пробный период. Обычно это сутки, но я сталкивался и с недельными интервалами. Вот поищите https://poiskvps.ru/
    Там они не бесплантые, но есть тарифы с бесплатными пробными периодами. Однако, повторюсь, скорее всего не хостинг плохой, а ваш код косой.
    Ответ написан
    Комментировать
  • Как отсортировать многоуровневый словарь с помощью sorted()?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    # j = {...}
    {
      k: {
         **v, 
         'protocols': {
           kk:vv
           for kk, vv in 
           sorted(
             v['protocols'].items(),
             key=lambda kv2: kv2[1],
             reverse=True
           )
         }
      } 
      for k, v in 
      sorted(
        j['10.10.100.100'].items(), 
        key=lambda kv: kv[1]['count'], 
        reverse=True
      )
    }

    Но вы лучше не делайте таким нечитабельным однострочником. Соберите заново нужные словари в обычных классических циклах, иначе такой код нельзя будет поддерживать норамльно.
    Тут смысл в том, что у sorted есть необязательный аргумент, куда можно передать функцию извлечения ключа сортировки. Перебираете сортируемые словари парами (ключ-значение) в нужном порядке и собираете в новые словари.
    Ответ написан
    Комментировать
  • В чем проблема если Telegram Bot API через время зацикливается на последний функции?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Не надо так писать код.
    Вы используете страусиную политику для борьбы с ошибками.
    Вместо того. чтобы решать проблемы вы фактически закрываете глаза и повторяете неудачные попытки.
    Разбираться надо с каждой ошибкой. Нужно понять почему она происходит и решать причину проблемы. Нельзя использовать глобальный перехват всех исключений, это только усложнит ситуацию, поскольку проблема никуда не денется. просто частично будет скрыта, частично завуалирована. У вас под одну гребёнку попадают и внешние объективные проблемы, на которые нужно реагировать штатно, например это дисконнекты. И точно также вы игнорируете свои ошибки в коде, просто "заметая их под ковёр".
    Когда "под ковром" накапливается гора проблем, о которые начинаешь спотыкаться, разгребать их становится куда сложнее.

    Убирайте все неселективные try-except'ы и гуглите как правильно решать проблему 502 ошибки при работе с этой библиотекой. Возможно, например, вас просто игнорит серврер из-за слишком частых обращений, или у вас проблема с сетью, которую надо диагностировать и решать вне этого кода.
    Ответ написан
  • Как сделать выбор папки в скрипте?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    from tkinter import filedialog
    from tkinter import *
    root = Tk()
    root.withdraw()
    folder_selected = filedialog.askdirectory()
    Ответ написан
    Комментировать
  • По какой причине не работает метод fethmany в данном примере?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Потому, что нет такого метода. fetch же
    Ответ написан
    Комментировать
  • Почему цикл if внутри цикла for который находится в цикле while не работает?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    С чего вы взяли что у вас там что-то не работает?
    Во-первых:
    Почему цикл if внутри цикла for который находится в цикле while не работает?

    if - это не цикл.
    Во-вторых, в ытам накосячили с отступами.
    В-третьих, в таком спагетти коде не мудрено наделать ошибок, а у вас еще и break встречается то и дело. Нарисуйте блок-схему вашего алгоритма, тогда станет понятнее. А сейчас этот код вообще не читаем, отчего просто бесполезен и должен быть удален и переписан заново.
    Попробуйте разбить весь этот код на функции. Функуии должны быть короткие, читабельные и "чистые" (то есть зависеть только от аргументов, а не от внешних и глобальных факторов)
    Ответ написан
    8 комментариев
  • Как получить все записи в отдельные столбцы с группировкой по ключу?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Транспонирование таблиц в SQL не предусмотрено в большинстве БД.
    Если набор параметров динамический, то так не получится, потому что не ясно сколько получится столбцов в итоге, а динамически их делать нельзя.
    Можно собрать JSON с атрибутами, но это тоже такое себе.
    Обычно такое транспонирование делают в коде на бэке, а не в SQL.
    Между тем вы не написали даже какая у вас БД и на чем делаете бэкенд.

    На постгресе оптимально было бы сделать джойн, группировку, а при агрегации собирать массив key-value, или JSON, тогда у вас будет два столбца: id, params. Второй столбец будет содержать json'ы.

    Ещё один способ можно применить при более-менее статичном наборе возможных параметров. Отдельным запросом получаете все возможные уникальные имена параметров в алфавитном порядке и в том же порядке джойните слева (left join) соответствующие значения. При агрегации вы просто собираете csv-строку с строковыми значениями параметров, а для тех параметров, которых нет, будет пустая строка или null.
    Можно собирать не строку с разделителями, а массив строк, или json-список.
    Ответ написан
  • Есть ли апи которые работают на подобии https://www.geonames.org/?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Полно таких сервисов. Вот от яндекса есть: https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/refer...
    Ответ написан
    Комментировать
  • Какой есть легкий IDE для Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Смотрите в сторону VSCode. Он сильно легче по требуемым ресурсам, чем PyCharm,
    Еесть ещё встроенный Idle, но я бы не называл это громким словом IDE, хотя формально оно им является.
    Ответ написан
    Комментировать
  • Существуют ли API для получения строящихся объектов?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    В OSM есть соответствующий тег: landuse=construction.
    Запрашивать объекты с таким тегом можно, например, через Overpass API.
    Но тут вопрос в качестве разметки OSM интересующей вас территории, а так же в актуальности этих данных. Разметка осуществляется волонтёрами комьюнити, поэтому никто не ручается относительно точности и актуальности данных.
    Можно ещё посмотреть в сторону кадастровых карт, но боюсь, что там тоже не всё так быстро обновляется. Однако API у них тоже есть. Тут я не специалист.
    Ответ написан
    5 комментариев
  • Как сделать запрос в sqlite?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    self.cursor.execute("SELECT * FROM table1 WHERE colum1 LIKE ?", (f'%{age}%',)).fetchmany(1)
    Ответ написан
    1 комментарий