Продолжение поста «Быдлокод»
В общем бросила я это дело, не моё видимо.
В общем бросила я это дело, не моё видимо.
Пришлось еще один пост написать. Я пока ору - делаю другую задачу, и жду, пока менеджер с клиентом согласует внеплановую доработку. Потому что нельзя просто брать и делать, что хочешь, а потом говорить - платите мне тыщи денег. Увы. Так можно только ветку получить. Все только по предварительному согласованию.
Всем спасибо, все свободны )
Дополню, ок, сорян, погорячилась и не стала писать подробно.
Это кусок кода из большого работающего интернет-магазина. В админке которого есть список городов. Я занимаюсь поддержкой сайта, то есть паруске - дописываю новые фичи и правлю старые баги. И вот меня спросили - а схуяле при добавлении нового города в админке (где есть огромный функционал работы с городами) в некоторых местах сайт вместо корректной работы показывает ХЕР? Я полезла искать. И вот - нашла, блять. Потому что Коля просто блять в рандомном модуле вместо запроса с получением городов из базы захуярил НЕКОТОРЫЕ города в код. Видимо, на момент тестирования актуальными были эти города. И похуй, что они уже 10 раз сменились и их настроили в админке. Запрос писать это ж долго. Проще нахуярить от балды в код городов. И это я еще не скинула, что там дальше. Уже 2 часа хожу ору, блять. Мне щас все это переписывать, а клиенту - оплачивать мою работу. Потому что что? Потому что Коля положил кое-что на нормальную разработку. Хотя бабло получил за нее.
А тот, кто посоветует просто дописать в этот кейс нужные города - такой же мудак как коля.
Анонимно пишу, потому что я за 5 минут по электронной почте в гите нашла колю на десятке разных ресурсов. Мне этого нинада.
А ты, Коля, бросай доту, сука, учи PHP!
Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.
Реклама АО «Кордиант», ИНН 7601001509
case 'Выборг':
case 'Красноярск':
case 'Кемерово':
case 'Мурманск':
case 'Новокузнецк':
case 'Новосибирск':
case 'Пермь':
case 'Ростов-на-Дону':
Коля, блять, гори в аду.
На новой работе нет общего чата разрабов, где можно дружно предавать анафеме вот таких вот уебков. Так что принесла сюда.
Кто не понял - я вам сочувствую.
JS vs PHP
PHP для быдлокодеров,единственный язык на котором столько быдлокода
По мотивам постов от @naykob первая часть и вторая часть
Задача: Запустить бота Telegram на локальном компьютере под управлением Windows (в данном случае под Windows 7) и выполнять различные процессы с использованием PHP и Delphi.
Чтобы не плодить баяны не повторяться , настоятельно рекомендую ознакомится с второй частью от @naykob, так как именно в ней расписано как завести бота через "помощника @BotFather" для дальнейшей работы с ним.
Краткая инструкция для Лиги лени.
Самое главное запомнить token для получения доступа к Telegram API:
Далее выбираем локальный сервер, мой выбор пал на Open Server Panel, так как Denwer давно не обновляется, хотя для данной задачи и он бы подошёл. Далее я буду описывать все действия на примере Open Server.
Переходим в папку с установленным Open Server и исходя из какой разрядности ваша операционная система запускаем необходимый exe.
Переходим в папку "domains" и создаем новую папку, в моём случае это "pikabu-bot.ru", именно в ней будут располагаться файлы бота.
webhook.php
Маленькое отступление: Для того что бы сервер Telegram видел наш локальный сервер мы сделаем туннелирование при помощи консольного приложения Ngrok. Приложение создает безопасный общедоступный URL вида: (https://yourapp.ngrok.io) который будет ссылаться на ваш\наш локальный веб-сервер. Ngrok бесплатен хотя и имеет платные плюшки , например в виде постоянного домена, но мы справимся и без этого.
Как говорит интернет его нужно запускать с параметрами:
ngrok http --host-header=pikabu-bot.ru 80
Но сдается мне что это не совсем правильно так как устанавливается перенаправленние на "localhost" и приходится настраивать Алиасы (об этом в конце поста), если кто подскажет как правильно, будет круто. При его запуске становиться доступна страница статистики расположенная по адресу:
http://localhost:4040/status
На ней нас интересует только полученный адрес по которому наш локальный сервер доступен из вне, одно из ограничений бесплатной версии Ngrok заключается в том что при каждом новом запуске нам выдаётся новый адрес. В файле "webhook.php" мы парсим данное значение и устанавливаем webhook c новым адресом который ведет к файлу "bot.php" на нашем локальном сервере. И все наше содержимое будет общаться с Telegram по https как он и любит.
Содержимое всех файлов и их краткое описание:
bot.php
index.php
По сути заглушка которая показывает информацию о боте.
lib.php
Функция перевода символов в нижний регистр, учитывающая кириллицу для удобного анализа. Ни чего интересного.
Имя должно быть без знака @, посмотреть его можете в своем профиле, если там его нет укажите его в настройках приложения мессенджера.
run.exe
Консольное приложение которое принимает в качестве параметра путь для приложения которое нужно запустить, так как если напрямую запустить приложение командой из bot.php exec('calc.exe');
то все остальные команды не будут выполняться пока запущенное приложение, в данном случае калькулятор не будет завершён, есть родной способ это обойти но решил исполнить именно в таком виде так как функционал по мере необходимости можно наращивать.
В файле bot.php видно как обращаться к данному приложению:
exec('run.exe C:\Windows\System32\calc.exe');
Так как в Windows параметры\текст с пробелами считается разными параметрами, в цикле соединяю все параметры в одну строку и далее выполняем её, а после приложение закрывается, тем самым у нас остаётся свободный скрипт от выполнения приложения.
Еще немного о webhook.php
Для автоматического запуска приложения Ngrok и установки webhook'а, было написанно еще одно консольное приложение start.exe которое так же принимает параметры запуска.
Настроить start.exe можно через ярлык и засунуть в автозагрузку:
Про Алиасы:
Осталось дело за малым, настроить Open Server. После запуска в области уведомлений возле часов будет иконка с флажком, кликаем по нему и переходим в настройки во вкладку "Алиасы" и перенаправляем наш созданный домен на "localhost".
Собственно видео работы: https://youtu.be/J1ScV5JXUmc
Очень удобно делать подобные манипуляции с ботом на домашней машине, чем каждое исправление заливать на хостинг\сервер.
Я осознано упускал очевидные, по крайней мере для меня, вещи, но несмотря на это надеюсь что изложил достаточно доходчиво.
За ошибки прошу не пинать. Все для минусов приложил.
Писал\собирал\записывал и скриншотил - я, значит и тегу "моё" быть. Спасибо.
P.S. Если у кого-то вызовут сомнения или просто нужны исходники исполняемых файлов, прикреплю в комментариях по первому запросу.
Все файлы для запуска описанного в посте расположил в ЯДИСКЕ.