apexify.js 3.0.1 → 3.1.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 (119) hide show
  1. package/.tsbuildinfo +1 -0
  2. package/README.md +158 -130
  3. package/dist/ai/ApexAI.d.ts +37 -0
  4. package/dist/ai/ApexAI.d.ts.map +1 -0
  5. package/dist/ai/ApexAI.js +258 -0
  6. package/dist/ai/ApexAI.js.map +1 -0
  7. package/dist/ai/buttons/drawMenu.d.ts +3 -0
  8. package/dist/ai/buttons/drawMenu.d.ts.map +1 -0
  9. package/dist/ai/buttons/drawMenu.js +271 -0
  10. package/dist/ai/buttons/drawMenu.js.map +1 -0
  11. package/dist/ai/buttons/tools.d.ts +3 -0
  12. package/dist/ai/buttons/tools.d.ts.map +1 -0
  13. package/dist/ai/buttons/tools.js +442 -0
  14. package/dist/ai/buttons/tools.js.map +1 -0
  15. package/dist/ai/functions/chunkString.d.ts +2 -0
  16. package/dist/ai/functions/chunkString.d.ts.map +1 -0
  17. package/{lib → dist}/ai/functions/chunkString.js +8 -8
  18. package/dist/ai/functions/chunkString.js.map +1 -0
  19. package/dist/ai/functions/draw.d.ts +3 -0
  20. package/dist/ai/functions/draw.d.ts.map +1 -0
  21. package/dist/ai/functions/draw.js +377 -0
  22. package/dist/ai/functions/draw.js.map +1 -0
  23. package/dist/ai/functions/generateVoiceResponse.d.ts +3 -0
  24. package/dist/ai/functions/generateVoiceResponse.d.ts.map +1 -0
  25. package/dist/ai/functions/generateVoiceResponse.js +158 -0
  26. package/dist/ai/functions/generateVoiceResponse.js.map +1 -0
  27. package/dist/ai/functions/imageReader.d.ts +3 -0
  28. package/dist/ai/functions/imageReader.d.ts.map +1 -0
  29. package/dist/ai/functions/imageReader.js +23 -0
  30. package/dist/ai/functions/imageReader.js.map +1 -0
  31. package/dist/ai/functions/readFiles.d.ts +3 -0
  32. package/dist/ai/functions/readFiles.d.ts.map +1 -0
  33. package/dist/ai/functions/readFiles.js +62 -0
  34. package/dist/ai/functions/readFiles.js.map +1 -0
  35. package/dist/ai/functions/shouldDrawImage.d.ts +2 -0
  36. package/dist/ai/functions/shouldDrawImage.d.ts.map +1 -0
  37. package/dist/ai/functions/shouldDrawImage.js +12 -0
  38. package/dist/ai/functions/shouldDrawImage.js.map +1 -0
  39. package/dist/ai/models.d.ts +9 -0
  40. package/dist/ai/models.d.ts.map +1 -0
  41. package/dist/ai/models.js +538 -0
  42. package/dist/ai/models.js.map +1 -0
  43. package/dist/ai/utils.d.ts +9 -0
  44. package/dist/ai/utils.d.ts.map +1 -0
  45. package/dist/ai/utils.js +20 -0
  46. package/dist/ai/utils.js.map +1 -0
  47. package/dist/canvas/ApexPainter.d.ts +26 -0
  48. package/dist/canvas/ApexPainter.d.ts.map +1 -0
  49. package/dist/canvas/ApexPainter.js +411 -0
  50. package/dist/canvas/ApexPainter.js.map +1 -0
  51. package/dist/canvas/utils/bg.d.ts +24 -0
  52. package/dist/canvas/utils/bg.d.ts.map +1 -0
  53. package/dist/canvas/utils/bg.js +77 -0
  54. package/dist/canvas/utils/bg.js.map +1 -0
  55. package/dist/canvas/utils/charts.d.ts +9 -0
  56. package/dist/canvas/utils/charts.d.ts.map +1 -0
  57. package/dist/canvas/utils/charts.js +453 -0
  58. package/dist/canvas/utils/charts.js.map +1 -0
  59. package/dist/canvas/utils/circular.d.ts +10 -0
  60. package/dist/canvas/utils/circular.d.ts.map +1 -0
  61. package/dist/canvas/utils/circular.js +22 -0
  62. package/dist/canvas/utils/circular.js.map +1 -0
  63. package/dist/canvas/utils/customLines.d.ts +2 -0
  64. package/dist/canvas/utils/customLines.d.ts.map +1 -0
  65. package/dist/canvas/utils/customLines.js +50 -0
  66. package/dist/canvas/utils/customLines.js.map +1 -0
  67. package/dist/canvas/utils/general functions.d.ts +8 -0
  68. package/dist/canvas/utils/general functions.d.ts.map +1 -0
  69. package/dist/canvas/utils/general functions.js +187 -0
  70. package/dist/canvas/utils/general functions.js.map +1 -0
  71. package/dist/canvas/utils/imageProperties.d.ts +60 -0
  72. package/dist/canvas/utils/imageProperties.d.ts.map +1 -0
  73. package/dist/canvas/utils/imageProperties.js +331 -0
  74. package/dist/canvas/utils/imageProperties.js.map +1 -0
  75. package/dist/canvas/utils/radius.d.ts +10 -0
  76. package/dist/canvas/utils/radius.d.ts.map +1 -0
  77. package/dist/canvas/utils/radius.js +31 -0
  78. package/dist/canvas/utils/radius.js.map +1 -0
  79. package/dist/canvas/utils/textProperties.d.ts +18 -0
  80. package/dist/canvas/utils/textProperties.d.ts.map +1 -0
  81. package/dist/canvas/utils/textProperties.js +67 -0
  82. package/dist/canvas/utils/textProperties.js.map +1 -0
  83. package/dist/canvas/utils/types.d.ts +389 -0
  84. package/dist/canvas/utils/types.d.ts.map +1 -0
  85. package/dist/canvas/utils/types.js +5 -0
  86. package/dist/canvas/utils/types.js.map +1 -0
  87. package/dist/canvas/utils/utils.d.ts +20 -0
  88. package/dist/canvas/utils/utils.d.ts.map +1 -0
  89. package/dist/canvas/utils/utils.js +43 -0
  90. package/dist/canvas/utils/utils.js.map +1 -0
  91. package/dist/index.d.ts +10 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +61 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/utils.d.ts +12 -0
  96. package/dist/utils.d.ts.map +1 -0
  97. package/dist/utils.js +12 -0
  98. package/dist/utils.js.map +1 -0
  99. package/example/barChartType1.txt +69 -0
  100. package/example/lineChart.txt +84 -0
  101. package/example/piechartUsagetyp1.txt +63 -0
  102. package/package.json +136 -78
  103. package/dataSQL/data.sql +0 -5
  104. package/dataSQL/dataName.sql +0 -0
  105. package/dataSQL/example_table.sql +0 -1
  106. package/index.js +0 -35
  107. package/lib/ai/apexAI.js +0 -446
  108. package/lib/ai/buttons/drawMenu.js +0 -351
  109. package/lib/ai/buttons/tools.js +0 -652
  110. package/lib/ai/functions/draw.js +0 -514
  111. package/lib/ai/functions/generateVoiceResponse.js +0 -239
  112. package/lib/ai/functions/processImageAttachments.js +0 -93
  113. package/lib/ai/functions/processMessageContent.js +0 -48
  114. package/lib/ai/functions/readFiles.js +0 -95
  115. package/lib/ai/functions/shouldDrawImage.js +0 -12
  116. package/lib/ai/models.js +0 -654
  117. package/lib/ai/utils.js +0 -21
  118. package/lib/canvas/ApexPainter.js +0 -1396
  119. package/lib/utils.js +0 -24
