add discord rpc class
This commit is contained in:
@@ -1,9 +0,0 @@
|
|||||||
from pypresence import Presence
|
|
||||||
import os
|
|
||||||
|
|
||||||
def get_rpc():
|
|
||||||
app_id = os.getenv('DISCORD_APP_ID')
|
|
||||||
RPC = Presence(app_id)
|
|
||||||
RPC.connect()
|
|
||||||
return RPC
|
|
||||||
|
|
||||||
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