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

    trapwalker
    @trapwalker
    Стоит ли давать и какие есть варианты защитить код?

    Нет вариантов защитить код, если вы отдадите его исходники.
    Вы можете сделать систему плагинов и дать исходники её интерфейсов.
    Поднимите тестовый инстанс вашего бота и заведите отдельный репозиторий с плагинами в открытом доступе.
    Люди смогут делать плагины а ваш тестовый стенд будет подтягивать релизы из мастер-ветки.
    Если всё хорошо, то плагины можно забирать в основную инсталляцию.
    Для бота плагины можно делать в виде дополнительных обработчиков тех или иных событий.
  • Как подключить скрипт PYTHON в Windows?

    trapwalker
    @trapwalker Куратор тега Python
    Сергей Горностаев, нет, с этим я, конечно, не спорю. Но если кто-то уже озадачился и задвинул эту логику под абстракцию, вынес в библиотеку, а наружу высунул приятные питоновские фасады и интерфейсы, то ими пользоваться куда проще, чем дергать нативные методы на си.
  • Как подключить скрипт PYTHON в Windows?

    trapwalker
    @trapwalker Куратор тега Python
    Это как-раз не проблема. Писать такие вещи на питоне как раз проще, чем на си.
    Всё проще писать на питоне, но некоторые вещи на на нем получаются слишком медленными.
    Кстати, давным давно еще, помню, встречал какую-то питоновскую либу, предназначенную для всякой имитации действий пользователя в системе. Там были обёрртки вокруг WinAPI для разного, в том числе для перехвата и инъекции нажатий клавиш в произвольных окнах.
  • Как происходит работа чат-бота по API?

    trapwalker
    @trapwalker
    pilotus, почти правильно.
    Есть аспекты, которых вы, кажется, не поняли.
    Две отдельные программы могут писать сообщения в чаты от имени одного бота.
    Вот это сущность абстрактное. От её имени можно откуда угодно послать сообщение дёрнув для этого API телеграма.
    Чтобы создать интерактивное общение в чате с абстрактным ботом, нужно написать специальную программу которая будет пользоваться API телеграма и получать через него информацию о том что происходит в чате.
    чтобы ваша CRM дергала вебхуки нужно чтобы их кто-то слушал - это отдельная программа которая на них реагирует - это web service.
  • Как вывести все возможные комбинации бросков двух кубиков?

    trapwalker
    @trapwalker Куратор тега Python
    yolga, да то на то и выходит. Будут лишние вопросы еще чем разделять...
  • Возможна ли конвертация файла формата .json в формат .svg?

    trapwalker
    @trapwalker
    А вам это зачем? А-то часто бывает люди спрашивают как что-то сделать, а на самом деле надо спрашивать нужно ли им это или нет и как делается на самом деле то, что они хотят сделать на самом деле
  • Как происходит работа чат-бота по API?

    trapwalker
    @trapwalker
    pilotus, может быть вам пытались сказать немного не это?
    меня пытались убедить, что нужен веб-сервер, хотя в нашем случае облачная CRM вполне себе веб-сервер.

    • Может имелось в виду, что в штатном API CRM недостаточно методов для функциональности вашего бота и речь шла о том, что нужно делать веб-сервер с расширенным API? Такое бывает.
    • Может быть возникло недопонимание и в какой-то момент речь шла о голосовом помощнике? Кастомные скиллы сейчас принято реализовывать в виде веб-сервиса, который реализует специфический API и регистриуется с ним у сервиса вроде АЛисы от Яндекса.
    • Ещё мог иметься в виду, всё-таки, не веб-сервис, а какой-то сервер в интернете, где будет работать код, осуществляющий логику бота. Вы же не с домашнего или рабочего офисного компьютера будете запускать бота. Его программа должна работать 24/7, иметь надёжное интернет-соединение, резервирование, мониторинг работоспособности...

    перевести на бытовой уровень

    Не путайте бот и чат. Бот - это программа, которая постоянно работает и постоянно спрашивает у Телеграмма не случилось ли чего. А что может случиться?
    • бота могут добавить в чат (личный или общий)
    • в чате с ботом могут что-то написать (или прислать фоточку, или голосовое сообщение и т.д.)
    • бота могут кикнуть из чата, чат могут удалить

    Это основное. Сам бот тоже может прислать что-то в чат. Этим чем-то может быть и кнопка. Нажатие кнопки равносильно отсылке боту какого-то специфического текста, настроенного в кнопке.

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

    В ответ на некоторые события (например сообщение "хочу купить тапки") бот пойдёт по отдельной цепочке состояний в ходе которых спросит и запомнит в контексте конкретного контакта адрес, номер телефона, цвет желаемых тапок, способ оплаты и доставки. В какие-то моменты бот будет получать доп-данные из CRM (какие цвета тапок бывают, какие есть в наличии, и т.д.). Иногда бот будет отсылать для CRM данные (факт желания клиента купить тапки, какие тапки, ну и всё выясненное).
    Ваша CRM приняла к исполнению обработку заказа и он будет отправлен через пару-тройку дней. В какой-то момент нужно будет сообщить пользователю, что его заказ улетел на почту, но бот пока не знает когда это сделать.
    А дальше есть два варианта:
    1. Бот будет, скажем, каждые 5 минут дёргать CRM с вопросом: "Есть чо для кого?", и, если есть, будет рассылать кому что надо.
    2. У бота будет специальная отдельная "ручка" (скрипт, команда или свой WebAPI) для того, чтобы CRM дёргал за эту ручку и заставлял бота немедленно сказать клиенту, что его товар ушел. API телеграмма позволяет отсылать сообщения от имени бота простым HTTP-запросом. Это запрос даже CURL-ом дёрнуть можно. Основной код бота (который работает постоянно) даже знать об этом не будет.

    Может быть убеждая вас в необходимости нового веб-сервиса кто-то там имел в виду именно второй вариант? Выбор варианта зависит от того, как именно устроен API вашей CRM.
    Если ваша CRM поддерживает только веб-хуки, то отсылать сообщения пользователям от имени бота но по своей инициативе она не сможет по первому варианту.
    Для второго нужен веб-сервис, который будет отвечать на эти веб-хуки.
  • Как совместить фото с музыкой?

    trapwalker
    @trapwalker Куратор тега Python
    Антон Донской, да не за что. Гуглите по ключевым словам "ffmpeg pan tilt".
    Вот, например, https://cloudacm.com/?p=3039
  • Есть ли хорошая рyсская докyментация по сокетах python?

    trapwalker
    @trapwalker Куратор тега Python
    FuckingAwesome, Вообще держитесь от них подальше, от этих сокетов. У моего друга брат от этого умер, а у меня комп сгорел.
    Пишу с микроволновки.
  • Бесплатные хорошие для мyзыки api (python)?

    trapwalker
    @trapwalker
    Вы что, мысли читать не умеете, что ли? Блин... и я не умею.
  • Какую книгу подарить электронщику?

    trapwalker
    @trapwalker
    Алексей Харченко, Ну так-то я с вами совершенно согласен. Вообще плохая идея дарить увелеченному человеку что-то из его компетенции совершенно не разбираясь в области и не посоветовавшись с ним.
    Кстати, сертификаты - вообще какая-то глупость. Лучше деньги вообще, чем сертификаты.
  • Как сделать replace в файле?

    trapwalker
    @trapwalker Куратор тега Python
    Kit Scribe, да какие там статьи?
    Это просто тулза для командной строки, чтобы выполнять однострочники питоновские.
    Всё про неё можно прочитать в её хелпе.
    Да там и ключей-то не так много. Основные:
    -x - выражение будет вычисляться для каждой строчки попадающей на вход. Сама строка доступна под именем "x".
    -l - выражение выполняется один раз для всего, что подано на вход. Всё поданное сплитится по строкам и доступно под именем l в виде списка.
    Без этих ключей входной поток можно читать как обычно через sys.stdin.
    -c "выражение" - позволяет выполнить дополнительное выражение один раз до обработки потока.
    -C "выражение" - выражение, вычисляющееся один раз после обработки потока.
    Так можно агрегировать, считать статистику, накапливать, дедуплицировать... что угодно.
    Всё импортируется автоматически.
    Если результат выражения генератор, то он итерируется в stdout построчно.
    Преобразования к строке автоматом, кажется через __str__.
    Удобно работать через конвеер выстраивая так их в цепочку один за другим через "|".
  • Хочу сделать сайт для игры в шахматы, django на бекенд подойдет?

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

    Джанго - нормальный выбор для описанных требований потому что из коробки кастомизируемая админка с авторизацией. Есть куча примеров, готовых "Plug And Play" аппликух для него, много готовых образцовых проектов на гитхабе.
    Бери, клонируй и доделывай.
    Фласк, согласен, проще, но и даёт он меньше из коробки. При нулевом опыте автора и таком коротком сроке проще склонировать близкий по функциональности пример проекта с гитхаба и добавить туда свой Блек-Джек.

    Даже API делать никакого не надо. Всё уже можно на моделях и джинериках построить.
    У Игры будет свой View с постоянным урлом.
    На странице игры будет виджет с джинерик-вью в виде списка ходов.
    Нужен один лишний метод - проверка на наличие новых ходов. Если они есть, то можно и страничку (в рамках MVP если мыслить) обновить.
    Можно поискать готовые виджеты с шахматной доской, а можно сделать свой на SVG и собирать полностью на бэке по шаблону.
    На клиенте понадобится лишь клик отслеживать, подсвечивать выбранную фигуру стилем или дёргать POST джинерика таблицы ходов для создания нового. Тутже можно и страничку рефрешнуть.

    Всё. Можно показать маме и даже папе и все будут в восторге, а опыт есть опыт. Улучшать можно бесконечно.

    Боюсь я только, что следующие 2.5 месяца у нас тут прибавится вопросв типа "как отследить нажатие мышки на доске" или "как чтобы поверх одной картинки другие в нужных местах были"
  • Как обработать вывод ошибок в скрипте на Python в Debian?

    trapwalker
    @trapwalker Куратор тега Python
    cbv, нет, я имею в виду, что если москито вальнётся с ошибкой и кодом выхода отличным от нуля, то ваш запуск субпроцесса опадёт с исключением, а присвоение в переменную накопившегося за время работы выхлопа не произойдёт.
  • Как объединить строки в sql?

    trapwalker
    @trapwalker
    alexalexes, ну видимо сначала были данные а теперь их хочется дедуплицировать.
  • Какие библиотеки нужно изучить?

    trapwalker
    @trapwalker Куратор тега Python
    Приехали.
    Один пришёл и спрашивает прохожих какие гаечные ключи ему надо научиться различать, чтобы заменить карбюратор.
    А прохожий остановился и рассказывает ему что нужно аккуратно "дёргать" поплавок чтобы пружинку не потерять, а тросик дроссельной заслонки открепить заранее.
    Да он "библиотеки изучать" собирается, дёргать ему ещё рано.
  • Почему не работают якоря?

    trapwalker
    @trapwalker
    Кстати, можно там что угодно писать. Просто нужно и якоря одноимённые ставить. А там похъоду наговнокожено и кто-то что-то "починил" костылём
  • Можно ли сделать чтобы мышка сама пошевелилась?

    trapwalker
    @trapwalker
    Что значит "Средний"?!! Тут поди-попробуй ОС угадай. Это явно сложный уровень!