Compare commits

..

7 Commits

Author SHA1 Message Date
Malte Jürgens
88b129f863 bump version to 1.0.0-rc.10 2022-07-28 16:39:27 +02:00
Malte Jürgens
f4fc2e1f19 change desktop file name 2022-07-28 16:39:02 +02:00
Malte Jürgens
e1b35e3ca8 bump version to 1.0.0-rc.9 2022-07-28 16:08:45 +02:00
Malte Jürgens
a773795e38 fix metainfo 2022-07-28 16:08:24 +02:00
Malte Jürgens
c8695ca5ff bump version to 1.0.0-rc.8 2022-07-28 15:59:57 +02:00
Malte Jürgens
bc23d3423a add metainfo 2022-07-28 15:58:50 +02:00
Malte Jürgens
f5217dfdfa remove dependency on aria-label 2022-07-28 15:09:06 +02:00
12 changed files with 64 additions and 96 deletions

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.11)
cmake_minimum_required(VERSION 3.0)
project(discord-screenaudio)
set(CMAKE_CXX_STANDARD 17)
@@ -13,7 +13,7 @@ find_package(Qt5 CONFIG REQUIRED COMPONENTS
WebEngineWidgets
)
set(${CMAKE_PROJECT_NAME}_SRC
set(discord-screenaudio_SRC
src/main.cpp
src/mainwindow.cpp
src/virtmic.cpp
@@ -43,12 +43,11 @@ endif()
add_subdirectory(submodules/rohrkabel)
add_executable(${CMAKE_PROJECT_NAME} ${${CMAKE_PROJECT_NAME}_SRC})
add_executable(discord-screenaudio ${discord-screenaudio_SRC})
target_link_libraries(${CMAKE_PROJECT_NAME} Qt5::Widgets Qt5::WebEngineWidgets rohrkabel)
target_link_libraries(discord-screenaudio Qt5::Widgets Qt5::WebEngineWidgets rohrkabel)
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})
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)

View File

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

View File

@@ -0,0 +1,38 @@
<?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.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -81,11 +81,16 @@ setInterval(() => {
});
hiddenElements.length = 0;
} else {
for (const el of document.querySelectorAll(
'[aria-label="Share Your Screen"]'
)) {
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");
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");
@@ -117,7 +122,7 @@ setInterval(() => {
) {
for (const el of document.getElementsByClassName("info-3pQQBb")) {
const aboutEl = document.createElement("div");
aboutEl.innerText = "discord-screenaudio v1.0.0-rc.7 (AppImage)";
aboutEl.innerText = "discord-screenaudio v1.0.0-rc.10";
aboutEl.style.fontSize = "12px";
aboutEl.style.color = "var(--text-muted)";
aboutEl.classList.add("dirscordScreenaudioAboutText");

View File

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

View File

@@ -1,32 +0,0 @@
#!/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

View File

@@ -1,37 +0,0 @@
#!/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,10 +78,11 @@ void DiscordPage::featurePermissionRequested(const QUrl &securityOrigin,
bool DiscordPage::acceptNavigationRequest(const QUrl &url,
QWebEnginePage::NavigationType type,
bool isMainFrame) {
// if (type == QWebEnginePage::NavigationTypeLinkClicked) {
// QDesktopServices::openUrl(url);
// return false;
// }
qDebug() << url;
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.7");
QApplication::setApplicationVersion("1.0.0-rc.10");
QCommandLineParser parser;
parser.setApplicationDescription(

View File

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