Таков webdev – Telegram
Таков webdev
57 subscribers
33 photos
2 videos
63 links
Пишу про свои проекты, делюсь полезными ссылками про webdev и мыслями о разработке

Автор: @sqlzzyy
Download Telegram
WIN-WIN

На прошлой неделе мне написал Сергей – представитель комьюнити мобильных разработчиков Coffee&Code, с предложением размещать анонсы их еженедельных встреч в боте IT Meetups Bot.

Мы обсудили детали и пришли к отличному решению – создать API, которое будет автоматически передавать информацию о предстоящих встречах. Согласовали удобную структуру данных, чтобы интеграция прошла максимально просто.

Теперь анонсы Coffee&Code будут появляться в боте каждую неделю без лишних действий. Автоматизация – наше всё!

В итоге получился настоящий WIN-WIN: быстро нашли общий язык и договорились о взаимовыгодном сотрудничестве!

#aboutwebdev_itmeetupsbot #aboutwebdev_сотрудничество
🔥4👍3🤯2
Завтра выйдет обновление бота!
А чуть позже расскажу про безопасную обработку ошибок в боте!

😎📖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Обновление №4 (24.02.2025)

В ближайшее время выйдет новое обновление для IT Meetups Bot — бота-агрегатора IT-мероприятий. Делюсь свежими функциями и улучшениями!

Что нового?

1) Добавление бота в чат

Теперь можно добавлять бота в групповые чаты, чтобы быть в курсе предстоящих мероприятий!

Как это работает?
- Сделайте бота администратором чата.
- Отправьте команду /start в группе.

Администраторы смогут управлять подписками и создавать уведомления для чата!
Если напоминание хочет создать участник без админских прав, бот уведомит его об этом.

2) Новые команды

Добавлены новые команды для удобства:
- /notifications — Напоминания
- /subs — Подписки
- /cities — Города
- /all_meetups — Все мероприятия
- /online_meetups — Онлайн-мероприятия

3) Оценка бота в чате

Теперь каждый участник чата может оценить бота, оставив свой голос! Все оценки будут учтены.

4) Улучшенная обработка ошибок

Бот стал надежнее!
Добавил глобальные обработчики ошибок Telegram API, чтобы он не крашился в случае сбоев и продолжал работать бесперебойно.
Отдельный пост про обработку ошибок скоро выйдет!

5) Другие изменения

Мелкие, но важные доработки:
- в списке «Все мероприятия» теперь отображается город события;
- убраны названия таймзон из описания мероприятий для упрощения;
- если пользователь заблокировал бота, все его подписки автоматически удаляются.

Что дальше?

Последние 4 месяца я активно развивал бота, параллельно работая на основной работе.
Идей для развития еще очень много! Постепенно буду внедрять новые функции.
Планы амбициозные!
Спасибо всем за поддержку!

Чат бота | Поддержать

#aboutwebdev_itmeetupsbot #aboutwebdev_личныйпроект #aboutwebdev_боты
👍1
Как избежать ошибок в Telegram API? (Node.js)

Как и обещал ранее, делюсь с вами способами, как грамотно обработать все ошибки и защитить бота от падений!

Если у вас бот на node-telegram-bot-api, то вы наверняка сталкивались с ошибками 429 (Flood limit), 403 (бот заблокирован) или другими проблемами, которые могут привести к сбоям.

Перейдем к способам обработки ошибок:

1. Глобальный обработчик ошибок

Бот не должен падать из-за неожиданной ошибки. Добавляем обработку непредвиденных ошибок:

process.on("uncaughtException", (error) => {
console.error("⚠️ Необработанная ошибка:", error);
});

process.on("unhandledRejection", (reason, promise) => {
console.error("⚠️ Необработанный Promise:", reason);
});


Теперь даже если что-то пошло не так — бот не упадет!

2. Универсальная обертка для API-запросов

Все запросы в Telegram API можно обернуть в безопасную функцию, которая сама будет обрабатывать ошибки.

async function safeTelegramCall(method, ...args) {
try {
return await bot[method](...args);
} catch (error) {
handleTelegramError(error, method, args);
return null;
}
}


Теперь вместо bot.sendMessage(...) используем safeTelegramCall().

3. Обработчик всех ошибок

Функция, которая понимает ошибки и решает, что делать:

