Если надо сравнивать как строки, то и привести details к строке:
str(details)
Но вообще ловить Exception это не про обработку ошибок, а про то, чтобы скрипт не падал, если это not critical для его выполнения. Например, если веб-сервер при обработке запроса словил исключение, он вполне может вернуть ошибку пользователю и спокойно продолжить работу. Конкретные же ошибки следует ловить именно как отдельные исключения, а наиболее общее ловить последним, например:
try:
...
except pymysql.err.OperationalError as e:
return ErrorResponse(f"Какая-то хрень с базой: {e}")
except requests.exceptions.ConnectionError:
return ErrorResponse(f"Не удалось соединиться: {e}")
except Exception as e:
return ErrorResponse(f"Что-то странное случилось: {e}")
Если пытаться анализировать строковые представления, то они могут изменяться в зависимости от версии питона и библиотек, могут вообще быть локализованы под системный язык и всё такое, короче, делать так точно не стоит.
https://core.telegram.org/bots/api#keyboardbutton
request_contact Boolean Optional. If True, the user's phone number will be sent as a contact when the button is pressed. Available in private chats only
Al_Ko, оперировать разными задержками тем более плохо, это ничего не решит. Поясню на примере. Пусть мы делаем задержки 6 и 7 секунд, тогда если запросы выполняются и обрабатываются моментально, то пересекаться они будут каждые 42 секунды. Вроде так, но если первый скачивает и обрабатывает данные 2 секунды, а второй - 1 секунду - то они будут делать запросы каждые 8 секунд.
Я бы начал с выяснения того, зачем вообще существуют два стенда. Если это резервирование (чтобы падение одного не вызывало падения сервиса), то это не так делается, тем более если конфликты не просто нежелательны, а недопустимы. Можно, например, сделать один из них пассивным резервом, который будет срабатывать при падении основного (обнаружение его падения - отдельная задача).
Пугаться проксирования запросов не надо. Тем более что там легко может не быть проксирования этих самых объёмных данных, если устройство протокола позволяет. Например, если запрос /updates возвращает json со списком свежих данных и ссылками на них, то прокси просто будет избегать отдавания стендам данных, которые уже получил другой, а каждый стенд, в свою очередь, может просто качать данные напрямую. Но даже прокачивать через прокси - это более чем нормально и часто используется.
SoreMix, хм, реально, прямой вызов getUpdates ловит, интересно почему я думал иначе, но ещё больше мне интересно почему простейший тестовый бот ничего не ловит вот прямо сейчас в свежесоданном канале...
Сделать сообщение при штатном выключении, конечно, можно. Но зачем? Бот может и просто отвалиться без предупреждения. Проще на онлайн-статус бота ориентироваться.
evgeniy1215, так брачный союз бота и sqlite есть или нет?
Так-то нужно просто где-то хранить список id пользователей, которым "можно", и реализовать механизм попадания пользователей в этот список (например, пользователь подписывается на бота, бот говорит ему id, пользователь сообщает id владельцу бота, тот вносит его в список).
AVKor, мне не очень интересно твоё мнение по поводу моей личности.
Вообще, отношение к отдельным категориям людей как к неполноценным (к евреям, к крестьянам, к цветным, к иноверцам, к гуманитариям итд итп) - это для XXI века уже давно должно было стать нонсенсом, но увы, не все это понимают... Не надо верить в эзотерический оккультный эффект флюидов и миазмов, проистекающих от преподавателя в момент передачи тайного мистического опыта при очном общении. Это не имеет никакого отношения к обучению, а отсутствие подобной мистической практики не делает человек принципиально неспособным к изучению знаний, как ты нам тут пытаешься втирать.
То, что ты после 25 лет преподавания столкнулся с вынужденной необходимостью работать по новому формату и не справился - это говорит о тебе, а вовсе не о том, что образование вот прям сейчас умрёт.
Ты очень типично себя ведёшь для поколения "уже морально состарившихся". У таких образование вот прям на глазах умирает, но при этом менять ничего не надо, потому что оно якобы умирает именно потому, что неизбежно меняется, а не потому, что оно попросту отстаёт от реальности и изменений просто требует (тут передам привет расхожему, хоть и не очень глупому лозунгу советской идеологи про производительные силы и производственные отношения). Если ты меня хотел унизить и задавить авторитетом, то у тебя это не удалось, увы.
Bavashi, я не говорю, что совсем не чертят. Просто раньше это имело целью накопление практического опыта именно черчения именно карандашом по бумаге, потому что именно это умение требовалось в дальнейшей работе. Сейчас это оставлено больше для соблюдения преемственности и получения тех же навыков изображения и прочтения условных знаков. Ведь и сейчас чертежи делают не только на компьютере, но и как небольшие наброски на бумаге, отметки на готовых схемах (поэтажных планах итд). В конце концов, моторная память при выполнении работы своими руками - это тоже положительный эффект, возникающий в процессе выполнения учебной деятельности (хотя своими руками можно и на компьютере, причём с точки зрения приобретения практического опыта для дальнейшей работы это полезнее).
Черчение я привёл как пример достаточно простого и в то же время весьма яркого изменения. Примеров можно привести много. Скажем, когда-то школьники учились использовать таблицы Брадиса, но нынче они неактуальны, умение ими пользоваться лишено смысла, потому что давно изобрели калькулятор, да и тот уже превратился в мобильное приложение.
Времена меняются, с ними меняются как требуемые компетенции, так и способы их достижения.
Ты, как и всякое хамло, полагаешь, что ты имеешь неотъемлемое право на хамство
Очередное проявление сублимации.
Приди, к примеру, на мехмат МГУ и скажи, что покажешь мастер-класс по преподаванию
У тебя типичная болезнь - ты уверен, что если закончил какой-то клёвый вуз, то ты "илита". Ты идеальный эксперт во всём, а все остальные - какое-то чмо, чьё мнение не заслуживает внимания. О, да, есть МГУ (целое 93 место в Шанхайском рейтинге!), закончить который значит в твоих глазах приобщиться к высшим существам, вот только увы и ах - МГУ выпускает примерно 20 тыс. человек в год, и за последние 20 лет он выпустил уже 400 тыс. человек - это больше населения обоих районов Бутово. Слишком уж велика "илитная" группировка, чтобы этим так бахвалиться.
Bavashi, я простой и в то же время яркий пример приведу. Поколения инженеров-конструкторов, архитекторов, проектировщиков чертили. Много и упорно. Они изучали ГОСТы, правильные расстояния рамки от края бумаги, угол наклона букв и толщину линий. Их направляли на то, чтобы они чертили всю свою жизнь до выхода на пенсию.
Но сейчас это практически лишено смысла. Да, конечно, сейчас при обучении тоже чертят, но намного меньше. Вся чертёжная работа делается на компьютере. ГОСТы доступны в электронном виде, их всегда можно посмотреть, если что-то забыл или не знал. Да и на самом деле подсматривать не особо нужно. Большинство работы уже проделали разработчики софта, дизайнеры специальных шрифтов итд итп.
Натаскивать учащихся на черчение руками сейчас просто бессмысленно. От этого ушли, сейчас это бесполезный навык, всего лишь расходующий множество ценных часов в процессе обучения. Но, конечно, старые пердуны скажут, что эта современная молодёжь таких элементарных вещей не умеет, совсем скатилась, ну и начнут рассказывать, что все проблемы прихода в аварийное состояние зданий, износа техники и всё такое вызваны неумением современных специалистов водить карандашом по бумаге.
AVKor, унижать окружающих - крайне плохой способ самоутверждения. Почему столь простые вещи тебе незнакомы ещё со школы? Argumentum ad hominem - это ещё с античности рассматривалось как отсутствие реальных обоснованных аргументов. И ты откровенно сублимируешь свои собственные проблемы на окружающих, приписываешь оппонентам "ребячество" только на основе того, что кто-то осмелился думать не так, как ты. Сам же в детство и впадаешь. Это несерьёзно.
Если надо сравнивать как строки, то и привести details к строке:
str(details)
Но вообще ловить Exception это не про обработку ошибок, а про то, чтобы скрипт не падал, если это not critical для его выполнения. Например, если веб-сервер при обработке запроса словил исключение, он вполне может вернуть ошибку пользователю и спокойно продолжить работу. Конкретные же ошибки следует ловить именно как отдельные исключения, а наиболее общее ловить последним, например:
Если пытаться анализировать строковые представления, то они могут изменяться в зависимости от версии питона и библиотек, могут вообще быть локализованы под системный язык и всё такое, короче, делать так точно не стоит.