用GTK在C ++中制作的替代不符合客户端
![]() | ![]() |
![]() | ![]() |
当前功能:
1- Abaddon尽力而为(尽管并不完美),以使Discord认为这是合法的网络客户端。进行此操作的某些事情包括:使用浏览器用户代理,在所有情况下都使用API V9端点来发送相同的识别消息,并且在所有情况下都使用API V9端点,并且不使用Web Client通常不使用端点。但是,仍然存在一些较小的矛盾之处。例如,Web客户端通过/science Endpoint(Ublock Origin停止此)以及所有请求的标题中发送了大量遥测。
如果您担心被垃圾邮件过滤器捕获,请参阅此处,以了解您可能想要避免的事情。
2 -Unicode表情符号是手动替换的,而不是在非窗口平台上呈现的GTK。可以通过stock_emojis设置更改此功能,如此读数底部所示。提供了使用TWEMOJI的基于CBDT的字体,以允许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加载
如果位于~/.config/abaddon/abaddon.ini并且在工作目录中没有abaddon.ini ,也将自动使用abaddon.ini
遵循以下说明。
如果他们认为用户是垃圾邮件机器人或可能遭到损害的帐户,则喜欢禁用帐户/强迫他们重置密码。虽然官方客户仍然经常会吸引用户陷入垃圾邮件过滤器中,但第三方客户倾向于更频繁地破坏垃圾邮件过滤器。如果您被它抓住,通常可以提起它并恢复它。如果您特别害怕唤起垃圾邮件过滤器的愤怒,您可能想与官方客户一起做一些事情:
| 选择器 | 描述 |
|---|---|
.app-window | 应用于所有窗口。这意味着主窗口和所有弹出窗口 |
.app-popup | 当窗口不是主窗口时, .app-window s的其他类 |
.channel-list | 频道列表的容器 |
.messages | 用户消息的容器 |
.message-container | 容纳用户消息的容器 |
.message-container-author | 作者标签消息容器 |
.message-container-timestamp | 消息容器的时间戳标签 |
.message-container-avatar | 邮件中用户的头像 |
.message-container-extra | 包含bot/webhook的标签 |
.message-text | 用户消息的文字 |
.pending | 额外的类别的.Message-Text用于发送的消息 |
.failed | 未能发送的消息的额外类别的.message-Text |
.message-attachment-box | 包含附件信息 |
.message-reply | 答复中回复消息的容器(这些元素还将具有.message-text集) |
.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 = true [discord]下的memory_db设置内存_db
| 环境 | 类型 | 默认 | 描述 |
|---|---|---|---|
gateway | 细绳 | 覆盖URL用于Discord Gateway。必须是JSON格式并使用ZLIB流压缩 | |
api_base | 细绳 | 覆盖不和谐API的基本URL | |
memory_db | 布尔 | 错误的 | 如果是真的,将不符合数据保存在内存中,而不是在磁盘上 |
token | 细绳 | 不登录的不和谐令牌,可以从菜单中设置此设置 | |
prefetch | 布尔 | 错误的 | 如果是真的,新消息将导致头像和图像附件自动下载 |
autoconnect | 布尔 | 错误的 | 自动连接到不和谐 |
keychain | 布尔 | 真的 | 将令牌存储在系统钥匙链中(如果支持汇编) |
| 环境 | 类型 | 默认 | 描述 |
|---|---|---|---|
user_agent | 细绳 | 将在HTTP请求中使用的用户代理设置为Discord API(不包括媒体/图像) | |
concurrent | int | 20 | 可以同时检索多少个图像 |
| 环境 | 类型 | 默认 | 描述 |
|---|---|---|---|
member_list_discriminator | 布尔 | 真的 | 在成员列表中显示用户歧视器 |
stock_emojis | 布尔 | 真的 | 允许Abaddon用Emojis.bin的图像代替Unicode Emojis,必须是错误的,才能使GTK呈现表情符号本身 |
custom_emojis | 布尔 | 真的 | 下载并使用自定义不和谐表情符号 |
css | 细绳 | 通往主要CSS文件的路径 | |
animations | 布尔 | 真的 | 使用可用的动画图像(例如服务器图标,表情符号,头像)。错误意味着将使用静态图像 |
animated_guild_hover_only | 布尔 | 真的 | 仅当公会徘徊时,只有动画行会图标 |
owner_crown | 布尔 | 真的 | 在所有者旁边显示冠冕 |
unreads | 布尔 | 真的 | 显示未读指标和提及徽章 |
save_state | 布尔 | 真的 | 保存GUI的状态(活动频道,选项卡,扩展的频道) |
alt_menu | 布尔 | 错误的 | 除非用alt键显示,否则请保留菜单 |
hide_to_tray | 布尔 | 错误的 | 将abaddon隐藏到窗口上的系统托盘上 |
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 | 布尔 | true(如果不是在Windows上) | 启用桌面通知 |
playsound | 布尔 | 真的 | 启用通知声音。需要enable_notification_sounds = true cmake |
| 环境 | 类型 | 默认 | 描述 |
|---|---|---|---|
vad | 细绳 | rnnoise如果启用,请否则否则 | 用于语音活动检测的方法。在UI中更换 |
backends | 细绳 | 空的 | 在初始化miniaudio: wasapi;dsound;winmm;coreaudio;sndio;audio4;oss;pulseaudio;alsa;jack时更改后端优先级。 |
| 环境 | 类型 | 默认 | 描述 |
|---|---|---|---|
hideconsole | 布尔 | 错误的 | 在启动上隐藏控制台 |
| 多变的 | 描述 |
|---|---|
ABADDON_NO_FC | (仅Windows)不使用自定义字体配置 |
ABADDON_CONFIG | 更改要使用的配置文件的路径。相对于CWD或可以是绝对的 |