File size: 24,622 Bytes
a945fc6
 
 
 
 
af0b7b0
 
 
a945fc6
 
af0b7b0
 
 
 
a945fc6
 
af0b7b0
 
a945fc6
 
 
 
 
 
 
af0b7b0
 
a945fc6
 
 
 
 
 
 
af0b7b0
 
 
397b40f
a945fc6
 
 
 
 
 
 
 
22f1699
3a64c3e
 
 
 
 
 
 
 
 
fd52036
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a945fc6
 
da0731b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9176117
 
da0731b
397b40f
60bd5db
0c58bc3
 
 
 
 
 
884d739
 
 
 
0c58bc3
 
 
 
 
 
 
 
 
 
 
15c0980
0c58bc3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
af0b7b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d2a0a96
 
 
af0b7b0
 
 
 
 
bb3f583
 
af0b7b0
 
 
a945fc6
bb3f583
fd52036
af0b7b0
 
 
a613086
 
af0b7b0
42ce643
7c3ad79
 
 
884d739
15c0980
8930de9
 
 
 
15c0980
 
884d739
7c3ad79
af0b7b0
91ae8f4
af0b7b0
 
 
a945fc6
 
af0b7b0
a945fc6
 
af0b7b0
a945fc6
 
 
 
af0b7b0
a945fc6
af0b7b0
a945fc6
 
 
af0b7b0
a945fc6
af0b7b0
a945fc6
 
af0b7b0
 
 
 
a945fc6
af0b7b0
 
 
 
 
 
 
 
 
 
 
 
 
a945fc6
 
9176117
a945fc6
52231e2
 
 
a945fc6
52231e2
 
 
a945fc6
 
 
af0b7b0
 
 
 
 
 
 
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
import os
import requests
import random
import time
import logging
import threading
from fastapi import FastAPI
from dataclasses import dataclass, field

# Configuración de logging
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger("DiscordLogger")

# Token y headers para la API de Discord
TOKEN = os.getenv("TOKEN")  # Asegúrate de configurar la variable de entorno TOKEN
HEADERS = {
    "User-Agent": "Mozilla/5.0",
    "Accept": "*/*",
    "Content-Type": "application/json",
    "Authorization": TOKEN
}

# Listas por defecto de stickers y GIFs (puedes personalizarlos)
SANDRA_STICKER_IDS = [
    "1004733061377839155", "1069462756597714954", "1069464246276083783",
    "1071961877590069329", "1135522478924496968", "1143089446959456266",
    "1151968132378931341", "1167322137225342986", "1203740621668483112",
    "1238703199091953725", "1240964158388961331", "1243564218741952663",
    "1257957401236344915", "1260907231549980734", "1263109894807097404",
    "1338763640630804490", "1338945320498888745"
]

SMASH_STICKERS_IDS = ["1275122399796531320", "1297373976481501236", "1297374313728446555", "1297374469744099368", "1297374773172502609", "1297375195337723904", "1299157034696179783", "1313635370059038725", "1325679489413550130", "1327084487603126323", "1328103130998505503", "1329330186612637706", "1330322740292354108", "1330592946613129286", "1333509212730298440", "1334940407296950355", "1338581218266185769", "1338766114863448085", "1339776105468395540", "1340047409430003782", "1340047616276172881", "1340821158399840357", "1341437725177286656", "1341909889789853748"]

