Compare commits

..

9 Commits

Author SHA1 Message Date
Malte Jürgens
092fbf72b6 bump version 2022-07-27 21:25:24 +02:00
Malte Jürgens
4d3e77bc9a Merge branch 'master' into appimage 2022-07-27 21:24:54 +02:00
Malte Jürgens
ae57550b46 Merge branch 'master' into appimage 2022-07-27 20:45:16 +02:00
Malte Jürgens
6681c0591a Merge branch 'master' into appimage 2022-07-17 19:43:36 +02:00
Malte Jürgens
8597416bb5 still not working 2022-07-16 22:28:16 +02:00
Malte Jürgens
ce94b44997 almost working 2022-07-16 22:03:33 +02:00
Malte Jürgens
2741e1afaa muh working 2022-07-16 20:41:26 +02:00
Malte Jürgens
b2f5f8e7d0 not working but better 2022-07-16 19:09:11 +02:00
Malte Jürgens
c4c32b1615 it doesnt work 2022-07-13 22:00:30 +02:00
12 changed files with 96 additions and 64 deletions

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.11)
project(discord-screenaudio)
set(CMAKE_CXX_STANDARD 17)
@@ -13,7 +13,7 @@ find_package(Qt5 CONFIG REQUIRED COMPONENTS
WebEngineWidgets
)
set(discord-screenaudio_SRC
set(${CMAKE_PROJECT_NAME}_SRC
src/main.cpp
src/mainwindow.cpp
src/virtmic.cpp
@@ -43,11 +43,12 @@ endif()
add_subdirectory(submodules/rohrkabel)
add_executable(discord-screenaudio ${discord-screenaudio_SRC})
add_executable(${CMAKE_PROJECT_NAME} ${${CMAKE_PROJECT_NAME}_SRC})
target_link_libraries(discord-screenaudio Qt5::Widgets Qt5::WebEngineWidgets rohrkabel)
target_link_libraries(${CMAKE_PROJECT_NAME} Qt5::Widgets Qt5::WebEngineWidgets rohrkabel)
install(TARGETS discord-screenaudio DESTINATION bin)
install(PROGRAMS assets/de.shorsh.discord-screenaudio.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps)
install(PROGRAMS assets/de.shorsh.discord-screenaudio.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
install(PROGRAMS assets/de.shorsh.discord-screenaudio.metainfo.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo)
install(TARGETS ${CMAKE_PROJECT_NAME} DESTINATION bin)
install(PROGRAMS assets/${CMAKE_PROJECT_NAME}.desktop DESTINATION share/applications)
install(FILES assets/discord.png DESTINATION share/pixmaps)
add_custom_target(appimage ${CMAKE_SOURCE_DIR}/scripts/build-appimage.sh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})

View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>de.shorsh.discord-screenaudio</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0+</project_license>
<name>discord-screenaudio</name>
<releases>
<release version="v1.0.0-rc.10" />
</releases>
<summary>
A very WIP custom discord client that supports streaming with audio on
Linux.
</summary>
<description>
<p>A very WIP custom discord client that supports streaming with audio on Linux, made possible by the great work of @edisionnano and the Rohrkabel library by @Curve.</p>
<p>The purpose of this project is not to provide an alternative to the original Discord client. Rather, it should be used in addition to the original client in case you want to stream something, maybe used with a second account. For anything else, this client has way too many things that work less well than in the original client.</p>
</description>
<launchable type="desktop-id">
discord-screenaudio.desktop
</launchable>
<screenshots>
<screenshot type="default">
<image>
https://user-images.githubusercontent.com/48161361/179571245-11ea05f3-fb5e-4aef-9132-2736e122ef04.png
</image>
</screenshot>
</screenshots>
<url type="homepage">https://github.com/maltejur/discord-screenaudio</url>
<provides>
<binary>discord-screenaudio</binary>
</provides>
</component>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -2,5 +2,6 @@
Type=Application
Name=discord-screenaudio
Exec=discord-screenaudio
Icon=de.shorsh.discord-screenaudio
Icon=discord
Terminal=false
Categories=Audio;

BIN
assets/discord.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -81,16 +81,11 @@ setInterval(() => {
});
hiddenElements.length = 0;
} else {
for (const el of [
document.getElementsByClassName("actionButtons-2vEOUh")?.[0]?.children[1],
document.querySelector(
".wrapper-3t3Yqv > div > div > div > div > .controlButton-2PMNom"
),
]) {
if (!el) continue;
if (el.classList.contains("discord-screenaudio-cloned")) continue;
el.classList.add("discord-screenaudio-cloned");
for (const el of document.querySelectorAll(
'[aria-label="Share Your Screen"]'
)) {
elClone = el.cloneNode(true);
elClone.ariaLabel = "Share Your Screen with Audio";
elClone.title = "Share Your Screen with Audio";
elClone.addEventListener("click", () => {
console.log("!discord-screenaudio-start-stream");
@@ -122,7 +117,7 @@ setInterval(() => {
) {
for (const el of document.getElementsByClassName("info-3pQQBb")) {
const aboutEl = document.createElement("div");
aboutEl.innerText = "discord-screenaudio v1.0.0-rc.10";
aboutEl.innerText = "discord-screenaudio v1.0.0-rc.7 (AppImage)";
aboutEl.style.fontSize = "12px";
aboutEl.style.color = "var(--text-muted)";
aboutEl.classList.add("dirscordScreenaudioAboutText");

4
scripts/Dockerfile Normal file
View File

@@ -0,0 +1,4 @@
FROM debian:11
ADD ./prepare-container.sh /tmp/prepare-container.sh
RUN /tmp/prepare-container.sh
WORKDIR /work

32
scripts/build-appimage.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/bash
set -e
# Check if inside of docker container
if [ ! -f /.dockerenv ]; then
# Check if docker is available
if ! command -v docker >/dev/null 2>&1; then
echo "Error: Docker is not available."
exit 1
fi
docker run --rm -u $(id -u) -v "$PWD":/work discord-screenaudio-buildenv bash /work/scripts/build-appimage.sh
exit 0
fi
tmpdir="$(mktemp -d)"
builddir="$tmpdir/build"
appdir="$tmpdir/AppDir"
export CMAKE_GENERATOR="Ninja"
cmake -B "$builddir" -S "$PWD"
cmake --build "$builddir" --config Release
DESTDIR="$appdir" cmake --install "$builddir" --prefix "/usr"
# Include libnss related files
mkdir -p "$appdir/AppDir/usr/lib/"
cp -rv "/usr/lib/x86_64-linux-gnu/nss" "$appdir/usr/lib/"
VERSION="$(cat version)" linuxdeploy \
--appdir "$appdir" \
--icon-file "assets/discord.png" \
--plugin qt \
--exclude-library "libpipewire-0.3.so.0" \
--output appimage

37
scripts/prepare-container.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/sh
set -e
cd "$(dirname "$0")"
if [ ! -f /.dockerenv ]; then
# Check if docker is available
if ! command -v docker >/dev/null 2>&1; then
echo "Error: Docker is not available."
exit 1
fi
docker build -t discord-screenaudio-buildenv .
exit 0
fi
echo "-> Installing dependencies with apt..."
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y curl build-essential qtbase5-dev qtwebengine5-dev qt5-qmake cmake ninja-build pkg-config git libpipewire-0.3-dev file
echo "-> Installing linuxdeploy..."
tmpdir="$(mktemp -d)"
install_appimage() {
curl -Lo "$tmpdir/$1.AppImage" "$2"
chmod +x "$tmpdir/$1.AppImage"
sed '0,/AI\x02/{s|AI\x02|\x00\x00\x00|}' -i -i "$tmpdir/$1.AppImage"
(cd "$tmpdir" && ./$1.AppImage --appimage-extract)
mv -v "$tmpdir/squashfs-root" "/opt/$1"
ln -sv "/opt/$1/AppRun" "/usr/local/bin/$1"
}
install_appimage "linuxdeploy" "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
install_appimage "linuxdeploy-plugin-qt" "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage"
echo "-> Cleaning up..."
rm -rf "$tmpdir"
rm /tmp/prepare-container.sh
apt-get clean

View File

@@ -78,11 +78,10 @@ void DiscordPage::featurePermissionRequested(const QUrl &securityOrigin,
bool DiscordPage::acceptNavigationRequest(const QUrl &url,
QWebEnginePage::NavigationType type,
bool isMainFrame) {
qDebug() << url;
if (type == QWebEnginePage::NavigationTypeLinkClicked) {
QDesktopServices::openUrl(url);
return false;
}
// if (type == QWebEnginePage::NavigationTypeLinkClicked) {
// QDesktopServices::openUrl(url);
// return false;
// }
return true;
};

View File

@@ -7,7 +7,7 @@
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QApplication::setApplicationName("discord-screenaudio");
QApplication::setApplicationVersion("1.0.0-rc.10");
QApplication::setApplicationVersion("1.0.0-rc.7");
QCommandLineParser parser;
parser.setApplicationDescription(

1
version Normal file
View File

@@ -0,0 +1 @@
v1.0.0-rc.7