Timmy Welch
4b91c400b5
Add more metrics
...
ids: ID Count
consistent_ids: ID Count == A Hash Count
consistent_hashes: A Hash Count == D Hash Count == P Hash Count
2026-11-05 16:29:43 -08:00
Timmy Welch
55de1f70bf
Update commands for non-blocking logging
2026-11-05 16:29:43 -08:00
Timmy Welch
7bc53e8408
Add CHDB compaction
...
Compact the bolt database on shutdown to reclaim the space freed
by deleted entries
2026-11-05 16:29:43 -08:00
Timmy Welch
978f19b1f6
Add a hash conversion command
...
Add cmd/convert to convert legacy V2 hash files to the V3 format
2026-11-05 16:29:43 -08:00
Timmy Welch
5206c6d57c
Add and update tests for V3 hashes
2026-11-05 16:29:43 -08:00
Timmy Welch
c98784ea1d
Update storage for V3 hashes
...
Backends use the V3 hashes and ids loaded in place instead of
building a separate runtime IDMap
2026-11-05 16:29:43 -08:00
Timmy Welch
b1aa8d5bd3
Serve hashes as x-image-hash-db+gzip
2026-11-05 16:29:43 -08:00
Timmy Welch
3bc88f961f
Full re-scrape of comicvine
2026-11-05 16:29:43 -08:00
Timmy Welch
04c06b072a
Implement the V3 binary saved hashes format
...
Load hash files in place instead of decoding msgpack or json
Drop the --save-format flag since there is only one format
2026-11-05 16:29:10 -08:00
Timmy Welch
1519a0adcb
Define the SavedHashesV3 types
...
V3 uses fixed-size records so a saved file can be loaded in place
and used directly instead of being decoded into new structures
2026-11-05 16:29:08 -08:00
Timmy Welch
13e9858d92
Remove the NewIDs type
2026-11-05 16:29:06 -08:00
Timmy Welch
b85659a845
Remove IDList
...
Use a slice instead
2026-11-05 16:29:01 -08:00
Timmy Welch
3cbec4606b
Rename BasicMap to Basic
...
Keep BasicMap as an alias for CLI flags
Fix the unknown storage type error message
2026-11-05 16:28:59 -08:00
Timmy Welch
1129ff6f7a
Rename SavedHashes to SavedHashesV2
2026-11-05 16:28:57 -08:00
Timmy Welch
c21f55dac7
Improve error handling in matchCoverHash
2026-11-05 16:28:55 -08:00
Timmy Welch
d720d02911
Use a bounded context for graceful shutdown
2026-11-05 16:28:53 -08:00
Timmy Welch
37d7532706
Rework the channel pipeline for hashing images
2026-11-05 16:28:51 -08:00
Timmy Welch
ffc0261ace
Fix HashServer
...
Use appropriate digest header caches
Name fixups
Encode hashes with pgzip and a buffered writer
Add --use-all-checksums for faster default exports
Only create the hash server when hash saving is enabled
2026-11-05 16:28:49 -08:00
Timmy Welch
132bf95205
Add tests for HashServer
2026-11-05 16:28:44 -08:00
Timmy Welch
e374614124
Move hashing code into ch/ and comic-hasher to the repo root
...
So `go install gitea.narnian.us/lordwelch/comic-hasher@latest` works
2026-11-05 16:28:41 -08:00
Timmy Welch
d3975a7f0b
Make the max url parameter optional
...
Default max to 8 when the parameter is not given
2026-11-05 16:28:39 -08:00
Timmy Welch
8a0cf77ea4
Metron tests
2026-11-05 16:28:36 -08:00
Timmy Welch
af32f6bef3
Implement metron downloader
2026-11-05 16:28:33 -08:00
Timmy Welch
f66878b856
Fixup cv
2026-11-05 16:28:30 -08:00
Timmy Welch
7943f98f02
Format ids with %#v in debug output
...
Print the source domain and id with %#v so debug output is
unambiguous instead of the plain String representation
2026-11-05 16:28:28 -08:00
Timmy Welch
dbd7b86cd4
Separate image downloading into a separate package
...
Extract the image download worker from the ComicVine downloader
Move the image download worker out of the ComicVine downloader so
that any source can share one download path. The ComicVine downloader
now sends downloads to the shared workers and the workers send
finished downloads to the download processor.
2026-11-05 16:28:07 -08:00
Timmy Welch
32109308d4
Intermediate between state between Fix writing hashes and V3
...
Update ID Group implementation to use slices instead of maps
Uses a slice of IDs and uses the insertion index as a reference to the ID
VP-tree:
Fix returning 0 for the distance for matches
Fix discarding exact matches
Explicitly mark hash slices as unused
SQLite: Decode saved hashes for debugging/testing
Fix sqlite and vptree implementations
2026-11-05 16:28:04 -08:00
Timmy Welch
35b6e1c2d6
Add Storage tests
2026-11-05 16:28:01 -08:00
Timmy Welch
ebd2b28e5a
Make a generic OpenBolt wrapper
...
Panic if an invalid path is given to CHDB.
Invalid means it must be relative and the first component of the path
must already exist
2026-11-05 16:27:58 -08:00
Timmy Welch
2a03fa93c2
Migrate packages to custom log package
...
Use os.Exit in place of log.Fatal
Register a -log-level flag mapping loggers onto levels
2026-11-05 16:27:55 -08:00
Timmy Welch
15a1510cbb
Add a leveled logging package
...
Write through a diode queue so a slow writer never blocks the
caller
Aliases allow multiple loggers to have their level set at the same time
The "main" logger is a default normal logger "" is rewritten to "main"
The ALL pseudo-logger controls the default logger level
FormatInt formats human readable numbers
Supply a flag.Value for parsing a cli flag
logger names preserve case. Prefer functions over setting values directly
Tests are included
2026-11-05 16:27:52 -08:00
Timmy Welch
aa7bf3c2af
go fmt
2026-11-02 15:19:36 -08:00
Timmy Welch
5d3bed547f
Fix writing hashes
...
Write to the gzip writer
Fix renaming the new file onto the old hashes
2026-09-28 16:54:50 -07:00
Timmy Welch
5b26690994
Improve map performance
2026-09-23 12:55:43 -07:00
Timmy Welch
f3e0c9f49a
Fix id check
2026-09-06 16:19:27 -07:00
Timmy Welch
f5e22f2e1d
Stop overwriting results
2026-09-06 15:46:58 -07:00
Timmy Welch
a9338fe930
Fix compression order for downloading hashes
2026-09-06 15:25:08 -07:00
Timmy Welch
60d25d43f5
Remove duplicate matches
2026-09-06 13:29:39 -07:00
Timmy Welch
9abcf09457
Use a smaller struct for basic map
...
Memory savings 377MB -> 331MB
Search may be faster GC appears to be skewing results
2026-09-06 01:42:19 -07:00
Timmy Welch
c19c006057
Compress hashes
2026-09-03 13:25:08 -07:00
Timmy Welch
52a16df180
Reduce log spam
2026-09-03 05:55:14 -07:00
Timmy Welch
b25fb04a46
Fix hashServer initialization
2026-09-03 04:48:27 -07:00
Timmy Welch
5f02fdecff
Fix downloader failing to continue when comic counts don't match
2026-09-03 03:59:44 -07:00
Timmy Welch
b4a5c0d22f
Allow downloading 60 pages at a time
...
Allows the full site to be scraped in a week instead of 1.5 months
2026-09-03 03:59:44 -07:00
Timmy Welch
460c66aea0
Automatically remove the CHDB file
2026-09-03 03:56:40 -07:00
Timmy Welch
acafe20bda
Add metrics
2026-09-03 03:32:11 -07:00
Timmy Welch
8bcecfa307
Fix performance
2026-09-03 03:24:12 -07:00
Timmy Welch
dcccbcfb60
fixup
2026-09-02 20:53:38 -07:00
Timmy Welch
f7e42f3171
Fix ID's not getting added to basicmap
2026-09-02 18:42:56 -07:00
Timmy Welch
9ba007645f
Rearrange logs
2026-05-17 18:29:03 -07:00