Rare: Refactor Discord RPC file, object and variable names
This commit is contained in:
parent
826d116dd6
commit
125709b53b
11 changed files with 192 additions and 192 deletions
|
@ -101,9 +101,9 @@ class MainWindow(QMainWindow):
|
||||||
|
|
||||||
if not self.args.offline:
|
if not self.args.offline:
|
||||||
try:
|
try:
|
||||||
from rare.utils.rpc import DiscordRPC
|
from rare.utils.discord_rpc import DiscordRPC
|
||||||
|
|
||||||
self.rpc = DiscordRPC()
|
self.discord_rpc = DiscordRPC()
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
logger.warning("Discord RPC module not found")
|
logger.warning("Discord RPC module not found")
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from PyQt5.QtCore import QSettings, Qt, pyqtSlot, QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt5.QtGui import QDesktopServices
|
||||||
from PyQt5.QtWidgets import QWidget, QMessageBox
|
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.models.options import options, LibraryView
|
||||||
from rare.shared import LegendaryCoreSingleton
|
from rare.shared import LegendaryCoreSingleton
|
||||||
from rare.ui.components.tabs.settings.rare import Ui_RareSettings
|
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.setCurrentIndex(0)
|
||||||
self.ui.view_combo.currentIndexChanged.connect(self.on_view_combo_changed)
|
self.ui.view_combo.currentIndexChanged.connect(self.on_view_combo_changed)
|
||||||
|
|
||||||
self.rpc = RPCSettings(self)
|
self.discord_rpc_settings = DiscordRPCSettings(self)
|
||||||
self.ui.right_layout.insertWidget(1, self.rpc, alignment=Qt.AlignTop)
|
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.setChecked(self.settings.value(*options.sys_tray))
|
||||||
self.ui.sys_tray.stateChanged.connect(
|
self.ui.sys_tray.stateChanged.connect(
|
||||||
|
|
|
@ -3,34 +3,34 @@ from PyQt5.QtWidgets import QGroupBox
|
||||||
|
|
||||||
from rare.shared import GlobalSignalsSingleton
|
from rare.shared import GlobalSignalsSingleton
|
||||||
from rare.models.options import options
|
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):
|
def __init__(self, parent):
|
||||||
super(RPCSettings, self).__init__(parent=parent)
|
super(DiscordRPCSettings, self).__init__(parent=parent)
|
||||||
self.ui = Ui_RPCSettings()
|
self.ui = Ui_DiscordRPCSettings()
|
||||||
self.ui.setupUi(self)
|
self.ui.setupUi(self)
|
||||||
self.signals = GlobalSignalsSingleton()
|
self.signals = GlobalSignalsSingleton()
|
||||||
|
|
||||||
self.settings = QSettings()
|
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.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(
|
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(
|
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(
|
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:
|
try:
|
||||||
|
@ -40,5 +40,5 @@ class RPCSettings(QGroupBox):
|
||||||
self.setToolTip(self.tr("Pypresence is not installed"))
|
self.setToolTip(self.tr("Pypresence is not installed"))
|
||||||
|
|
||||||
def __enable_changed(self, i):
|
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()
|
self.signals.discord_rpc.apply_settings.emit()
|
|
@ -45,10 +45,10 @@ class Defaults(Namespace):
|
||||||
)
|
)
|
||||||
library_order = Value(key="library_order", default=int(LibraryOrder.TITLE), dtype=int)
|
library_order = Value(key="library_order", default=int(LibraryOrder.TITLE), dtype=int)
|
||||||
|
|
||||||
rpc_enable = Value(key="rpc_enable", default=0, dtype=int)
|
discord_rpc_mode = Value(key="discord_rpc_mode", default=0, dtype=int)
|
||||||
rpc_name = Value(key="rpc_game", default=True, dtype=bool)
|
discord_rpc_game = Value(key="discord_rpc_game", default=True, dtype=bool)
|
||||||
rpc_time = Value(key="rpc_time", default=True, dtype=bool)
|
discord_rpc_time = Value(key="discord_rpc_time", default=True, dtype=bool)
|
||||||
rpc_os = Value(key="rpc_os", default=True, dtype=bool)
|
discord_rpc_os = Value(key="discord_rpc_os", default=True, dtype=bool)
|
||||||
|
|
||||||
|
|
||||||
options = Defaults()
|
options = Defaults()
|
||||||
|
|
|
@ -16,8 +16,8 @@ class Ui_RareSettings(object):
|
||||||
RareSettings.setObjectName("RareSettings")
|
RareSettings.setObjectName("RareSettings")
|
||||||
RareSettings.resize(629, 447)
|
RareSettings.resize(629, 447)
|
||||||
RareSettings.setWindowTitle("RareSettings")
|
RareSettings.setWindowTitle("RareSettings")
|
||||||
self.rare_layout = QtWidgets.QHBoxLayout(RareSettings)
|
self.main_layout = QtWidgets.QHBoxLayout(RareSettings)
|
||||||
self.rare_layout.setObjectName("rare_layout")
|
self.main_layout.setObjectName("main_layout")
|
||||||
self.left_layout = QtWidgets.QVBoxLayout()
|
self.left_layout = QtWidgets.QVBoxLayout()
|
||||||
self.left_layout.setObjectName("left_layout")
|
self.left_layout.setObjectName("left_layout")
|
||||||
self.interface_group = QtWidgets.QGroupBox(RareSettings)
|
self.interface_group = QtWidgets.QGroupBox(RareSettings)
|
||||||
|
@ -93,7 +93,7 @@ class Ui_RareSettings(object):
|
||||||
self.left_layout.addWidget(self.settings_group)
|
self.left_layout.addWidget(self.settings_group)
|
||||||
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
self.left_layout.addItem(spacerItem1)
|
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 = QtWidgets.QVBoxLayout()
|
||||||
self.right_layout.setObjectName("right_layout")
|
self.right_layout.setObjectName("right_layout")
|
||||||
self.log_dir_group = QtWidgets.QGroupBox(RareSettings)
|
self.log_dir_group = QtWidgets.QGroupBox(RareSettings)
|
||||||
|
@ -130,7 +130,7 @@ class Ui_RareSettings(object):
|
||||||
self.right_layout.addWidget(self.groupBox)
|
self.right_layout.addWidget(self.groupBox)
|
||||||
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
self.right_layout.addItem(spacerItem2)
|
self.right_layout.addItem(spacerItem2)
|
||||||
self.rare_layout.addLayout(self.right_layout)
|
self.main_layout.addLayout(self.right_layout)
|
||||||
|
|
||||||
self.retranslateUi(RareSettings)
|
self.retranslateUi(RareSettings)
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string notr="true">RareSettings</string>
|
<string notr="true">RareSettings</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="rare_layout">
|
<layout class="QHBoxLayout" name="main_layout">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="left_layout">
|
<layout class="QVBoxLayout" name="left_layout">
|
||||||
<item>
|
<item>
|
||||||
|
|
66
rare/ui/components/tabs/settings/widgets/discord_rpc.py
Normal file
66
rare/ui/components/tabs/settings/widgets/discord_rpc.py
Normal file
|
@ -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_())
|
77
rare/ui/components/tabs/settings/widgets/discord_rpc.ui
Normal file
77
rare/ui/components/tabs/settings/widgets/discord_rpc.ui
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>DiscordRPCSettings</class>
|
||||||
|
<widget class="QGroupBox" name="DiscordRPCSettings">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>370</width>
|
||||||
|
<height>149</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string notr="true">DiscordRPCSettings</string>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Discord RPC</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="main_layout">
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QComboBox" name="enable">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>When Playing</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Always</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Never</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Show</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
|
<widget class="QCheckBox" name="show_game">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show Game</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="2">
|
||||||
|
<widget class="QCheckBox" name="show_os">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show OS</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="2">
|
||||||
|
<widget class="QCheckBox" name="show_time">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show Time playing</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -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_())
|
|
|
@ -1,77 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>RPCSettings</class>
|
|
||||||
<widget class="QGroupBox" name="RPCSettings">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>174</width>
|
|
||||||
<height>146</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string notr="true">DiscordRPC</string>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>Discord RPC</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" name="layout">
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QComboBox" name="enable">
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>When Playing</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Always</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Never</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Show</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" colspan="2">
|
|
||||||
<widget class="QCheckBox" name="show_game">
|
|
||||||
<property name="text">
|
|
||||||
<string>Show Game</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0" colspan="2">
|
|
||||||
<widget class="QCheckBox" name="show_os">
|
|
||||||
<property name="text">
|
|
||||||
<string>Show OS</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0" colspan="2">
|
|
||||||
<widget class="QCheckBox" name="show_time">
|
|
||||||
<property name="text">
|
|
||||||
<string>Show Time playing</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
|
@ -10,19 +10,19 @@ from rare.shared import LegendaryCoreSingleton, GlobalSignalsSingleton
|
||||||
from rare.models.options import options
|
from rare.models.options import options
|
||||||
|
|
||||||
client_id = "830732538225360908"
|
client_id = "830732538225360908"
|
||||||
logger = getLogger("RPC")
|
logger = getLogger("DiscordRPC")
|
||||||
|
|
||||||
|
|
||||||
class DiscordRPC(QObject):
|
class DiscordRPC(QObject):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(DiscordRPC, self).__init__()
|
super(DiscordRPC, self).__init__()
|
||||||
self.RPC = None
|
self.rpc = None
|
||||||
self.state = 1 # 0: game, 1: always active, 2: off
|
self.state = 1 # 0: game, 1: always active, 2: off
|
||||||
self.core = LegendaryCoreSingleton()
|
self.core = LegendaryCoreSingleton()
|
||||||
self.signals = GlobalSignalsSingleton()
|
self.signals = GlobalSignalsSingleton()
|
||||||
|
|
||||||
self.settings = QSettings()
|
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.state = 2
|
||||||
self.set_discord_rpc()
|
self.set_discord_rpc()
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ class DiscordRPC(QObject):
|
||||||
self.set_discord_rpc(app_name)
|
self.set_discord_rpc(app_name)
|
||||||
|
|
||||||
def changed_settings(self, game_running: list = None):
|
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:
|
if value == 2:
|
||||||
self.remove_rpc()
|
self.remove_rpc()
|
||||||
return
|
return
|
||||||
|
@ -45,15 +45,15 @@ class DiscordRPC(QObject):
|
||||||
self.set_discord_rpc(game_running[0])
|
self.set_discord_rpc(game_running[0])
|
||||||
|
|
||||||
def remove_rpc(self):
|
def remove_rpc(self):
|
||||||
if self.settings.value(*options.rpc_enable) != 1:
|
if self.settings.value(*options.discord_rpc_mode) != 1:
|
||||||
if not self.RPC:
|
if not self.rpc:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
self.RPC.close()
|
self.rpc.close()
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.warning("Already closed")
|
logger.warning("Already closed")
|
||||||
del self.RPC
|
del self.rpc
|
||||||
self.RPC = None
|
self.rpc = None
|
||||||
logger.info("Remove RPC")
|
logger.info("Remove RPC")
|
||||||
self.state = 2
|
self.state = 2
|
||||||
else:
|
else:
|
||||||
|
@ -61,56 +61,56 @@ class DiscordRPC(QObject):
|
||||||
self.set_discord_rpc()
|
self.set_discord_rpc()
|
||||||
|
|
||||||
def set_discord_rpc(self, app_name=None):
|
def set_discord_rpc(self, app_name=None):
|
||||||
if not self.RPC:
|
if not self.rpc:
|
||||||
try:
|
try:
|
||||||
self.RPC = Presence(
|
self.rpc = Presence(
|
||||||
client_id
|
client_id
|
||||||
) # Rare app: https://discord.com/developers/applications
|
) # Rare app: https://discord.com/developers/applications
|
||||||
self.RPC.connect()
|
self.rpc.connect()
|
||||||
except ConnectionRefusedError as e:
|
except ConnectionRefusedError as e:
|
||||||
logger.warning(f"Discord is not active\n{e}")
|
logger.warning(f"Discord is not active\n{e}")
|
||||||
self.RPC = None
|
self.rpc = None
|
||||||
return
|
return
|
||||||
except FileNotFoundError as e:
|
except FileNotFoundError as e:
|
||||||
logger.warning(f"File not found error\n{e}")
|
logger.warning(f"File not found error\n{e}")
|
||||||
self.RPC = None
|
self.rpc = None
|
||||||
return
|
return
|
||||||
except pypresence.exceptions.InvalidPipe as e:
|
except pypresence.exceptions.InvalidPipe as e:
|
||||||
logger.error(f"Is Discord running? \n{e}")
|
logger.error(f"Is Discord running? \n{e}")
|
||||||
self.RPC = None
|
self.rpc = None
|
||||||
return
|
return
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(str(e))
|
logger.error(str(e))
|
||||||
self.RPC = None
|
self.rpc = None
|
||||||
return
|
return
|
||||||
self.update_rpc(app_name)
|
self.update_rpc(app_name)
|
||||||
|
|
||||||
def update_rpc(self, app_name=None):
|
def update_rpc(self, app_name=None):
|
||||||
if self.settings.value(*options.rpc_enable) == 2 or (
|
if self.settings.value(*options.discord_rpc_mode) == 2 or (
|
||||||
not app_name and self.settings.value(*options.rpc_enable) == 0
|
not app_name and self.settings.value(*options.discord_rpc_mode) == 0
|
||||||
):
|
):
|
||||||
self.remove_rpc()
|
self.remove_rpc()
|
||||||
return
|
return
|
||||||
title = None
|
title = None
|
||||||
if not app_name:
|
if not app_name:
|
||||||
self.RPC.update(
|
self.rpc.update(
|
||||||
large_image="logo", details="https://github.com/RareDevs/Rare"
|
large_image="logo", details="https://github.com/RareDevs/Rare"
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
if self.settings.value(*options.rpc_name):
|
if self.settings.value(*options.discord_rpc_game):
|
||||||
try:
|
try:
|
||||||
title = self.core.get_installed_game(app_name).title
|
title = self.core.get_installed_game(app_name).title
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
logger.error(f"Could not get title of game: {app_name}")
|
logger.error(f"Could not get title of game: {app_name}")
|
||||||
title = app_name
|
title = app_name
|
||||||
start = None
|
start = None
|
||||||
if self.settings.value(*options.rpc_time):
|
if self.settings.value(*options.discord_rpc_time):
|
||||||
start = str(time.time()).split(".")[0]
|
start = str(time.time()).split(".")[0]
|
||||||
os = None
|
os = None
|
||||||
if self.settings.value(*options.rpc_os):
|
if self.settings.value(*options.discord_rpc_os):
|
||||||
os = f"via Rare on {platform.system()}"
|
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
|
large_image="logo", details=title, large_text=title, state=os, start=start
|
||||||
)
|
)
|
||||||
self.state = 0
|
self.state = 0
|
Loading…
Reference in a new issue