This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
go build -o dist/ ./cmd/...go tool golangci-lint rungo fmt ./...go test ./... -v -coverprofile=coverage.txt -covermode=atomicIMPORTANT: After making any code changes, always run the following commands in order to ensure code quality:
- Format code:
go fmt ./... - Run tests:
go test ./... -v - Run linter:
go tool golangci-lint run - Build project:
go build -o dist/ ./cmd/...
This workflow ensures that all code changes are properly formatted, tested, and free of linting errors before committing.
This is a Go-based RSS feed filtering and modification service that:
- Fetches RSS feeds and parses them using
github.com/mmcdole/gofeed - Applies filters to RSS items based on query parameters (title, description, link, author matching)
- Applies modifiers to transform RSS items (remove description/content)
- Converts and serves the filtered feed using
github.com/gorilla/feeds
- Main HTTP server (
cmd/ff/main.go) - Listens on port 8080, handles environment variables for muting authors/URLs - Filter system (
filter.go,filterFn.go) - Provides filtering functions for RSS items based on various criteria - Modifier system (
modifier.go,modifierFn.go) - Provides modification functions to transform RSS items - Converter (
converter.go) - Converts between gofeed and gorilla/feeds formats - Query parser (
func.go) - Parses URL query parameters into filter and modifier functions
- Uses Go workspaces with two modules: root module and
tools/module - The
tools/module contains golangci-lint for linting - Go version: 1.24.3 (workspace), 1.16 (main module)
MUTE_AUTHORS- Comma-separated list of authors to filter outMUTE_URLS- Comma-separated list of URLs to filter outLATEST_ONLY- When set, applies latest-only filters for published_at and updated_at