trash_get_quality_sizes
Retrieve TRaSH Guides recommended min, max, and preferred sizes for each quality level for Radarr or Sonarr, with optional content type (movie, anime, series).
Instructions
Get TRaSH Guides recommended min/max/preferred sizes for each quality level
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | Which service | |
| type | No | Content type: 'movie', 'anime' for Radarr; 'series', 'anime' for Sonarr |
Implementation Reference
- src/index.ts:828-846 (registration)Tool registration: defines the trash_get_quality_sizes tool name, description, and input schema in the TOOLS array. Requires 'service' (radarr/sonarr), optional 'type' parameter.
{ name: "trash_get_quality_sizes", description: "Get TRaSH Guides recommended min/max/preferred sizes for each quality level", inputSchema: { type: "object" as const, properties: { service: { type: "string", enum: ["radarr", "sonarr"], description: "Which service", }, type: { type: "string", description: "Content type: 'movie', 'anime' for Radarr; 'series', 'anime' for Sonarr", }, }, required: ["service"], }, }, - src/index.ts:2196-2217 (handler)Handler: receives service and optional type, calls trashClient.getQualitySizes(), formats the response with min/preferred/max sizes (converting special values 1999/2000 to 'unlimited').
case "trash_get_quality_sizes": { const { service, type } = args as { service: TrashService; type?: string }; const sizes = await trashClient.getQualitySizes(service, type); return { content: [{ type: "text", text: JSON.stringify({ service, type: type || 'all', profiles: sizes.map(s => ({ type: s.type, qualities: s.qualities.map(q => ({ quality: q.quality, min: q.min + ' MB/min', preferred: q.preferred === 1999 ? 'unlimited' : q.preferred + ' MB/min', max: q.max === 2000 ? 'unlimited' : q.max + ' MB/min', })), })), }, null, 2), }], }; } - src/trash-client.ts:356-384 (helper)Helper method in TrashClient: fetches quality size recommendations from TRaSH Guides GitHub repo. For Radarr fetches movie/anime, for Sonarr fetches series/anime. Uses cache, and filters by optional type parameter.
async getQualitySizes(service: TrashService, type?: string): Promise<TrashQualitySize[]> { const sizeTypes = service === 'radarr' ? ['movie', 'anime'] : ['series', 'anime']; const sizes: TrashQualitySize[] = []; for (const sizeType of sizeTypes) { const key = `${service}/${sizeType}`; let size = cache.getQualitySize(key); if (!size) { try { size = await fetchJSON<TrashQualitySize>( `${TRASH_BASE_URL}/${service}/quality-size/${sizeType}.json` ); cache.setQualitySize(key, size); } catch { continue; } } if (!type || size.type === type) { sizes.push(size); } } return sizes; } - src/trash-client.ts:50-59 (schema)Type definition for the TrashQualitySize interface returned by the tool. Contains trash_id, type, and an array of quality entries with min/preferred/max size values.
export interface TrashQualitySize { trash_id: string; type: string; qualities: Array<{ quality: string; min: number; preferred: number; max: number; }>; }