🇵🇱 Дедлайн по e-PIT всё ближе ⏳ Поддержите devby из уже уплаченных налогов 💙
Support us

Разработчик сделал бота для Маяка Минска с 400+ объектами. Код на гитхабе

Разработчик Илья Зверев всего за 3 недели сделал телеграм-бота для района Маяк Минска, включив в него информацию по 400+ объектам. Всю самую сложную работу по сбору данных Илья переложил на свой бот — и поделился результатом в блоге и комментариях для dev.by. Спойлер: проект опенсорсный, поэтому кто угодно может сделать похожего бота для своего района. 

9 комментариев
Разработчик сделал бота для Маяка Минска с 400+ объектами. Код на гитхабе

Разработчик Илья Зверев всего за 3 недели сделал телеграм-бота для района Маяк Минска, включив в него информацию по 400+ объектам. Всю самую сложную работу по сбору данных Илья переложил на свой бот — и поделился результатом в блоге и комментариях для dev.by. Спойлер: проект опенсорсный, поэтому кто угодно может сделать похожего бота для своего района. 

Разработчик рассказал, что в Маяке Минска три ТЦ, не считая Dana Mall, плюс магазины и заведения в подвалах почти каждого дома — «запомнить невозможно, хочется нарисовать карту».

Вместо карты Илья за три недели написал телеграм-бота. Это удобнее, чем интерактивная карта, считает автор.

— Во-первых, интерактивная карта с маркерами — признак ленивого интерфейса. Всегда можно придумать лучший интерфейс, который не будет заставлять человека таскать картинки по экрану. Во-вторых, веб не нужен. Жизнь уходит из страничек в браузере, они — для чтения лонгридов. А люди тыкают в экраны телефонов. Делать проекты нужно там, где живёт твоя целевая аудитория. Ларёк с мороженым лучше открывать на пляже, а не в музее. Указания, куда пройти, — с собой, а не дома на компьютере. Ну и просто интерфейс телеграма — отличный вызов для картографического приложения.

Что делает бот:

  • ищет заведения по ключевым словам;
  • выдаёт карту района, нарисованную поверх спутникового снимка;
  • подсказывает подъезд и этаж по номеру квартиры для всех домов.

Для каждого заведения в боте можно найти не только обычные данные вроде времени работы и адресов сайтов, но также мини-карту и две фотографии: с улицы и изнутри. Всё это Илья собрал за неделю для четырёхсот магазинов, заведений и организаций (осталось около сотни, которые собеседник dev.by планирует обойти в ближайшие выходные).

«Переложить всю сложную работу на бота»

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

Этому предшествовала встреча: однажды Илья познакомился на улице с девушкой, которая занималась тем же — собирала данные о заведениях для своего бота. Она пошутила, что в отличие от неё у Зверева, похоже, куча свободного времени. Разработчик задумался над её словами, вспомнил свой десятилетний опыт рисования карты OpenStreetMap и решил, что сделал правильно, отказавшись от двухэтапного картирования. Потому что «гулять по району весело, а вносить потом часами данные — не очень». 

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

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

— Вводить «https://» муторно — пусть бот сам превращает «Ttn. By» в «https://ttn.by». Не ждём точек с запятой и дефисов, позволяем пробелы и запятые. Вместо ввода номера дома предлагаем выбор из ближайших адресов. Ну и так далее: не нужно заставлять человека делать работу, с которой справится машина, — отмечает он.

Так разработчик собирал по 60-100 заведений в день, около 15 в час. Причём не только переписывал данные, но и общался с сотрудниками заведений (многим он раздал визитки бота). «На районе около полутысячи заведений — знай я это заранее, дважды бы подумал, запуская проект».

Базовые операции в вебе и редактор точек в GeoJSON

В процессе работы возникли ещё трудности: так Илья «разочаровался в сложности базовых операций в вебе». 