@@ -1,514 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.drawImage = void 0;
40
- var translate = require("@iamtraction/google-translate");
41
- var sharp = require("sharp");
42
- var discord_js_1 = require("discord.js");
43
- var axios = require("axios");
44
- var api = require("api");
45
- var sdk = api("@prodia/v1.3.0#be019b2kls0gqss3");
46
- sdk.auth("43435e1c-cab1-493f-a224-f51e4b97ce8d");
47
- var validHercaiModals = [
48
- "v1",
49
- "v2",
50
- "v2-beta",
51
- "lexica",
52
- "prodia",
53
- "animefy",
54
- "raava",
55
- "shonin",
56
- "v3",
57
- ];
58
- var validProdiaModals = [
59
- "3Guofeng3_v34.safetensors [50f420de]",
60
- "absolutereality_V16.safetensors [37db0fc3]",
61
- "absolutereality_v181.safetensors [3d9d4d2b]",
62
- "amIReal_V41.safetensors [0a8a2e61]",
63
- "analog-diffusion-1.0.ckpt [9ca13f02]",
64
- "anythingv3_0-pruned.ckpt [2700c435]",
65
- "anything-v4.5-pruned.ckpt [65745d25]",
66
- "anythingV5_PrtRE.safetensors [893e49b9]",
67
- "AOM3A3_orangemixs.safetensors [9600da17]",
68
- "blazing_drive_v10g.safetensors [ca1c1eab]",
69
- "cetusMix_Version35.safetensors [de2f2560]",
70
- "childrensStories_v13D.safetensors [9dfaabcb]",
71
- "childrensStories_v1SemiReal.safetensors [a1c56dbb]",
72
- "childrensStories_v1ToonAnime.safetensors [2ec7b88b]",
73
- "Counterfeit_v30.safetensors [9e2a8f19]",
74
- "cuteyukimixAdorable_midchapter3.safetensors [04bdffe6]",
75
- "cyberrealistic_v33.safetensors [82b0d085]",
76
- "dalcefo_v4.safetensors [425952fe]",
77
- "deliberate_v2.safetensors [10ec4b29]",
78
- "deliberate_v3.safetensors [afd9d2d4]",
79
- "dreamlike-anime-1.0.safetensors [4520e090]",
80
- "dreamlike-diffusion-1.0.safetensors [5c9fd6e0]",
81
- "dreamlike-photoreal-2.0.safetensors [fdcf65e7]",
82
- "dreamshaper_6BakedVae.safetensors [114c8abb]",
83
- "dreamshaper_7.safetensors [5cf5ae06]",
84
- "dreamshaper_8.safetensors [9d40847d]",
85
- "edgeOfRealism_eorV20.safetensors [3ed5de15]",
86
- "EimisAnimeDiffusion_V1.ckpt [4f828a15]",
87
- "elldreths-vivid-mix.safetensors [342d9d26]",
88
- "epicrealism_naturalSinRC1VAE.safetensors [90a4c676]",
89
- "ICantBelieveItsNotPhotography_seco.safetensors [4e7a3dfd]",
90
- "juggernaut_aftermath.safetensors [5e20c455]",
91
- "lofi_v4.safetensors [ccc204d6]",
92
- "lyriel_v16.safetensors [68fceea2]",
93
- "majicmixRealistic_v4.safetensors [29d0de58]",
94
- "mechamix_v10.safetensors [ee685731]",
95
- "meinamix_meinaV9.safetensors [2ec66ab0]",
96
- "meinamix_meinaV11.safetensors [b56ce717]",
97
- "neverendingDream_v122.safetensors [f964ceeb]",
98
- "openjourney_V4.ckpt [ca2f377f]",
99
- "pastelMixStylizedAnime_pruned_fp16.safetensors [793a26e8]",
100
- "portraitplus_V1.0.safetensors [1400e684]",
101
- "protogenx34.safetensors [5896f8d5]",
102
- "Realistic_Vision_V1.4-pruned-fp16.safetensors [8d21810b]",
103
- "Realistic_Vision_V2.0.safetensors [79587710]",
104
- "Realistic_Vision_V4.0.safetensors [29a7afaa]",
105
- "Realistic_Vision_V5.0.safetensors [614d1063]",
106
- "redshift_diffusion-V10.safetensors [1400e684]",
107
- "revAnimated_v122.safetensors [3f4fefd9]",
108
- "rundiffusionFX25D_v10.safetensors [cd12b0ee]",
109
- "rundiffusionFX_v10.safetensors [cd4e694d]",
110
- "sdv1_4.ckpt [7460a6fa]",
111
- "v1-5-pruned-emaonly.safetensors [d7049739]",
112
- "v1-5-inpainting.safetensors [21c7ab71]",
113
- "shoninsBeautiful_v10.safetensors [25d8c546]",
114
- "theallys-mix-ii-churned.safetensors [5d9225a4]",
115
- "timeless-1.0.ckpt [7c4971d4]",
116
- "toonyou_beta6.safetensors [980f6b15]",
117
- ];
118
- function drawImage(message, numOfImages, textToDraw, hercai, imageModel, nsfw) {
119
- return __awaiter(this, void 0, void 0, function () {
120
- function retry(fn, retriesLeft) {
121
- if (retriesLeft === void 0) { retriesLeft = maxRetryAttempts; }
122
- return __awaiter(this, void 0, void 0, function () {
123
- var error_1;
124
- return __generator(this, function (_a) {
125
- switch (_a.label) {
126
- case 0:
127
- _a.trys.push([0, 2, , 4]);
128
- return [4 /*yield*/, fn()];
129
- case 1: return [2 /*return*/, _a.sent()];
130
- case 2:
131
- error_1 = _a.sent();
132
- if (retriesLeft === 0) {
133
- throw error_1;
134
- }
135
- console.error("Retry failed, ".concat(retriesLeft, " attempts left. Error: ").concat(error_1.message));
136
- return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, retryInterval); })];
137
- case 3:
138
- _a.sent();
139
- return [2 /*return*/, retry(fn, retriesLeft - 1)];
140
- case 4: return [2 /*return*/];
141
- }
142
- });
143
- });
144
- }
145
- var maxRetryAttempts, retryInterval, response, translatedText_1, attachData, buttonsRow1, imageUrls, _loop_1, _0x4d7fb6, state_1, selectMenu_1, options, row1, row2, e_1;
146
- var _a;
147
- return __generator(this, function (_b) {
148
- switch (_b.label) {
149
- case 0:
150
- maxRetryAttempts = 3;
151
- retryInterval = 10000;
152
- _b.label = 1;
153
- case 1:
154
- _b.trys.push([1, 8, , 9]);
155
- if (numOfImages > 4 || numOfImages <= 0) {
156
- throw new Error("Number of images can't be greater than 4 or smaller than 0.");
157
- }
158
- return [4 /*yield*/, retry(function () {
159
- return (0, translate)(textToDraw, {
160
- from: "auto",
161
- to: "en",
162
- });
163
- })];
164
- case 2:
165
- translatedText_1 = _b.sent();
166
- attachData = [];
167
- buttonsRow1 = [];
168
- imageUrls = [];
169
- _loop_1 = function (_0x4d7fb6) {
170
- var generateResponse, generatedJobId, error_2, buffferedImage, res, resizedImage, attachment, urlButton, imageUrl, textToCheck_1, nsfwWords, attach, urlButton;
171
- return __generator(this, function (_c) {
172
- switch (_c.label) {
173
- case 0:
174
- _c.trys.push([0, 7, , 12]);
175
- if (!validHercaiModals.includes(imageModel)) return [3 /*break*/, 2];
176
- return [4 /*yield*/, retry(function () {
177
- return hercai.drawImage({
178
- model: imageModel,
179
- prompt: translatedText_1.text,
180
- });
181
- })];
182
- case 1:
183
- response = _c.sent();
184
- return [3 /*break*/, 6];
185
- case 2:
186
- if (!validProdiaModals.includes(imageModel)) return [3 /*break*/, 5];
187
- return [4 /*yield*/, sdk.generate({
188
- model: imageModel,
189
- prompt: translatedText_1.text,
190
- })];
191
- case 3:
192
- generateResponse = _c.sent();
193
- generatedJobId = generateResponse.data.job;
194
- return [4 /*yield*/, checkJobStatus(generatedJobId)];
195
- case 4:
196
- response = _c.sent();
197
- return [3 /*break*/, 6];
198
- case 5: throw new Error("Invalid modal name.");
199
- case 6: return [3 /*break*/, 12];
200
- case 7:
201
- error_2 = _c.sent();
202
- if (!(error_2.response && error_2.response.status === 429)) return [3 /*break*/, 8];
203
- console.error("Too many requests. Please try again later.");
204
- return [2 /*return*/, { value: message.reply("Please wait i am in a cool down for a minute") }];
205
- case 8:
206
- if (!(error_2.response && error_2.response.status === 500)) return [3 /*break*/, 9];
207
- console.error("Internal server error. Please try again later.");
208
- return [2 /*return*/, { value: message.reply("Please wait i am in a cool down for a minute") }];
209
- case 9: return [4 /*yield*/, message.reply("Please wait i am in a cool down for a minute")];
210
- case 10:
211
- _c.sent();
212
- throw new Error("Error processing message in file");
213
- case 11: return [3 /*break*/, 12];
214
- case 12:
215
- buffferedImage = void 0;
216
- if (!(imageModel === "v3")) return [3 /*break*/, 15];
217
- return [4 /*yield*/, retry(function () {
218
- return axios.get(response.url, {
219
- responseType: "arraybuffer",
220
- });
221
- })];
222
- case 13:
223
- res = _c.sent();
224
- buffferedImage = Buffer.from(res.data, "binary");
225
- return [4 /*yield*/, sharp(buffferedImage)
226
- .resize({
227
- width: 0x320,
228
- })
229
- .toBuffer()];
230
- case 14:
231
- resizedImage = _c.sent();
232
- attachment = {
233
- file: resizedImage,
234
- name: "image_".concat(_0x4d7fb6 + 1, ".png"),
235
- };
236
- attachData.push(attachment);
237
- urlButton = new discord_js_1.ButtonBuilder()
238
- .setStyle(discord_js_1.ButtonStyle.Link)
239
- .setLabel("Image ".concat(_0x4d7fb6 + 1))
240
- .setURL(response.url);
241
- buttonsRow1.push(urlButton);
242
- imageUrls.push(response.url);
243
- return [3 /*break*/, 18];
244
- case 15:
245
- imageUrl = response.url || response;
246
- if (!nsfw) return [3 /*break*/, 17];
247
- return [4 /*yield*/, attemptImageCaptioning(imageUrl)];
248
- case 16:
249
- textToCheck_1 = _c.sent();
250
- nsfwWords = [
251
- "anal",
252
- "arousal",
253
- "balls",
254
- "blowjob",
255
- "busty",
256
- "butt",
257
- "cameltoe",
258
- "climax",
259
- "clitoris",
260
- "cock",
261
- "crotch",
262
- "cum",
263
- "cumshot",
264
- "cunnilingus",
265
- "dirty",
266
- "dirtytalk",
267
- "dildo",
268
- "erect",
269
- "erogenous",
270
- "escort",
271
- "explicit",
272
- "facial",
273
- "fetish",
274
- "flirt",
275
- "foreplay",
276
- "genitals",
277
- "groin",
278
- "hardcore",
279
- "hardon",
280
- "horniness",
281
- "horny",
282
- "kamasutra",
283
- "kinky",
284
- "lewd",
285
- "lingerie",
286
- "lust",
287
- "lustful",
288
- "masturbate",
289
- "mature",
290
- "milf",
291
- "naughty",
292
- "naked",
293
- "nipples",
294
- "nude",
295
- "obscene",
296
- "oral",
297
- "orgasm",
298
- "penetration",
299
- "penis",
300
- "pleasure",
301
- "porn",
302
- "prostitute",
303
- "provocative",
304
- "pubic",
305
- "pussy",
306
- "seduce",
307
- "seductive",
308
- "sensual",
309
- "sex",
310
- "sexual",
311
- "sperm",
312
- "strip",
313
- "striptease",
314
- "swinger",
315
- "testicles",
316
- "thong",
317
- "threesome",
318
- "undies",
319
- "undress",
320
- "vagina",
321
- "vibrator",
322
- "wank",
323
- "wet",
324
- "hentai",
325
- "bdsm",
326
- "gay",
327
- "lesbian",
328
- "femboy",
329
- "ass",
330
- ];
331
- if (textToCheck_1 && nsfwWords.some(function (word) { return textToCheck_1 === null || textToCheck_1 === void 0 ? void 0 : textToCheck_1.includes(word); })) {
332
- message.reply("Warning ⚠️. The generated image contatining nsfw content. Turn off nsfw to sedn nsfw images.");
333
- }
334
- _c.label = 17;
335
- case 17:
336
- attach = new discord_js_1.AttachmentBuilder(imageUrl, { name: "image_".concat(_0x4d7fb6 + 1, ".png") });
337
- attachData.push(attach);
338
- urlButton = new discord_js_1.ButtonBuilder()
339
- .setStyle(discord_js_1.ButtonStyle.Link)
340
- .setLabel("Image ".concat(_0x4d7fb6 + 1))
341
- .setURL(imageUrl);
342
- buttonsRow1.push(urlButton);
343
- imageUrls.push(imageUrl);
344
- _c.label = 18;
345
- case 18: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 0x7d0); })];
346
- case 19:
347
- _c.sent();
348
- return [2 /*return*/];
349
- }
350
- });
351
- };
352
- _0x4d7fb6 = 0x0;
353
- _b.label = 3;
354
- case 3:
355
- if (!(_0x4d7fb6 < numOfImages)) return [3 /*break*/, 6];
356
- return [5 /*yield**/, _loop_1(_0x4d7fb6)];
357
- case 4:
358
- state_1 = _b.sent();
359
- if (typeof state_1 === "object")
360
- return [2 /*return*/, state_1.value];
361
- _b.label = 5;
362
- case 5:
363
- _0x4d7fb6++;
364
- return [3 /*break*/, 3];
365
- case 6:
366
- selectMenu_1 = new discord_js_1.StringSelectMenuBuilder()
367
- .setCustomId("image_processing_select")
368
- .setPlaceholder("Select Image Process");
369
- options = [
370
- "Resizing",
371
- "Color Filters",
372
- "Convert Image Extension",
373
- "Brightness",
374
- "Sepia",
375
- "Pixelate",
376
- "Blur",
377
- "Fade",
378
- "Opaque",
379
- "Grayscale",
380
- "Contrast",
381
- ];
382
- options.forEach(function (option, index) {
383
- var selectOption = new discord_js_1.StringSelectMenuOptionBuilder()
384
- .setLabel(option)
385
- .setValue("process_".concat(index + 1));
386
- selectMenu_1.addOptions(selectOption);
387
- });
388
- row1 = (_a = new discord_js_1.ActionRowBuilder()).addComponents.apply(_a, buttonsRow1);
389
- row2 = new discord_js_1.ActionRowBuilder().addComponents(selectMenu_1);
390
- return [4 /*yield*/, message.reply({
391
- files: attachData,
392
- components: [row1, row2],
393
- allowedMentions: { repliedUser: false },
394
- })];
395
- case 7:
396
- _b.sent();
397
- return [2 /*return*/, imageUrls];
398
- case 8:
399
- e_1 = _b.sent();
400
- console.error("Error in drawImage:", e_1.message);
401
- if (e_1.response) {
402
- console.error("Status code:", e_1.response.status);
403
- console.error("Response data:", e_1.response.data);
404
- }
405
- message.reply({
406
- content: "An error occurred while processing the images.",
407
- allowedMentions: { repliedUser: false },
408
- });
409
- return [2 /*return*/, []];
410
- case 9: return [2 /*return*/];
411
- }
412
- });
413
- });
414
- }
415
- exports.drawImage = drawImage;
416
- function checkJobStatus(jobId) {
417
- return __awaiter(this, void 0, void 0, function () {
418
- var getJobResponse, jobData, error_3;
419
- return __generator(this, function (_a) {
420
- switch (_a.label) {
421
- case 0:
422
- _a.trys.push([0, 5, , 6]);
423
- return [4 /*yield*/, sdk.getJob({ jobId: jobId })];
424
- case 1:
425
- getJobResponse = _a.sent();
426
- jobData = getJobResponse.data;
427
- if (!(jobData.status === "generating" || jobData.status === "queued")) return [3 /*break*/, 3];
428
- return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 3000); })];
429
- case 2:
430
- _a.sent();
431
- return [2 /*return*/, checkJobStatus(jobId)];
432
- case 3:
433
- if (jobData.status === "succeeded") {
434
- return [2 /*return*/, jobData.imageUrl];
435
- }
436
- else {
437
- console.error("Job failed:", jobData);
438
- return [2 /*return*/, null];
439
- }
440
- _a.label = 4;
441
- case 4: return [3 /*break*/, 6];
442
- case 5:
443
- error_3 = _a.sent();
444
- console.error(error_3);
445
- return [2 /*return*/, null];
446
- case 6: return [2 /*return*/];
447
- }
448
- });
449
- });
450
- }
451
- function attemptImageCaptioning(imageUrl) {
452
- return __awaiter(this, void 0, void 0, function () {
453
- var retryCount, maxRetries, fetchData, error_4, error_5;
454
- var _this = this;
455
- return __generator(this, function (_a) {
456
- switch (_a.label) {
457
- case 0:
458
- _a.trys.push([0, 7, , 8]);
459
- retryCount = 0;
460
- maxRetries = 3;
461
- fetchData = function () { return __awaiter(_this, void 0, void 0, function () {
462
- var response, error_6;
463
- return __generator(this, function (_a) {
464
- switch (_a.label) {
465
- case 0:
466
- _a.trys.push([0, 2, , 3]);
467
- return [4 /*yield*/, axios.post("https://api-inference.huggingface.co/models/Salesforce/blip-image-captioning-base", { image: imageUrl }, {
468
- headers: {
469
- "Content-Type": "application/json",
470
- Authorization: "Bearer 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",
471
- },
472
- })];
473
- case 1:
474
- response = _a.sent();
475
- if (response.status === 200) {
476
- return [2 /*return*/, response.data[0].generated_text];
477
- }
478
- else {
479
- console.error("Failed to fetch image captioning API: ".concat(response.statusText));
480
- return [2 /*return*/, null];
481
- }
482
- return [3 /*break*/, 3];
483
- case 2:
484
- error_6 = _a.sent();
485
- console.error("Error fetching data: ".concat(error_6.message));
486
- throw error_6;
487
- case 3: return [2 /*return*/];
488
- }
489
- });
490
- }); };
491
- _a.label = 1;
492
- case 1:
493
- if (!(retryCount < maxRetries)) return [3 /*break*/, 6];
494
- _a.label = 2;
495
- case 2:
496
- _a.trys.push([2, 4, , 5]);
497
- return [4 /*yield*/, fetchData()];
498
- case 3: return [2 /*return*/, _a.sent()];
499
- case 4:
500
- error_4 = _a.sent();
501
- console.error("Error fetching data (Retry ".concat(retryCount + 1, "): ").concat(error_4.message));
502
- retryCount++;
503
- return [3 /*break*/, 5];
504
- case 5: return [3 /*break*/, 1];
505
- case 6: return [2 /*return*/, null];
506
- case 7:
507
- error_5 = _a.sent();
508
- console.error("Error in attemptImageCaptioning: ".concat(error_5.message));
509
- return [2 /*return*/, null];
510
- case 8: return [2 /*return*/];
511
- }
512
- });
513
- });
514
- }