feat: add tags support for addon categorization

- Add `tags` field to AddonInfo model with serialization support
- Add `_load_repo_tags()` to CacheScraper to read tags from addon files
- Populate 160 addon files with curated tags using 8 categories:
  ai, metadata, reader, notes, attachment, interface, integration, utility
- Add test cases for tags field in AddonInfo model

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ytshen 2026-04-11 11:23:53 +08:00
parent 0109f7221b
commit 21bd6bd625
163 changed files with 208 additions and 33 deletions

View File

@ -0,0 +1 @@
{"tags": ["notes"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -1 +1 @@
{"tags": ["attachment"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["notes", "ai"]}

View File

@ -0,0 +1 @@
{"tags": ["utility"]}

View File

@ -1 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -1 +1 @@
{"tags": ["reader"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["ai", "notes"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -1 +1 @@
{"tags": ["utility"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["reader"]}

View File

@ -0,0 +1 @@
{"tags": ["reader"]}

View File

@ -1 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["attachment"]}

View File

@ -0,0 +1 @@
{"tags": ["reader"]}

View File

@ -0,0 +1 @@
{"tags": ["ai", "interface"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata", "reader"]}

View File

@ -1 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["notes"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -1 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -1 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["attachment"]}

View File

@ -1 +1 @@
{"tags": ["integration", "metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["attachment"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["attachment"]}

View File

@ -0,0 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["reader"]}

View File

@ -0,0 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -1 +1 @@
{"tags": ["ai", "notes"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["notes"]}

View File

@ -1 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["integration", "ai"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -1 +1 @@
{"tags": ["reader"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -1 +1 @@
{"tags": ["ai", "reader"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -1 +1 @@
etShaw-zh/zotero-career-tracker
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["attachment"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -1 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["attachment"]}

View File

@ -0,0 +1 @@
{"tags": ["notes"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -1 +0,0 @@

View File

@ -0,0 +1 @@
{"tags": ["reader"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["interface"]}

View File

@ -0,0 +1 @@
{"tags": ["reader"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -1 +1 @@
{"tags": ["ai"]}

View File

@ -1 +1 @@
{"tags": ["utility"]}

View File

@ -1 +1 @@
{"tags": ["ai"]}

View File

@ -1 +1 @@
{"tags": ["reader"]}

View File

@ -1 +1 @@
{"tags": ["interface"]}

View File

@ -1 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["attachment"]}

View File

@ -1 +1 @@
{"tags": ["ai", "metadata"]}

View File

@ -1 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

View File

@ -0,0 +1 @@
{"tags": ["integration"]}

View File

@ -0,0 +1 @@
{"tags": ["ai"]}

View File

@ -0,0 +1 @@
{"tags": ["metadata"]}

Some files were not shown because too many files have changed in this diff Show More