diff --git a/camera.py b/camera.py index a839a18..e72f334 100644 --- a/camera.py +++ b/camera.py @@ -45,8 +45,8 @@ def createNewPictureObserver(callback: callable) -> Observer: if a new picture was found. """ - if os.environ.get('VRC_PICTURES_DIR', None) is not None: - path = os.environ.get('VRC_PICTURES_DIR') + if os.environ.get('VRCCO_PICTURES_DIR', None) is not None: + path = os.environ.get('VRCCO_PICTURES_DIR') elif platform.system() == 'Linux': path = '~/.local/share/Steam/steamapps/compatdata/438100/pfx' path += '/drive_c/users/steamuser/Pictures/VRChat/' diff --git a/main.py b/main.py index c86c3f3..f72c123 100644 --- a/main.py +++ b/main.py @@ -1,15 +1,26 @@ """ VRCCC (VRChat Custom Camera) is a simple Python script to override camera options in VRChat using OSC. + +Environment variables: + VRCCO_OSCServerBind: The IP address for the OSC server to bind to, default is '127.0.0.1'. + VRCCO_OSCServerPort: The port the OSC server listenes on, default is 9001. + VRCCO_OSCClientBind: The IP address of VRChat's OSC server, default is '127.0.0.1'. + VRCCO_OSCClientPort: The port of VRChat's OSC server, default is 9000. + VRCCO_PICTURES_DIR: A manual override for where your VRChat pictures are stored. """ import json +import os from pythonosc import udp_client, osc_server from pythonosc.dispatcher import Dispatcher +from dotenv import load_dotenv from camera import Camera +load_dotenv() + overrides = {} def onCameraEnabled(cam: Camera): @@ -24,10 +35,16 @@ def onCameraEnabled(cam: Camera): with open('cameraOverrides.json', 'r', encoding='utf-8') as f: overrides = json.loads(f.read()) -client = udp_client.SimpleUDPClient('127.0.0.1', 9000, timeout=2.5) +clientIP = os.environ.get('VRCCO_OSCClientBind', '127.0.0.1') +clientPort = os.environ.get('VRCCO_OSCClientPort', 9000) +client = udp_client.SimpleUDPClient(clientIP, clientPort, timeout=2.5) + dispatcher = Dispatcher() +serverIP = os.environ.get('VRCCO_OSCServerBind', '127.0.0.1') +serverPort = os.environ.get('VRCCO_OSCServerPort', 9001) +server = osc_server.ThreadingOSCUDPServer((serverIP, serverPort), dispatcher, timeout=2.5) + camera = Camera(dispatcher, client, onCameraEnabled) -server = osc_server.ThreadingOSCUDPServer(('127.0.0.1', 9001), dispatcher, timeout=2.5) try: server.serve_forever() # Serve, queen 💅 diff --git a/requirements.txt b/requirements.txt index 2110f4f..ebe6668 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ +python-dotenv python-osc watchdog \ No newline at end of file