aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Tools/tools.ts
blob: c5af7e34773b4aebe7fd1e0d9ebe6feef4ded163 (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
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'
  }
};