SANDRA_GIF_URLS2 = [
    "https://media.discordapp.net/attachments/978373982011150369/981008116990771270/9C48BE6C-EA86-49CF-90DB-C07F58AAE464.gif?ex=67b7d881&is=67b68701&hm=5b3a233dafc4de52414bae4280cb644fda85e12430a30470d7b2b59c78605d5a&",
    "https://media.discordapp.net/attachments/1304500459565744161/1306263414607450142/media-iv-text.gif?ex=67b7e3db&is=67b6925b&hm=88be547a870fa4dc2ced25b470c2324a87b7ed7d0bfe8158a426f289c7b7d312&",
    "https://media.discordapp.net/attachments/753808274062573639/809190519594025050/arana.gif?ex=67b7ade5&is=67b65c65&hm=422e139b8d883a76476022acfdddf8cb9dd0492bbc775540b228f1479828590f&",
    "https://cdn.discordapp.com/attachments/1334611383442083901/1334611429583618138/cd16102f-4f11-45a3-b34a-0ccf58e3f982.gif?ex=67b78740&is=67b635c0&hm=6b129cbfe287257f6f476c3bb696b2b5d15614e93bb722e42051e639c0011be0&",
    "https://media.discordapp.net/attachments/1037060119881601195/1176932252559622204/voicemessage.gif?ex=67b76193&is=67b61013&hm=394a35f837da28653683cb229f2209deeed4a9d6aaba2441de88968a34103342&=",
    "https://tenor.com/view/funny-gif-11026644638307910936",
    "https://tenor.com/view/bee-gif-2221550446572997929",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1341925949138010173/PERDONAME_POR_TODO_ALISON.gif?ex=67b7c56e&is=67b673ee&hm=0f974f8d5888ef5732f9b0ebee9276466e4dce4c99b7cc959327b0758a577357&",
    "https://tenor.com/view/cats-cat-cute-run-kitten-gif-14804766",
    "https://tenor.com/view/ok-i-pull-up-gif-27257886",
    "https://tenor.com/view/fat-cat-fatty-sleepy-sleepfat-gif-27064818",
    "https://tenor.com/view/angry-cat-gif-25783770",
    "https://tenor.com/view/jalkiy-kotenok-gif-2203365976465100550",
    "https://tenor.com/view/cute-cat-gif-21549091",
    "https://tenor.com/view/cat-funny-cathands-cat-in-hat-cat-with-hands-silly-cat-gif-14981685377760273746",
    "https://tenor.com/view/gatito-cat-kitty-cute-silly-cat-gif-3290956017813741423",
    "https://tenor.com/view/cat-nyash-meow-gif-27316147",
    "https://tenor.com/view/hello-hi-cute-kitten-cat-gif-19842512",
    "https://tenor.com/view/hollyweencandy-cat-cat-drink-milk-cat-eating-cat-drinking-gif-16978701194275077898",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1366462947186180156/VID-20250427-WA0019_1.gif?ex=68222cca&is=6820db4a&hm=f205a3d6d3886f79fc9a9c69e8edd81d56c80991580fb79813af01b83682012a&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1369919692868681770/0508.gif?ex=682239e2&is=6820e862&hm=23c04c86658ffacb70da333da39ad2c568dd475b14dbb378852c46e31ce58d6b&",
    "https://tenor.com/view/multi-cat-vibrate-gif-25933609",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1371158199742365817/lv_0_20250511111151.gif?ex=68221e15&is=6820cc95&hm=a5954d23ee7e31bf1b7f33ddd2ac313057c6e0190e91a72b44700cce259a5673&",
    "https://tenor.com/view/iwo-laught-peru-dota-iwo-iwobeka-gif-5591894748012791965",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1370974927607431200/lv_0_20250510230329.gif?ex=68221c26&is=6820caa6&hm=f60b095a9d8c44fa5d221a8d6fa0c6b0c3d7c06dc8bcdc61cecd5c42c29b94fe&",
    "https://cdn.discordapp.com/attachments/1211488388935450746/1332945966042451991/stable-4-2025-01-26T05_17_14Z_1.gif?ex=6822306b&is=6820deeb&hm=7efba976e773452352513768e2f13a3cc7702bbb74a1eb509a4b9aa9f642bb62&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1361937335222276096/VID-20250416-WA0000_1.gif?ex=682230bc&is=6820df3c&hm=210dfe54221fa7484cd9cc386d31e83da692857798ef95610592547f1efee294&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1361058140325679275/negada_1.gif?ex=682249ab&is=6820f82b&hm=0edd025c275b03501eb9298435049710172aceadd55c89e2340eb39443fe4aeb&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1354938969023971539/bandicam_2024-07-29_02-36-33-482_video-converter.com_1.gif?ex=6821c77f&is=682075ff&hm=a33faa9bcdda24a389f1dad104d971e2386cabab9d0b16967a40cdec3d6d1695&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1353939061852864593/20250324_224340.gif?ex=682218c3&is=6820c743&hm=f78e4d21bc4828f72f462826ee3bc4f8aaef537e31adc621c09a5bf3dab9e1bd&",
    "https://cdn.discordapp.com/attachments/1211488388935450746/1354076226389676153/20250324_104230.gif?ex=6821efc1&is=68209e41&hm=bba9074573a5cd43471a6df78072437e63efee65cfeba9b0dcc3121b3ee2e0d8&",
    "https://tenor.com/view/backyardigans-austin-worst-day-ever-this-is-sad-gif-4091837549093265171"
    
]

