1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
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",
},
};
|