8

Телеграмм бот для чайников

Для ЛЛ: простейший способ отправить в чат телеги мессадж. На полноту и новизну не претендует, просто запишу для памяти. Потом же потребуется повторить, а будет уже не вспомнить. Я убил на это почти 6 часов. И еще 3 часа чтобы всё вспомнить и создать сию портянку....

В продолжение к посту:
WeAct 0,96-дюймовый USB-монитор

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

Питон, ссука, это конечно, нечто... Без поллитра и гугля тут хрен чего куда.
В результате я за пару дней:
1. добавил новый параметр MOUSE TRAVEL COUNT. Таки считаю пробег мышки в сантиметрах. Очень условно. Считаю проехавшие пиксели. Далее с учетом разрешения монитора 96 dpi (так написано в винде) перевожу их в сантиметры и так далее. Так как мониторов 3 и размеры у всех разные... В общем, очень эмпирический параметр. Но я это сделал и даже добавил в редактор тем дополнительную вкладку.

2. ПИНГИ... В конфигах нашлось такое:
# Address used for ping sensor. Can be internal/external IP (e.g. 8.8.8.8 or 192.168.0.1) or hostname (google.com)
# PING: 8.8.8.8

Я прописал PING: 81.211.0.63.
Какой-то там DPI узел... tracert и смотрим как через что мы там лезем на ту же пикабу. 16 узлов. Аллес. Ладно. Показывает 0.3 - 0.02.

Захотелось линейную диаграмму. Включаю в теме, но там только целые числа. То есть MAX VALUE не может быть меньше 1.
2% от 100 - это всегда пустая диаграмма. 30% уже заметнее, но всё равно херня.
Надо увеличить "чувствительность". Кстати, поставил 0.5, но надо еще уменьшить.

Ну хер с ним, нас на кривой кобыле не объедешь. Лезу в редактор, открываю файл конфига и прописываю туда 0.5. Сохраняю, запускаю и хер там ночевал. Шкала пустая и не реагирует.
Лезу в код глубже, нахожу отрисовку прогресс-бара и вижу, что значение там сугубо целое (int блять) Меняю на float, модифицирую остальной код и наконец-то он умеет отображать дробные значения.

Кстати, свежая мысль - надо еще цвет изменять с зеленого на красный. //TODO

3. У нас имеется раздел DOWNLOADED.

И он мне зачем-то показывал какие-то неисчислимые террабайты. Оказалось, что цифра тупо берется с сетевого адаптера и показывает кол-во скачанного вареза с момента последнего включения компа. Нужный параметр. Познавательный. Нах он нужен? Хер с ним. Нашел где это. Запоминаю значение при старте приложения и потом уже при отрисовке вычитаю из текущего значения.

Гораздо информативнее. До кучи сделал еще и счётчик залитого вовне. Работает. Красота.

Ну и в целом как бы и всё. Вуаля сильвупле.
Классно. Работает, рисует, чего же более?
Но тут вмешался человеческий фактор!
Вот дисплей трудится, греется, потеет, рисует всю эту шнягу а потом я в час ночи кидаюсь тапком в кнопку СПАТЬБЛЯТЬ и ухожу. А что там за статы сегодня были - неизвестно. Все кануло.

Комп засыпает, приложение выгружается, все данные затираются. Как-то пошло. Возникла мысль писать всё это в лог на диске. Можно. А зачем? Кто и когда его потом будет читать?... И тут меня ОСЕНИЛО! А буду-ка я при выключении постить эти охуенно нужные цифирки в свой ТГ канал! Ха! И тут блять случилось минус шесть часов моей жизни. Сел в 21 час, кое-как заработало часам к 5.

Далее, простите, будет очень много мата. Ибо даже по свежей памяти я всё это воспроизвёл еще раз с трудом.

░░░░ Итак: простейший способ, отправить из приложения мессадж в телегу

Как оказалось, всё реально пиздецки просто. Всё что нам надо:


п.1. Зарегать бота и получить его токен
п.2. Узнать ёбаный id бота (!!!!)
п.3. Узнать chat_id группы, которую ты хочешь неибацца ощастливить,
п.4. Выкурить thread_id - идентификатор топика, если в группе есть эти неприпизженные разделы п.5. Написать в приложении простейший код из пары строчек.
п.6. Охуеть, добавить бота в группу непременно с правами блять АДМИНИСТРАТОРА, выключив нахер всё что там можно. Оставив лишь возможность постов.
п.7. Выпить валерьянки и пойти спать нах.

Собственно это и всё! Это реально работает! Без СМС и регистраций! Тьфу блэт.

Теперь ссука ДЕТАЛИ в которых не то что дьявол блять кроется а просто весь пиздец.
Никто никогда нигде не умеет писать внятную блять документацию! Никто нихуя!
Всё надо выискивать и выгугливать. При слове "нам надо подключиться к API" меня уже реально трясет, колотит и хочется грызть мебель.
Это пиздец.

Итаак... па пунктам, тк скть.........


п.1. Добавляем в телегу
@botfather.
Через сраный тг-поиск. Прилагаю картинок, так как ВНЕЗАПНО ссука с одним и тем же именем ботов может быть, вы ахуеете щас, НЕСКОЛЬКО.

В общем вот этот

