СЛЕГ! <Z> ️
523 subscribers
678 photos
20 videos
12 files
307 links
Здесь создают авторских телеграм-ботов. Когда не справляются конструкторы и веб-студии - есть СЛЕГ.

Статистика ботов:
https://ssleg.tech/bots_view.html

Написать автору: @yesitsnew

TW: ещё тут политота, утечки баз и игры в товарища майора на минималках
加入频道
Год назад, 7 февраля 2020, я впервые увидел Python.

С тех пор я многое вспомнил и ещё большему научился, но самый полезный совет мне дал господин C.: поставь сразу PyCharm!

Очень благодарен за него. Это в разы облегчило вхождение в язык и отладку программ.
Самая первая программа уцелела в папках с архивом ненужного. Забавно.
Когда одна картинка лучше тысячи слов.

Тележенька вернулась к своему полусонному зимнему состоянию.

This is the end
Beautiful friend ©
О вакцинации Спутником - V.

Наш минздрав стойко хранит военную тайну, но к счастью минздрав Аргентины имеет развитую систему сбора информации и оперативно публикует отчеты.

Я перевел с испанского на медицинский русский.

Отчет аргентинцев (оригинал от 9/02/2021, спасибо @digitalfan за наводку):

«С начала национальной кампании вакцинации против COVID-19 до 6 часов вечера 3 февраля 2021 года, было применено 436 269 доз вакцин. Интегрированная информационная система здравоохранения Аргентины (SIISA) получила 16.455 ESAVI (уведомлений о событии, предположительно приписываемое вакцинации)

Из зарегистрированных событий 99,5% были легкими и умеренными, 84 события (0,5%) были госпитализированы для симптоматического лечения с выздоровлением.
»

То есть 0,02% вакцинированных понадобилась госпитализация (по всем причинам).
А 96,3% людей, получивших укол, вообще ничего не заметили.
Мой любимый бот Фома внезапно прошёл сейчас стресс-тест.

На чат, в котором он работает, попытался наскочить ботнет в 4070 человек. Бот выдержал нагрузку и старательно всех посчитал.

В итоге выяснилось его реальное быстродействие: 10-15, в среднем 13.3 команды в секунду и подтвердилась надёжность архитектуры.

В отличии от шилди бота, который пал смертью храбрых, Фома может переработать и бОльшие объёмы мамкиных нагибаторов.

UPD (13/02) полноценная защита от DDoS проверена ещё двумя атаками, все набегавшие забанены автоматически. Потери противника - около 9к аккаунтов.

Заказать или связаться с автором: @yesitsnew
Media is too big
VIEW IN TELEGRAM
Видео от фанатов, как Фома отбивает очередной набег ботов на чат. 😁
Интересное чтение под утренний кофе. Не знаю прав ли товарищ или нет, у меня почти нет опыта разбора некрокода. Но мысль интересная, а финальный вывод выглядит очень логично:

Проект начинает умирать в момент остановки разработки. И если нет текущих проблем, лучше их себе "выдумывать" искусственно. https://habr.com/ru/company/vdsina/blog/534696/
Нашёл кажется самый смешной баг в своём коде за последнее время.

В многоадминских больших чатах нужен механизм, предусматривающий применение наказаний только по возрастанию. То есть если админ1 даёт мьют на неделю, а админ2, секундой позже, тому же юзеру даёт сутки, должна сработать только неделя.

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

Но. Сегодня сработал антиспам на вполне невинного чудака в чате, автоматика Фомы выдала ему три дня, все ок.

Я снял мьют вручную, чудак усугубил свое состояние алкоголем и продолжил. И выяснилось прекрасное, автоматика ещё три дня (срок действия мьюта антиспама) не сможет с ним ничего сделать. Потому что справедливо считает его уже замьюченым. 😅

WARNING foma_classes [2021-02-20 19:44:00,866] наложение наказаний: (10, datetime.datetime(2021, 2, 23, 16, 55, 58, 952176)), код:10