SANDRA_GIF_URLS = [
    "https://tenor.com/view/hollyweencandy-cat-cat-drink-milk-cat-eating-cat-drinking-gif-16978701194275077898",
    "https://tenor.com/view/fat-cat-fatty-sleepy-sleepfat-gif-27064818",
    "https://tenor.com/view/cats-cat-cute-run-kitten-gif-14804766",
    "https://media.discordapp.net/attachments/978373982011150369/981008116990771270/9C48BE6C-EA86-49CF-90DB-C07F58AAE464.gif?ex=684a2f01&is=6848dd81&hm=ff1d93124517188fa7a1da51156fac6d5d03aff697f45f6ca91d1bd6221d8bfd&",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGs1a21xOWVpMXhndDBvdjhoMmdxNnk3Z2R6dTJqbmlramVoMTJmayZlcD12MV9naWZzX3NlYXJjaCZjdD1n/WTL02R1L7YCGUEunFy/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGs1a21xOWVpMXhndDBvdjhoMmdxNnk3Z2R6dTJqbmlramVoMTJmayZlcD12MV9naWZzX3NlYXJjaCZjdD1n/GeimqsH0TLDt4tScGw/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGs1a21xOWVpMXhndDBvdjhoMmdxNnk3Z2R6dTJqbmlramVoMTJmayZlcD12MV9naWZzX3NlYXJjaCZjdD1n/2zUn8hAwJwG4abiS0p/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGs1a21xOWVpMXhndDBvdjhoMmdxNnk3Z2R6dTJqbmlramVoMTJmayZlcD12MV9naWZzX3NlYXJjaCZjdD1n/joYf3Ba2phD15ch9Nt/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGs1a21xOWVpMXhndDBvdjhoMmdxNnk3Z2R6dTJqbmlramVoMTJmayZlcD12MV9naWZzX3NlYXJjaCZjdD1n/kkEmNte4tRmZ0fgBhE/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGs1a21xOWVpMXhndDBvdjhoMmdxNnk3Z2R6dTJqbmlramVoMTJmayZlcD12MV9naWZzX3NlYXJjaCZjdD1n/W4iMEEOHdUEKMaf81Y/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPWVjZjA1ZTQ3dzlqdzUzenF5c2JnYWRxMGRkOXhucjB2d2N3aDZrbTY4ODc3ZDR2MCZlcD12MV9naWZzX3NlYXJjaCZjdD1n/wr7oA0rSjnWuiLJOY5/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcmx0cDVwczFlOXZ4ajBvemRmM2hwM3BjaWhqcWdhbzF1NDM4ZnFwaiZlcD12MV9naWZzX3NlYXJjaCZjdD1n/Q3j31NmtjhK7M2v6vS/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcmx0cDVwczFlOXZ4ajBvemRmM2hwM3BjaWhqcWdhbzF1NDM4ZnFwaiZlcD12MV9naWZzX3NlYXJjaCZjdD1n/BaWxQ2db82ifjsMps5/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcmx0cDVwczFlOXZ4ajBvemRmM2hwM3BjaWhqcWdhbzF1NDM4ZnFwaiZlcD12MV9naWZzX3NlYXJjaCZjdD1n/Tvb18axltg8g1SUViM/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcmx0cDVwczFlOXZ4ajBvemRmM2hwM3BjaWhqcWdhbzF1NDM4ZnFwaiZlcD12MV9naWZzX3NlYXJjaCZjdD1n/jP4pPl5z1lccFcGvR0/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcmx0cDVwczFlOXZ4ajBvemRmM2hwM3BjaWhqcWdhbzF1NDM4ZnFwaiZlcD12MV9naWZzX3NlYXJjaCZjdD1n/fdieMFo080TRtrCDjq/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcmx0cDVwczFlOXZ4ajBvemRmM2hwM3BjaWhqcWdhbzF1NDM4ZnFwaiZlcD12MV9naWZzX3NlYXJjaCZjdD1n/O5qsYpByKO5GnwLSTv/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcmx0cDVwczFlOXZ4ajBvemRmM2hwM3BjaWhqcWdhbzF1NDM4ZnFwaiZlcD12MV9naWZzX3NlYXJjaCZjdD1n/6lagkJ6byPKessWAfe/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPWVjZjA1ZTQ3OW5oODQzdjRmMThxbjg0amV5OG5xaGdnNGExZ29raDBxaHFlZTNpYSZlcD12MV9naWZzX3NlYXJjaCZjdD1n/SIarypru0lT9hHeRLU/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPWVjZjA1ZTQ3OW5oODQzdjRmMThxbjg0amV5OG5xaGdnNGExZ29raDBxaHFlZTNpYSZlcD12MV9naWZzX3NlYXJjaCZjdD1n/43hpETOyeALzlWlKAr/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPWVjZjA1ZTQ3bTJ4cmhzdzYxMDZ1eGJpZ2ZzOTJ5cjVxYW9oYWFzcGUwajc5YW5rdyZlcD12MV9naWZzX3NlYXJjaCZjdD1n/EFaabvtq5aRzVhF0vt/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPWVjZjA1ZTQ3bTJ4cmhzdzYxMDZ1eGJpZ2ZzOTJ5cjVxYW9oYWFzcGUwajc5YW5rdyZlcD12MV9naWZzX3NlYXJjaCZjdD1n/4805zfHsKebGEw4McK/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPWVjZjA1ZTQ3bTJ4cmhzdzYxMDZ1eGJpZ2ZzOTJ5cjVxYW9oYWFzcGUwajc5YW5rdyZlcD12MV9naWZzX3NlYXJjaCZjdD1n/sUvphazvrEZeiSMoFR/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcmx0cDVwczFlOXZ4ajBvemRmM2hwM3BjaWhqcWdhbzF1NDM4ZnFwaiZlcD12MV9naWZzX3NlYXJjaCZjdD1n/FEHsYiEMOKTNRBmPou/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExdjkzd2F5aDAyYngzd3NsYmE3aWMzejgxaDZxZTNkNDN0OTJlb2dpMyZlcD12MV9zdGlja2Vyc19zZWFyY2gmY3Q9cw/FX5aKofPgom36xXCSe/giphy.gif",
    "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExdjkzd2F5aDAyYngzd3NsYmE3aWMzejgxaDZxZTNkNDN0OTJlb2dpMyZlcD12MV9zdGlja2Vyc19zZWFyY2gmY3Q9cw/KxDOKexAD6oHDMDFur/giphy.gif",
    "https://tenor.com/view/the-subspace-emissary-diddy-kong-rayquaza-super-smash-bros-brawl-smash-bros-brawl-gif-25132786",
    "https://tenor.com/view/cat-cute-cat-cat-dance-cute-cat-dance-ai-cat-gif-15064057413633942575",
    "https://tenor.com/view/big-eyes-cat-funny-surprised-gif-27160365",
    "https://cdn.discordapp.com/attachments/1211488388935450746/1336026895757873292/Yo-me-dedico-a-escucharte-_1_-_online-video-cutter.com_-_1_.webp?ex=6849be02&is=68486c82&hm=a2caeb43c4dccc043c8c16ceaf0865ae53b351fb9846f22f6d8d0b660748b14a&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1377677593192566914/20250529_175834.gif?ex=684a507e&is=6848fefe&hm=96667ccd642f7678c4c15233e02f337835222ccbc47f9d4f362481a0491e2f5f&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1377861762744844460/bloggif_68392fb3f1c2b.gif?ex=6849aa83&is=68485903&hm=4e6e20b796d904ff609f3e4fcbd8a34decca3f43828d2d4507e3e9496a375b33&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1374944033293598740/OOOOH_gift.gif?ex=684a41ea&is=6848f06a&hm=8292ff1ff815996ae107338ee23fe7e9778fc15fff507af073ae4a9a1bd812cd&",
    "https://tenor.com/view/cat-black-black-cat-zoomies-cat-zoomies-gif-14689681662136345500",
    "https://tenor.com/view/hey-there-cute-hide-peeking-adorable-gif-17597425",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1346338305394085918/clip_01JNC6H00EB2A7NCAMPRXF8Y8Y_1.gif?ex=6849ae81&is=68485d01&hm=ad486b3a8df5d1ec6bb2d2acdaaa4332add76b738b6c415516844817d5aa2226&",
    "https://cdn.discordapp.com/attachments/1211488388935450746/1337285302477258763/lv_0_20250206235151.gif?ex=6849b4bd&is=6848633d&hm=b76022b4328342e1f4f9f824e8aaa5dd35d1661b1c0b19cd5eab1bea3f0cd6aa&",
    "https://cdn.discordapp.com/attachments/966544639014367245/1360489830223708260/meme.gif?ex=6849bfa4&is=68486e24&hm=622b4a583d4822892fbd5c68cafdace9f5160a806e507f0a5801e519406c9c4b&",
    "https://tenor.com/view/sonic-exe-freaky-sonic-the-hedgehog-sonic-rizz-gif-650553353834507764",
    "https://tenor.com/view/multi-cat-vibrate-gif-25933609",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1369919692868681770/0508.gif?ex=6849c6e2&is=68487562&hm=1a2b5fd0990d232ec7f7e555eb0718dba69b5ffbe75bef1f91183e11fa3ab0dd&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1371158199742365817/lv_0_20250511111151.gif?ex=6849ab15&is=68485995&hm=f5af5097500dcf934e52460ba6afe3b3070baba4d7b2fc75d6ced6374dd35d6d&",
    "https://cdn.discordapp.com/attachments/1268371581550465038/1305138643945394207/1017572385311957015.gif?ex=684a1755&is=6848c5d5&hm=7201f32bf790204f45dfa2ca89d3505d8706a66dc46983795deebfead9194b2b&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1353939061852864593/20250324_224340.gif?ex=684a4e83&is=6848fd03&hm=d5a453b07e784c4dfb195e4bfd7abc918eabd6dd07112f5cdc8511e1f8582471&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1354363457235062875/VID-20250324-WA0016_4.gif?ex=6849df83&is=68488e03&hm=d670862a25a4f6ed72f7b8bee40002f9ede8b1a01f01dec32fd87b1c8999ac31&",
    "https://tenor.com/view/bee-gif-2221550446572997929",
    "https://cdn.discordapp.com/attachments/1211488388935450746/1354076226389676153/20250324_104230.gif?ex=684a2581&is=6848d401&hm=8e41f5f98c6b0cb5c4695ca05acfa4b63ce6ac8b16e1bf6db1ddded51326994b&",
    "https://media.discordapp.net/attachments/1285748350070685747/1293629032050458655/Bota_tu_muuuu.gif?ex=6849bf6b&is=68486deb&hm=38cf5b104951c05457684363c06b8e8be2eeff58e338be37a943c0028e232d61&",
    "https://cdn.discordapp.com/attachments/934933495875268625/1256886654275293284/krecha.gif?ex=6849e4aa&is=6848932a&hm=0fc5cd1a53c2e3702b0bd20712d5812a7bf246f67803fea5b578d825ce1c1d21&",
    "https://media.discordapp.net/attachments/446070454818439168/1043569815626973234/RDT_20221119_1524475765329155723282790.gif?ex=6849b4a0&is=68486320&hm=bab63382d3d0fbed85d3b0d5831f31a3469bb04673d61393908bfd837a10eb1a&",
    "https://tenor.com/view/dance-cat-kitten-gcldc-tail-wagging-gif-17070177",
    "https://tenor.com/view/bugsy-hamster-bedtime-stories-big-eyes-gif-15428063",
    "https://tenor.com/view/let-me-out-cage-angry-gif-24075632",
    "https://tenor.com/view/cat-berg-cat-orange-cat-swimming-gif-25177582",
    "https://tenor.com/view/kitten-jump-kitten-fail-kitten-jump-gif-20189864",
    "Eres bajo, ya sabes quién eres. No importa cuando lo leas.",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1378509827638165544/sandra_bauilandddooo.gif?ex=684a0bd2&is=6848ba52&hm=b2fb0817ecc36081bdd65c2ef6179b16737d6ae8dab3b376a267cf9d25174fd4&"
]

