import type { CommandPaletteAction } from '$lib/CommandPalette/actions'; import locale from '$stores/locale'; import { get } from 'svelte/store'; export const toolsAsCommandPaletteActions = (): CommandPaletteAction[] => Object.entries(tools) .filter(([id, tool]) => id !== 'default' && !tool.hidden) .map(([id, tool]) => ({ name: tool.name(), url: `/tools/${id}` })); export const tools: { [key: string]: { name: () => string; short?: string; description?: () => string; id: string; hidden?: boolean; }; } = { default: { name: () => 'Tools', description: () => 'A collection of tools to help you get the most out of AniList.', id: 'default' }, wrapped: { name: () => 'AniList Wrapped & Statistics Panel', short: 'AniList Wrapped', description: () => 'Instantly generate an AniList themed Wrapped for your profile, doubling as a statistics panel for your bio', id: 'wrapped' }, birthdays: { name: () => { return get(locale)().tools.tool.characterBirthdays.long; }, description: () => 'Find and display the birthdays of all characters for today, or any other day of the year', id: 'birthdays' }, sequel_spy: { name: () => 'Sequel Spy', description: () => "Find media with prequels you haven't seen yet for any given simulcast season", id: 'sequel_spy' }, tracker: { name: () => 'Tracker', description: () => "Track your anime and manga progress with ease, intended for media that doesn't qualify for an AniList entry", id: 'tracker', hidden: true }, uma_musume_birthdays: { name: () => { return 'Uma Musume: Pretty Derby Character Birthdays'; }, description: () => 'Find and display the birthdays of all Uma Musume characters for today, or any other day of the year', id: 'uma_musume_birthdays' }, hololive_birthdays: { name: () => 'hololive Birthdays', description: () => 'Find and display the birthdays of all hololive talents for today, or any other day of the year', id: 'hololive_birthdays' }, nijisanji_birthdays: { name: () => 'NIJISANJI Birthdays', description: () => 'Find and display the birthdays of all NIJISANJI talents for today, or any other day of the year', id: 'nijisanji_birthdays' }, hayai: { name: () => '早い', description: () => 'Read light novels at 1.5x speed!', id: 'hayai' }, discussions: { name: () => 'Episode Discussion Collector', description: () => 'Find and display all episode discussions created by a given user', id: 'discussions' }, random_follower: { name: () => 'Random Follower Finder', description: () => "Generate random followers from any user's following list", id: 'random_follower' }, // dump_profile: { // name: () => 'Dump Profile', // description: () => "Dump a user's profile to JSON", // id: 'dump_profile' // }, likes: { name: () => 'Likes', description: () => 'Get all likes of an activity or forum thread', id: 'likes' }, activity_history: { name: () => 'Activity History Analyser', id: 'activity_history', description: () => 'Activity history utilities & image exporter' }, girls: { name: () => 'Anime Girls Holding Programming Books', id: 'girls', description: () => 'Find anime girls holding programming books by language' }, sequel_catcher: { name: () => 'Sequel Catcher', description: () => 'Check if any completed anime on your lists have sequels you have not yet seen', id: 'sequel_catcher' } };