drp.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import discord_rpc
  2. from settings import *
  3. import logging
  4. file_log = logging.FileHandler('log.log')
  5. console_out = logging.StreamHandler()
  6. logging.basicConfig(format='%(levelname)s:%(name)s -> %(message)s [%(asctime)s]',
  7. level=logging.DEBUG,
  8. handlers=(file_log, console_out))
  9. log = logging.getLogger("drp")
  10. class DRP:
  11. def __init__(self, app_id: (str, int)):
  12. callbacks = {
  13. 'ready': self.ready_callback,
  14. 'disconnected': self.disconnected_callback,
  15. 'error': self.error_callback,
  16. }
  17. discord_rpc.initialize(app_id, callbacks=callbacks, log=False)
  18. @staticmethod
  19. def ready_callback(current_user):
  20. global CURR_USER
  21. CURR_USER = current_user
  22. log.info('User -> {}'.format(current_user))
  23. @staticmethod
  24. def disconnected_callback(codeno, codemsg):
  25. log.error('Disconnected from Discord rich presence RPC. Code {}: {}'.format(codeno, codemsg))
  26. @staticmethod
  27. def error_callback(errno, errmsg):
  28. log.error('An error occurred! Error {}: {}'.format(errno, errmsg))
  29. @staticmethod
  30. def update(**kwargs):
  31. discord_rpc.update_presence(**kwargs)
  32. discord_rpc.update_connection()
  33. discord_rpc.run_callbacks()
  34. @staticmethod
  35. def shutdown():
  36. discord_rpc.shutdown()