SMASH_GIF_URLS = [
    "https://tenor.com/view/cute-impatient-dog-bulldog-happy-gif-25124319",
    "https://media.discordapp.net/attachments/978373982011150369/981008116990771270/9C48BE6C-EA86-49CF-90DB-C07F58AAE464.gif?ex=67b7d881&is=67b68701&hm=5b3a233dafc4de52414bae4280cb644fda85e12430a30470d7b2b59c78605d5a&",
    "https://media.discordapp.net/attachments/1304500459565744161/1306263414607450142/media-iv-text.gif?ex=67b7e3db&is=67b6925b&hm=88be547a870fa4dc2ced25b470c2324a87b7ed7d0bfe8158a426f289c7b7d312&",
    "https://media.discordapp.net/attachments/1330367547249524788/1334973793940144138/image0.gif?ex=67b7873b&is=67b635bb&hm=7429b7df7a90562babde0111e9bbcbfee1974ebbee12c857e8bbc59a2623a0af&=",
    "https://media.discordapp.net/attachments/1037060119881601195/1176932252559622204/voicemessage.gif?ex=67b76193&is=67b61013&hm=394a35f837da28653683cb229f2209deeed4a9d6aaba2441de88968a34103342&=",
    "https://tenor.com/view/funny-gif-11026644638307910936",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1353939061852864593/20250324_224340.gif?ex=67e37983&is=67e22803&hm=20d678dc7c3d3dfb675a538700ae8043f585c0212566ce50f7d967c116588a9f&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1353089318700322826/VID-20250322-WA0001_1.gif?ex=67e3ade0&is=67e25c60&hm=6db08416ebbd303e40d874db7fcc4debaf941340525751fcf3a1ff3c6c9f10b3&",
    "https://cdn.discordapp.com/attachments/1330367547249524788/1352282951618007060/20250320_085121.gif?ex=67e361e3&is=67e21063&hm=d279183a87b3d690b4d8080dd5dcaaf201db8d8156908c6f356bccc99ff94297&",
    "https://cdn.discordapp.com/attachments/1211488388935450746/1353953113102618735/lv_0_20250324234520.gif?ex=67e38699&is=67e23519&hm=b23cbc4d19555fc94aa688dca75a3709e2b036232f75096203df1d920d038e73&",
    "https://tenor.com/view/bee-gif-2221550446572997929",
    "https://tenor.com/view/cats-cat-cute-run-kitten-gif-14804766",
    "https://tenor.com/view/ok-i-pull-up-gif-27257886",
    "https://tenor.com/view/fat-cat-fatty-sleepy-sleepfat-gif-27064818",
    "https://tenor.com/view/angry-cat-gif-25783770",
    "https://tenor.com/view/jalkiy-kotenok-gif-2203365976465100550",
    "https://tenor.com/view/cute-cat-gif-21549091",
    "https://tenor.com/view/cat-funny-cathands-cat-in-hat-cat-with-hands-silly-cat-gif-14981685377760273746",
    "https://tenor.com/view/gatito-cat-kitty-cute-silly-cat-gif-3290956017813741423",
    "https://tenor.com/view/cat-nyash-meow-gif-27316147",
    "https://tenor.com/view/hello-hi-cute-kitten-cat-gif-19842512",
    "https://tenor.com/view/hollyweencandy-cat-cat-drink-milk-cat-eating-cat-drinking-gif-16978701194275077898",
    "No te metas con el chico malo.",
    "Hora de hacer correr la sangre.",
    "¡¿Por qué me molestas?!",
    "Déjamelo a mí, te quitaré ese peso de encima.",
    "¿Quieres comprar habanos?",
    "La noche me confunde.",
    "¡Saluda a mi amiguito!",
    "¿Alguien ha pedido un médico?",
    "Oigo los llamamientos.",
    "¿En qué puedo ayudar?",
    "¿Necesitas mi ayuda?",
    "¿Que ansías ahora buen señor?",
    "Ahora mismo.",
    "Tío, eso sí que es una buena elección.",
    "Lo hago ¡ahora!",
    "¡Aaaah!",
    "¡Yeaaah!",
    "Abracadabra, pata de cabra.",
    "¿Te encuentras bien?",
    "Quizás tenga algo para ti.",
    "¡Será pegajoso!",
    "¡Es un libro de cocina, es un libro de cocina!",
    "¡Con tanto bicho muerto podríamos llenar un trolebus!",
    "¡Por la Horda!",
    "Lok-regar ogull.",
    "Vamos allá.",
    "Los espíritus están inquietos.",
    "Hmmm.",
    "Sí.",
    "Dabu.",
    "Por honor.",
    "Lok-narosh!",
    "¡Nadie sobrevivirá!",
    "¡Por Doomhammer!",
    "¡Ha llegado tu hora!",
    "¡Pero no soy estúpido!",
    "Mi pueblo es fuerte.",
    "Lo conduciré a su destino.",
    "Los espíritus me guiarán.",
    "Es verdad que he crecido con los humanos.",    "Listo para la acción.",
    "¿Sí?",
    "¿Hmmm?",
    "¿Qué quieres?",
    "¿Tengo que hacer algo?",
    "Puedo hacerlo.",
    "Estaré encantado.",
    "Trabajo trabajo.",
    "Okey McKey.",
    "¡Okey McKey!",
    "¡A por ellos!",
    "Vale...",
    "¿Por qué no?",
    "¿Quéee?",
    "Yo ocupado. ¡Dejadme en paz!",
    "No tiempo para jueguecitos.",
    "¡Yo no ser ese tipo de orco!",
    "¡Mi vida por la Horda!",
    "¿Eh?",
    "¿Jefe?",
    "¡Dabu!",
    "¡Lok'tar!",
    "¡Swobu!",
    "¡Zug zug!",
    "¡Tiempo de matar!",
    "¡Rrrr!",
    "¡Tiempo de morir!",
    "¡Por la Horda!",
    "¿Qué demonios quieres esta vez?",
    "¿Por qué no te buscas un ejército y dejas de tocarme las narices?",
    "Fisgar, fisgar y fisgar, ¿eso es lo único que sabes hacer?",
    "Ooh, eso sí que ha sido bonito...",
    "Yo tener cuernos, yo herir a ti hace tiempo.",
    "Yo no como Yoda hablar. ¿O hacerlo?",
    "(cantando) ¡Ser verde no es nada fácil!",
    "Listos para cabalgar.",
    "¿Sí jefe?",
    "Mmm",
    "¿Necesitas algo?",
    "Di la palabra.",
    "No problem.",
    "¡Yujuu!",
    "¡Vamos!",
    "En marcha.",
    "¡Acaba con ellos!",
    "¡Prueba mi acero!",
    "¡Por Doomhammer!",
    "¡Por la gloria del Jefe!",
    "Piltrafilla.",
    "Estás molestando a mi perro.",
    "¿A qué huele? Oh, ¡perro malo!",
    "Tengo más hambre que el lobo de Caperucita Roja.",
    "Que los ancestros me protejan.",
    "Provócalo.",
    "Puedo ayudar.",
    "¿Cómo? ¿Ahora?",
    "Por las tribus",
    "Inmediatamente.",
    "Bien hecho.",
    "¡Muerte a los enemigos de la Horda!",
    "¡Muerte al enemigo!",
    "¡Empezad a correr!",
    "(Bramidos)",
    "No me empujes que te doy un meneo de cuernos.",
    "Eh toro, eh.",
    "¿Tienes leche?",
    "¡Cuate, aquí hay tomate!",
    "Eh, ¿qué son esas letras grabadas en mi trasero?",
    "Olé.",
    "(se rompen muchas cosas) Lo siento.",
    "Venganza por Zul'jin.",
    "¿Quién tú querer matar yo?",
    "¿Qué?",
    "¿Qué querer tú hacer yo?",
    "¿Dónde tú querer ir yo?",
    "Aah.",
    "Lo que desees.",
    "Lo tienes, chico.",
    "Sí... (risa)",
    "¡Taz'dingo!"
]

