From eafd4b3ad0da773cf558d6fdd1e67edf9b4227ef Mon Sep 17 00:00:00 2001 From: Etoh Date: Mon, 2 Aug 2021 20:46:30 +0100 Subject: [PATCH] Re-base action_windows to 1.6.9 (#451) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Create pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Update pythonpackage.yml * Do not show playback speed change notifications in OSD * Upbuild and remove debug message * Strip quotation marks from per-player arguments (#226) * Delete unmaintained changelog. Removing old and unmaintained changelog file. * Add more MPC-HC paths (#398) * Migrate from AppVeyor to GitHub Actions (#399) * Disable AppVeyor * Actions: disable other jobs * Actions: implement windows job * Use requirements * Typo in version parser * Replace type nul for PowerShell * Change Python version to 3.7 * buildPy2exe: exclude tcl and tkinter * buildPy2exe: rename zip archive to include extension * Actions for Windows: build on Python 3.8 * Re-enable build flow for other platforms * Remove AppVeyor configuration file * Add manpages courtesy of Bruno Kleinert #387 * Install the manpages. * Separate debian package artifacts Make it so that server and full packages are separate artifacts in CI rather than single zip containing both. * Fix server deb deployment name in CI workflow * Fix package filename for debs * Update mpv json ipc vendor code Update to version 1.1.13 to hopefully address #322 fully. * Update setup.py for vendor code of mpv jsonipc * Build AppImage on Ubuntu 18.04 Temporary workaround for AppImage built on Ubuntu 20.04 crashing with segmentation fault. #401 * Update python_mpv_jsonipc to 1.1.13 keeping our changes * Remove the AppVeyor badge as we stopped using it. * Improve playlist advancement for VLC and mpv (#334) (#397) * Advance playlist on end of file in mpv and VLC * Update duration for streams to fix playlist advancement (#334) * Add notice for Python in third party collection file (#404) * Add notice for Python in third party collection file * Convert third party notices file to plain text * Adapt codebase to third party notices format change * Mark as beta 1 (release 97) * Mark as 1.6.8 final (build 98) * Update pt_BR translation, fix typo (#422) * Bundle libgthread-2.0.so.0 into AppImage * add libxcb manually * Add missing libxcb-util to build environment * Enable GitHub Actions on pull requests * Bundle libxcb1 into AppImage to fix #380 * Send 32-bit/64-bit context when updating * Upver to 1.6.9 release 99 * Remove references to IRC (#430) * Add reference to GitHub discussions * Update issue templates * Revert "Merge branch 'master' into master" This reverts commit 173007e9b17c3cf7d658e12f1220bb1a3af743e6, reversing changes made to 6105da870a4560c47ee54d7de21f2e1ccec1bcef. Co-authored-by: Daniel Wróbel Co-authored-by: Alberto Sottile Co-authored-by: Daniel Wróbel <1662391+daniel-123@users.noreply.github.com> Co-authored-by: Atílio Antônio Co-authored-by: Teoh Han Hui Co-authored-by: Alberto Sottile Co-authored-by: Assistant --- .github/ISSUE_TEMPLATE/bug_report.md | 32 + .github/workflows/build.yml | 21 +- GNUmakefile | 12 +- MANIFEST.in | 1 + README.md | 3 +- buildPy2app.py | 2 +- buildPy2exe.py | 2 +- ci/appimage-script.sh | 8 +- docs/syncplay-server.1 | 98 ++++ docs/syncplay.1 | 115 ++++ syncplay/__init__.py | 6 +- syncplay/client.py | 22 +- syncplay/constants.py | 8 +- syncplay/messages.py | 13 +- syncplay/messages_de.py | 2 +- syncplay/messages_en.py | 2 +- syncplay/messages_es.py | 2 +- syncplay/messages_it.py | 2 +- syncplay/messages_pt_BR.py | 43 +- syncplay/messages_pt_PT.py | 2 +- syncplay/messages_ru.py | 2 +- syncplay/messages_tr.py | 2 +- syncplay/players/mpv.py | 9 +- syncplay/players/vlc.py | 7 +- syncplay/resources/lua/intf/syncplay.lua | 20 +- syncplay/resources/man/changelog.md | 39 -- syncplay/resources/syncplayintf.lua | 9 +- syncplay/resources/third-party-notices.rtf | 463 --------------- syncplay/resources/third-party-notices.txt | 548 ++++++++++++++++++ syncplay/ui/gui.py | 4 +- .../python_mpv_jsonipc/python_mpv_jsonipc.py | 71 ++- syncplay/vendor/python_mpv_jsonipc/setup.py | 2 +- 32 files changed, 974 insertions(+), 598 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 docs/syncplay-server.1 create mode 100644 docs/syncplay.1 delete mode 100644 syncplay/resources/man/changelog.md delete mode 100644 syncplay/resources/third-party-notices.rtf create mode 100644 syncplay/resources/third-party-notices.txt diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..fdd6d0a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug / problem +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Version and platform:** + - OS: [e.g. Windows 10 or macOS 10.15] + - Syncplay version and build type: [e.g. Syncplay 1.6.9 portable] + + +**Additional context** +Add any other context about the problem here. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6dbe846..65ca9dc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,5 +1,5 @@ name: Build -on: push +on: [push, pull_request] jobs: windows: @@ -124,14 +124,18 @@ jobs: appimage: name: Build AppImage - runs-on: ubuntu-latest + runs-on: ubuntu-18.04 steps: - name: Checkout uses: actions/checkout@v2 - name: Install dependencies run: | - sudo apt-get install libxkbcommon-x11-0 + sudo apt-get install --no-install-recommends \ + libglib2.0-0 \ + libxkbcommon-x11-0 \ + libxcb1 \ + ; - name: Build run: ci/appimage-script.sh @@ -178,9 +182,16 @@ jobs: mv /tmp/syncplay-server.deb dist_actions/syncplay-server_${VER}.deb ls -al dist_actions - - name: Deploy + - name: Deploy full deb uses: actions/upload-artifact@v2 with: name: syncplay.deb path: | - dist_actions/syncplay*.deb + dist_actions/syncplay_*.deb + + - name: Deploy server deb + uses: actions/upload-artifact@v2 + with: + name: syncplay-server.deb + path: | + dist_actions/syncplay-server_*.deb diff --git a/GNUmakefile b/GNUmakefile index 2303729..385e68b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -39,6 +39,7 @@ common: -mkdir -p $(APP_SHORTCUT_PATH) -mkdir -p $(SHARE_PATH)/pixmaps/ -mkdir -p $(SHARE_PATH)/icons/ + -mkdir -p $(SHARE_PATH)/man/man1/ cp -r syncplay $(LIB_PATH)/syncplay/ chmod 755 $(LIB_PATH)/syncplay/ cp -r syncplay/resources/hicolor $(SHARE_PATH)/icons/ @@ -51,6 +52,7 @@ u-common: -rm -rf $(LIB_PATH)/syncplay -rm $(SHARE_PATH)/icons/hicolor/*/apps/syncplay.png -rm $(SHARE_PATH)/pixmaps/syncplay.png + -rm $(SHARE_PATH)/man/man1/syncplay.1.gz client: -mkdir -p $(BIN_PATH) @@ -59,6 +61,7 @@ client: chmod 755 $(BIN_PATH)/syncplay cp syncplayClient.py $(LIB_PATH)/syncplay/ cp syncplay/resources/syncplay.desktop $(APP_SHORTCUT_PATH)/ + gzip docs/syncplay.1 --stdout > $(SHARE_PATH)/man/man1/syncplay.1.gz ifeq ($(SINGLE_USER),false) chmod 755 $(APP_SHORTCUT_PATH)/syncplay.desktop @@ -70,6 +73,7 @@ u-client: -rm ${DESTDIR}$(VLC_LIB_PATH)/vlc/lua/intf/syncplay.lua -rm ${DESTDIR}$(VLC_LIB_PATH64)/vlc/lua/intf/syncplay.lua -rm $(APP_SHORTCUT_PATH)/syncplay.desktop + -rm $(SHARE_PATH)/man/man1/syncplay.1.gz server: -mkdir -p $(BIN_PATH) @@ -78,6 +82,7 @@ server: chmod 755 $(BIN_PATH)/syncplay-server cp syncplayServer.py $(LIB_PATH)/syncplay/ cp syncplay/resources/syncplay-server.desktop $(APP_SHORTCUT_PATH)/ + gzip docs/syncplay-server.1 --stdout > $(SHARE_PATH)/man/man1/syncplay-server.1.gz ifeq ($(SINGLE_USER),false) chmod 755 $(APP_SHORTCUT_PATH)/syncplay-server.desktop @@ -87,7 +92,8 @@ u-server: -rm $(BIN_PATH)/syncplay-server -rm $(LIB_PATH)/syncplay/syncplayServer.py -rm $(APP_SHORTCUT_PATH)/syncplay-server.desktop - + -rm $(SHARE_PATH)/man/man1/syncplay-server.1.gz + warnings: ifeq ($(SINGLE_USER),true) @echo -e "\n**********\n**********\n \nRemeber to add ${HOME}/.local/bin to your \$$PATH with 'echo \"export PATH=\$$PATH:${HOME}/.local/bin\" >> ${HOME}/.profile' \nThis will take effect after you logoff.\n \n**********\n**********\n" @@ -95,12 +101,12 @@ endif install-client: common client warnings -uninstall-client: u-client u-common +uninstall-client: u-client u-common install-server: common server warnings uninstall-server: u-server u-common -install: common client server warnings +install: common client server warnings uninstall: u-client u-server u-common diff --git a/MANIFEST.in b/MANIFEST.in index 29917cb..3cf7945 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -4,4 +4,5 @@ include syncplay/resources/*.png include syncplay/resources/*.mng include syncplay/resources/*.lua include syncplay/resources/*.rtf +include syncplay/resources/*.txt include syncplay/resources/lua/intf/*.lua diff --git a/README.md b/README.md index b4b00de..cfdb76e 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,6 @@ # Syncplay ![GitHub Actions build status](https://github.com/Syncplay/syncplay/workflows/Build/badge.svg) -[![Appveyor build status](https://ci.appveyor.com/api/projects/status/github/Syncplay/syncplay)](https://ci.appveyor.com/project/Et0h/syncplay/branch/master) Solution to synchronize video playback across multiple instances of mpv, VLC, MPC-HC, MPC-BE and mplayer2 over the Internet. @@ -45,7 +44,7 @@ Syncplay is not a file sharing service. ## License -This project, the Syncplay released binaries, and all the files included in this repository unless stated otherwise in the header of the file, are licensed under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0.html). A copy of this license is included in the LICENSE file of this repository. Licenses and attribution notices for third-party media are set out in [third-party-notices.rtf](syncplay/resources/third-party-notices.rtf). +This project, the Syncplay released binaries, and all the files included in this repository unless stated otherwise in the header of the file, are licensed under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0.html). A copy of this license is included in the LICENSE file of this repository. Licenses and attribution notices for third-party media are set out in [third-party-notices.txt](syncplay/resources/third-party-notices.txt). ## Authors * *Initial concept and core internals developer* - Uriziel. diff --git a/buildPy2app.py b/buildPy2app.py index 659e575..f3271e1 100755 --- a/buildPy2app.py +++ b/buildPy2app.py @@ -11,7 +11,7 @@ import syncplay APP = ['syncplayClient.py'] DATA_FILES = [ - ('resources', glob('syncplay/resources/*.png') + glob('syncplay/resources/*.rtf') + glob('syncplay/resources/*.lua')), + ('resources', glob('syncplay/resources/*.png') + glob('syncplay/resources/*.rtf') + glob('syncplay/resources/*.txt') + glob('syncplay/resources/*.lua')), ('resources/lua/intf', glob('syncplay/resources/lua/intf/*.lua')) ] OPTIONS = { diff --git a/buildPy2exe.py b/buildPy2exe.py index b12af0c..362fa32 100755 --- a/buildPy2exe.py +++ b/buildPy2exe.py @@ -726,7 +726,7 @@ guiIcons = glob('syncplay/resources/*.ico') + glob('syncplay/resources/*.png') + resources = [ "syncplay/resources/syncplayintf.lua", "syncplay/resources/license.rtf", - "syncplay/resources/third-party-notices.rtf" + "syncplay/resources/third-party-notices.txt" ] resources.extend(guiIcons) intf_resources = ["syncplay/resources/lua/intf/syncplay.lua"] diff --git a/ci/appimage-script.sh b/ci/appimage-script.sh index 56283c3..0e168f6 100755 --- a/ci/appimage-script.sh +++ b/ci/appimage-script.sh @@ -109,6 +109,10 @@ export OUTPUT=Syncplay-$VERSION-x86_64.AppImage ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin conda \ -e $(which readelf) \ -i "$REPO_ROOT"/syncplay/resources/syncplay.png -d pl.syncplay.syncplay.desktop \ - --output appimage --custom-apprun AppRun.sh -l /usr/lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 + --output appimage --custom-apprun AppRun.sh \ + -l /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 \ + -l /usr/lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 \ + -l /usr/lib/x86_64-linux-gnu/libxcb.so.1 \ +; -mv Syncplay*.AppImage "$OLD_CWD" \ No newline at end of file +mv Syncplay*.AppImage "$OLD_CWD" diff --git a/docs/syncplay-server.1 b/docs/syncplay-server.1 new file mode 100644 index 0000000..32b779e --- /dev/null +++ b/docs/syncplay-server.1 @@ -0,0 +1,98 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" (C) Copyright 2021 Bruno Kleinert , +.\" +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH "Syncplay Server" 1 "February 7 2021" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +syncplay-server \- server to host syncplay rooms +.SH SYNOPSIS +.B syncplay-server +.RI [ options ] +.RI [ file ] +.RI [ playeroptions ] +.SH DESCRIPTION +This manual page documents briefly the +.B syncplay-server +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +\fBsyncplay-server\fP is a program that syncplay clients connect to and hosts +rooms. + +To host rooms for viewers via internet, make sure the server can be accessed +from the internet, i.e., its listening port is not blocked by a NAT or a +firewall. + +.SH OPTIONS + +This program follows the usual GNU command line syntax, with long +options starting with two dashes (`-'). +A summary of options is included below. + +.TP +.B \-h, \-\-help +Show summary of options. + +.TP +.B \-\-port [port] +TCP port to listen for connections. + +.TP +.B \-\-password [password] +Server password. + +.TP +.B \-\-isolate\-rooms +Whether rooms should be isolated. + +.TP +.B \-\-disable\-ready +Disable readiness feature. + +.TP +.B \-\-disable\-chat +Disable the chat function. + +.TP +.B \-\-salt [salt] +Random string used to generate managed room passwords. + +.TP +.B \-\-motd\-file [file] +Path to a file from which motd (Message Of The Day) will be read. + +.TP +.B \-\-max\-chat\-message\-length [maxChatMessageLength] +Maximum number of characters in one chat message (default is 150). + +.TP +.B \-\-max\-username\-length [maxUsernameLength] +Maximum number of characters in a username (default is 150). + +.TP +.B \-\-stats\-db\-file [file] +Enable server statistics using the SQLite database file. + +.TP +.B \-\-tls [path] +Enable TLS connections using the certificate files in path. + +.SH SEE ALSO +.BR syncplay (1). + diff --git a/docs/syncplay.1 b/docs/syncplay.1 new file mode 100644 index 0000000..63d1baa --- /dev/null +++ b/docs/syncplay.1 @@ -0,0 +1,115 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" (C) Copyright 2021 Bruno Kleinert , +.\" +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH Syncplay 1 "February 7 2021" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +syncplay \- synchronize playback of various video players via internet +.SH SYNOPSIS +.B syncplay +.RI [ options ] +.RI [ file ] +.RI [ playeroptions ] +.SH DESCRIPTION +This manual page documents briefly the +.B syncplay +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +\fBsyncplay\fP is a program that allows you to watch movies with friends or +family at different places synchronized via the internet. + +When a viewer pauses/continues playback or seeks within their media player this +will be replicated across all media players connected to the same server in the +same viewing session. A chat function is included so viewers can discuss the +movie while watching it. To improve the communication experience for viewers, +the Syncplay developers and this package suggest to use additional VoIP +(package mumble) or video phone (package jami) software. + +Technically, it synchronizes the position and play states of multiple mpv, VLC, +MPC-HC and MPC-BEmedia player instances so viewers' players present the same +movie at the same time. + +There are known synchronization issues with VLC. If you experience such problems +use MPV instead. + +.SH OPTIONS + +This program follows the usual GNU command line syntax, with long +options starting with two dashes (`-'). +A summary of options is included below. + +.TP +.B \-h, \-\-help +Show summary of options. + +.TP +.B \-\-no\-gui +Do not show the graphical user interface. + +.TP +.B \-a hostname, \-\-host hostname +Address of the server to connect to. + +.TP +.B \-n username, \-\-name username +User name to use. + +.TP +.B \-d, \-\-debug +Enable debug mode. + +.TP +.B \-g, \-\-force\-gui\-prompt +Force configuration window to appear when Syncplay starts. + +.TP +.B \-\-no\-store +Do not store configuration settings in .syncplay. + +.TP +.B \-r [room], \-\-room [room] +Default room to use. + +.TP +.B \-p [password], \-\-password [password] +The password for the server. + +.TP +.B \-\-player\-path path +Path to the player binary. + +.TP +.B \-\-language language +Language of Syncplay messages. Valid values are de/en/ru/it/es/pt_BR/pt_PT/tr. + +.TP +.B \-\-clear\-gui\-data +Resets path and window state GUI data stored as QSettings. + +.TP +.B \-v, \-\-version +Show version of program. + +.TP +.B \-\-load\-playlist\-from\-file file +Loads the playlist from file. One entry per line. + +.SH SEE ALSO +.BR syncplay-server (1). diff --git a/syncplay/__init__.py b/syncplay/__init__.py index be4b6df..daa0df8 100755 --- a/syncplay/__init__.py +++ b/syncplay/__init__.py @@ -1,5 +1,5 @@ -version = '1.6.8' -revision = ' development' +version = '1.6.9' +revision = '' milestone = 'Yoitsu' -release_number = '95' +release_number = '99' projectURL = 'https://syncplay.pl/' diff --git a/syncplay/client.py b/syncplay/client.py index efe1c77..36d9632 100755 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -39,7 +39,7 @@ except: from syncplay import utils, constants, version from syncplay.constants import PRIVACY_SENDHASHED_MODE, PRIVACY_DONTSEND_MODE, \ PRIVACY_HIDDENFILENAME -from syncplay.messages import getMissingStrings, getMessage +from syncplay.messages import getMissingStrings, getMessage, isNoOSDMessage from syncplay.protocols import SyncClientProtocol from syncplay.utils import isMacOS @@ -500,6 +500,11 @@ class SyncplayClient(object): return True return self._globalPaused + def eofReportedByPlayer(self): + if self.playlist.notJustChangedPlaylist() and self.userlist.currentUser.file: + self.ui.showDebugMessage("Fixing file duration to allow for playlist advancement") + self.userlist.currentUser.file["duration"] = self._playerPosition + def updateFile(self, filename, duration, path): self.lastUpdatedFileTime = time.time() newPath = "" @@ -1054,8 +1059,16 @@ class SyncplayClient(object): def checkForUpdate(self, userInitiated): try: - import urllib.request, urllib.parse, urllib.error, syncplay, sys, json - params = urllib.parse.urlencode({'version': syncplay.version, 'milestone': syncplay.milestone, 'release_number': syncplay.release_number, 'language': syncplay.messages.messages["CURRENT"], 'platform': sys.platform, 'userInitiated': userInitiated}) + import urllib.request, urllib.parse, urllib.error, syncplay, sys, json, platform + try: + architecture = platform.architecture()[0] + except: + architecture = "Unknown" + try: + machine = platform.machine() + except: + machine = "Unknown" + params = urllib.parse.urlencode({'version': syncplay.version, 'milestone': syncplay.milestone, 'release_number': syncplay.release_number, 'language': syncplay.messages.messages["CURRENT"], 'platform': sys.platform, 'architecture': architecture, 'machine': machine, 'userInitiated': userInitiated}) if isMacOS(): import requests response = requests.get(constants.SYNCPLAY_UPDATE_URL.format(params)) @@ -1601,6 +1614,9 @@ class UiManager(object): self.__ui.showUserList(currentUser, rooms) def showOSDMessage(self, message, duration=constants.OSD_DURATION, OSDType=constants.OSD_NOTIFICATION, mood=constants.MESSAGE_NEUTRAL): + if(isNoOSDMessage(message)): + return + autoplayConditionsMet = self._client.autoplayConditionsMet() if OSDType == constants.OSD_ALERT and not constants.SHOW_OSD_WARNINGS and not self._client.autoplayTimerIsRunning(): return diff --git a/syncplay/constants.py b/syncplay/constants.py index aa9ae1f..e6ab70e 100755 --- a/syncplay/constants.py +++ b/syncplay/constants.py @@ -29,7 +29,7 @@ MPLAYER_OSD_LEVEL = 1 UI_TIME_FORMAT = "[%X] " CONFIG_NAMES = [".syncplay", "syncplay.ini"] # Syncplay searches first to last DEFAULT_CONFIG_NAME = "syncplay.ini" -RECENT_CLIENT_THRESHOLD = "1.6.7" # This and higher considered 'recent' clients (no warnings) +RECENT_CLIENT_THRESHOLD = "1.6.8" # This and higher considered 'recent' clients (no warnings) MUSIC_FORMATS = [".mp3", ".m4a", ".m4p", ".wav", ".aiff", ".r", ".ogg", ".flac"] # ALL LOWER CASE! WARN_OLD_CLIENTS = True # Use MOTD to inform old clients to upgrade LIST_RELATIVE_CONFIGS = True # Print list of relative configs loaded @@ -131,7 +131,7 @@ COMMANDS_DELETE = ['delete', 'd', 'qd'] MPC_MIN_VER = "1.6.4" MPC_BE_MIN_VER = "1.5.2.3123" VLC_MIN_VERSION = "2.2.1" -VLC_INTERFACE_VERSION = "0.3.6" +VLC_INTERFACE_VERSION = "0.3.7" VLC_LATENCY_ERROR_THRESHOLD = 2.0 MPV_UNRESPONSIVE_THRESHOLD = 60.0 CONTROLLED_ROOMS_MIN_VERSION = "1.3.0" @@ -150,6 +150,8 @@ MPC_PATHS = [ r"c:\program files (x86)\media player classic - home cinema\mpc-hc.exe", r"c:\program files (x86)\k-lite codec pack\media player classic\mpc-hc.exe", r"c:\program files\k-lite codec pack\media Player classic\mpc-hc.exe", + r"C:\program files\k-lite codec pack\mpc-hc64\mpc-hc64.exe", + r"C:\program files (x86)\k-lite codec pack\mpc-hc64\mpc-hc64.exe", r"c:\program files (x86)\combined community codec pack\mpc\mpc-hc.exe", r"c:\program files\combined community codec pack\mpc\mpc-hc.exe", r"c:\program files\mpc homecinema (x64)\mpc-hc64.exe", @@ -287,7 +289,7 @@ VLC_SLAVE_EXTRA_ARGS = getValueForOS({ MPV_SUPERSEDE_IF_DUPLICATE_COMMANDS = ["set_property time-pos ", "loadfile "] MPV_REMOVE_BOTH_IF_DUPLICATE_COMMANDS = ["cycle pause"] MPLAYER_ANSWER_REGEX = "^ANS_([a-zA-Z_-]+)=(.+)$|^(Exiting)\.\.\. \((.+)\)$" -VLC_ANSWER_REGEX = r"(?:^(?P[a-zA-Z_]+)(?:\: )?(?P.*))" +VLC_ANSWER_REGEX = r"(?:^(?P[a-zA-Z_-]+)(?:\: )?(?P.*))" UI_COMMAND_REGEX = r"^(?P[^\ ]+)(?:\ (?P.+))?" UI_OFFSET_REGEX = r"^(?:o|offset)\ ?(?P[/+-])?(?P