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

Автор: @sqlzzyy
Download Telegram
Телеграм бот для создания своего списка желаний

Предыстория

Осенью прошлого года я написал телеграм бота для создания списка желаний.
При запуске создавался json-файл, в который записывались желания.
С того времени мои знания пополнились многими интересными решениями, которые мне захотелось применить в этом боте.

Сегодня я представляю вашему вниманию телеграм бота с созданием БД для записи своих желаний.

Что нового

При запуске теперь создается папка database в структуре проекта с файлом БД.
Добавил просмотр информации желания через команду.
Также было добавлено последовательное заполнение информации о желании: сначала добавляется ссылка, потом название желания.
Изменилась структура проекта. Стало проще ориентироваться по ней.

Исходный код

Исходный код проекта с БД: https://github.com/sqlzzy/wishlist-tg-bot-db
Исходный код проекта с JSON: https://github.com/sqlzzy/wishlist-telegram-bot

#aboutwebdev_личныйпроект #aboutwebdev_боты #aboutwebdev_опенсорс
12👍1
Анонсы

Про логотип

Недавно проходил опрос по выбору логотипа.
Одинаковое количество голосов в опросе и по реакциям в комментариях набрали два логотипа.

Я выбрал из них вариант Ивана. Крутой олдскульный логотип!

Скоро выйдут

В ближайшее время выйдут:
- крупное обновление бота для составления списков желаний;
- мой новый проект;

Конкурс

К выходу нового проекта будет конкурс! Подробнее о нём я напишу в понедельник.

#aboutwebdev_анонс
👍2🔥2🤯1
Я решил пока отменить текущий конкурс. Проведу его после новогодней суеты.

Но без подарков перед новым годом всё равно не останетесь!

Анонс будет в ближайшее время 🍸
Please open Telegram to view this post
VIEW IN TELEGRAM
100👍1🤯1
Обновление бота для создания своего списка желаний

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

Обновления

Распишу изменения по пунктам.

1) Добавлены кнопки "Поделиться списком", "Поделиться всем списком", "Поделиться"

"Поделиться списком" — позволяет делиться списком желаний текущей страницы.
"Поделиться всем списком" — позволяет делиться полным списком желаний.
"Поделиться" — позволяет делиться отдельным желанием.
P.S. Благодарю Лену за идею с репостами в комментариях. 🥂

2) Переработано добавление нового желания

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

Такое пошаговое добавление информации — уникальная функция, которой пока нет ни в одном другом моём боте. Рад, что удалось реализовать эту задумку.

3) Изменение информации

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

4) Улучшенная навигация

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

5) Информация при репосте списка или желания

Теперь при репосте списка или отдельного желания будет отображаться вся информация:
- статус желания (исполнено или не исполнено);
- заголовок;
- ссылка.

Исходный код

Код проекта с БД: https://github.com/sqlzzy/wishlist-tg-bot-db

#aboutwebdev_личныйпроект #aboutwebdev_боты #aboutwebdev_опенсорс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Ваше мнение

Напишите свое мнение по каналу: что нравится, чего не хватает и что можно добавить?
Буду рад прочитать ваши мнение и пожелания!

Конкурс среди комментаторов

30 декабря среди комментаторов рандом выберет трех человек, которым подарю 300 звезд каждому.
Пост с результатами будет после выбора рандома.
Таков подарок к новому году от админа канала 🍸
Please open Telegram to view this post
VIEW IN TELEGRAM
Итоги конкурса

Отзыв о канале оставил только Сергей, то ему уже отправлены 350 звёзд.

Серёга, благодарю тебя за отзыв!
С наступающим Новым годом!
🔥3👍2
Про 2024 год

Год был волнообразным и насыщенным на события.

Более подробно написал про 2024 год в заметках: https://sqlzzy.dev/notes/2024.html

Она же и первая заметка в моем блоге! ⌨️

Всех с наступающим и с Новым годом! 🎄

#aboutwebdev_блог #aboutwebdev_обо_мне
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Руководства и статьи по TypeScript

С нового года начал плотно изучать TypeScript и его основы основ.

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

Далее нашел еще пару интересных ресурсов: руководство на русском языке и карманный справочник.
В руководстве на русском языке есть еще книга и статьи для более глубокого изучения и JS, и TS.
А в карманном справочнике можно ознакомиться с другими руководствами по языкам программирования.

Все описанные статьи и руководства добавлены на страницу с полезностями: https://library.sqlzzy.dev/
На странице можно найти много ссылок с руководствами, статьями, плейлистами и ресурсами для вдохновения!
Она активно пополняется новинками!

Добавляйте страницу в закладки!

#aboutwebdev_моярекомендация
🔥2
Обновления IT Meetups Bot

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

Новые функции

1) Список всех мероприятий

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

2) Обновленная структура краткой информации

В краткой информации о мероприятии (которая отображается в списке) теперь указаны формат и стоимость билета — чтобы вам было удобнее выбирать.

3) Улучшенная сортировка

Мероприятия теперь сортируются корректно — строго по дате и времени проведения. Больше никакого хаоса!

4) Новые города

География расширяется! По предложению Зара в список добавлены новые города: Челябинск, Пермь, Екатеринбург, Новосибирск и Ульяновск.

5) Кнопка "Поддержать"
Теперь вы можете поддержать проект и мой труд через платформу Boosty.

