GTK와 함께 C ++로 만든 대체 불화 클라이언트
![]() | ![]() |
![]() | ![]() |
현재 기능 :
1 -Abaddon은 불화가 합법적 인 웹 클라이언트라고 생각하게 만들기 위해 최선을 다합니다 (완벽하지는 않지만). 이 작업을 수행하기 위해 수행 한 작업에는 다음이 포함됩니다. 브라우저 사용자 에이전트 사용, 공식 웹 클라이언트가하는 것과 동일한 식별 메시지를 보내고 모든 경우에 API V9 엔드 포인트를 사용하고 웹 클라이언트가 일반적으로 사용하지 않는 엔드 포인트를 사용하지 않습니다. 그러나 여전히 몇 가지 작은 불일치가 있습니다. 예를 들어, 웹 클라이언트는 /science Endpoint (Ublock Origin이 중지) 및 모든 요청의 헤더를 통해 많은 원격 측정을 보냅니다.
스팸 필터에 걸리는 것에 대해 걱정하는 경우 피하고 싶은 것들은 여기를 참조하십시오 .
2- 유니 코드 이모티콘은 비 독사 플랫폼에서 GTK에 의해 렌더링되는 대조적으로 수동으로 대체됩니다. 이 readme의 하단에 표시된대로 stock_emojis 설정으로 변경할 수 있습니다. Twemoji를 사용하는 CBDT 기반 글꼴이 제공되도록 GTK가 Windows에서 기본적으로 이모티콘을 렌더링 할 수 있도록 제공됩니다.
3- 더 드문 경우에서 발생할 수있는 스레드 상태와의 불일치가 있지만 불일치의 스레드 구현의 기본 문제의 결과입니다.
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에서는 gtkmm3.0-devel 대신 gtkmm30-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 | BOT/WEBHOOK를 포함하는 레이블 |
.message-text | 사용자 메시지의 텍스트 |
.pending | 전송중인 메시지에 대한 추가 클래스 .message-text |
.failed | 전송되지 않은 메시지에 대한 추가 클래스 .message-text |
.message-attachment-box | 첨부 정보가 포함되어 있습니다 |
.message-reply | 답장에 응답 메시지 용 컨테이너 (이 요소는 .message-text set도 있습니다) |
.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 Friends 목록의 모든 항목에 적용됩니다 |
.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 | 끈 | Discord Gateway의 URL을 무시하십시오. JSON 형식이어야하며 Zlib 스트림 압축을 사용해야합니다 | |
api_base | 끈 | Discord API의 기본 URL을 무시하십시오 | |
memory_db | 부울 | 거짓 | 사실이라면 디스크와 달리 불일치 데이터가 메모리에 보관됩니다. |
token | 끈 | 로그인에 사용 된 불화 토큰, 메뉴에서 설정할 수 있습니다. | |
prefetch | 부울 | 거짓 | 사실 인 경우 새 메시지가 아바타 및 이미지 첨부 파일이 자동으로 다운로드됩니다. |
autoconnect | 부울 | 거짓 | 자동으로 연결됩니다 |
keychain | 부울 | 진실 | System Keychain에 토큰 저장 (지원으로 편집 된 경우) |
| 환경 | 유형 | 기본 | 설명 |
|---|---|---|---|
user_agent | 끈 | Discord API에 HTTP 요청에서 사용하도록 사용자 에이전트를 설정합니다 (미디어/이미지 포함) | |
concurrent | int | 20 | 동시에 얼마나 많은 이미지를 검색 할 수 있는지 |
| 환경 | 유형 | 기본 | 설명 |
|---|---|---|---|
member_list_discriminator | 부울 | 진실 | 회원 목록에 사용자 판별자를 표시하십시오 |
stock_emojis | 부울 | 진실 | Abaddon이 emojis.bin의 이미지로 유니 코드 이모티콘을 대체하도록 허용하기 위해 GTK가 이모티콘 자체를 렌더링하도록 허용해야합니다. |
custom_emojis | 부울 | 진실 | 사용자 정의 불화 이모티콘을 다운로드하여 사용하십시오 |
css | 끈 | 기본 CSS 파일의 경로 | |
animations | 부울 | 진실 | 사용 가능한 경우 애니메이션 이미지를 사용하십시오 (예 : 서버 아이콘, 이모티콘, 아바타). 거짓은 정적 이미지를 사용한다는 것을 의미합니다 |
animated_guild_hover_only | 부울 | 진실 | 길드가 맴 돌면 아미드 길드 아이콘 만 |
owner_crown | 부울 | 진실 | 소유자 옆에 왕관을 보여줍니다 |
unreads | 부울 | 진실 | 읽지 않은 지표를 표시하고 배지를 언급하십시오 |
save_state | 부울 | 진실 | GUI 상태 저장 (활성 채널, 탭, 확장 채널) |
alt_menu | 부울 | 거짓 | Alt Key로 공개되지 않는 한 메뉴를 숨기십시오 |
hide_to_tray | 부울 | 거짓 | Abaddon을 창을 닫는 시스템 트레이에 Abaddon을 숨 깁니다 |
show_deleted_indicator | 부울 | 진실 | 실제로 메시지를 삭제하는 대신 삭제 된 메시지 옆에 [삭제 된] 표시기 표시 |
font_scale | 더블 | 스케일 글꼴 렌더링. 1은 변하지 않습니다 | |
image_embed_clamp_width | int | 400 | 이미지 임베드의 최대 너비 |
image_embed_clamp_height | int | 300 | 이미지 임베드의 최대 높이 |
classic_channels | 부울 | 거짓 | 서버/채널 목록에 클래식 불일치 스타일 인터페이스를 사용하십시오 |
classic_change_guild_on_open | 부울 | 진실 | 채널을 선택할 때 표시된 길드 변경 (클래식 채널 목록) |
| 환경 | 유형 | 설명 |
|---|---|---|
expandercolor | 끈 | 채널 목록에서 Expander에 사용할 색상 |
nsfwchannelcolor | 끈 | 채널 목록에서 NSFW 채널에 사용할 색상 |
mentionbadgecolor | 끈 | 언급 배지의 배경색 |
mentionbadgetextcolor | 끈 | 배지에 표시된 숫자에 사용할 색상 |
unreadcolor | 끈 | 읽지 않은 표시기에 사용할 색상 |
| 환경 | 유형 | 기본 | 설명 |
|---|---|---|---|
enabled | 부울 | true (Windows가 아닌 경우) | 데스크탑 알림을 활성화합니다 |
playsound | 부울 | 진실 | 알림 사운드를 활성화합니다. cmake에서 enable_notification_sounds = true가 필요합니다 |
| 환경 | 유형 | 기본 | 설명 |
|---|---|---|---|
vad | 끈 | rnnoise가 활성화 된 경우, 그렇지 않으면 게이트 | 음성 활동 감지에 사용되는 방법. UI에서 변경 가능 |
backends | 끈 | 비어 있는 | MiniaUdio : wasapi;dsound;winmm;coreaudio;sndio;audio4;oss;pulseaudio;alsa;jack 초기화 할 때 백엔드 우선 순위를 변경하십시오 |
| 환경 | 유형 | 기본 | 설명 |
|---|---|---|---|
hideconsole | 부울 | 거짓 | 시작시 콘솔을 숨기십시오 |
| 변하기 쉬운 | 설명 |
|---|---|
ABADDON_NO_FC | (Windows 만 해당) 사용자 정의 글꼴 구성을 사용하지 마십시오 |
ABADDON_CONFIG | 사용할 구성 파일의 경로를 변경하십시오. CWD와 관련이 있거나 절대적 일 수 있습니다 |