Skip to content

Latest commit

 

History

History
123 lines (113 loc) · 16.2 KB

File metadata and controls

123 lines (113 loc) · 16.2 KB

API Documentation (IPC Reference)

Generated from src/main/ipc/channels.ts and handler registrations. For usage patterns (React Query, security narrative, bridge overview), see API Guide.

Channel index

Channel Token Args (Zod) Idempotent Handler Notes
api:search-remote-tags API.SEARCH_REMOTE z.tuple([ z.string().trim().min(2), z.enum(["rule34", "gelbooru"]).optional(), ]) no ArtistsController src/main/ipc/controllers/ArtistsController.ts
app:check-for-updates APP.CHECK_FOR_UPDATES [] (no args) no updater-service src/main/services/updater-service.ts
app:download-file APP.DOWNLOAD_FILE No handle registration found (event channel or registered outside scanned paths).
app:get-db-location APP.GET_DB_LOCATION [] (no args) no SystemController src/main/ipc/controllers/SystemController.ts
app:get-icon-path APP.GET_ICON_PATH z.tuple([z.enum(["light", "dark"]).optional()]) no SystemController src/main/ipc/controllers/SystemController.ts
app:get-settings-status SETTINGS.GET [] (no args) yes SettingsController Returns IPC-safe settings (no API key plaintext). Idempotent; cached until save.
app:get-version APP.GET_VERSION [] (no args) no SystemController src/main/ipc/controllers/SystemController.ts
app:logout APP.LOGOUT [] (no args) no AuthController src/main/ipc/controllers/AuthController.ts
app:open-external APP.OPEN_EXTERNAL z.string().url().min(1) no ViewerController src/main/ipc/controllers/ViewerController.ts
app:quit APP.QUIT [] (no args) no SystemController src/main/ipc/controllers/SystemController.ts
app:quit-and-install APP.QUIT_AND_INSTALL [] (no args) no updater-service src/main/services/updater-service.ts
app:save-settings SETTINGS.SAVE z.tuple([SaveSettingsSchema]) no SettingsController src/main/ipc/controllers/SettingsController.ts
app:start-download APP.START_UPDATE_DOWNLOAD [] (no args) no updater-service src/main/services/updater-service.ts
app:verify-creds APP.VERIFY_CREDS z.tuple([z.enum(["rule34", "gelbooru"]).optional()]) no AuthController src/main/ipc/controllers/AuthController.ts
app:write-to-clipboard APP.WRITE_CLIPBOARD z.tuple([z.string().min(1)]) no SystemController src/main/ipc/controllers/SystemController.ts
backup:getSchedule BACKUP.GET_SCHEDULE [] (no args) yes MaintenanceController src/main/ipc/controllers/MaintenanceController.ts
backup:integrity-check BACKUP.INTEGRITY_CHECK [] (no args) yes MaintenanceController src/main/ipc/controllers/MaintenanceController.ts
backup:setSchedule BACKUP.SET_SCHEDULE z.tuple([AutoBackupIntervalSchema]) no MaintenanceController src/main/ipc/controllers/MaintenanceController.ts
blacklist:add BLACKLIST.ADD z.tuple([blacklistTagSchema]) no BlacklistController src/main/ipc/controllers/BlacklistController.ts
blacklist:getAll BLACKLIST.GET_ALL [] (no args) yes BlacklistController src/main/ipc/controllers/BlacklistController.ts
blacklist:remove BLACKLIST.REMOVE z.tuple([blacklistTagSchema]) no BlacklistController src/main/ipc/controllers/BlacklistController.ts
booru:resolve-character-tags API.RESOLVE_CHARACTER_TAGS z.tuple([z.array(z.string().min(1)).max(100)]) no SearchController src/main/ipc/controllers/SearchController.ts
booru:resolve-copyright-tags API.RESOLVE_COPYRIGHT_TAGS z.tuple([z.array(z.string().min(1)).max(100)]) no SearchController src/main/ipc/controllers/SearchController.ts
booru:resolve-tags API.RESOLVE_TAGS z.tuple([z.array(z.string().min(1)).max(100)]) no SearchController src/main/ipc/controllers/SearchController.ts
booru:resolve-tags-by-type API.RESOLVE_TAGS_BY_TYPE z.tuple([ z.array(z.string().min(1)).max(100), z.number().int().refine((n): n is TagType => { return Object.values(TA... no SearchController src/main/ipc/controllers/SearchController.ts
booru:search API.SEARCH_POSTS z.tuple([SearchPostsSchema]) no SearchController Provider search; auth/rate_limit errors surface as typed IPC errors to Browse UI.
db:add-artist DB.ADD_ARTIST z.tuple([AddArtistSchema]) no ArtistsController src/main/ipc/controllers/ArtistsController.ts
db:add-posts-to-playlist DB.ADD_POSTS_TO_PLAYLIST z.tuple([AddPostsToPlaylistSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:clear-manual-playlist DB.CLEAR_MANUAL_PLAYLIST schema: see source (ClearManualPlaylistSchema) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:create-backup BACKUP.CREATE [] (no args) yes MaintenanceController src/main/ipc/controllers/MaintenanceController.ts
db:create-playlist DB.CREATE_PLAYLIST z.tuple([CreatePlaylistSchema]) yes PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:delete-artist DB.DELETE_ARTIST z.tuple([IdSchema]) no ArtistsController src/main/ipc/controllers/ArtistsController.ts
db:delete-playlist DB.DELETE_PLAYLIST z.tuple([IdSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:export-playlist DB.EXPORT_PLAYLIST z.tuple([IdSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:get-api-key-encrypted DB.GET_API_KEY_ENCRYPTED No handle registration found (event channel or registered outside scanned paths).
db:get-artists DB.GET_ARTISTS [] (no args) no ArtistsController src/main/ipc/controllers/ArtistsController.ts
db:get-download-items DB.GET_DOWNLOAD_ITEMS z.tuple([ GetPostsSchema.extend({ limit: z.number().int().min(1).max(500).default(500), }), ]) yes PostsController src/main/ipc/controllers/PostsController.ts
db:get-manual-playlist-membership-for-posts DB.GET_MANUAL_PLAYLIST_MEMBERSHIP_FOR_POSTS schema: see source (GetManualPlaylistMembershipForPostsSchema) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:get-playlist DB.GET_PLAYLIST z.tuple([IdSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:get-playlist-download-items DB.GET_PLAYLIST_DOWNLOAD_ITEMS No handle registration found (event channel or registered outside scanned paths).
db:get-playlist-posts DB.GET_PLAYLIST_POSTS z.tuple([GetPlaylistPostsSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:get-playlists DB.GET_PLAYLISTS [] (no args) yes PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:get-playlists-containing-post DB.GET_PLAYLISTS_CONTAINING_POST z.tuple([z.number().int(), OptionalIdSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:get-posts DB.GET_POSTS z.tuple([GetPostsSchema]) no PostsController Paginated posts with filters. Always limited — see MAX page size in PostsController.
db:get-posts-count DB.GET_POSTS_COUNT z.tuple([GetPostsCountSchema]) yes PostsController src/main/ipc/controllers/PostsController.ts
db:get-posts-count-with-filters DB.GET_POSTS_COUNT_WITH_FILTERS z.tuple([ GetPostsSchema.pick({ artistId: true, filters: true }), ]) yes PostsController src/main/ipc/controllers/PostsController.ts
db:get-stats DB.GET_STATS [] (no args) yes StatsController src/main/ipc/controllers/StatsController.ts
db:import-playlist DB.IMPORT_PLAYLIST z.tuple([]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:mark-all-viewed DB.MARK_ALL_VIEWED z.tuple([]) no PostsController src/main/ipc/controllers/PostsController.ts
db:mark-post-viewed DB.MARK_VIEWED z.tuple([ z.number().int(), PostDataSchema.optional(), ]) no PostsController src/main/ipc/controllers/PostsController.ts
db:move-posts-between-manual-playlists DB.MOVE_POSTS_BETWEEN_MANUAL_PLAYLISTS schema: see source (MovePostsBetweenManualPlaylistsSchema) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:remove-posts-from-playlist DB.REMOVE_POSTS_FROM_PLAYLIST z.tuple([RemovePostsFromPlaylistSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:reorder-playlist-entries DB.REORDER_PLAYLIST_ENTRIES z.tuple([ReorderPlaylistEntriesSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:reset-post-cache DB.RESET_POST_CACHE z.tuple([IdSchema]) no PostsController src/main/ipc/controllers/PostsController.ts
db:resolve-playlist-posts DB.RESOLVE_PLAYLIST_POSTS z.tuple([ResolvePlaylistPostsSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:restore-backup BACKUP.RESTORE [] (no args) yes MaintenanceController src/main/ipc/controllers/MaintenanceController.ts
db:search-tags DB.SEARCH_TAGS z.tuple([z.string().trim().min(1)]) no ArtistsController src/main/ipc/controllers/ArtistsController.ts
db:shadow-insert-post DB.SHADOW_INSERT_POST z.tuple([ShadowInsertRequestSchema]) no PostsController src/main/ipc/controllers/PostsController.ts
db:sync-all DB.SYNC_ALL [] (no args) yes MaintenanceController src/main/ipc/controllers/MaintenanceController.ts
db:sync-manual-playlist-membership DB.SYNC_MANUAL_PLAYLIST_MEMBERSHIP schema: see source (SyncManualPlaylistMembershipSchema) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
db:toggle-post-favorite DB.TOGGLE_FAVORITE z.tuple([ z.number().int(), PostDataSchema.optional(), ]) no PostsController src/main/ipc/controllers/PostsController.ts
db:toggle-post-viewed DB.TOGGLE_POST_VIEWED No handle registration found (event channel or registered outside scanned paths).
db:update-playlist DB.UPDATE_PLAYLIST z.tuple([IdSchema, UpdatePlaylistSchema]) no PlaylistController src/main/ipc/controllers/PlaylistController.ts
files:cancel-download-all FILES.CANCEL_DOWNLOAD_ALL [] (no args) yes FileController src/main/ipc/controllers/FileController.ts
files:dismiss-pending-download FILES.DISMISS_PENDING_DOWNLOAD [] (no args) no FileController src/main/ipc/controllers/FileController.ts
files:download FILES.DOWNLOAD z.tuple([ DownloadFileSchema.shape.url, DownloadFileSchema.shape.filename, ]) no FileController src/main/ipc/controllers/FileController.ts
files:download-all FILES.DOWNLOAD_ALL z.tuple([DownloadAllSchema]) no FileController src/main/ipc/controllers/FileController.ts
files:download-all-progress FILES.DOWNLOAD_ALL_PROGRESS No handle registration found (event channel or registered outside scanned paths).
files:download-progress FILES.DOWNLOAD_PROGRESS No handle registration found (event channel or registered outside scanned paths).
files:get-pending-download FILES.GET_PENDING_DOWNLOAD [] (no args) yes FileController src/main/ipc/controllers/FileController.ts
files:open-folder FILES.OPEN_FOLDER OpenFolderSchema no FileController src/main/ipc/controllers/FileController.ts
files:pause-download-all FILES.PAUSE_DOWNLOAD_ALL [] (no args) yes FileController src/main/ipc/controllers/FileController.ts
files:pending-download-state-changed FILES.PENDING_DOWNLOAD_STATE_CHANGED No handle registration found (event channel or registered outside scanned paths).
files:resume-download-all FILES.RESUME_DOWNLOAD_ALL [] (no args) yes FileController src/main/ipc/controllers/FileController.ts
files:resume-pending-download FILES.RESUME_PENDING_DOWNLOAD z.tuple([]) no FileController src/main/ipc/controllers/FileController.ts
files:select-download-folder FILES.SELECT_DOWNLOAD_FOLDER z.tuple([]) no FileController src/main/ipc/controllers/FileController.ts
settings:confirm-legal SETTINGS.CONFIRM_LEGAL [] (no args) no SettingsController src/main/ipc/controllers/SettingsController.ts
settings:reset-onboarding SETTINGS.RESET_ONBOARDING [] (no args) no SettingsController src/main/ipc/controllers/SettingsController.ts
settings:save-download-folder SETTINGS.SAVE_DOWNLOAD_FOLDER z.tuple([SaveDownloadFolderArgSchema]) no SettingsController src/main/ipc/controllers/SettingsController.ts
settings:save-download-settings SETTINGS.SAVE_DOWNLOAD_SETTINGS z.tuple([SaveDownloadSettingsPayloadSchema]) no SettingsController src/main/ipc/controllers/SettingsController.ts
settings:save-theme SETTINGS.SAVE_THEME z.tuple([ThemePreferenceSchema]) no SettingsController src/main/ipc/controllers/SettingsController.ts
stats:get-extended STATS.GET_EXTENDED [] (no args) yes StatsController src/main/ipc/controllers/StatsController.ts
sync:end SYNC.END No handle registration found (event channel or registered outside scanned paths).
sync:error SYNC.ERROR No handle registration found (event channel or registered outside scanned paths).
sync:progress SYNC.PROGRESS No handle registration found (event channel or registered outside scanned paths).
sync:repair-artist SYNC.REPAIR z.tuple([IdSchema]) yes MaintenanceController src/main/ipc/controllers/MaintenanceController.ts
sync:repair:end SYNC.REPAIR_END No handle registration found (event channel or registered outside scanned paths).
sync:repair:start SYNC.REPAIR_START No handle registration found (event channel or registered outside scanned paths).
sync:start SYNC.START No handle registration found (event channel or registered outside scanned paths).
system:wipe-all-data APP.WIPE_ALL_DATA [] (no args) no SystemController Deletes all children of userData (.rdcache), then app.exit(0). Order: closeDatabase → stop video proxy → rm → exit. Does not touch download folders outside userData.
updater:progress UPDATER.PROGRESS No handle registration found (event channel or registered outside scanned paths).
updater:status UPDATER.STATUS No handle registration found (event channel or registered outside scanned paths).
updates:getTotalUnreadCount UPDATES.GET_TOTAL_UNREAD_COUNT schema: see source (unknown) no updates src/main/ipc/handlers/updates.ts
updates:getUnreadCount UPDATES.GET_UNREAD_COUNT [] (no args) no updates src/main/ipc/handlers/updates.ts
updates:markAllSeen UPDATES.MARK_ALL_SEEN [] (no args) no updates src/main/ipc/handlers/updates.ts
video-proxy:get-url VIDEO_PROXY.GET_URL z.tuple([z.string().url()]) yes VideoProxyController src/main/ipc/controllers/VideoProxyController.ts

Coverage

  • Channels in channels.ts: 96
  • Channels with at least one scanned handle registration: 81
  • Handler rows extracted: 85

Regenerating

npm run docs:api

CI fails if this file is stale (npm run docs:api then git diff --exit-code docs/api.md).