No description
Find a file
2026-08-22 18:53:08 +00:00
updater more playlist wip 2026-08-22 12:52:33 -06:00
catalog.go add id to filter attributes 2026-06-14 13:48:35 -06:00
filter.go search/filter updates; adding note and seen fields to media 2026-08-10 12:36:38 -06:00
go.mod homogenize sqlite3 versions 2026-05-09 11:44:28 -06:00
go.sum homogenize sqlite3 versions 2026-05-09 11:44:28 -06:00
LICENSE Initial commit 2025-03-18 15:01:17 -06:00
media.go fix: only add offset when > 0 2026-08-12 13:49:29 -06:00
README.md name change 2026-04-07 19:28:21 -06:00
RELEASE_NOTES.md more playlist wip 2026-08-22 12:52:33 -06:00
restore.go removing dependablt and workdlow; gofmt and lint updates 2026-04-20 10:29:30 -06:00

thrasher-media-catalog

The Catalog is the component of the Thrasher Media Service suite which provides faceted classification (i.e. "tagging"), querying, and metadata management of a media collection.

Unless you are planning to develop a new application which uses this library, you're probably not interested in this repo. You probably want either the service (linked earlier) or the Tool.

Catalog docs

It is implemented in two parts:

  • tmc, a package which provides read-only operations to an in-memory copy of the catalog database
    • Any instances of tmc.Catalog which use the same DB name will share memory cache, decreasing startup time and resource usage
  • tmcu, a package which handles all update operations to the on-disk catalog database

This split makes data integrity easy, as applications which do not need write access to the catalogue simply should not import the updater package.

Config file

To make things easier, all components of Thrasher use a common config file. It is documented under the Tool.

Instantiate a catalog instance

conf, err = tmc.ReadConfig()
cat, err = tmc.New(conf, "DBNAME")
if err != nil {
        fmt.Printf("error creating catalog: %s", err)
        os.Exit(1)
}
defer cat.Close()