@allior/wmake-emotes 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +105 -0
- package/dist/provider-CDtB3U-Z.js +62 -0
- package/dist/provider-CDtB3U-Z.js.map +1 -0
- package/dist/react/hooks/index.d.ts +2 -0
- package/dist/react/hooks/index.d.ts.map +1 -0
- package/dist/react/hooks/useEmotes.d.ts +17 -0
- package/dist/react/hooks/useEmotes.d.ts.map +1 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.iife.js +2 -0
- package/dist/react/index.iife.js.map +1 -0
- package/dist/react/index.js +55 -0
- package/dist/react/index.js.map +1 -0
- package/dist/root/7tv/index.d.ts +4 -0
- package/dist/root/7tv/index.d.ts.map +1 -0
- package/dist/root/7tv/set.d.ts +4 -0
- package/dist/root/7tv/set.d.ts.map +1 -0
- package/dist/root/7tv/types/emote.d.ts +5 -0
- package/dist/root/7tv/types/emote.d.ts.map +1 -0
- package/dist/root/7tv/types/index.d.ts +6 -0
- package/dist/root/7tv/types/index.d.ts.map +1 -0
- package/dist/root/7tv/types/seven-tv.d.ts +91 -0
- package/dist/root/7tv/types/seven-tv.d.ts.map +1 -0
- package/dist/root/7tv/utils.d.ts +3 -0
- package/dist/root/7tv/utils.d.ts.map +1 -0
- package/dist/root/betterttv/index.d.ts +3 -0
- package/dist/root/betterttv/index.d.ts.map +1 -0
- package/dist/root/betterttv/set.d.ts +5 -0
- package/dist/root/betterttv/set.d.ts.map +1 -0
- package/dist/root/betterttv/types/cached-user-response.d.ts +62 -0
- package/dist/root/betterttv/types/cached-user-response.d.ts.map +1 -0
- package/dist/root/betterttv/types/index.d.ts +5 -0
- package/dist/root/betterttv/types/index.d.ts.map +1 -0
- package/dist/root/common/enums/index.d.ts +2 -0
- package/dist/root/common/enums/index.d.ts.map +1 -0
- package/dist/root/common/enums/provider.d.ts +5 -0
- package/dist/root/common/enums/provider.d.ts.map +1 -0
- package/dist/root/common/index.d.ts +3 -0
- package/dist/root/common/index.d.ts.map +1 -0
- package/dist/root/common/types/emote.d.ts +9 -0
- package/dist/root/common/types/emote.d.ts.map +1 -0
- package/dist/root/common/types/index.d.ts +3 -0
- package/dist/root/common/types/index.d.ts.map +1 -0
- package/dist/root/frankerfacez/index.d.ts +4 -0
- package/dist/root/frankerfacez/index.d.ts.map +1 -0
- package/dist/root/frankerfacez/set.d.ts +10 -0
- package/dist/root/frankerfacez/set.d.ts.map +1 -0
- package/dist/root/frankerfacez/types/frankerfacez.d.ts +104 -0
- package/dist/root/frankerfacez/types/frankerfacez.d.ts.map +1 -0
- package/dist/root/frankerfacez/types/index.d.ts +5 -0
- package/dist/root/frankerfacez/types/index.d.ts.map +1 -0
- package/dist/root/frankerfacez/utils.d.ts +2 -0
- package/dist/root/frankerfacez/utils.d.ts.map +1 -0
- package/dist/root/index.d.ts +5 -0
- package/dist/root/index.d.ts.map +1 -0
- package/dist/root/index.iife.js +2 -0
- package/dist/root/index.iife.js.map +1 -0
- package/dist/root/index.js +16 -0
- package/dist/root/index.js.map +1 -0
- package/package.json +41 -0
- package/src/react/hooks/index.ts +1 -0
- package/src/react/hooks/useEmotes.ts +105 -0
- package/src/react/index.ts +1 -0
- package/src/root/7tv/index.ts +3 -0
- package/src/root/7tv/set.ts +16 -0
- package/src/root/7tv/types/emote.ts +4 -0
- package/src/root/7tv/types/index.ts +6 -0
- package/src/root/7tv/types/seven-tv.ts +100 -0
- package/src/root/7tv/utils.ts +5 -0
- package/src/root/betterttv/index.ts +2 -0
- package/src/root/betterttv/set.ts +49 -0
- package/src/root/betterttv/types/cached-user-response.ts +62 -0
- package/src/root/betterttv/types/index.ts +6 -0
- package/src/root/common/enums/index.ts +1 -0
- package/src/root/common/enums/provider.ts +4 -0
- package/src/root/common/index.ts +2 -0
- package/src/root/common/types/emote.ts +8 -0
- package/src/root/common/types/index.ts +2 -0
- package/src/root/frankerfacez/index.ts +3 -0
- package/src/root/frankerfacez/set.ts +46 -0
- package/src/root/frankerfacez/types/frankerfacez.ts +113 -0
- package/src/root/frankerfacez/types/index.ts +6 -0
- package/src/root/frankerfacez/utils.ts +6 -0
- package/src/root/index.ts +4 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { FrankerFaceZ } from "./types";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Получить все эмоуты из наборов
|
|
5
|
+
*/
|
|
6
|
+
const getEmotesFromSets = (
|
|
7
|
+
sets: Record<string, FrankerFaceZ.EmoteSet>,
|
|
8
|
+
): FrankerFaceZ.Emote[] => {
|
|
9
|
+
const emotes: FrankerFaceZ.Emote[] = [];
|
|
10
|
+
for (const set of Object.values(sets)) {
|
|
11
|
+
emotes.push(...(set.emoticons || []));
|
|
12
|
+
}
|
|
13
|
+
return emotes;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Получить набор эмоутов пользователя FrankerFaceZ
|
|
18
|
+
*/
|
|
19
|
+
export const getFrankerFaceZUserEmoteSet = async (
|
|
20
|
+
username: string,
|
|
21
|
+
): Promise<FrankerFaceZ.Emote[]> => {
|
|
22
|
+
try {
|
|
23
|
+
const response = await fetch(
|
|
24
|
+
`https://api.frankerfacez.com/v1/room/twitch/${username}`,
|
|
25
|
+
);
|
|
26
|
+
const data: FrankerFaceZ.RoomResponse = await response.json();
|
|
27
|
+
return getEmotesFromSets(data.sets);
|
|
28
|
+
} catch {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Получить глобальные эмоуты FrankerFaceZ
|
|
35
|
+
*/
|
|
36
|
+
export const getFrankerFaceZGlobalEmoteSet = async (): Promise<
|
|
37
|
+
FrankerFaceZ.Emote[]
|
|
38
|
+
> => {
|
|
39
|
+
try {
|
|
40
|
+
const response = await fetch("https://api.frankerfacez.com/v1/set/global");
|
|
41
|
+
const data: FrankerFaceZ.GlobalEmotesResponse = await response.json();
|
|
42
|
+
return getEmotesFromSets(data.sets);
|
|
43
|
+
} catch {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Типы для FrankerFaceZ API
|
|
3
|
+
*/
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
5
|
+
export namespace FrankerFaceZ {
|
|
6
|
+
/**
|
|
7
|
+
* Размеры эмоута
|
|
8
|
+
*/
|
|
9
|
+
export type EmoteSize = "1" | "2" | "4";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* URL-адреса эмоута в разных размерах
|
|
13
|
+
*/
|
|
14
|
+
export interface EmoteUrls {
|
|
15
|
+
"1": string;
|
|
16
|
+
"2": string;
|
|
17
|
+
"4": string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Владелец эмоута
|
|
22
|
+
*/
|
|
23
|
+
export interface EmoteOwner {
|
|
24
|
+
_id: number;
|
|
25
|
+
name: string;
|
|
26
|
+
display_name: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Эмоут FrankerFaceZ
|
|
31
|
+
*/
|
|
32
|
+
export interface Emote {
|
|
33
|
+
id: number;
|
|
34
|
+
name: string;
|
|
35
|
+
height: number;
|
|
36
|
+
width: number;
|
|
37
|
+
public: boolean;
|
|
38
|
+
hidden: boolean;
|
|
39
|
+
modifier: boolean;
|
|
40
|
+
modifier_flags: number;
|
|
41
|
+
offset: string | null;
|
|
42
|
+
margins: string | null;
|
|
43
|
+
css: string | null;
|
|
44
|
+
owner: EmoteOwner;
|
|
45
|
+
urls: EmoteUrls;
|
|
46
|
+
status: number;
|
|
47
|
+
usage_count: number;
|
|
48
|
+
created_at: string;
|
|
49
|
+
last_updated: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Набор эмоутов
|
|
54
|
+
*/
|
|
55
|
+
export interface EmoteSet {
|
|
56
|
+
id: number;
|
|
57
|
+
_type: number;
|
|
58
|
+
icon: string | null;
|
|
59
|
+
title: string;
|
|
60
|
+
css: string | null;
|
|
61
|
+
emoticons: Emote[];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Информация о пользователе
|
|
66
|
+
*/
|
|
67
|
+
export interface User {
|
|
68
|
+
id: number;
|
|
69
|
+
name: string;
|
|
70
|
+
display_name: string;
|
|
71
|
+
avatar: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Информация о комнате пользователя
|
|
76
|
+
*/
|
|
77
|
+
export interface Room {
|
|
78
|
+
_id: number;
|
|
79
|
+
twitch_id: number;
|
|
80
|
+
youtube_id: string | null;
|
|
81
|
+
id: string;
|
|
82
|
+
is_group: boolean;
|
|
83
|
+
display_name: string;
|
|
84
|
+
set: number;
|
|
85
|
+
moderator_badge: string | null;
|
|
86
|
+
vip_badge: string | null;
|
|
87
|
+
mod_urls: Record<string, string> | null;
|
|
88
|
+
[key: string]: unknown;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Ответ API для комнаты пользователя
|
|
93
|
+
*/
|
|
94
|
+
export interface RoomResponse {
|
|
95
|
+
room: Room;
|
|
96
|
+
sets: Record<string, EmoteSet>;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Ответ API для глобальных эмоутов
|
|
101
|
+
*/
|
|
102
|
+
export interface GlobalEmotesResponse {
|
|
103
|
+
sets: Record<string, EmoteSet>;
|
|
104
|
+
default_sets: number[];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Ответ API для конкретного эмоута
|
|
109
|
+
*/
|
|
110
|
+
export interface EmoteResponse {
|
|
111
|
+
emote: Emote;
|
|
112
|
+
}
|
|
113
|
+
}
|