# Definición de la clase de configuración para cada canal
@dataclass
class DiscordChannel:
    name: str
    url: str
    min_interval: int  # ✅ Mover estos antes de los que tienen valores por defecto
    max_interval: int  
    sticker_ids: list = field(default_factory=list)
    gif_urls: list = field(default_factory=list)
    texts: list = field(default_factory=list)

# Configuración de los canales
channels = [
    DiscordChannel(
        name="sandra",
        url="https://discord.com/api/v9/channels/1330367547249524788/messages",
        min_interval=500,
        max_interval=700,
        sticker_ids=SANDRA_STICKER_IDS,
        gif_urls=SANDRA_GIF_URLS
    )
]
""",
    DiscordChannel(
        name="smash",
        url="https://discord.com/api/v9/channels/1211488388935450746/messages",
        #url="https://discord.com/api/v9/channels/1327670116401287229/messages",
        min_interval=165,
        max_interval=180,
        sticker_ids=SMASH_STICKERS_IDS,
        gif_urls=SMASH_GIF_URLS
    )
"""

def send_message(data: dict, channel: DiscordChannel):
    """
    Envía un mensaje al canal de Discord indicado, gestionando errores y reintentos.
    """
    while True:
        try:
            response = requests.post(channel.url, headers=HEADERS, json=data)
            if response.status_code == 429:
                retry_after = response.json().get("retry_after", 5)
                logger.warning(f"[{channel.name}] Límite alcanzado. Reintentando en {retry_after}s...")
                time.sleep(retry_after)
                continue

            if response.ok:
                logger.info(f"[{channel.name}] Mensaje enviado correctamente: {data}")
            else:
                logger.error(f"[{channel.name}] Error {response.status_code}: {response.text}")

            response.raise_for_status()
            break

        except requests.exceptions.RequestException as e:
            logger.error(f"[{channel.name}] Error de conexión: {e}")
            time.sleep(5)

