| name | blogwatcher-cli |
|---|---|
| description | Use when managing or interacting with favorite blogs via the BlogWatcher CLI—adding/removing blogs, scanning for new posts, listing articles, marking read/unread, or modifying related CLI behavior, scanning, storage, and tests. |
- Use the Cobra entry point in
cmd/blogwatcher/main.goandinternal/cli/. - Route business logic through
internal/controllerand persistence throughinternal/storage. - Use scanning pipeline packages in
internal/scanner,internal/rss, andinternal/scraper. - Remember the default SQLite path is
~/.blogwatcher/blogwatcher.dband is created on demand.
- Run locally with
go run ./cmd/blogwatcher .... - Build with
go build ./cmd/blogwatcher.
- Add or adjust CLI commands in
internal/cli/commands.go(Cobra options, arguments, output formatting). - Put non-trivial logic in
internal/controllerso the CLI stays thin and testable. - Update storage or schema in
internal/storage/database.goand adjust model conversion ininternal/modelif needed. - Modify scanning behavior in
internal/scannerand its helpers (internal/rss,internal/scraper). - Update or add tests under
internal/orcmd/for every feature change or addition.
- Run tests with
go test ./.... - If you add a feature, add tests and any necessary dummy data.
- Keep tests focused on CLI behavior, controller logic, and scraper/RSS parsing outcomes.
- Preserve user-friendly CLI output with colors and clear errors.
- When listing posts available for reading, always include the link to each post in the output.
- Keep error handling consistent with existing exceptions (
BlogNotFoundError,BlogAlreadyExistsError,ArticleNotFoundError).
Unread articles (2):
[12] [new] Understanding Click Contexts
Blog: Real Python
URL: https://realpython.com/click-context/
Published: 2025-11-02
[13] [new] Async IO in Practice
Blog: Test & Code
URL: https://testandcode.com/async-io-in-practice/