Integrate the Pling/OCS REST API (appimagehub.com) as the primary catalog source with richer metadata than the existing appimage.github.io feed. Backend: - Add OCS API fetch with pagination, lenient JSON deserializers for loosely typed numeric fields, and non-AppImage file filtering (.dmg, .exe, etc.) - Database migration v17 adds OCS-specific columns (ocs_id, downloads, score, typename, personid, description, summary, version, tags, etc.) - Deduplicate secondary source apps against OCS entries - Shrink OCS CDN icon URLs from 770x540 to 100x100 for faster loading - Clear stale screenshot and icon caches on sync - Extract GitHub repo links from OCS HTML descriptions - Add fetch_ocs_download_files() to get all version files for an app - Resolve fresh JWT download URLs per slot at install time Detail page: - Fetch OCS download files on page open and populate install SplitButton with version dropdown (newest first, filtered for AppImage only) - Show OCS metadata: downloads, score, author, typename, tags, comments, created/updated dates, architecture, filename, file size, MD5 - Prefer ocs_description (full HTML with features/changelog) over short summary for the About section - Add html_to_description() to preserve formatting (lists, paragraphs) - Remove redundant Download link from Links section - Escape ampersands in Pango markup subtitles (categories, typename, tags) Catalog view: - OCS source syncs first as primary, appimage.github.io as secondary - Featured apps consider OCS download counts alongside GitHub stars UI: - Add pulldown-cmark for GitHub README markdown rendering in detail pages - Add build_markdown_view() widget for rendered markdown content
59 lines
1.1 KiB
TOML
59 lines
1.1 KiB
TOML
[package]
|
|
name = "driftwood"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[dependencies]
|
|
gtk = { version = "0.11", package = "gtk4", features = ["v4_16"] }
|
|
adw = { version = "0.9", package = "libadwaita", features = ["v1_7"] }
|
|
glib = "0.22"
|
|
gio = "0.22"
|
|
|
|
# Database
|
|
rusqlite = { version = "0.33", features = ["bundled"] }
|
|
|
|
# CLI
|
|
clap = { version = "4", features = ["derive"] }
|
|
|
|
# File hashing
|
|
sha2 = "0.10"
|
|
|
|
# Time
|
|
chrono = "0.4"
|
|
|
|
# XDG directories
|
|
dirs = "6"
|
|
|
|
# Human-readable sizes
|
|
humansize = "2"
|
|
|
|
# HTTP client (sync, lightweight - for update checks)
|
|
ureq = { version = "3", features = ["json"] }
|
|
|
|
# JSON parsing
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
# Logging
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
|
|
# Temp directories (for AppImage extraction)
|
|
tempfile = "3"
|
|
|
|
# XML parsing (for AppStream metainfo)
|
|
quick-xml = "0.37"
|
|
|
|
# Desktop notifications
|
|
notify-rust = "4"
|
|
|
|
# File system watching (inotify)
|
|
notify = "7"
|
|
|
|
# Markdown parsing (for GitHub README rendering)
|
|
pulldown-cmark = "0.12"
|
|
|
|
[build-dependencies]
|
|
glib-build-tools = "0.22"
|