المكتبات
@zrzur/sdk هي مكتبة زرزور الرسمية للتطبيقات والبوتات: TypeScript وESM وNode 22.3 أو أحدث (أو Deno 2.2 أو أحدث، أو المتصفح). حزمة واحدة بثلاث نقاط دخول:
| الاستيراد | ما هو |
|---|---|
@zrzur/sdk/bot | البوتات: الأوامر والأزرار والقوائم والنماذج والإكمال التلقائي والردود الخاصة والمؤجلة والتضمينات والجامعات والرفع |
@zrzur/sdk | الأساس: عميل HTTP (كل مسار مكتوب من OpenAPI)، والبوابة، وأنواع الواجهة، والأحداث |
@zrzur/sdk/solid | العميل الحي لتطبيق زرزور (SolidJS): مخازن للسيرفرات والقنوات والرسائل |
لا تحتاج إلى SolidJS إلا مع @zrzur/sdk/solid، ولا ينزله البوت أبدًا.
توجد أيضًا @zrzur/bot، مكتبة أقدم وأصغر بالواجهة نفسها للبوتات، وهي غير منشورة أيضًا. ينبغي للبوتات الجديدة انتظار @zrzur/sdk/bot.
@zrzur/sdk/bot (للبوتات)
import { Client } from "@zrzur/sdk/bot";
// Zrzur's own servers by default; a self-hosted server passes { apiUrl, wsUrl }
const client = new Client();
await client.login(process.env.ZRZUR_TOKEN);| المجال | الدوال |
|---|---|
| الأوامر | client.command وclient.component وclient.modal وclient.autocomplete وclient.syncCommands وclient.fetchCommands |
| الردود | i.reply وi.defer وi.update وi.deferUpdate وi.showModal وi.respond وi.editReply وi.followUp وi.deleteReply |
| الأحداث | client.on(type) وclient.onMessage وclient.onMemberJoin وclient.onMemberLeave وclient.onReaction |
| الرسائل | client.messages.send وreply وfetch وfetchMany وedit وdelete وbulkDelete وreact وunreact وclearReactions وpin وunpin |
| الأعضاء | client.members.fetch وfetchAll وedit وaddRole وremoveRole وtimeout وkick وban وunban |
| الأدوار والقنوات | client.roles.* وclient.channels.* |
| المستخدمون | client.users.fetch وopenDM وsendDM |
| الويب هوك | client.webhooks.create وlist وlistForServer وfetch وfetchWithToken وedit وregenerateToken وdelete وsend وsendSlack وfetchMessage وeditMessage وdeleteMessage |
| الجامعات | message.createMessageComponentCollector وmessage.awaitMessageComponent وinteraction.awaitModalSubmit |
| الرموز التعبيرية | client.emojis.list وfetch وfind وcreate وdelete |
| الصوت | client.voice.nodes وclient.voice.join |
| أي شيء آخر | client.rest.get(path) وpost وput وpatch وdelete (مكتوبة لكل مسار)، وclient.rest.uploadFile(tag, data, name, type) |
تُرمى أخطاء الواجهة بصيغة ApiError مع status وtype وdetail، وretryAfter بعد 429. تُنتظر الحدود القصيرة، وبعد الحد العام ينتظر كل طلب حتى يعود. تفتح البوابة حزم Bulk وتعيد الاتصال بانتظار متزايد.
تذكر كل نقطة نهاية في هذا المرجع دالة المكتبة التي تستدعيها، إن وُجدت.
@zrzur/sdk (الأساس)
import { Api, Gateway, Intents } from "@zrzur/sdk";
const api = new Api({ baseURL: "https://api.zrzur.com", authentication: { bot: process.env.ZRZUR_TOKEN } });
const me = await api.get("/users/@me");استخدمها لأدوات لا تحتاج إلا إلى واجهة HTTP أو البوابة، في أي إطار عمل.
@zrzur/sdk/solid (للتطبيقات)
العميل الذي بُني عليه تطبيق زرزور: عميل مستخدم بمخازن حية للسيرفرات والقنوات والرسائل. يستطيع الدخول برمز بوت، لكن ليس فيه واجهة تفاعلات (أوامر ومكوّنات ونماذج). استخدمه لأدوات تتصرف كتطبيق، واستخدم @zrzur/sdk/bot للبوتات.
دون مكتبة
كل ميزة هي HTTP وWebSocket عاديان. انظر بلا مكتبة.