def send_random_channel(channel: DiscordChannel):
    """
    Envía aleatoriamente un sticker o un GIF al canal especificado, esperando un intervalo aleatorio entre envíos.
    """
    while True:
        # Se elige aleatoriamente entre enviar sticker o GIF
        action_type = random.choice(["sticker", "gif"])
        if action_type == "sticker" and channel.sticker_ids:
            data = {"sticker_ids": [random.choice(channel.sticker_ids)]}
        elif action_type == "gif" and channel.gif_urls:
            data = {"content": random.choice(channel.gif_urls)}
        else:
            # Si por alguna razón no hay stickers o GIFs disponibles, se envía un mensaje de texto simple
            data = {"content": random.choice(channel.texts)}

        send_message(data, channel)
        sleep_time = random.randint(channel.min_interval, channel.max_interval)
        logger.info(f"[{channel.name}] Esperando {sleep_time} segundos antes del próximo envío.")
        time.sleep(sleep_time)

app = FastAPI()

@app.get("/")
def read_root():
    return {"status": "ok"}

@app.get("/ping")
def ping():
    return {"message": "pong"}

@app.on_event("startup")
def start_background_tasks():
    """
    Al arrancar FastAPI, se inicia un hilo en segundo plano para cada canal.
    """
    for channel in channels:
        thread = threading.Thread(target=send_random_channel, args=(channel,), daemon=True)
        thread.start()
        logger.info(f"Iniciado hilo de fondo para el canal: {channel.name}")