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", }, };