function handleTelegramError(error, method, args) {
if (error.response) {
const statusCode = error.response.statusCode;

switch (statusCode) {
case 400:
console.warn(`⚠️ Ошибка 400: Некорректные данные при вызове ${method}`, error.message);
break;
case 403:
console.warn(`⚠️ Ошибка 403: Бот заблокирован пользователем. Удалите chatId. Method: ${method}`);
break;
case 404:
console.warn(`⚠️ Ошибка 404: Чат не найден. Method: ${method}`);
break;
case 429:
const retryAfter = error.response.parameters.retry_after || 5;
console.warn(`⚠️ Ошибка 429: Лимит запросов. Повтор через ${retryAfter} сек. Method: ${method}`);
setTimeout(() => safeTelegramCall(method, ...args), retryAfter * 1000);
break;
case 500:
console.warn(`⚠️ Ошибка 500: Внутренняя ошибка Telegram. Повтор через 5 сек.`);
setTimeout(() => safeTelegramCall(method, ...args), 5000);
break;
default:
console.error(`⚠️ Ошибка ${statusCode}: ${error.message}`);
}
} else {
console.error(" Неизвестная ошибка:", error);
}
}


4. Использование в коде бота

Теперь вызываем API Telegram безопасно:

bot.onText(/\/start/, (msg) => {
safeTelegramCall("sendMessage", msg.chat.id, "Привет! Я твой бот.");
});

await bot.on("callback_query", async function onCallbackQuery(callbackQuery) {
const data = callbackQuery.data;

if (data === "about") {
await safeTelegramCall("editMessageText", "О боте", {
chat_id: chatId,
message_id: messageId,
parse_mode: "HTML",
reply_markup: {
inline_keyboard: aboutKeyboard,
resize_keyboard: true,
},
disable_web_page_preview: true,
});
}
});


Итого

- Бот не падает из-за неожиданных ошибок;
- API-запросы Telegram выполняются безопасно;
- Защита от блокировок, лимитов и багов.


Теперь ваш будет стабильно работать, даже если Telegram начнет глючить!

#aboutwebdev_боты
5👍2
Баг со звёздами в ТГ

Заметил тут баг, а может и не баг он вовсе.

Последнему посту аноним подарил 5 звёзд.
Я потом зашёл в баланс канала и произошла деанонимизация отправителя звёзд 😁

Такие дела 👮‍♀
Please open Telegram to view this post
VIEW IN TELEGRAM
Планы

Подкаст

Я нашел свой микрофон! Теперь у меня их два, поскольку второй я купил, думая, что потерял первый. А может это знак к тому, чтобы открывать свою студию 😏
После переезда буду записывать новые выпуски подкаста. С несколькими ребятами предварительная договоренность уже имеется. С нетерпением жду общения с ними и как ночью буду делать монтаж 🤟
Выпуски будут выходить на разных платформах.

Бот-агрегатор

Взял небольшой творческий отпуск в разработке фич для бота. Хвалю себя за то, что в короткий промежуток времени реализовал основные и удобные фичи. Бот в рабочем состоянии и это самое главное!
Идеи записываются в блокнот и планомерно будут реализованы!

Такие вот планы у меня на ближайшее время.

Какие бы посты вы хотели чаще видеть? Проголосуйте в опросе!
Please open Telegram to view this post
VIEW IN TELEGRAM
Аудитория бота-агрегатора IT-мероприятий IT Meetups bot достигла 600 пользователей и чатов!

17 октября 2024 года я запустил бота.

Прошло практически 5 месяцев и бот обрёл много крутых и удобных функций!

По началу я делал бота, как пет-проект. С течением времени он перерос в полноценный проект со своей аудиторией, сотрудничествами с организаторами мероприятий и сообществами.

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

600 — это прекрасный показатель за 5 месяцев без вложений в рекламу. Но это не предел.

Если мне чего-то по-настоящему хочется достичь, я становлюсь глухим тараном, пробивающим все стены.
В этот момент моя работоспособность включается на режим 24/7.

Поднимаю стакан кофе за новый достигнутый рубеж!

Всех благодарю за поддержку, ваши предложения и помощь! 🍸

#aboutwebdev_itmeetupsbot
#aboutwebdev_личныйпроект
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Сотрудничество с JUG Ru Group

Недавно мой бот-агрегатор стал информационным партнером серий мероприятий от группы «JUG Ru Group»!

Анонсы предстоящих мероприятий уже в боте!

Всем хорошей недели!

#aboutwebdev_itmeetupsbot
#aboutwebdev_сотрудничество
🔥2👍1
Нашёл золото архива

В студенческие годы участвовал с одногруппниками в международной Олимпиаде по программированию ICPC.

Сначала был этап в МФТИ, и далее, как лучшая команда среди вуза, поехали в МГУ.

Как сейчас помню: в день первого этапа была жара в аудитории, где было несколько десятков компов и как минимум 2 человека за одним ПК. Не только компы грелись и плавились, но и мозги от задач 🖥

