Допиливая TG Notion

Допиливая TG Notion

Доска день 2: удаление, шаринг и стартаппарат

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

  • Удаление заметок внутри доски.

  • Удаление самой доски.

  • Кнопка «Поделиться» прямо в доске (а не только при создании).

  • Ссылка, которая открывает доску сразу в Mini App, а не в браузере.

Сначала запилил API для удаления:

javascript

// DELETE /api/boards/:hash/notes/:id const boardNoteDeleteMatch = pathname.match(/^\/api\/boards\/([a-f0-9]+)\/notes\/(\d+)$/); if (boardNoteDeleteMatch && req.method === 'DELETE') { const ok = boardsApi.deleteNote(boardNoteDeleteMatch[1], parseInt(boardNoteDeleteMatch[2])); res.writeHead(ok ? 200 : 404, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ ok })); return; } // DELETE /api/boards/:hash const boardDeleteMatch = pathname.match(/^\/api\/boards\/([a-f0-9]+)$/); if (boardDeleteMatch && req.method === 'DELETE') { const hash = boardDeleteMatch[1]; const board = db.prepare('SELECT id FROM boards WHERE hash = ?').get(hash); if (board) { db.prepare('DELETE FROM board_notes WHERE board_id = ?').run(board.id); db.prepare('DELETE FROM boards WHERE id = ?').run(board.id); } res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ ok: true })); return; }

На фронте добавил контекстное меню (троеточие) для каждой заметки и для самой доски. Чтобы удалять можно было не через API-запросы вручную, а кнопкой.

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

И тут начался пиздец.

Ссылка вида https://tgnotion.bothost.tech/boards/<hash> открывала доску в браузере, а не в Mini App. Надо было сделать так, чтобы она открывалась прямо в Telegram, без лишних переходов.

Сначала попробовал через https://t.me/Telega_notion_bot/boards/<hash> — бот ругался, что приложение не найдено.

Потом через ?startapp=boards_<hash> — бот открывался, но показывал мои личные заметки, а не нужную доску.

Потому что startapp передаёт параметр во фронт, но я его не читал.

Надо было добавить обработку в app2.js:

javascript

const startParam = tg.initDataUnsafe?.start_param || new URLSearchParams(location.search).get('tgWebAppStartParam'); if (startParam?.startsWith('boards_')) { viewBoard(startParam.slice('boards_'.length)); }

Теперь ссылка формата https://t.me/Telega_notion_bot?startapp=boards_%3Chash%3E сразу открывает нужную доску в Mini App. Без браузера, без лишних кликов.

А ещё мы почти сделали доску прямо в чате.

Идея: бот отправляет в чат сообщение с названием доски и списком заметок. Под сообщением кнопки: «Добавить заметку», «Удалить», «Обновить». При нажатии бот обновляет это же сообщение.

Это не Mini App, но доска висит в чате как живое сообщение. Прямо там можно работать. Технически это возможно через editMessageText и инлайн-клавиатуру.

Пока оставил на потом. Но идея крутая — сделаю как-нибудь на досуге.

Итог дня:

  • Удаление заметок и досок — есть.

  • Кнопка «Поделиться» внутри доски — есть.

  • Ссылка открывает доску сразу в Mini App — есть.

  • Доска в чате — в планах.

Особая благодарность @Vijay Taitoo ☭ за свежий взгляд и помощь.
Коллективный интеллект иногда решает быстрее, чем ИИ.

Тестируй:
https://t.me/Telega_notion_bot

ИТ-проекты пикабушников

767 постов3.5K подписчиков

Правила сообщества

0. Запрещены посты вне тематики сообщества

1. Уважайте труд людей, пишите только конструктивную критику,

2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

Недвижимость и ремонт

Теги

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

Сообщества