Commit Graph

23 Commits

Author SHA1 Message Date
ytshen
fe1196264b chore: add target z version 2026-04-12 13:24:25 +08:00
ytshen
5cb3cd9794 feat: validate addon tags in ci 2026-04-12 12:59:26 +08:00
ytshen
adcb028cfe feat: add recommended flag with priority sorting
- Add `recommended` field to AddonInfo model (omitted from output when false)
- Rename `_load_repo_tags` to `_load_repo_config` to load all addon metadata
- Sort output: recommended addons first, then by stars descending
- Mark 5 initial recommended addons: zotero-pdf-translate, zotero-better-notes,
  zotero-better-bibtex, jasminum, paper-chat-for-zotero
- Add 4 test cases for recommended field serialization and deserialization

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 11:51:32 +08:00
ytshen
21bd6bd625 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>
2026-04-11 11:23:53 +08:00
syt
7e5ef0db1b Retry cached releases that failed due to download errors
Previously, releases cached with parse_success=False were never
re-attempted. Now "Download failed" entries are excluded from
checked tags so they get retried on the next run.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 15:04:24 +08:00
syt
b3c1a3b415 Fix XPI download failure when release tag contains slashes
Tags like "zotero-plugin/v0.9.0" contain "/" which broke the download
filename path construction, causing the file write to target a
non-existent subdirectory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 14:15:35 +08:00
ytshen
7231d7767f feat: add support for zotero 9 2026-02-24 16:22:41 +08:00
ytshen
77c19527e5 fix: update gh-proxy url 2026-02-10 20:44:38 +08:00
ytshen
8188f916d6 fix: specify version enumrate 2025-12-30 18:37:30 +08:00
ytshen
c2549cc945 fix: sort releases by addon_version instead of published_at 2025-12-30 17:57:28 +08:00
ytshen
5b6bea949b fix: use overlap check for version compatibility 2025-12-30 17:45:07 +08:00
ytshen
f2511f188c feat: use lenient version matching for compatibility check
Use target="7.*" instead of "7.0" to match any version in the
major version series. This allows plugins with min=7.5.0 to still
appear in the Zotero 7 compatible list.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 17:28:06 +08:00
ytshen
0933835c2f refactor: simplify addon config to filename-based format
- Change addon configs from JSON files to empty files
- Filename format: owner@repo (e.g., syt2@zotero-addons)
- Parse repo from filename instead of reading JSON content
- Remove json import from cache_builder.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 19:19:41 +08:00
ytshen
5c5ac88e60 disable delete release 2025-12-24 11:27:38 +08:00
ytshen
680094b87d revert: remove pagination, only fetch first 100 releases 2025-12-24 10:25:57 +08:00
ytshen
9d489247f2 fix: add pagination for releases API and simplify update_url check
1. get_releases() now fetches all pages (up to 1000 releases)
2. Remove redundant _check_for_updates() that ran on every release
3. Only check update_url for the latest cached release via
   _check_latest_release_update_url()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 10:14:56 +08:00
ytshen
c700b3b03a fix: correct Zotero version compatibility check logic
Use proper version comparison instead of just major version.
Now correctly handles cases like min=6.999 which should not be
compatible with Zotero 6 (since 6.0 < 6.999).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:55:38 +08:00
ytshen
678a74e80b add support for z8 2025-12-23 19:17:42 +08:00
ytshen
01beebb517 feat: check latest release's update_url for updates on cached repos
- Add update_url field to CachedRelease to persist update URL in cache
- Add get_latest_release() method to RepoCache for retrieving newest release
- Add _check_latest_release_update_url() to check for updates even when
  no new GitHub releases exist
- Now checks update_url on every run, not just when parsing new releases

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:04:50 +08:00
ytshen
7d17888be8 fix: only update last_checked when cache actually changes
Avoid unnecessary file modifications by only updating last_checked
when there are new releases added or old releases deleted.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:33:57 +08:00
ytshen
f4ee14d893 refactor: add update url for xpis 2025-12-23 18:19:59 +08:00
ytshen
e3e5025d84 use all release xpis cache 2025-12-23 17:43:15 +08:00
ytshen
dc2d1bd336 refactor: refactor proj 2025-12-23 16:22:54 +08:00