discord presence
This commit is contained in:
69
core/discord_presence.py
Normal file
69
core/discord_presence.py
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
import time
|
||||||
|
from discordrp import Presence
|
||||||
|
|
||||||
|
class DiscordPresence:
|
||||||
|
def __init__(self, client_id="1430908404095909960"):
|
||||||
|
self.client_id = client_id
|
||||||
|
self.presence = None
|
||||||
|
self.running = False
|
||||||
|
self.start_time = None
|
||||||
|
|
||||||
|
def start(self):
|
||||||
|
"""Start the Discord Rich Presence"""
|
||||||
|
if self.running:
|
||||||
|
print("Presence is already running")
|
||||||
|
return
|
||||||
|
|
||||||
|
self.start_time = int(time.time())
|
||||||
|
self.presence = Presence(self.client_id)
|
||||||
|
self.presence.__enter__()
|
||||||
|
|
||||||
|
self.presence.set(
|
||||||
|
{
|
||||||
|
"assets": {
|
||||||
|
"large_image": "2ktanbig",
|
||||||
|
"large_text": "CLARA"
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"label": "Let CLARA help you!",
|
||||||
|
"url": "https://github.com/n0va-bot/CLARA"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
self.running = True
|
||||||
|
print("Discord presence started")
|
||||||
|
|
||||||
|
def end(self):
|
||||||
|
"""Stop the Discord Rich Presence"""
|
||||||
|
if not self.running:
|
||||||
|
print("Presence is not running")
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
if self.presence:
|
||||||
|
self.presence.__exit__(None, None, None)
|
||||||
|
self.presence = None
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error closing presence: {e}")
|
||||||
|
finally:
|
||||||
|
self.running = False
|
||||||
|
print("Discord presence stopped")
|
||||||
|
|
||||||
|
def update(self, data):
|
||||||
|
"""Update the presence with new data"""
|
||||||
|
if not self.running or not self.presence:
|
||||||
|
print("Presence is not running. Call start() first.")
|
||||||
|
return
|
||||||
|
|
||||||
|
self.presence.set(data)
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
"""Cleanup when object is destroyed"""
|
||||||
|
if self.running:
|
||||||
|
self.end()
|
||||||
|
|
||||||
|
|
||||||
|
presence = DiscordPresence()
|
||||||
3
main.py
3
main.py
@@ -5,6 +5,7 @@ from PySide6 import QtCore, QtGui, QtWidgets
|
|||||||
|
|
||||||
from core.file_search import find
|
from core.file_search import find
|
||||||
from core.web_search import MullvadLetaWrapper
|
from core.web_search import MullvadLetaWrapper
|
||||||
|
from core.discord_presence import presence
|
||||||
|
|
||||||
ASSET = Path(__file__).parent / "assets" / "2ktan.png"
|
ASSET = Path(__file__).parent / "assets" / "2ktan.png"
|
||||||
|
|
||||||
@@ -367,6 +368,7 @@ def main():
|
|||||||
|
|
||||||
restart_enabled = "--restart" in sys.argv
|
restart_enabled = "--restart" in sys.argv
|
||||||
pet = MainWindow(restart=restart_enabled)
|
pet = MainWindow(restart=restart_enabled)
|
||||||
|
presence.start()
|
||||||
|
|
||||||
# bottom right corner
|
# bottom right corner
|
||||||
screen_geometry = app.primaryScreen().availableGeometry()
|
screen_geometry = app.primaryScreen().availableGeometry()
|
||||||
@@ -378,6 +380,7 @@ def main():
|
|||||||
pet.show()
|
pet.show()
|
||||||
|
|
||||||
sys.exit(app.exec())
|
sys.exit(app.exec())
|
||||||
|
presence.end()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
Reference in New Issue
Block a user