عميل خلاف بديل مصنوع في C ++ مع GTK
![]() | ![]() |
![]() | ![]() |
الميزات الحالية:
1 - يحاول Abaddon أفضل ما في الأمر (على الرغم من أنه ليس مثاليًا) لجعل Discord يعتقد أنه عميل ويب شرعي. تتضمن بعض الأشياء التي تم القيام بها للقيام بذلك: استخدام وكيل مستخدم المتصفح ، وإرسال نفس رسالة تحديد العميل الرسمي الذي يقوم به عميل الويب الرسمي ، باستخدام نقاط نهاية API V9 في جميع الحالات ، وعدم استخدام نقاط النهاية التي لا يستخدمها عميل الويب عادة. لا يزال هناك عدد قليل من التناقضات الأصغر. على سبيل المثال ، يرسل عميل الويب الكثير من القياس عن بُعد عبر نقطة النهاية /science (Origin Origin يوقف هذا) وكذلك في رؤوس جميع الطلبات.
انظر هنا للحصول على الأشياء التي قد ترغب في تجنبها إذا كنت قلقًا بشأن الوقوع في مرشح البريد العشوائي.
2 - يتم استبدال الرموز التعبيرية Unicode يدويًا بدلاً من تقديم GTK على منصات غير Windows. يمكن تغيير هذا مع إعداد stock_emojis كما هو موضح في أسفل هذا القراءة. يتم توفير خط قائم على CBDT باستخدام Twemoji للسماح لـ GTK بعرض الرموز التعبيرية أصلاً على Windows.
3 - هناك بعض التناقضات مع حالة الخيط التي يمكن مواجهتها في بعض الحالات غير المألوفة ، لكنها نتيجة للقضايا الأساسية مع تنفيذ مؤشر ترابط Discord.
git clone --recurse-submodules="subprojects" https://github.com/uowuo/abaddon && cd abaddonmkdir build && cd buildcmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo ..ninjagit clone https://github.com/uowuo/abaddon --recurse-submodules="subprojects" && cd abaddonbrew install gtkmm3 nlohmann-json libhandy opus libsodium spdlog adwaita-icon-thememkdir build && cd buildcmake ..make$ sudo apt install g++ cmake libgtkmm-3.0-dev libcurl4-gnutls-dev libsqlite3-dev libssl-dev nlohmann-json3-dev libhandy-1-dev libsecret-1-dev libopus-dev libsodium-dev libspdlog-dev$ sudo pacman -S gcc cmake gtkmm3 libcurl-gnutls lib32-sqlite lib32-openssl nlohmann-json libhandy opus libsodium spdlog$ sudo dnf install g++ cmake gtkmm3.0-devel libcurl-devel sqlite-devel openssl-devel json-devel libsecret-devel libhandy-devel opus-devel libsodium-devel spdlog-develملاحظة: في الإصدارات الأقدم من Fedora قد تحتاج إلى تثبيت GTKMM30-Devel بدلاً من GTKMM3.0-Devel. استخدم
dnf search gtkmm3لمشاهدة الحزم المتاحة.
git clone https://github.com/uowuo/abaddon --recurse-submodules="subprojects" && cd abaddonmkdir build && cd buildcmake ..makepkg install git cmake nlohmann-json spdlog gtkmm30 libhandy libsodiumgit clone https://github.com/uowuo/abaddon --recurse-submodules="subprojects" && cd abaddonmkdir build && cd buildcmake ..makeإصدار الإصدار الأخير: https://github.com/uowuo/abaddon/releases/latest
CI:
تحذير : إذا كنت تستخدم Windows ، فتأكد من البدء من دليل
bin
المجلدين داخل مجلد res ( res/res و res/css ) ضروريان. يستخدم Windows أيضًا مجلد fonts . يمكنك وضعها مباشرة بجوار القابل للتنفيذ. على Linux ، يمكن أيضًا تحميل css و res من ~/.local/share/abaddon أو /usr/share/abaddon
كما سيتم استخدام abaddon.ini تلقائيًا إذا كانت موجودة في ~/.config/abaddon/abaddon.ini ولا يوجد abaddon.ini في دليل العمل
اتبع هذه التعليمات.
يحب Discord تعطيل الحسابات/إجبارها على إعادة تعيين كلمات المرور الخاصة بهم إذا كانوا يعتقدون أن المستخدم هو روبوت غير مرغوب فيه أو من المحتمل أن يكون حسابه قد تعرض للخطر. في حين أن العميل الرسمي لا يزال غالبًا ما يحصل المستخدمين على مرشح البريد العشوائي ، إلا أن عملاء الطرف الثالث يميلون إلى إزعاج مرشح البريد العشوائي في كثير من الأحيان. إذا تم القبض عليك ، فيمكنك عادةً استئنافها واستعادتها. فيما يلي بعض الأشياء التي قد ترغب في القيام بها مع العميل الرسمي بدلاً من ذلك إذا كنت خائفًا بشكل خاص من استحضار غضب مرشح البريد العشوائي:
| المحدد | وصف |
|---|---|
.app-window | تنطبق على جميع النوافذ. هذا يعني النافذة الرئيسية وجميع النوافذ المنبثقة |
.app-popup | فئة إضافية لـ .app-window s عندما لا تكون النافذة هي النافذة الرئيسية |
.channel-list | حاوية قائمة القنوات |
.messages | حاوية رسائل المستخدم |
.message-container | الحاوية التي تحمل رسائل المستخدم |
.message-container-author | تسمية المؤلف لحاوية الرسائل |
.message-container-timestamp | ملصق الطابع الزمني لحاوية الرسائل |
.message-container-avatar | الصورة الرمزية للمستخدم في رسالة |
.message-container-extra | تسمية تحتوي على روبوت/webhook |
.message-text | نص رسالة المستخدم |
.pending | فئة إضافية من .Message-Text للرسائل المعلقة التي يتم إرسالها |
.failed | فئة إضافية من. message-text للرسائل التي فشلت في إرسالها |
.message-attachment-box | يحتوي على معلومات التعلق |
.message-reply | حاوية للرسالة المردبة في الرد (سيكون لهذه العناصر أيضًا مجموعة النص. message) |
.message-input | تم تطبيقه على حاوية إدخال الدردشة |
.replying | فئة إضافية لحاوية إدخال الدردشة عند إنشاء الرد حاليًا |
.reaction-box | يحتوي على صورة رد الفعل والعدد |
.reacted | فئة إضافية لصندوق التفاعل عندما كان رد فعل المستخدم مع رد فعل معين |
.reaction-count | يحتوي على عدد التفاعل |
.completer | حاوية لكمل الرسائل |
.completer-entry | حاوية لإدخال واحد في الكمل |
.completer-entry-label | يحتوي على الملصق لإدخال في الكمل |
.completer-entry-image | يحتوي على صورة إدخال في الكمل |
.embed | حاوية لرسالة تضمين |
.embed-author | مؤلف التضمين |
.embed-title | عنوان التضمين |
.embed-description | وصف التضمين |
.embed-field-title | عنوان حقل التضمين |
.embed-field-value | قيمة حقل التضمين |
.embed-footer | تذييل التضمين |
.member-list | حاوية قائمة الأعضاء |
.typing-indicator | مؤشر الكتابة (يستخدم أيضًا للردود) |
يستخدم في تطبيق قائمة إعادة الترتيب:
| المحدد |
|---|
.drag-icon |
.drag-hover-top |
.drag-hover-bottom |
تستخدم في إعدادات النقابة المنبثقة:
| المحدد | وصف |
|---|---|
.guild-settings-window | حاوية لقائمة الأعضاء في جزء الأعضاء |
.guild-members-pane-list | |
.guild-members-pane-info | حاوية لمعلومات الأعضاء |
.guild-roles-pane-list | حاوية لقائمة الأدوار في جزء الأدوار |
تستخدم في ملف التعريف المنبثق:
| المحدد | وصف |
|---|---|
.mutual-friend-item | يتم تطبيقه على كل عنصر في قائمة الأصدقاء المشتركين |
.mutual-friend-item-name | الاسم في عنصر الصديق المتبادل |
.mutual-friend-item-avatar | الصورة الرمزية في عنصر صديق مشترك |
.mutual-guild-item | يتم تطبيقه على كل عنصر في قائمة النقابات المتبادلة |
.mutual-guild-item-name | الاسم في عنصر النقابة المتبادلة |
.mutual-guild-item-icon | أيقونة في عنصر نقابة مشتركة |
.mutual-guild-item-nick | لقب المستخدم في عنصر النقابة المشتركة |
.profile-connection | يتم تطبيقه على كل عنصر في قائمة اتصالات المستخدم |
.profile-connection-label | التسمية في عنصر اتصال الملف الشخصي |
.profile-connection-check | تحقق في عناصر اتصال الملف الشخصي المحقق |
.profile-connections | حاوية لاتصالات الملف الشخصي |
.profile-notes | حاوية للملاحظات في نافذة الملف الشخصي |
.profile-notes-label | التسمية التي تقول "ملاحظة" |
.profile-notes-text | نص ملاحظة فعلي |
.profile-info-pane | تم تطبيقه على الحاوية للحصول على معلومات قسم ملف التعريف المنبثق |
.profile-info-created | تسمية لإنشاء تاريخ الملف الشخصي |
.user-profile-window | |
.profile-main-container | الحاوية الداخلية للملف الشخصي |
.profile-avatar | |
.profile-username | اسم عرض المستخدم (اسم المستخدم للتوافق مع الوراء) |
.profile-username-nondisplay | اسم المستخدم الفعلي للمستخدم |
.profile-switcher | الأزرار المستخدمة لتبديل قسم ملف التعريف |
.profile-stack | حاوية لمعلومات الملف الشخصي التي يمكن تبديلها بين |
.profile-badges | حاوية للشارات |
.profile-badge |
يتم تكوين الإعدادات (في الوقت الحالي) عن طريق تحرير abaddon.ini . يشبه التنسيق تنسيق Windows INI القياسي باستثناء :
# يستخدم لبدء التعليقات على عكس ;تحذير : يجب عليك تحريرها أثناء إغلاق العميل ، على الرغم من وجود خيار لإعادة التحميل أثناء التشغيل.
يتم تنظيم هذه القائمة حسب القسم. على سبيل المثال ، سيتم تعيين Memory_DB عن طريق إضافة memory_db = true ضمن السطر [discord]
| جلسة | يكتب | تقصير | وصف |
|---|---|---|---|
gateway | خيط | تجاوز عنوان URL لبوابة Discord. يجب أن يكون تنسيق JSON واستخدام ضغط دفق zlib | |
api_base | خيط | تجاوز عنوان URL الأساسي ل Discord API | |
memory_db | منطقية | خطأ شنيع | إذا كان ذلك صحيحًا ، فسيتم الحفاظ على بيانات الخلاف في الذاكرة بدلاً من على القرص |
token | خيط | رمز Discord يستخدم لتسجيل الدخول ، يمكن تعيين هذا من القائمة | |
prefetch | منطقية | خطأ شنيع | إذا كان ذلك صحيحًا ، فإن الرسائل الجديدة ستتسبب |
autoconnect | منطقية | خطأ شنيع | AutoConnect للخلاف |
keychain | منطقية | حقيقي | رمز تخزين في سلسلة مفاتيح النظام (إذا تم تجميعها بدعم) |
| جلسة | يكتب | تقصير | وصف |
|---|---|---|---|
user_agent | خيط | يعين وكيل المستخدم لاستخدامه في طلبات HTTP إلى واجهة برمجة تطبيقات Discord (لا تشمل الوسائط/الصور) | |
concurrent | int | 20 | كم عدد الصور التي يمكن استردادها بشكل متزامن |
| جلسة | يكتب | تقصير | وصف |
|---|---|---|---|
member_list_discriminator | منطقية | حقيقي | إظهار تمييز المستخدم في قائمة الأعضاء |
stock_emojis | منطقية | حقيقي | السماح لـ ABADDON باستبدال الرموز التعبيرية Unicode مع صور من الرموز التعبيرية. |
custom_emojis | منطقية | حقيقي | قم بتنزيل واستخدام الرموز التعبيرية المخصصة للخلاف |
css | خيط | المسار إلى ملف CSS الرئيسي | |
animations | منطقية | حقيقي | استخدم الصور المتحركة عند توفرها (مثل أيقونات الخادم ، الرموز التعبيرية ، الآلهة). سيتم استخدام صور ثابتة |
animated_guild_hover_only | منطقية | حقيقي | فقط تحريك أيقونات النقابة عندما يتم تحوم النقابة |
owner_crown | منطقية | حقيقي | أظهر تاجًا بجوار المالك |
unreads | منطقية | حقيقي | إظهار مؤشرات غير مقروءة وذكر الشارات |
save_state | منطقية | حقيقي | احفظ حالة واجهة المستخدم الرسومية (القنوات النشطة ، علامات التبويب ، القنوات الموسعة) |
alt_menu | منطقية | خطأ شنيع | احتفظ بالقائمة مخفية ما لم يتم الكشف عنها بمفتاح ALT |
hide_to_tray | منطقية | خطأ شنيع | إخفاء أبادون إلى صينية النظام على إغلاق النافذة |
show_deleted_indicator | منطقية | حقيقي | عرض مؤشر [تم حذفه] بجوار الرسائل المحذوفة بدلاً من حذف الرسالة فعليًا |
font_scale | مزدوج | عرض الخط. 1 لم يتغير | |
image_embed_clamp_width | int | 400 | أقصى عرض للتضمينات الصورة |
image_embed_clamp_height | int | 300 | الحد الأقصى لارتفاع الصورة |
classic_channels | منطقية | خطأ شنيع | استخدم الواجهة الكلاسيكية على غرار Discord لدراسة الخادم/القناة |
classic_change_guild_on_open | منطقية | حقيقي | تغيير النقابة المعروضة عند اختيار قناة (قائمة القنوات الكلاسيكية) |
| جلسة | يكتب | وصف |
|---|---|---|
expandercolor | خيط | لون لاستخدامه في قائمة القنوات |
nsfwchannelcolor | خيط | اللون لاستخدامه لقنوات NSFW في قائمة القناة |
mentionbadgecolor | خيط | لون الخلفية للشارات |
mentionbadgetextcolor | خيط | اللون الذي يجب استخدامه للرقم المعروض على شارات ذكر |
unreadcolor | خيط | لون لاستخدامه للمؤشر غير المقروء |
| جلسة | يكتب | تقصير | وصف |
|---|---|---|---|
enabled | منطقية | صحيح (إن لم يكن على Windows) | تمكين إخطارات سطح المكتب |
playsound | منطقية | حقيقي | تمكين أصوات الإخطار. يتطلب enable_notification_sounds = صحيح في cmake |
| جلسة | يكتب | تقصير | وصف |
|---|---|---|---|
vad | خيط | rnnoise إذا تم تمكين ، بوابة خلاف ذلك | الطريقة المستخدمة للكشف عن النشاط الصوتي. قابلة للتغيير في واجهة المستخدم |
backends | خيط | فارغ | تغيير أولوية الخلفية عند تهيئة miniaudio: wasapi;dsound;winmm;coreaudio;sndio;audio4;oss;pulseaudio;alsa;jack |
| جلسة | يكتب | تقصير | وصف |
|---|---|---|---|
hideconsole | منطقية | خطأ شنيع | إخفاء وحدة التحكم عند بدء التشغيل |
| عامل | وصف |
|---|---|
ABADDON_NO_FC | (Windows فقط) لا تستخدم تكوين الخط المخصص |
ABADDON_CONFIG | تغيير مسار ملف التكوين للاستخدام. بالنسبة إلى CWD أو يمكن أن يكون مطلقًا |