— Получить числа координат для прямоугольника просто, это можно сделать на нескольких сайтах (например, здесь), а скопировать координаты одной точки — нет. Специальные сайты писались 7-8 лет назад и все сломались. А использовать для этого osm.org, где нужно открывать панель, ставить галочку, нажимать Ctrl+C… Линукс-версия телеграма не позволяет прикреплять координаты, поэтому пришлось писать свой сайт на замену. Очень простой: двигаешь карту, нажимаешь кнопку, вставляешь куда нужно.

Чем разработчик по-настоящему гордится — редактором точек в GeoJSON, которым пользуется для «причёсывания» базы заведений бота. 

— Классические редакторы типа geojson.io, uMap, QGIS не катят: чтобы отредактировать точку, нужно ползать по таблицам, двигать мышкой, нажимать «сохранить». Здесь же всё супер-просто: двойной клик для создания точки, все свойства — простым текстом типа «name Название», по примеру Level0. Поэтому копипаст пачки атрибутов вообще не проблема. Есть фильтр а-ля поиск в JOSM, всё сохраняется автоматически и можно восстановить, если закроешь вкладку. Никаких меню и не больше шести кнопок на экране, — отмечает Илья.

Что будет с ботом, если разработчик съедет?

Бот опубликован на гитхабе, к нему прилагается документация в пяти частях на русском языке. В ней разработчик описал весь процесс: от обхода подъездов и установки бота до сбора заведений и администрирования. «Если не считать русского языка, сообщения на котором разбросаны по коду, бот не привязан ни к каким атрибутам моего района», — отмечает Илья. 

Что будет с ботом, если разработчик решит вдруг съехать с Маяка Минска, — кто будет обновлять данные. Илья честно отвечает: «Не знаю». Под любым заведением в боте есть кнопка «Поправить», можно также добавить новое. Но автор резонно полагает, что никто этим заниматься не будет.

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

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

Поддержите редакцию 1,5% налога: бесплатно и за 5 минут

Как помочь, если вы в Польше

Читайте также
«Потерял веру в индустрию и себя». Инженер-конструктор вошёл в ИТ, поработал в «Яндексе», гемблинге и на американцев. Решил, что с него хватит
«Потерял веру в индустрию и себя». Инженер-конструктор вошёл в ИТ, поработал в «Яндексе», гемблинге и на американцев. Решил, что с него хватит
«Потерял веру в индустрию и себя». Инженер-конструктор вошёл в ИТ, поработал в «Яндексе», гемблинге и на американцев. Решил, что с него хватит
О своих карьерных зигзагах с открытым финалом рассказывает Кастусь, который до начала 2026 года работал в Польше QA-инженером на американскую Aras Corporation:
6 комментариев
Бросил школу — и устроился в OpenAI: разраб-зумер о том, как попасть в бигтех без диплома
Бросил школу — и устроился в OpenAI: разраб-зумер о том, как попасть в бигтех без диплома
Бросил школу — и устроился в OpenAI: разраб-зумер о том, как попасть в бигтех без диплома
«Польша уже не та». 20 советов человеку, который собирается переехать, от бывалых мигрантов
«Польша уже не та». 20 советов человеку, который собирается переехать, от бывалых мигрантов
«Польша уже не та». 20 советов человеку, который собирается переехать, от бывалых мигрантов
Dzik собрал ответы из своего Threads. Получилось разнообразно!
19 комментариев
Варшава или маленький городок? Семья переехала из Ольштына  — нашла 10+ отличий (неоднозначно!)
Варшава или маленький городок? Семья переехала из Ольштына — нашла 10+ отличий (неоднозначно!)
Варшава или маленький городок? Семья переехала из Ольштына — нашла 10+ отличий (неоднозначно!)
Читательница Dzika прожила два года в Ольштыне — городе на 166 тысяч человек — но прошлым летом переехала в Варшаву из-за работы партнёра. Она поделилась с каналом своими размышлениями о том, где лучше жить.
4 комментария

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.