Второй этап проходил в математическом корпусе МГУ.

Тренировались на сайте: https://codeforces.com/

Крутое было время!

Вот ещё ролик остался с первого этапа: https://youtu.be/ntQR5Ri3DpQ?si=OcvghZNFYdusFR-J

#aboutwebdev_обо_мне
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Хорошая статья про git-команды.
90% из них использую каждый день.
В комментариях дополнили своими полезными командами.

https://habr.com/ru/articles/905658/
https://habr.com/ru/articles/905658/#comment_28240058

Добавил статью на страницу с полезными ссылками: https://library.sqlzzy.dev/.
Добавляйте страницу в закладки.

Может сделать бота с полезными ссылками, которые размещаются на странице?

#aboutwebdev_моярекомендация
🔥1
🔥2
tg-bot-stats — npm-пакет для сбора и визуализации статистики взаимодействий с ботом

Лёгкий Node.js пакет для сбора и визуализации статистики взаимодействий с ботом, использующий SQLite для хранения данных и Chart.js для визуализации.

Такого npm-пакета еще нашел на https://www.npmjs.com/!

Возможности пакета

- Сбор статистики нажатий кнопок и команд бота;
- Хранение данных в SQLite базе;
- Визуализация статистики с интерактивными графиками;
- Отслеживание нажатий по времени (часы, дни, месяцы);
- Просмотр детальной информации о нажатиях;
- Настраиваемая схема данных.

Возможности дашборда

Дашборд работает локально на порту, который вы указали или по умолчанию на 3000.

Интерактивные графики:
- Линейный график нажатий по времени;
- Столбчатая диаграмма общего количества нажатий.

Выбор периода:
- Просмотр данных по часам, дням, месяцам или годам.

Детальный просмотр:
- Клик по кнопке в диаграмме показывает детальную информацию.

Подробнее о возможностях пакета, настройки и его использования можно почитать здесь.

github: https://github.com/sqlzzy/tg-bot-stats
npm: https://www.npmjs.com/package/tg-bot-stats

Уже попробовал в своем боте-агрегаторе и пока не нашел багов.

Проект полностью open-source, поэтому предлагайте свои идеи и доработки!

#aboutwebdev_личныйпроект #aboutwebdev_tgbotstats
🔥1
Таков webdev
tg-bot-stats — npm-пакет для сбора и визуализации статистики взаимодействий с ботом Лёгкий Node.js пакет для сбора и визуализации статистики взаимодействий с ботом, использующий SQLite для хранения данных и Chart.js для визуализации. Такого npm-пакета еще…
Добавил перевод на английский язык инструкции по использованию и настройки пакета tg-bot-stats.

github: https://github.com/sqlzzy/tg-bot-stats
npm: https://www.npmjs.com/package/tg-bot-stats

⭐️ P.S. У проекта уже 2 звезды и 167 скачиваний.
Еще раз напишу: аналогов подобного пакета не найдено и он является действительно полезным для создателей телеграм-ботов!

Делитесь ссылкой на пакет со знакомыми разработчиками и владельцами ботов: https://www.npmjs.com/package/tg-bot-stats

#aboutwebdev_личныйпроект #aboutwebdev_tgbotstats
🔥1
Дебют в роли спикера

#aboutwebdev_митап
Forwarded from MoscowJS (Anna Shiryaeva)
Много кто пользуется telegram, но не все знают, как научить его решать нужные вам задачи.

Про это расскажет разработчик Серёжа Осипов в докладе «Свой бот — проще, чем кажется».

Экосистема telegram развивается, и сейчас каждый может создать бота или Web App. А вместе они дают не только мощный инструмент для личной продуктивности, но и для бизнеса.

🤖 В докладе Серёжа поделится историей о том, как благодаря этому упростил себе работу с блогом. И, конечно, даст инструкцию как написать своего бота с мини-приложением.

Тот самый блог Серёжи тут, а еще можно почитать его канал.

MoscowJS 66 + Школа 21, 03.07.25
Регистрация | Промокоды | #moscowjs #moscowjs66
👍1
Темная тема блога

Мой знакомый и соратник по разработке Егор предложил сделать для моего блога темную тему.
Я не стал отказываться от такого предложения и теперь в зависимости от системных настроек будут отображаться приемлемые стили.

Ссылка на блог: https://sqlzzy.dev/

Подписывайтесь на канал Егора: @frtvt

#aboutwebdev_блог
База, проверенная временем и опытом

#aboutwebdev_мем
🔥5
👍3🔥3
Простой веб-сайт

https://simplesite.ayra.ch/