Что дальше?

Работа над новыми функциями уже ведется. Совсем скоро поделюсь с вами еще большим количеством обновлений!

P.S. Спасибо Зару за ценные идеи и вклад в развитие IT Meetups Bot! 😎

#aboutwebdev_itmeetupsbot #aboutwebdev_личныйпроект #aboutwebdev_боты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
node-schedule: Планировщик задач для Node.js (Часть 1)

Недавно начал изучать планирование и выполнение задач в Node.js и мне встретилась библиотека node-schedule.

node-schedule — это библиотека для планирования и выполнения задач в Node.js, которая позволяет легко настроить выполнение кода по расписанию. Она поддерживает гибкие интервалы (например, каждый день, каждый понедельник, через несколько минут и т.д.), а также предоставляет возможность запускать задачи в определённое время, что делает её полезной для таких сценариев, как регулярные очистки базы данных, отправка уведомлений и выполнение других задач.

Установка


npm install node-schedule


Основные возможности

1. Планирование задач по времени (например, ежедневно в определённый час).
2. Использование cron-выражений для гибкости настройки.
3. Использование JavaScript объектов Date для точного времени выполнения.

Пример


const schedule = require('node-schedule');

// Планирование задачи на определённое время
const job = schedule.scheduleJob('42 * * * *', function(){
console.log('Задача выполняется каждый час на 42-й минуте');
});


Расписание с использованием объекта Date

node-schedule поддерживает использование JavaScript объектов Date, что позволяет точно настроить время выполнения задачи.


const schedule = require('node-schedule');

// Выполнить задачу 1 января 2026 года в 00:00:00
const date = new Date(2026, 0, 1, 0, 0, 0);
const job = schedule.scheduleJob(date, function(){
console.log('Новый год! Выполняем задачу!');
});


Расписание с использованием cron-выражений

node-schedule поддерживает cron-подобные выражения, что позволяет задать сложные расписания для выполнения задач.

Пример cron-выражения:

- * * * * * — каждую минуту.
- 0 0 * * * — каждый день в полночь.
- */5 * * * * — каждые 5 минут.


const schedule = require('node-schedule');

// Выполнить задачу каждый день в полночь
const job = schedule.scheduleJob('0 0 * * *', function(){
console.log('Задача выполняется каждый день в полночь');
});

// Выполнить задачу каждые 5 минут
const job2 = schedule.scheduleJob('*/5 * * * *', function(){
console.log('Задача выполняется каждые 5 минут');
});


Удаление или отмена задачи

Если вам нужно отменить задачу до её выполнения, вы можете использовать метод cancel().


const job = schedule.scheduleJob('*/5 * * * *', function(){
console.log('Эта задача должна выполняться каждые 5 минут');
});

// Остановим задачу через 10 секунд
setTimeout(function(){
job.cancel();
console.log('Задача отменена');
}, 10000);


Повторение задач с интервалами

Можно настроить выполнение задачи через определённые интервалы времени, используя scheduleJob() и JavaScript Date с динамическим расчётом следующего времени для задачи.

Пример: выполнение задачи каждые 5 секунд:

const schedule = require('node-schedule');

// Выполнение задачи через 5 секунд
const job = schedule.scheduleJob('*/5 * * * * *', function(){
console.log('Задача выполняется каждые 5 секунд');
});


Использование параметров при выполнении задач

Вы можете передавать параметры в функцию, которую выполняет задача. Для этого можно использовать замыкания или передавать аргументы через функции.


const schedule = require('node-schedule');

// Пример с параметрами
const job = schedule.scheduleJob('0 0 * * *', function(){
const message = 'Ежедневная задача';
sendNotification(message);
});

function sendNotification(msg) {
console.log(`Уведомление: ${msg}`);
}


#aboutwebdev_js
👍2
node-schedule: Планировщик задач для Node.js (Часть 2)

Обработка ошибок

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


const schedule = require('node-schedule');

const job = schedule.scheduleJob('*/5 * * * *', function(){
try {
// Ваш код
throw new Error("Произошла ошибка!");
} catch (error) {
console.error("Ошибка при выполнении задачи:", error.message);
}
});


Основные методы и API

- scheduleJob(cronPattern, callback) — запланировать задачу с использованием cron-выражения или объекта Date.
- cancel() — отменить задачу, которая ещё не была выполнена.
- reschedule(newCronPattern) — переустановить расписание задачи.
- nextInvocation() — получить дату и время следующего выполнения задачи.

Пример с переустановкой задачи


const schedule = require('node-schedule');

const job = schedule.scheduleJob('*/10 * * * *', function(){
console.log('Задача выполняется каждые 10 минут');
});

// Переустанавливаем задачу для выполнения каждые 15 минут
setTimeout(() => {
job.reschedule('*/15 * * * *');
console.log('Расписание задачи изменено');
}, 30000);


В итоге

node-schedule — это мощный инструмент для планирования и выполнения задач в Node.js. Он удобен, гибок и поддерживает различные способы задания времени для выполнения задач (cron, объекты Date и интервалы). Библиотека полезна для создания приложений, которые требуют регулярных или отсроченных операций, таких как отправка уведомлений, очистка базы данных или выполнение любых других повторяющихся задач.

#aboutwebdev_js
👍3
Обновления 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