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

Автор: @sqlzzyy
Download Telegram
Обновления IT Meetups Bot: подписка на города, новые города и удобная навигация!

Рад поделиться свежими новостями о новых функциях и изменениях в боте-агрегаторе IT Meetups Bot. Вот что теперь доступно:

1) Подписка на город

Теперь вы можете подписаться на уведомления о мероприятиях в выбранном городе. Даже если в вашем городе пока нет событий, вы получите уведомление, как только они появятся! В уведомлении будет краткое описание и ссылка для подробной информации.
Управлять подписками легко: можно отписаться как от одного города, так и сразу от всех.

2) Добавлены новые города

Список городов пополняется! Теперь бот поддерживает:
Казань, Уфу, Омск, Томск, Нижний Новгород, Ростов-на-Дону, Калининград, Краснодар, Сочи, Ижевск и Иннополис.

3) Пагинация для городов

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

4) Улучшенная сортировка мероприятий

Обновил сортировку в разделе «Все мероприятия»: теперь всё по порядку: по дате и времени.

Что дальше?

Чат идей вдохновляет! Уже внедрил некоторые предложения (например, подписку на города). Работа над новым функционалом продолжается.

Если заметите баг или у вас есть идея, обязательно напишите в чат!

Подключайте бота и следите за IT-мероприятиями вашего города. Спасибо, что пользуетесь!

#aboutwebdev_itmeetupsbot #aboutwebdev_личныйпроект #aboutwebdev_боты
👍2🔥1
Сотрудничество

Недавно мой бот-агрегатор стал информационным партнером мероприятия «Профессиональная межрегиональная IT-конференция "Merge"»!

Это мое первое сотрудничество с IT-мероприятиями!

Есть еще приятный бонус для пользователей моего бота и канала: по промокоду ITMEETUPSBOT можно получить 10% скидки при покупке билета!

Скоро будут еще новости!

А пока побежал пилить фичи для бота!

Всем прекрасных выходных!

#aboutwebdev_itmeetupsbot #aboutwebdev_сотрудничество
👍4🔥2
Новости с полей сотрудничества

Прилетели новости с полей сотрудничества с мероприятиями!

Мой бот-агрегатор стал информационным партнером мероприятия «Summer Merge»!

Уже по традиции есть приятный бонус для пользователей моего бота и канала: по промокоду ITMEETUPSBOT можно получить 10% скидки при покупке билета!

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

Скоро выложу кое-что интересное!

Всем прекрасного начала недели!

#aboutwebdev_itmeetupsbot #aboutwebdev_сотрудничество
Обновление IT Meetups Bot (30.01.25)

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

Что нового?

1) Оценка бота

Добавлен раздел "Оценить бота", где вы можете поставить свою оценку! В любой момент вы можете изменить свою оценку.
Ваше мнение важно для меня!

2) Список "Онлайн мероприятия"

Теперь есть отдельный список для онлайн-мероприятий: вебинары, трансляции и воркшопы. На этот раздел можно подписаться, чтобы получать уведомления о новых анонсах!

3) Изменения в форме анонса

Обязательные поля теперь отмечены звездочками. Также при выборе формата мероприятия будут появляться соответствующие поля. Например, если выбрать формат "Офлайн" или "Офлайн с онлайн-трансляцией", отобразятся поля для выбора города и ввода адреса.
Поле "Ссылка на регистрацию" теперь необязательное, так как для некоторых форматов, например, для завтраков, регистрация не требуется. Если ссылки нет, кнопка "Регистрация" в боте не будет отображаться.

4) Для админа

Для администраторов теперь предусмотрено автоудаление прошедших мероприятий из общего списка. Каждый день в 00:01 будет запускаться процесс, который будет автоматически удалять устаревшие события. Это позволит поддерживать актуальность списка мероприятий.
Также добавлен раздел "Заявки", где отображаются все заявки на анонсы мероприятий.

5) Пасхалка!

В бота добавлена пасхалка, которая намекает на одно из будущих нововведений! Если найдете её, напишите об этом в комментариях под постом!

Что дальше?

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

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

И, конечно, будут другие нововведения, о которых вы узнаете в следующих обновлениях!

#aboutwebdev_itmeetupsbot #aboutwebdev_личныйпроект #aboutwebdev_боты
🔥4
Если у вас будет задача с разными таймзонами, не лезьте.
Оно вас сожрет. 😐

#aboutwebdev_мнение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🤯1
Обновление №3 (10.02.2025)

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

Что нового?

1) Напоминания о мероприятиях

Это была одна из самых ожидаемых функций, которую я хотел реализовать с самого начала разработки бота.

Как работают напоминания?

Напоминания отправляются в часовом поясе, который вы выбираете при их создании.

Например, если мероприятие проходит в Новосибирске в 14:00 20.03.2025 (таймзона: Asia/Krasnoyarsk), а вы выбрали таймзону Asia/Omsk, то напоминание за 1 день в 9:00 придет вам по Asia/Omsk, а по времени Asia/Krasnoyarsk это будет 8:00 19.03.2025.

Время и дата напоминания для scheduleJobs устанавливаются в UTC, чтобы уведомления приходили точно в выбранное вами время.

Уже запланированные часы не отображаются в клавиатуре при создании нового напоминания.

Напоминания можно удалить в любой момент.

На первое время установил лимит на создание не больше 10 напоминаний на одного пользователя.

Ваши напоминания не пропадут при ошибках на сервере!
Для этого реализовал восстановление всех напоминаний при перезагрузке сервера.

2) WebApp для предложений мероприятий

Теперь можно удобно подать заявку на добавление мероприятия через WebApp прямо внутри бота!

3) Личный кабинет

Добавлена кнопка "Личный кабинет", где можно посмотреть свои подписки и напоминания.

4) Уведомления для админа о новых заявках

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

5) Поправлена проверка для ссылки на регистрацию

Недавно в чат написали про баг при вставке ссылки на регистрацию. Теперь идет проверка только на наличие у сайта протокола HTTPS.
HTTPS — расширение протокола HTTP для поддержки шифрования в целях повышения безопасности.

Что дальше?

Основные функции, которые я планировал, уже добавлены. Но впереди еще много идей и новых возможностей!

Если нашли баг — напишите в чат. Я старался протестировать все сценарии работы с напоминаниями, но что-то могло ускользнуть.

Спасибо за вашу поддержку! 🍸

#aboutwebdev_itmeetupsbot #aboutwebdev_личныйпроект #aboutwebdev_боты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Архивное фото студенческих времен.
Настраиваю сервера и проверяю отправку данных между ними.

#aboutwebdev_обо_мне
👍2🔥2
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