findcord
Version:
discord botları için tasarlanmış bir api
369 lines (364 loc) • 14.6 kB
JavaScript
/* 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