mirror of
https://github.com/Yonokid/PyTaiko.git
synced 2026-02-04 03:30:13 +01:00
add rpc
This commit is contained in:
27
PyTaiko.py
27
PyTaiko.py
@@ -21,6 +21,7 @@ from libs.song_hash import DB_VERSION
|
|||||||
from libs.tja import TJAParser
|
from libs.tja import TJAParser
|
||||||
from libs.utils import (
|
from libs.utils import (
|
||||||
force_dedicated_gpu,
|
force_dedicated_gpu,
|
||||||
|
get_current_ms,
|
||||||
global_data,
|
global_data,
|
||||||
global_tex
|
global_tex
|
||||||
)
|
)
|
||||||
@@ -42,8 +43,18 @@ from scenes.two_player.song_select import TwoPlayerSongSelectScreen
|
|||||||
from scenes.dan.dan_select import DanSelectScreen
|
from scenes.dan.dan_select import DanSelectScreen
|
||||||
from scenes.dan.dan_result import DanResultScreen
|
from scenes.dan.dan_result import DanResultScreen
|
||||||
|
|
||||||
|
from pypresence.presence import Presence
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
DISCORD_APP_ID = '1451423960401973353'
|
||||||
|
try:
|
||||||
|
RPC = Presence(DISCORD_APP_ID)
|
||||||
|
RPC.connect()
|
||||||
|
discord_connected = True
|
||||||
|
except Exception as e:
|
||||||
|
discord_connected = False
|
||||||
|
logger.warning(f"Could not connect to Discord: {e}")
|
||||||
|
|
||||||
class Screens:
|
class Screens:
|
||||||
TITLE = "TITLE"
|
TITLE = "TITLE"
|
||||||
@@ -329,9 +340,23 @@ def main():
|
|||||||
ray.hide_cursor()
|
ray.hide_cursor()
|
||||||
logger.info("Cursor hidden")
|
logger.info("Cursor hidden")
|
||||||
last_fps = 1
|
last_fps = 1
|
||||||
|
start_time = get_current_ms()
|
||||||
last_color = ray.BLACK
|
last_color = ray.BLACK
|
||||||
|
|
||||||
while not ray.window_should_close():
|
while not ray.window_should_close():
|
||||||
|
if discord_connected:
|
||||||
|
if global_data.session_data[global_data.player_num].selected_song != Path():
|
||||||
|
details = f"Playing Song: {global_data.session_data[global_data.player_num].song_title}"
|
||||||
|
else:
|
||||||
|
details = "Idling"
|
||||||
|
RPC.update(
|
||||||
|
state=f"In Screen {current_screen}",
|
||||||
|
details=details,
|
||||||
|
large_text="PyTaiko",
|
||||||
|
start=get_current_ms() - start_time,
|
||||||
|
buttons=[{"label": "Play Now", "url": "https://github.com/Yonokid/PyTaiko"}]
|
||||||
|
)
|
||||||
|
|
||||||
if ray.is_key_pressed(global_data.config["keys"]["fullscreen_key"]):
|
if ray.is_key_pressed(global_data.config["keys"]["fullscreen_key"]):
|
||||||
ray.toggle_fullscreen()
|
ray.toggle_fullscreen()
|
||||||
logger.info("Toggled fullscreen")
|
logger.info("Toggled fullscreen")
|
||||||
@@ -383,6 +408,8 @@ def main():
|
|||||||
|
|
||||||
ray.close_window()
|
ray.close_window()
|
||||||
audio.close_audio_device()
|
audio.close_audio_device()
|
||||||
|
if discord_connected:
|
||||||
|
RPC.close()
|
||||||
logger.info("Window closed and audio device shut down")
|
logger.info("Window closed and audio device shut down")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ readme = "README.md"
|
|||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"av>=16.0.1",
|
"av>=16.0.1",
|
||||||
|
"pypresence>=4.6.1",
|
||||||
"raylib-sdl>=5.5.0.2",
|
"raylib-sdl>=5.5.0.2",
|
||||||
"tomlkit>=0.13.3",
|
"tomlkit>=0.13.3",
|
||||||
]
|
]
|
||||||
|
|||||||
11
uv.lock
generated
11
uv.lock
generated
@@ -111,12 +111,22 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" },
|
{ url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pypresence"
|
||||||
|
version = "4.6.1"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/f6/6b/dedacb949ee73c3fd4a11992a4e9a70fc4cd1046ed6870f9138348293ded/pypresence-4.6.1.tar.gz", hash = "sha256:05199516a3b4e182b637b3cd5415aab7ba542707664f634f35a7220c4f10334f", size = 20419, upload-time = "2025-10-17T18:53:39.484Z" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/bd/0d/1c817c6769ce0b64cc0dcc20bc9d0edb4dc560e83a3b5f0d5cbda04c3d35/pypresence-4.6.1-py3-none-any.whl", hash = "sha256:33d4549fcdf4102f81935df4ba587bacb22193e0c50c541d1ab9329b21df33cd", size = 14033, upload-time = "2025-10-17T18:53:38.184Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pytaiko"
|
name = "pytaiko"
|
||||||
version = "1.0"
|
version = "1.0"
|
||||||
source = { virtual = "." }
|
source = { virtual = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "av" },
|
{ name = "av" },
|
||||||
|
{ name = "pypresence" },
|
||||||
{ name = "raylib-sdl" },
|
{ name = "raylib-sdl" },
|
||||||
{ name = "tomlkit" },
|
{ name = "tomlkit" },
|
||||||
]
|
]
|
||||||
@@ -129,6 +139,7 @@ dev = [
|
|||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "av", specifier = ">=16.0.1" },
|
{ name = "av", specifier = ">=16.0.1" },
|
||||||
|
{ name = "pypresence", specifier = ">=4.6.1" },
|
||||||
{ name = "raylib-sdl", specifier = ">=5.5.0.2" },
|
{ name = "raylib-sdl", specifier = ">=5.5.0.2" },
|
||||||
{ name = "tomlkit", specifier = ">=0.13.3" },
|
{ name = "tomlkit", specifier = ">=0.13.3" },
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user