aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Tools/tools.ts
blob: cc11050bd64d52427a810f5bec16a4514c775a34 (plain) (blame)
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",
	},
};