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.web_search import MullvadLetaWrapper
|
||||
from core.discord_presence import presence
|
||||
|
||||
ASSET = Path(__file__).parent / "assets" / "2ktan.png"
|
||||
|
||||
@@ -367,6 +368,7 @@ def main():
|
||||
|
||||
restart_enabled = "--restart" in sys.argv
|
||||
pet = MainWindow(restart=restart_enabled)
|
||||
presence.start()
|
||||
|
||||
# bottom right corner
|
||||
screen_geometry = app.primaryScreen().availableGeometry()
|
||||
@@ -378,6 +380,7 @@ def main():
|
||||
pet.show()
|
||||
|
||||
sys.exit(app.exec())
|
||||
presence.end()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user