diff --git a/rare/components/main_window.py b/rare/components/main_window.py index 45bb9fd3..5e38faf8 100644 --- a/rare/components/main_window.py +++ b/rare/components/main_window.py @@ -101,9 +101,9 @@ class MainWindow(QMainWindow): if not self.args.offline: try: - from rare.utils.rpc import DiscordRPC + from rare.utils.discord_rpc import DiscordRPC - self.rpc = DiscordRPC() + self.discord_rpc = DiscordRPC() except ModuleNotFoundError: logger.warning("Discord RPC module not found") diff --git a/rare/components/tabs/settings/rare.py b/rare/components/tabs/settings/rare.py index 1be5fd8c..52efa596 100644 --- a/rare/components/tabs/settings/rare.py +++ b/rare/components/tabs/settings/rare.py @@ -6,7 +6,7 @@ from PyQt5.QtCore import QSettings, Qt, pyqtSlot, QUrl from PyQt5.QtGui import QDesktopServices from PyQt5.QtWidgets import QWidget, QMessageBox -from rare.components.tabs.settings.widgets.rpc import RPCSettings +from rare.components.tabs.settings.widgets.discord_rpc import DiscordRPCSettings from rare.models.options import options, LibraryView from rare.shared import LegendaryCoreSingleton from rare.ui.components.tabs.settings.rare import Ui_RareSettings @@ -75,8 +75,8 @@ class RareSettings(QWidget): self.ui.view_combo.setCurrentIndex(0) self.ui.view_combo.currentIndexChanged.connect(self.on_view_combo_changed) - self.rpc = RPCSettings(self) - self.ui.right_layout.insertWidget(1, self.rpc, alignment=Qt.AlignTop) + self.discord_rpc_settings = DiscordRPCSettings(self) + self.ui.right_layout.insertWidget(1, self.discord_rpc_settings, alignment=Qt.AlignTop) self.ui.sys_tray.setChecked(self.settings.value(*options.sys_tray)) self.ui.sys_tray.stateChanged.connect( diff --git a/rare/components/tabs/settings/widgets/rpc.py b/rare/components/tabs/settings/widgets/discord_rpc.py similarity index 61% rename from rare/components/tabs/settings/widgets/rpc.py rename to rare/components/tabs/settings/widgets/discord_rpc.py index a1650f5f..cafa820d 100644 --- a/rare/components/tabs/settings/widgets/rpc.py +++ b/rare/components/tabs/settings/widgets/discord_rpc.py @@ -3,34 +3,34 @@ from PyQt5.QtWidgets import QGroupBox from rare.shared import GlobalSignalsSingleton from rare.models.options import options -from rare.ui.components.tabs.settings.widgets.rpc import Ui_RPCSettings +from rare.ui.components.tabs.settings.widgets.discord_rpc import Ui_DiscordRPCSettings -class RPCSettings(QGroupBox): +class DiscordRPCSettings(QGroupBox): def __init__(self, parent): - super(RPCSettings, self).__init__(parent=parent) - self.ui = Ui_RPCSettings() + super(DiscordRPCSettings, self).__init__(parent=parent) + self.ui = Ui_DiscordRPCSettings() self.ui.setupUi(self) self.signals = GlobalSignalsSingleton() self.settings = QSettings() - self.ui.enable.setCurrentIndex(self.settings.value(*options.rpc_enable)) + self.ui.enable.setCurrentIndex(self.settings.value(*options.discord_rpc_mode)) self.ui.enable.currentIndexChanged.connect(self.__enable_changed) - self.ui.show_game.setChecked((self.settings.value(*options.rpc_name))) + self.ui.show_game.setChecked((self.settings.value(*options.discord_rpc_game))) self.ui.show_game.stateChanged.connect( - lambda: self.settings.setValue(options.rpc_name.key, self.ui.show_game.isChecked()) + lambda: self.settings.setValue(options.discord_rpc_game.key, self.ui.show_game.isChecked()) ) - self.ui.show_os.setChecked((self.settings.value(*options.rpc_os))) + self.ui.show_os.setChecked((self.settings.value(*options.discord_rpc_os))) self.ui.show_os.stateChanged.connect( - lambda: self.settings.setValue(options.rpc_os.key, self.ui.show_os.isChecked()) + lambda: self.settings.setValue(options.discord_rpc_os.key, self.ui.show_os.isChecked()) ) - self.ui.show_time.setChecked((self.settings.value(*options.rpc_time))) + self.ui.show_time.setChecked((self.settings.value(*options.discord_rpc_time))) self.ui.show_time.stateChanged.connect( - lambda: self.settings.setValue(options.rpc_time.key, self.ui.show_time.isChecked()) + lambda: self.settings.setValue(options.discord_rpc_time.key, self.ui.show_time.isChecked()) ) try: @@ -40,5 +40,5 @@ class RPCSettings(QGroupBox): self.setToolTip(self.tr("Pypresence is not installed")) def __enable_changed(self, i): - self.settings.setValue(options.rpc_enable.key, i) + self.settings.setValue(options.discord_rpc_mode.key, i) self.signals.discord_rpc.apply_settings.emit() diff --git a/rare/models/options.py b/rare/models/options.py index 66249780..ba5ecfed 100644 --- a/rare/models/options.py +++ b/rare/models/options.py @@ -45,10 +45,10 @@ class Defaults(Namespace): ) library_order = Value(key="library_order", default=int(LibraryOrder.TITLE), dtype=int) - rpc_enable = Value(key="rpc_enable", default=0, dtype=int) - rpc_name = Value(key="rpc_game", default=True, dtype=bool) - rpc_time = Value(key="rpc_time", default=True, dtype=bool) - rpc_os = Value(key="rpc_os", default=True, dtype=bool) + discord_rpc_mode = Value(key="discord_rpc_mode", default=0, dtype=int) + discord_rpc_game = Value(key="discord_rpc_game", default=True, dtype=bool) + discord_rpc_time = Value(key="discord_rpc_time", default=True, dtype=bool) + discord_rpc_os = Value(key="discord_rpc_os", default=True, dtype=bool) options = Defaults() diff --git a/rare/ui/components/tabs/settings/rare.py b/rare/ui/components/tabs/settings/rare.py index 14ef1341..427ab175 100644 --- a/rare/ui/components/tabs/settings/rare.py +++ b/rare/ui/components/tabs/settings/rare.py @@ -16,8 +16,8 @@ class Ui_RareSettings(object): RareSettings.setObjectName("RareSettings") RareSettings.resize(629, 447) RareSettings.setWindowTitle("RareSettings") - self.rare_layout = QtWidgets.QHBoxLayout(RareSettings) - self.rare_layout.setObjectName("rare_layout") + self.main_layout = QtWidgets.QHBoxLayout(RareSettings) + self.main_layout.setObjectName("main_layout") self.left_layout = QtWidgets.QVBoxLayout() self.left_layout.setObjectName("left_layout") self.interface_group = QtWidgets.QGroupBox(RareSettings) @@ -93,7 +93,7 @@ class Ui_RareSettings(object): self.left_layout.addWidget(self.settings_group) spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.left_layout.addItem(spacerItem1) - self.rare_layout.addLayout(self.left_layout) + self.main_layout.addLayout(self.left_layout) self.right_layout = QtWidgets.QVBoxLayout() self.right_layout.setObjectName("right_layout") self.log_dir_group = QtWidgets.QGroupBox(RareSettings) @@ -130,7 +130,7 @@ class Ui_RareSettings(object): self.right_layout.addWidget(self.groupBox) spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.right_layout.addItem(spacerItem2) - self.rare_layout.addLayout(self.right_layout) + self.main_layout.addLayout(self.right_layout) self.retranslateUi(RareSettings) diff --git a/rare/ui/components/tabs/settings/rare.ui b/rare/ui/components/tabs/settings/rare.ui index db809cca..1c47b7c8 100644 --- a/rare/ui/components/tabs/settings/rare.ui +++ b/rare/ui/components/tabs/settings/rare.ui @@ -13,7 +13,7 @@ RareSettings - + diff --git a/rare/ui/components/tabs/settings/widgets/discord_rpc.py b/rare/ui/components/tabs/settings/widgets/discord_rpc.py new file mode 100644 index 00000000..6bfd08d0 --- /dev/null +++ b/rare/ui/components/tabs/settings/widgets/discord_rpc.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'rare/ui/components/tabs/settings/widgets/discord_rpc.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DiscordRPCSettings(object): + def setupUi(self, DiscordRPCSettings): + DiscordRPCSettings.setObjectName("DiscordRPCSettings") + DiscordRPCSettings.resize(370, 149) + DiscordRPCSettings.setWindowTitle("DiscordRPCSettings") + self.main_layout = QtWidgets.QGridLayout(DiscordRPCSettings) + self.main_layout.setObjectName("main_layout") + self.enable = QtWidgets.QComboBox(DiscordRPCSettings) + self.enable.setObjectName("enable") + self.enable.addItem("") + self.enable.addItem("") + self.enable.addItem("") + self.main_layout.addWidget(self.enable, 0, 1, 1, 1) + self.label = QtWidgets.QLabel(DiscordRPCSettings) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) + self.label.setSizePolicy(sizePolicy) + self.label.setObjectName("label") + self.main_layout.addWidget(self.label, 0, 0, 1, 1) + self.show_game = QtWidgets.QCheckBox(DiscordRPCSettings) + self.show_game.setObjectName("show_game") + self.main_layout.addWidget(self.show_game, 1, 0, 1, 2) + self.show_os = QtWidgets.QCheckBox(DiscordRPCSettings) + self.show_os.setObjectName("show_os") + self.main_layout.addWidget(self.show_os, 2, 0, 1, 2) + self.show_time = QtWidgets.QCheckBox(DiscordRPCSettings) + self.show_time.setObjectName("show_time") + self.main_layout.addWidget(self.show_time, 3, 0, 1, 2) + + self.retranslateUi(DiscordRPCSettings) + + def retranslateUi(self, DiscordRPCSettings): + _translate = QtCore.QCoreApplication.translate + DiscordRPCSettings.setTitle(_translate("DiscordRPCSettings", "Discord RPC")) + self.enable.setItemText(0, _translate("DiscordRPCSettings", "When Playing")) + self.enable.setItemText(1, _translate("DiscordRPCSettings", "Always")) + self.enable.setItemText(2, _translate("DiscordRPCSettings", "Never")) + self.label.setText(_translate("DiscordRPCSettings", "Show")) + self.show_game.setText(_translate("DiscordRPCSettings", "Show Game")) + self.show_os.setText(_translate("DiscordRPCSettings", "Show OS")) + self.show_time.setText(_translate("DiscordRPCSettings", "Show Time playing")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DiscordRPCSettings = QtWidgets.QGroupBox() + ui = Ui_DiscordRPCSettings() + ui.setupUi(DiscordRPCSettings) + DiscordRPCSettings.show() + sys.exit(app.exec_()) diff --git a/rare/ui/components/tabs/settings/widgets/discord_rpc.ui b/rare/ui/components/tabs/settings/widgets/discord_rpc.ui new file mode 100644 index 00000000..1f16fa34 --- /dev/null +++ b/rare/ui/components/tabs/settings/widgets/discord_rpc.ui @@ -0,0 +1,77 @@ + + + DiscordRPCSettings + + + + 0 + 0 + 370 + 149 + + + + DiscordRPCSettings + + + Discord RPC + + + + + + + When Playing + + + + + Always + + + + + Never + + + + + + + + + 0 + 0 + + + + Show + + + + + + + Show Game + + + + + + + Show OS + + + + + + + Show Time playing + + + + + + + + diff --git a/rare/ui/components/tabs/settings/widgets/rpc.py b/rare/ui/components/tabs/settings/widgets/rpc.py deleted file mode 100644 index 24c50936..00000000 --- a/rare/ui/components/tabs/settings/widgets/rpc.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'rare/ui/components/tabs/settings/widgets/rpc.ui' -# -# Created by: PyQt5 UI code generator 5.15.6 -# -# WARNING: Any manual changes made to this file will be lost when pyuic5 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt5 import QtCore, QtGui, QtWidgets - - -class Ui_RPCSettings(object): - def setupUi(self, RPCSettings): - RPCSettings.setObjectName("RPCSettings") - RPCSettings.resize(174, 146) - RPCSettings.setWindowTitle("DiscordRPC") - self.layout = QtWidgets.QGridLayout(RPCSettings) - self.layout.setObjectName("layout") - self.enable = QtWidgets.QComboBox(RPCSettings) - self.enable.setObjectName("enable") - self.enable.addItem("") - self.enable.addItem("") - self.enable.addItem("") - self.layout.addWidget(self.enable, 0, 1, 1, 1) - self.label = QtWidgets.QLabel(RPCSettings) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) - self.label.setSizePolicy(sizePolicy) - self.label.setObjectName("label") - self.layout.addWidget(self.label, 0, 0, 1, 1) - self.show_game = QtWidgets.QCheckBox(RPCSettings) - self.show_game.setObjectName("show_game") - self.layout.addWidget(self.show_game, 1, 0, 1, 2) - self.show_os = QtWidgets.QCheckBox(RPCSettings) - self.show_os.setObjectName("show_os") - self.layout.addWidget(self.show_os, 2, 0, 1, 2) - self.show_time = QtWidgets.QCheckBox(RPCSettings) - self.show_time.setObjectName("show_time") - self.layout.addWidget(self.show_time, 3, 0, 1, 2) - - self.retranslateUi(RPCSettings) - - def retranslateUi(self, RPCSettings): - _translate = QtCore.QCoreApplication.translate - RPCSettings.setTitle(_translate("RPCSettings", "Discord RPC")) - self.enable.setItemText(0, _translate("RPCSettings", "When Playing")) - self.enable.setItemText(1, _translate("RPCSettings", "Always")) - self.enable.setItemText(2, _translate("RPCSettings", "Never")) - self.label.setText(_translate("RPCSettings", "Show")) - self.show_game.setText(_translate("RPCSettings", "Show Game")) - self.show_os.setText(_translate("RPCSettings", "Show OS")) - self.show_time.setText(_translate("RPCSettings", "Show Time playing")) - - -if __name__ == "__main__": - import sys - app = QtWidgets.QApplication(sys.argv) - RPCSettings = QtWidgets.QGroupBox() - ui = Ui_RPCSettings() - ui.setupUi(RPCSettings) - RPCSettings.show() - sys.exit(app.exec_()) diff --git a/rare/ui/components/tabs/settings/widgets/rpc.ui b/rare/ui/components/tabs/settings/widgets/rpc.ui deleted file mode 100644 index a2b82103..00000000 --- a/rare/ui/components/tabs/settings/widgets/rpc.ui +++ /dev/null @@ -1,77 +0,0 @@ - - - RPCSettings - - - - 0 - 0 - 174 - 146 - - - - DiscordRPC - - - Discord RPC - - - - - - - When Playing - - - - - Always - - - - - Never - - - - - - - - - 0 - 0 - - - - Show - - - - - - - Show Game - - - - - - - Show OS - - - - - - - Show Time playing - - - - - - - - diff --git a/rare/utils/rpc.py b/rare/utils/discord_rpc.py similarity index 75% rename from rare/utils/rpc.py rename to rare/utils/discord_rpc.py index 761f7d2a..a3820182 100644 --- a/rare/utils/rpc.py +++ b/rare/utils/discord_rpc.py @@ -10,19 +10,19 @@ from rare.shared import LegendaryCoreSingleton, GlobalSignalsSingleton from rare.models.options import options client_id = "830732538225360908" -logger = getLogger("RPC") +logger = getLogger("DiscordRPC") class DiscordRPC(QObject): def __init__(self): super(DiscordRPC, self).__init__() - self.RPC = None + self.rpc = None self.state = 1 # 0: game, 1: always active, 2: off self.core = LegendaryCoreSingleton() self.signals = GlobalSignalsSingleton() self.settings = QSettings() - if self.settings.value(*options.rpc_enable) == 1: # show always + if self.settings.value(*options.discord_rpc_mode) == 1: # show always self.state = 2 self.set_discord_rpc() @@ -33,7 +33,7 @@ class DiscordRPC(QObject): self.set_discord_rpc(app_name) def changed_settings(self, game_running: list = None): - value = self.settings.value(*options.rpc_enable) + value = self.settings.value(*options.discord_rpc_mode) if value == 2: self.remove_rpc() return @@ -45,15 +45,15 @@ class DiscordRPC(QObject): self.set_discord_rpc(game_running[0]) def remove_rpc(self): - if self.settings.value(*options.rpc_enable) != 1: - if not self.RPC: + if self.settings.value(*options.discord_rpc_mode) != 1: + if not self.rpc: return try: - self.RPC.close() + self.rpc.close() except Exception: logger.warning("Already closed") - del self.RPC - self.RPC = None + del self.rpc + self.rpc = None logger.info("Remove RPC") self.state = 2 else: @@ -61,56 +61,56 @@ class DiscordRPC(QObject): self.set_discord_rpc() def set_discord_rpc(self, app_name=None): - if not self.RPC: + if not self.rpc: try: - self.RPC = Presence( + self.rpc = Presence( client_id ) # Rare app: https://discord.com/developers/applications - self.RPC.connect() + self.rpc.connect() except ConnectionRefusedError as e: logger.warning(f"Discord is not active\n{e}") - self.RPC = None + self.rpc = None return except FileNotFoundError as e: logger.warning(f"File not found error\n{e}") - self.RPC = None + self.rpc = None return except pypresence.exceptions.InvalidPipe as e: logger.error(f"Is Discord running? \n{e}") - self.RPC = None + self.rpc = None return except Exception as e: logger.error(str(e)) - self.RPC = None + self.rpc = None return self.update_rpc(app_name) def update_rpc(self, app_name=None): - if self.settings.value(*options.rpc_enable) == 2 or ( - not app_name and self.settings.value(*options.rpc_enable) == 0 + if self.settings.value(*options.discord_rpc_mode) == 2 or ( + not app_name and self.settings.value(*options.discord_rpc_mode) == 0 ): self.remove_rpc() return title = None if not app_name: - self.RPC.update( + self.rpc.update( large_image="logo", details="https://github.com/RareDevs/Rare" ) return - if self.settings.value(*options.rpc_name): + if self.settings.value(*options.discord_rpc_game): try: title = self.core.get_installed_game(app_name).title except AttributeError: logger.error(f"Could not get title of game: {app_name}") title = app_name start = None - if self.settings.value(*options.rpc_time): + if self.settings.value(*options.discord_rpc_time): start = str(time.time()).split(".")[0] os = None - if self.settings.value(*options.rpc_os): + if self.settings.value(*options.discord_rpc_os): os = f"via Rare on {platform.system()}" - self.RPC.update( + self.rpc.update( large_image="logo", details=title, large_text=title, state=os, start=start ) self.state = 0