UNPKG

findcord

Version:

discord botları için tasarlanmış bir api

369 lines (364 loc) 14.6 kB
/* Nyro */ // src/services/router.ts import nyro from "nyro"; var baseUrl = "https://app.findcord.com/api/"; var Router = class _Router { static { this.client = nyro.create({ method: "GET", responseType: "json", useHttp2: true, responseEncoding: "utf8", timeout: 2e4, timeoutErrorMessage: "\u0130stek Zaman A\u015F\u0131m\u0131na U\u011Frad\u0131" }); } static { this.headers = {}; } constructor(apiKey) { _Router.headers = { "Content-Type": "application/json", "User-Agent": "node", "Authorization": apiKey }; } async sendRequest(path) { return new Promise(async (resolve, reject) => { try { const response = await (await _Router.client).request({ url: `${baseUrl}${path}`, headers: _Router.headers }); resolve(response); } catch (error) { reject(error); } }); } }; // src/services/client.ts import util from "util"; // src/services/utils.ts function parseURL(url, type, options) { var parsedURL = ""; var serverId = url?.split("/")[4]; var imageHash = url?.split("/")[5]?.split(".")[0]; parsedURL = `https://cdn.discordapp.com/${type}/${serverId}/${imageHash}.${imageHash.startsWith("a_") && options.dynamic == true ? "gif" : options.extension ?? "webp"}${options.size ? `?size=${options.size}` : ""}`; return parsedURL; } function urlToHash(url) { return url?.split("/")[5]?.split(".")[0]; } // src/services/client.ts import chalk from "chalk"; var Client = class { constructor(apiKey) { if (!apiKey) throw new Error("Paketi Kullanabilmek \u0130\xE7in Bir API Anahtar\u0131 Kullanmal\u0131s\u0131n.\nAPI Key Almak \u0130\xE7in: https://discord.gg/....."); if (typeof apiKey !== "string") throw new Error("API Anahtar\u0131 Bir String De\u011Fer Olmal\u0131d\u0131r."); if (apiKey.length < 10) throw new Error("API Anahtar\u0131 Ge\xE7ersizdir."); this.router = new Router(apiKey); } /** * @method fetch * @description Kullanıcı Bilgilerini Getirir. * @param {string} userId - Kullanıcı ID * @returns {Promise<User>} - Kullanıcı Bilgileri * @returns {Promise<Error>} - Hata * @example * client.fetch('Kullanıcı ID').then((response) => { * console.log(response); * }); */ async fetch(userId) { return await fetchUser(userId, this.router); } /** * @method query * @description Kullanıcı Sorgusu Yapar. * @param {string} userId - Kullanıcı ID * @returns {Promise<UserQuery>} - Kullanıcı Sorgusu * @returns {Promise<Error>} - Hata * @example * client.query('Kullanıcı ID').then((response) => { * console.log(response); * }); */ async query(userId) { return await fetchQuery(userId, this.router); } }; async function fetchUser(userId, Router2) { if (!userId) throw new Error("Kullan\u0131c\u0131 ID'si Belirtilmedi\u015F."); if (typeof userId !== "string") throw new Error("Kullan\u0131c\u0131 ID'si Bir String De\u011Fer Olmal\u0131d\u0131r."); if (userId.length < 17) throw new Error("Kullan\u0131c\u0131 ID'si 17 Karakterden Az Olamaz."); return new Promise(async (resolve, reject) => { try { const response = await Router2.sendRequest(`user/${userId}`); var data = { id: response.body.UserInfo.UserID, username: response.body.UserInfo.UserName, bio: response.body.UserInfo.UserBio, pronouns: response.body.UserInfo.UserPronouns, globalName: response.body.UserInfo.UserGlobalName, legacyName: response.body.UserInfo.LegacyUserName, avatar: urlToHash(response.body.UserInfo.UserdisplayAvatar), banner: urlToHash(response.body.UserInfo.UserBanner), displayAvatarURL: (imageOptions) => parseURL(response.body.UserInfo.UserdisplayAvatar, "avatars", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), displayBannerURL: (imageOptions) => parseURL(response.body.UserInfo.UserBanner, "banners", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), presence: { status: response.body.UserInfo.Presence.Status, clientStatus: response.body?.UserInfo?.Presence?.Type ?? [], activities: response.body.UserInfo.Activities }, flags: response.body.UserInfo.UserBadge, guilds: response.body?.Guilds?.map((guild) => { return { id: guild.GuildId, name: guild.GuildName, icon: urlToHash(guild.GuildIcon), banner: urlToHash(guild.GuildBanner), iconURL: (imageOptions) => parseURL(guild.GuildIcon, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), bannerURL: (imageOptions) => parseURL(guild.GuildBanner, "banners", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), userDisplayName: guild.displayName }; }), stats: response.body.GuildStats?.map((stat) => { return { id: stat.GuildID, name: stat.GuildName, icon: urlToHash(stat.GuildIcon), banner: urlToHash(stat.GuildBanner), iconURL: (imageOptions) => parseURL(stat.GuildIcon, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), bannerURL: (imageOptions) => parseURL(stat.GuildBanner, "banners", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), messageStatitics: stat.MessageStat, voiceStatitics: stat.VoiceStat }; }), whereNow: { guild: { id: response.body?.WhereNow?.GuildID, name: response.body?.WhereNow?.GuildName, icon: urlToHash(response.body?.WhereNow?.GuildIcon), banner: urlToHash(response.body?.WhereNow?.GuildBanner), iconURL: (imageOptions) => parseURL(response.body?.WhereNow?.GuildIcon, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), bannerURL: (imageOptions) => parseURL(response.body?.WhereNow?.GuildBanner, "banners", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }) }, channel: { id: response.body?.WhereNow?.VoiceID, name: response.body?.WhereNow?.VoiceName, elepsedTime: response.body?.WhereNow?.ElepsedTime, joinedTimestamp: response.body?.WhereNow?.StartTimestemp, joinedTimestampISO: response.body?.WhereNow?.StartDate, size: response.body?.WhereNow?.UserSize, users: response.body?.WhereNow?.Users?.map((user) => { return { id: user.id, username: user.username, displayName: user.displayname, avatar: urlToHash(user.avatarURL), displayAvatarURL: (imageOptions) => parseURL(user?.avatarURL, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), bot: user.bot }; }) } }, friends: response.body?.MessageFriends?.map((friend) => { return { username: friend.username, displayName: friend.displayName, messageStatitics: friend.Message }; }), lastseen: { message: response.body?.LastSeen?.Message?.length > 0 ? { guild: { id: response?.body?.LastSeen?.Message[0].GuildID, name: response?.body?.LastSeen?.Message[0].GuildName, icon: urlToHash(response?.body?.LastSeen?.Message[0].GuildIcon), banner: urlToHash(response?.body?.LastSeen?.Message[0].GuildBanner), iconURL: (imageOptions) => parseURL(response?.body?.LastSeen?.Message[0].GuildIcon, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), bannerURL: (imageOptions) => parseURL(response?.body?.LastSeen?.Message[0].GuildBanner, "banners", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }) }, channel: { id: response?.body?.LastSeen?.Message[0].ChannelID, name: response?.body?.LastSeen?.Message[0].ChannelName }, timestamp: response?.body?.LastSeen?.Message[0].TimeString, content: response?.body?.LastSeen?.Message[0].Message } : null, voice: response.body.LastSeen.Voice?.length > 0 ? { guild: { id: response?.body?.LastSeen?.Voice[0].GuildID, name: response?.body?.LastSeen?.Voice[0].GuildName, icon: urlToHash(response?.body?.LastSeen?.Voice[0].GuildIcon), banner: urlToHash(response?.body?.LastSeen?.Voice[0].GuildBanner), iconURL: (imageOptions) => parseURL(response?.body?.LastSeen?.Voice[0].GuildIcon, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), bannerURL: (imageOptions) => parseURL(response?.body?.LastSeen?.Voice[0].GuildBanner, "banners", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }) }, channel: { id: response?.body?.LastSeen?.Voice[0].ChannelID, name: response?.body?.LastSeen?.Voice[0].ChannelName }, stat: response?.body?.LastSeen?.Voice[0].Stat, timestamp: response?.body?.LastSeen?.Voice[0].TimeString, users: response?.body?.LastSeen?.Voice[0].Users?.map((user) => { return { id: user.id, username: user.username, avatarURL: (imageOptions) => parseURL(user.avatarURL, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), displayName: user.displayname }; }) } : null }, punishments: response.body?.Punishments?.map((punishment) => { return { guild: { id: punishment.GuildID, name: punishment.GuildName, icon: urlToHash(punishment.GuildIcon), banner: urlToHash(punishment.GuildBanner), iconURL: (imageOptions) => parseURL(punishment.GuildIcon, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), bannerURL: (imageOptions) => parseURL(punishment.GuildBanner, "banners", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }) }, data: { type: punishment.Type, reason: punishment.Reason, timestamp: punishment.Date } }; }), staffs: response.body?.GuildStaff?.map((staff) => { return { id: staff.GuildId, name: staff.GuildName, icon: urlToHash(staff.GuildIcon), banner: urlToHash(staff.GuildBanner), iconURL: (imageOptions) => parseURL(staff.GuildIcon, "icons", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }), bannerURL: (imageOptions) => parseURL(staff.GuildBanner, "banners", { dynamic: imageOptions?.dynamic, extension: imageOptions?.extension, size: imageOptions?.size }) }; }), nyroResponse: response }; data.nyroResponse[util.inspect.custom] = function() { return rainbowText(`{ Nyro Response Body }`); }; resolve(data); } catch (error) { reject(error); } }); } async function fetchQuery(userId, Router2) { if (!userId) throw new Error("Kullan\u0131c\u0131 ID'si Belirtilmedi\u015F."); if (typeof userId !== "string") throw new Error("Kullan\u0131c\u0131 ID'si Bir String De\u011Fer Olmal\u0131d\u0131r."); if (userId.length < 17) throw new Error("Kullan\u0131c\u0131 ID'si 17 Karakterden Az Olamaz."); return new Promise(async (resolve, reject) => { try { const response = await Router2.sendRequest(`sorgu/${userId}`); var data = { id: response.body?.UserID, name: response.body?.MemberInfo?.TopName, age: parseInt(response.body?.MemberInfo?.TopAge), sex: response.body?.MemberInfo?.TopSex, fullName: (options) => `${options?.isTagged ? options?.tagSymbol ?? "\u2022" : options?.normalSymbol ?? "\u2022"} ${response.body?.MemberInfo?.TopName} ${options?.splitSymbol ?? "|"} ${response.body?.MemberInfo?.TopAge}`, nyroResponse: response }; data.nyroResponse[util.inspect.custom] = function() { return rainbowText(`{ Nyro Response Body }`); }; resolve(data); } catch (error) { reject(error); } }); } function rainbowText(text) { const rainbowColors = [ chalk.red, chalk.magenta, chalk.blue, chalk.cyan, chalk.green, chalk.yellow, chalk.redBright ]; return text.split("").map((char, i) => rainbowColors[i % rainbowColors.length](char)).join(""); } // src/index.ts var src_default = Client; export { src_default as default }; /* Nyro */ //# sourceMappingURL=index.mjs.map