В общем вот этот

Из всех дальнейших пиздоплясок нам по сути надо только это:

Детальнее - внятно на русском написано ТУТ. Хотя в целом - можно скипнуть. Прописать описания и аватарку прилепить можно интуитивно. Там еще что-то про команды, но ну его нахер. Туда я не полез и не планирую. Заняться мне нечем больше.


Итак, мы получили TG_BOT_TOKEN

п.2. Узнать ёбаный id бота... С какого хуя нам его не дают сразу - я не знаю.
Добавляем к себе в повозку
@Getmyid_bot

Практически сразу вы получаете этот сраный айдищшник.
Везде вводим линк бота, который начинается с @

Таким вот незамысловатым способом из говна и байтов мы получили botId

п.3. Узнать chat_id группы. Ндааа.... Ну, к этому моменту вы уже практические перестали плеваться и материть Дурова и иже с ними. Так что добавляем в телегу ОЧЕРЕДНОГО ботаблять:
@username_to_id_bot

Ну тут уже тупо пишем ему группу (https://t.me/fdmdhc) и всё без непоняток.

Я тут нихуя не блоггер и не популярный телеведущий, поэтому млять я постоянно путаюсь в этих группах, чатах и блять каналах. Я тащу на себе ебень с кучей топиков, и вроде это канал. Или группа. Но не чат. Блять.

Короче мы получили наконец-то ссука chat_id

И всё? А вот хуй и нет!!! Я блять не знаю КАК я до этого ссука допёр, но видимо мою голову всё-таки иногда посещают умные мысли. Пусть это визиты вежливости, но тем не менее. Просто так пихать этот ид в запрос можно до посинения. Такого чата не найдется. ПАТАМУУУУШТА....
Перед всей этой цифирью надо добавить -100 !!!! Вот ссука "ну надо"...
Я не ебу почему и зачем, но явно этого нигде не написано.
#Тактутпринято


То есть, если у вас получен chat_id: 666666
то обращаться к нему надо как к "-100666666" !!!!


Не, ну все же ясно как "е" в степени "пи". Только полный утупок не прорюхает.

Ща вы, конечно же скажете "УФФ, заебца, афтар пеши исчо" и собираетесь открыть кодильник, дабы ну понятно. А вот еще раз ХУЙ мимо. Всё это прокатывает, если блэт у вас ПУБЛИЧНАЯ группа. Если она приватная, то, внезапно @myBestChannelFuckenLink у неё не будет! И бот ... идёт лесом.

Длииииааа этаво... Запускаем браузерную телегу! Кстати, это самый простой способ, действительно. Можете погуглить "как получить chatId приватной группы".
Я охуел где-то секунд за 20.

https://web.telegram.org/


Сканим куаркод телегой с мобилы, лезем в свой приватный анал, пкм на любом мессадже и копируем сраный линк.

Получаем:

1 - это ид сраной приватной группы/анала (да, сюда тоже надо добавлять -100 в начале)
2 - это блядский message_thread_id

Кстати с обычной группой message_thread_id получается точно так же.

Итак. Мы получили chat_id и message_thread_id

п.4. Выкурить thread_id. А хуй там. См. выше.

п.5. Нахерачить в приложении простейший код из пары строчек.
Ну, тут уже халява и это даже неинтересно.


Из питона всё это в созданного бота, например, можно затолкать прям вот сейчас так:

import requests
requests.post('https://api.telegram.org/bot' + TG_BOT_TOKEN +'/sendMessage?chat_id=' + botId + '&text=' + текстовый_мессадж)

Если вам не повезло, и у вас js/ts, то пишем такое:

response = await fetch('https://api.telegram.org/bot' + TG_BOT_TOKEN
+ '/sendMessage?chat_id=' + botId
+ '&text=' + текстовый_мессадж, { method: 'POST' });

data = JSON.parse(await response.text());

if (data.ok) {
console.log('%c█ Tgbot.response OK', 'color: #00ff00; font-size: 12px;');
} else {
console.log('%c█ Tgbot.response ERROR:: ' + data.description, 'color: #ff8800; font-size: 12px;');
}

Ебал я в рот код на пикабе форматировать крайне неудобно. Ладно, идея ясна.

Этим можно срать в душу своего бота пока ему в конец не поплохеет код не начнет нормально работать.

После этого уже наконец-то можно всё это с чистой душой отправлять в свой паблик.

requests.post('https://api.telegram.org/bot' + TG_BOT_TOKEN

+ '/sendMessage?chat_id=' + chatId

+ '&message_thread_id=' + thread_id

+ '&text=' + текстовый_мессадж)

Если канал не анал и топиков там нет, то третья строчка вам не всралась не нужна.
При успешной отправке, в консоли видим примерно такое:

Если что-то пошло не так, читаем data.description. Там всё более менее внятно.

Ах да. В результате после всей это свистопляски, приложение обзираемого устройства отправляет во флуд-чат группы такое вот:

Статы по сегодняшнему дню: 21:20 - 23:59


■ ВСЁ!!!! Мы все прекрасны и охуительны и ваще!

- Волокуев, вот ваш меч!

Традиционно, пользуясь случаем, передаю лучи поноса о∙∙∙вшей п∙∙де @Catbug0

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества