add discord rpc class
This commit is contained in:
9
discord/models.py
Normal file
9
discord/models.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from pydantic import BaseModel
|
||||
from pypresence.types import ActivityType
|
||||
|
||||
class DiscordRPCUpdatePayload(BaseModel):
|
||||
title: str
|
||||
subtitle: str
|
||||
image_url: str
|
||||
details: str
|
||||
activity_type: ActivityType
|
||||
29
discord/rpc.py
Normal file
29
discord/rpc.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from pypresence import Presence
|
||||
from settings import settings
|
||||
from discord.models import DiscordRPCPayload
|
||||
import logging
|
||||
|
||||
class DiscordRPC:
|
||||
def __init__(self):
|
||||
self.logger = logging.getLogger('DiscordRPC')
|
||||
|
||||
self.logger.info("Connecting to Discord RPC...")
|
||||
self.rpc = Presence(settings.discord_app_id)
|
||||
self.rpc.connect()
|
||||
self.logger.info("Connected to Discord RPC.")
|
||||
|
||||
def update(self, payload: DiscordRPCPayload):
|
||||
self.logger.info("Updating Discord RPC presence...")
|
||||
self.rpc.update(
|
||||
activity_type=payload.activity_type,
|
||||
details=payload.title,
|
||||
state=payload.subtitle,
|
||||
large_image=payload.image_url,
|
||||
large_text=payload.details
|
||||
)
|
||||
self.logger.info("Discord RPC presence updated.")
|
||||
|
||||
def clear(self):
|
||||
self.logger.info("Clearing Discord RPC presence...")
|
||||
self.rpc.clear()
|
||||
self.logger.info("Discord RPC presence cleared.")
|
||||
Reference in New Issue
Block a user