@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.
Files changed (84) hide show
  1. package/README.md +105 -0
  2. package/dist/provider-CDtB3U-Z.js +62 -0
  3. package/dist/provider-CDtB3U-Z.js.map +1 -0
  4. package/dist/react/hooks/index.d.ts +2 -0
  5. package/dist/react/hooks/index.d.ts.map +1 -0
  6. package/dist/react/hooks/useEmotes.d.ts +17 -0
  7. package/dist/react/hooks/useEmotes.d.ts.map +1 -0
  8. package/dist/react/index.d.ts +2 -0
  9. package/dist/react/index.d.ts.map +1 -0
  10. package/dist/react/index.iife.js +2 -0
  11. package/dist/react/index.iife.js.map +1 -0
  12. package/dist/react/index.js +55 -0
  13. package/dist/react/index.js.map +1 -0
  14. package/dist/root/7tv/index.d.ts +4 -0
  15. package/dist/root/7tv/index.d.ts.map +1 -0
  16. package/dist/root/7tv/set.d.ts +4 -0
  17. package/dist/root/7tv/set.d.ts.map +1 -0
  18. package/dist/root/7tv/types/emote.d.ts +5 -0
  19. package/dist/root/7tv/types/emote.d.ts.map +1 -0
  20. package/dist/root/7tv/types/index.d.ts +6 -0
  21. package/dist/root/7tv/types/index.d.ts.map +1 -0
  22. package/dist/root/7tv/types/seven-tv.d.ts +91 -0
  23. package/dist/root/7tv/types/seven-tv.d.ts.map +1 -0
  24. package/dist/root/7tv/utils.d.ts +3 -0
  25. package/dist/root/7tv/utils.d.ts.map +1 -0
  26. package/dist/root/betterttv/index.d.ts +3 -0
  27. package/dist/root/betterttv/index.d.ts.map +1 -0
  28. package/dist/root/betterttv/set.d.ts +5 -0
  29. package/dist/root/betterttv/set.d.ts.map +1 -0
  30. package/dist/root/betterttv/types/cached-user-response.d.ts +62 -0
  31. package/dist/root/betterttv/types/cached-user-response.d.ts.map +1 -0
  32. package/dist/root/betterttv/types/index.d.ts +5 -0
  33. package/dist/root/betterttv/types/index.d.ts.map +1 -0
  34. package/dist/root/common/enums/index.d.ts +2 -0
  35. package/dist/root/common/enums/index.d.ts.map +1 -0
  36. package/dist/root/common/enums/provider.d.ts +5 -0
  37. package/dist/root/common/enums/provider.d.ts.map +1 -0
  38. package/dist/root/common/index.d.ts +3 -0
  39. package/dist/root/common/index.d.ts.map +1 -0
  40. package/dist/root/common/types/emote.d.ts +9 -0
  41. package/dist/root/common/types/emote.d.ts.map +1 -0
  42. package/dist/root/common/types/index.d.ts +3 -0
  43. package/dist/root/common/types/index.d.ts.map +1 -0
  44. package/dist/root/frankerfacez/index.d.ts +4 -0
  45. package/dist/root/frankerfacez/index.d.ts.map +1 -0
  46. package/dist/root/frankerfacez/set.d.ts +10 -0
  47. package/dist/root/frankerfacez/set.d.ts.map +1 -0
  48. package/dist/root/frankerfacez/types/frankerfacez.d.ts +104 -0
  49. package/dist/root/frankerfacez/types/frankerfacez.d.ts.map +1 -0
  50. package/dist/root/frankerfacez/types/index.d.ts +5 -0
  51. package/dist/root/frankerfacez/types/index.d.ts.map +1 -0
  52. package/dist/root/frankerfacez/utils.d.ts +2 -0
  53. package/dist/root/frankerfacez/utils.d.ts.map +1 -0
  54. package/dist/root/index.d.ts +5 -0
  55. package/dist/root/index.d.ts.map +1 -0
  56. package/dist/root/index.iife.js +2 -0
  57. package/dist/root/index.iife.js.map +1 -0
  58. package/dist/root/index.js +16 -0
  59. package/dist/root/index.js.map +1 -0
  60. package/package.json +41 -0
  61. package/src/react/hooks/index.ts +1 -0
  62. package/src/react/hooks/useEmotes.ts +105 -0
  63. package/src/react/index.ts +1 -0
  64. package/src/root/7tv/index.ts +3 -0
  65. package/src/root/7tv/set.ts +16 -0
  66. package/src/root/7tv/types/emote.ts +4 -0
  67. package/src/root/7tv/types/index.ts +6 -0
  68. package/src/root/7tv/types/seven-tv.ts +100 -0
  69. package/src/root/7tv/utils.ts +5 -0
  70. package/src/root/betterttv/index.ts +2 -0
  71. package/src/root/betterttv/set.ts +49 -0
  72. package/src/root/betterttv/types/cached-user-response.ts +62 -0
  73. package/src/root/betterttv/types/index.ts +6 -0
  74. package/src/root/common/enums/index.ts +1 -0
  75. package/src/root/common/enums/provider.ts +4 -0
  76. package/src/root/common/index.ts +2 -0
  77. package/src/root/common/types/emote.ts +8 -0
  78. package/src/root/common/types/index.ts +2 -0
  79. package/src/root/frankerfacez/index.ts +3 -0
  80. package/src/root/frankerfacez/set.ts +46 -0
  81. package/src/root/frankerfacez/types/frankerfacez.ts +113 -0
  82. package/src/root/frankerfacez/types/index.ts +6 -0
  83. package/src/root/frankerfacez/utils.ts +6 -0
  84. 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
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Экспорт всех типов FrankerFaceZ
3
+ */
4
+
5
+ export * from "./frankerfacez";
6
+
@@ -0,0 +1,6 @@
1
+ export function fixFrankerFaceZDoubleHttps(url: string): string {
2
+ if (url.includes("cdn.frankerfacez.com")) {
3
+ return url.replace("https:https:", "https:");
4
+ }
5
+ return url;
6
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./7tv";
2
+ export * from "./betterttv";
3
+ export * from "./frankerfacez";
4
+ export * from "./common";