av 57969411d5 memos: встроенные картинки вырезаются из текста заметки
С memos 26.10 картинку-вложение можно вставить прямо в текст: в content
попадает markdown-ссылка ![alt](/file/attachments/{uid}/...), а вложение
остаётся в attachments. remembos выводит текст как есть, поэтому в боте и
на странице появлялась нечитаемая ссылка, а в Telegram она ещё и съедала
лимит подписи к фото.

Memo.ContentWithoutInlineImages убирает такие ссылки, если они ведут на
картинки-вложения самой заметки: картинка и так показывается среди
вложений. Чужие и внешние картинки, ссылки на прочие вложения и блоки
кода не трогаются.
2026-11-01 12:49:16 +03:00
2026-02-12 11:26:42 +03:00
2026-02-12 10:24:48 +03:00

Remembos

Проект для получения прошлых заметок из сервиса Memos (https://github.com/usememos/memos), чтобы они были как воспоминания о прошлых событиях.

Проект состоит из двух частей:

  • Telegram Bot. Бот, который каждый день присылает одно воспоминание
  • web-сервис с одной страницей, где можно увидеть одно воспоминание

Спецификации

Сборка и деплой

Команды проекта — через Task, список: task --list.

Перед коммитом lefthook запускает golangci-lint (конфиг lefthook.yml). В свежем клоне хуки ставятся командой task hooks. Линтер должен быть собран той же версией Go, что и проект: после обновления Go его надо переустановить (go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest), иначе он падает на чтении стандартной библиотеки.

Деплоем занимается плейбук playbook-remembos.yml в pet-project-server: роль app_image собирает образ локально этим репозиторием и везёт его на сервер через docker save/load — реестр не участвует.

Контракт роли — задача image: она получает BUILD_ID через окружение и собирает remembos:$BUILD_ID. Без переменной (task image) собирается remembos:dev для локальной работы.

Стек

  • Go — основной язык
  • SQLite — хранение истории показов и кэша запросов
  • Memos API — источник заметок

Настройки

Memos

Исходный код в директории memos-source (не в репозитории, клонировать с GitHub) Справка API: https://usememos.com/docs/api Ломающие изменения API: memos-source/proto/api/CHANGELOG.md

Memos ломает API между релизами, поэтому клиент (internal/memos) говорит на нескольких диалектах: таблица dialects в internal/memos/dialect.go. По умолчанию (memos.api = "auto") диалект выбирается по версии из GET /api/instance/profile и перевыбирается, если API ответил 404/410: так обновление memos подхватывается без перезапуска. Поэтому порядок деплоя такой: сначала remembos с поддержкой нового диалекта, потом memos.

S
Description
No description provided
Readme
203 KiB
0 Stars 1 Watchers 0 Forks
v0.2.0
Latest
2026-04-30 13:17:35 +00:00
Languages
Go 95.8%
HTML 3.7%
Dockerfile 0.5%