Какое-то бурление возникло позавчера в брестском чате белорусской оппозиции. На фоне общей стагнации сети чатов "97%", больше 600 человек зашло позавчера и больше 1000 вчера.
Желающиеподкормиться приобщиться, велкам - @brest97pro
Желающие
ChatMessagesOrder.py
2.1 KB
Ещё одну проблему тележеньки решил: иногда её глючит и она присылает сообщения клиенту по несколько раз. Если это сообщение с командой для бота, получается некрасиво.
Сложность была в том, что сообщения в обработку попадают не по порядку, а как придётся, если в чате идёт интенсивное общение. То есть просто номера последнего сообщения недостаточно.
В итоге написал два класса. Один это простенький FIFO буфер, второй реализует произвольный набор чатов на этом буфере. Исходник прилагаю.
Всё что нужно для того чтобы забыть про дубликаты, это объявить переменную с экземпляром класса
И в хэндлере все входящие сообщения пропускать через вызов метода
В итоге дубликаты будут отсеяны и записаны в лог автоматически. Так же логируются пропуски номеров сообщений, это бывает, если программа криво реализована или проблемы на стороне телеграм.
Сложность была в том, что сообщения в обработку попадают не по порядку, а как придётся, если в чате идёт интенсивное общение. То есть просто номера последнего сообщения недостаточно.
В итоге написал два класса. Один это простенький FIFO буфер, второй реализует произвольный набор чатов на этом буфере. Исходник прилагаю.
Всё что нужно для того чтобы забыть про дубликаты, это объявить переменную с экземпляром класса
chat_order = ChatMessagesOrder()
И в хэндлере все входящие сообщения пропускать через вызов метода
if chat_order.new_mess (chat_id, mess_id):
В итоге дубликаты будут отсеяны и записаны в лог автоматически. Так же логируются пропуски номеров сообщений, это бывает, если программа криво реализована или проблемы на стороне телеграм.
При обновлении телетон до версии 1.17 и выше надо обновлять и свой код.
Старое доброе uid=event.message.from_id больше не работает, теперь это класс peeruser (если сообщение от пользователя) или peerchannel (если это канал) или none (сервисное)
Будьте внимательны и тестируйте свой код перед обновлением, а не как я (обновил сервер, много думал)
Старое доброе uid=event.message.from_id больше не работает, теперь это класс peeruser (если сообщение от пользователя) или peerchannel (если это канал) или none (сервисное)
Будьте внимательны и тестируйте свой код перед обновлением, а не как я (обновил сервер, много думал)
Фантастически хорошо. Это свежий график энергопотребления и частоты нового 8 ядерника от AMD, в зависимости от количества занятых на 100% ядер.
Я начинаю задумываться, а не собрать ли себе новый комп в следующем году. Если первые тесты не врут, то получился холодный, экономичный, по настоящему быстрый (на 60% быстрее моего i7-4771 в single-core режиме и в 3 раза быстрее суммарно) и недорогой (40к) процессор.
Я начинаю задумываться, а не собрать ли себе новый комп в следующем году. Если первые тесты не врут, то получился холодный, экономичный, по настоящему быстрый (на 60% быстрее моего i7-4771 в single-core режиме и в 3 раза быстрее суммарно) и недорогой (40к) процессор.
Телеграм на прошлой неделе расширил диапазон user_id. Это число-идентификатор, которое присваивается при регистрации в телеграм и не меняется никогда. Присваиваются они рандомно в текущем диапазоне регистрации, так что более старые юзера отличаются от более новых, но точно сказать когда зарегистрирован конкретный юзер нельзя.
Сейчас диапазон регистрации 1,3-1,5 млрд, то есть все, у кого user_id >1 300 000 000 созданы в ноябре 2020. Максимальный user_id равен 1 500 000 000.
Сейчас диапазон регистрации 1,3-1,5 млрд, то есть все, у кого user_id >1 300 000 000 созданы в ноябре 2020. Максимальный user_id равен 1 500 000 000.
Ох лол. Телеграм похоже борется с любыми ботами, даже если они мирные. Мне сегодня начисто снесли (удалили все содержимое и забанили телефонный номер) одного из ботов, самого спокойного и тихого. Создан в начале августа, в каналах/чатах не состоял, обслуживал только входящие запросы других людей. Сам бот никаких рассылок не делал, только отвечал на входящий запрос.
Написал в саппорт телеги, но мне кажется, что проще перенести на другой аккаунт. И раз в месяц вручную имитировать какую-то жизнь, подписаться на МДК и оставлять пару комментариев там. 😁
Написал в саппорт телеги, но мне кажется, что проще перенести на другой аккаунт. И раз в месяц вручную имитировать какую-то жизнь, подписаться на МДК и оставлять пару комментариев там. 😁
СЛЕГ! <Z> ️
Ох лол. Телеграм похоже борется с любыми ботами, даже если они мирные. Мне сегодня начисто снесли (удалили все содержимое и забанили телефонный номер) одного из ботов, самого спокойного и тихого. Создан в начале августа, в каналах/чатах не состоял, обслуживал…
Чтобы был понятен юмор ситуации, мои боты, которые считывают каждое утро по 250 тысяч юзеров телеграм и под тысячу чатов все живы. Никаких претензий. Или, например, один из ботов, в экспериментальных целях считал подряд 2 миллиона сообщений в чатах. То есть трудился порядка 6 часов непрерывно, но никаких подозрений у телеграм не вызвал.
То есть я щас слегка фраппирован, потому что мне прилетело там, где я был абсолютно уверен что все ок, с точки зрения ToS. Впрочем это жизнь, всегда прилетает там, где соломки нет :)
Просто эти боты, которые хулиганят и нарушают, содержат ещё и живую переписку, состоят в нескольких чатах, где мою основу забанили и все такое. А забанила телега чистую программу, которая была честной, но не живой. В общем имитируя жизнь, можно в тг воровать, грабить и ебать гусей.
То есть я щас слегка фраппирован, потому что мне прилетело там, где я был абсолютно уверен что все ок, с точки зрения ToS. Впрочем это жизнь, всегда прилетает там, где соломки нет :)
Просто эти боты, которые хулиганят и нарушают, содержат ещё и живую переписку, состоят в нескольких чатах, где мою основу забанили и все такое. А забанила телега чистую программу, которая была честной, но не живой. В общем имитируя жизнь, можно в тг воровать, грабить и ебать гусей.
В итоге вчерашней эпопеи написал первого "настоящего" бота за все время. На скрине ответ на неочевидный вопрос, куда совать бот-токен полученный у отца всех ботов. Слава создателю telethon, что не надо изучать бот-api и использовать https. Всё происходит как обычные события обычного потока asyncio. Программа на скрине это все что нужно, чтобы видеть на экране пользовательский ввод в боте. :)
Питон считается сложным среди гуманитриев Оксфорда.
Это прям до слез. 😂 https://yangx.top/eshu_coding/127
Это прям до слез. 😂 https://yangx.top/eshu_coding/127
Telegram
Эшу быдлокодит
Знакомый учится в Оксфорде, гуманитарная специальность. В качестве вспомогательного языка программирования им будут давать R.
Далее цитата, очищенная от мата, оставлю без дополнительных комментариев:
"У нас в Оксфорде будет целый семестр R
При чем все исследователи…
Далее цитата, очищенная от мата, оставлю без дополнительных комментариев:
"У нас в Оксфорде будет целый семестр R
При чем все исследователи…
Буквально вчера, меня читатель спросил, не пробовал ли я ловить вебхуки от qiwi. Нет, не пробовал. Я изначально сделал библиотеку на поллинге, а сегодня вечером у qiwi легла рассылка вебхуков. И официальный канал порекомендовал использовать поллинг. Тем временем, моя библиотека работает на продакшене уже как минимум трех проектов несколько месяцев.
Сотонинский смех за кадром.
Сотонинский смех за кадром.
Telegram
СЛЕГ! <Z>
Полностью готовый модуль для киви. Обмазан перехватом ошибок, логированием, проверками кода ответа сервера и комментариями. Надеюсь, это ускорит разработку парочки дружественных проектов.
UPD: это устаревшая версия. Актуальная версия и документация лежит…
UPD: это устаревшая версия. Актуальная версия и документация лежит…
*злорадно* правильно подозреваешь. Только C/C++ даёт настоящую скорость. А ещё в них можно делать вставки на ассемблере и получить в свое распоряжение всю вычислительную мощь CPU. :)
https://yangx.top/eshu_coding/134
https://yangx.top/eshu_coding/134
Telegram
Эшу быдлокодит
Весь вечер гоняю замеры скорости для диссертационного проекта. Пока складывается ощущение, что я попросту ошибся с языком: самая вычислительно сложная часть, сделанная в виде копипасты куска кода на С, работает быстрее примитивнейших операций, написанных…
Интересно, есть ли здесь профессиональные прогромисты, которые этим зарабатывают? Мне интересно, у меня сейчас производительность где-то 500-700 строк уже отлаженного кода на питоне в рабочий день. Вопрос, это много или мало? Напишите в комментариях пожалуйста.
Да, если кому интересно, я сегодня умудрился написать while цикл без инкремента. Вроде бы 24 года назад первый раз увидел компьютер, а все равно получаются "шыдевры" от невнимательности. 😂
Как все же почесать левое ухо правой пяткой если очень надо.
Дело в том, что боты не могут очень многое, например, смотреть в произвольные чаты. Но если надо? Наш выбор - два объекта TelegramClient, в одном потоке eventloop.
Сначала стартует бот. Вызывается init и в нем уже стартует аккаунт владельца бота (full_client) используя connect, а не start. При этом все входящие уведомления идут только от бота, аккаунт владельца пассивен. А если надо сделать запрос, который для ботов недоступен - это легко сделает full_client от вашего имени. В данном примере - прочитает последнее сообщение в заданном чате.
Дело в том, что боты не могут очень многое, например, смотреть в произвольные чаты. Но если надо? Наш выбор - два объекта TelegramClient, в одном потоке eventloop.
Сначала стартует бот. Вызывается init и в нем уже стартует аккаунт владельца бота (full_client) используя connect, а не start. При этом все входящие уведомления идут только от бота, аккаунт владельца пассивен. А если надо сделать запрос, который для ботов недоступен - это легко сделает full_client от вашего имени. В данном примере - прочитает последнее сообщение в заданном чате.