P. S. Хорошо, что Фома пока ещё работает в режиме отладочного (полного) лога, поэтому понять что произошло было легко.
Половину дня убил вчера на реверс-инжиниринг сайта активного гражданина. Страница голосования там состоит из 4,5 мегабайт специально сделанного нечитаемым javascript кода (убраны пробелы и строки, машине пофигу, а человеку грустно).

Но, благодаря подсказкам уважаемого @eshu_coding я перехватил правильный запрос статистики. Теперь у меня есть бот-наблюдатель за выборами памятника на лубянской площади. Всего 80 строк, полный код в скринах.

Один раз в минуту записываются в файл текущие результаты и, при изменениях больше чем на 1 процент, рапортуется в чатик.
Комментарий Эшу. Всё по делу, да. Включая то, что метод post вообще предназначен для отправки данных на сервер, но в моем случае работает как get. В общем, как сказано в прекрасном фильме про все: "― Ален ноби, ностра алис! Что означает - если один человек построил, другой завсегда разобрать может!" © (римляне и фильм "формула любви")
Подумал, и поставил на мониторинг свежее, совершенно обычное голосование на активном гражданине.

В целях накопления статистики как обычно идёт голосование в АГ. Тут явно не будет конфликта и накруток и можно будет динамику использовать как референс.

Гражданский контроль, ок, значит контроль :)

P.S. Сsv с накопленными данными будет доступен для исследований по запросу.
СЛЕГ! <Z> ️
Photo
Результат первых суток наблюдения за рядовым голосованием на АГ, которое никто не накручивает. Суммарно проголосовало сию 58к людей.

Забавно, что москвичи мало спят, ночное плато по голосам всего-то с 23:30 до 06:30.
ag_mon.zip
4.2 KB
Я закончил разбираться в устройстве Активного Гражданина и теперь могу предоставить вам набор инструментов для изучения голосований.

Все потроха спрятаны внутрь класса AgController, из которого наружу выведены два метода:

detect_new_poll() - обнаруживает новые голосования и начинает их мониторить.
Возвращает 0 или количество новых голосований.

write_stats() - собирает и записывает все данные по всем активным голосованиям.
Возвращает True. Если хотя бы один вопрос получить с сервера не удалось, то False.

Достаточно эти два метода вызывать раз в 5 минут (период обновления данных голосований) и у вас есть вся информация.

Закончившиеся голосования перестают мониториться автоматически.
Количество вопросов в одном голосовании и вариантов ответов - любое.
СЛЕГ! <Z> ️
ag_mon.zip
Продолжение, начало выше ⬆️

Состав пакета:
main.py - демонстратор работы с классом
ag_classes.py - модуль с классами АГ
ag_poll_results.sqlite - пустая БД Sqlite, куда складываются данные.
sqlite_create.sql - скрипт для создания БД (на всякий случай)
visualisation.py - бонус-трек, программа для автоматической генерации графиков голосования. Единственное что нужно делать руками - менять параметр question_number в начале кода.

Лицензия - вы можете использовать, модифицировать, распространять и делать вообще что угодно с кодом. Но желательно не стирать указание на автора (MIT/BSD)
Я знаю, что мой канал читает несколько девушек, увлекающихся/работающих в области программирования и датасатанизма.

С праздником, девушки! А эта красивая картинка - праздничный цветочек :)
Вы спрашивали, что такое быдлокодер и чем он отличается от программиста? 😂
Телеграм предупреждает, что он поверил в свое светлое будущее и собирается вырасти до более чем 2.15 миллиардов пользователей.

Программирующим на Python беспокоиться не нужно. А вот тем кто пишет на C и близких к нему языках, пора проверить тип хранения поля user_id

P. S. Сейчас свежие user_id раздают в диапазоне 1.6-1.7 миллиарда.

P. P. S. Но питонистам тоже есть что обновить. Сейчас понял, что в базе данных у меня user_id таки integer. Мне необходимо будет обновить таблицы postgresql до использования bigint.
Как внезапно приходит слава. Официальный саппорт Qiwi рекламирует мой модуль, написанный в августе 2020 года, как референсный. Сейчас помог человеку запустить модуль в его проекте. Это уже как минимум шестой проект на нем (из тех, что я достоверно знаю). Спасибо Киви за такой пиар.