🐛[bugfix] Model : VRChat未起動時にOSCQueryを起動させるとエラーが発生する問題を回避するように変更
This commit is contained in:
@@ -1,17 +1,13 @@
|
|||||||
import gc
|
import gc
|
||||||
import tempfile
|
|
||||||
from zipfile import ZipFile
|
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
from os import makedirs as os_makedirs
|
from os import makedirs as os_makedirs
|
||||||
from os import path as os_path
|
from os import path as os_path
|
||||||
from shutil import copyfile
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from logging import getLogger, FileHandler, Formatter, INFO
|
from logging import getLogger, FileHandler, Formatter, INFO
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from queue import Queue
|
from queue import Queue
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from requests import get as requests_get
|
from requests import get as requests_get
|
||||||
import webbrowser
|
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
|
|
||||||
from flashtext import KeywordProcessor
|
from flashtext import KeywordProcessor
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
from time import sleep
|
from time import sleep
|
||||||
from pythonosc import osc_message_builder
|
from pythonosc import osc_message_builder, udp_client, dispatcher, osc_server
|
||||||
from pythonosc import udp_client
|
|
||||||
from pythonosc import dispatcher
|
|
||||||
from pythonosc import osc_server
|
|
||||||
from tinyoscquery.queryservice import OSCQueryService
|
from tinyoscquery.queryservice import OSCQueryService
|
||||||
from tinyoscquery.query import OSCQueryBrowser, OSCQueryClient
|
from tinyoscquery.query import OSCQueryBrowser, OSCQueryClient
|
||||||
from tinyoscquery.utility import get_open_udp_port, get_open_tcp_port
|
from tinyoscquery.utility import get_open_udp_port, get_open_tcp_port
|
||||||
|
from psutil import process_iter
|
||||||
|
|
||||||
# send OSC message typing
|
# send OSC message typing
|
||||||
def sendTyping(flag=False, ip_address="127.0.0.1", port=9000):
|
def sendTyping(flag=False, ip_address="127.0.0.1", port=9000):
|
||||||
@@ -65,19 +63,30 @@ def getOSCParameterValue(address, server_name="VRChat-Client"):
|
|||||||
pass
|
pass
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
def checkVRChatRunning() -> bool:
|
||||||
|
_proc_name = "VRChat.exe"
|
||||||
|
return _proc_name in (p.name() for p in process_iter())
|
||||||
|
|
||||||
def receiveOscParameters(dict_filter_and_target, ip_address="127.0.0.1", title="VRCT"):
|
def receiveOscParameters(dict_filter_and_target, ip_address="127.0.0.1", title="VRCT"):
|
||||||
osc_port = get_open_udp_port()
|
while True:
|
||||||
http_port = get_open_tcp_port()
|
if not checkVRChatRunning():
|
||||||
osc_dispatcher = dispatcher.Dispatcher()
|
sleep(1)
|
||||||
for filter, target in dict_filter_and_target.items():
|
else:
|
||||||
osc_dispatcher.map(filter, target)
|
try:
|
||||||
osc_udp_server = osc_server.ThreadingOSCUDPServer((ip_address, osc_port), osc_dispatcher)
|
osc_port = get_open_udp_port()
|
||||||
|
http_port = get_open_tcp_port()
|
||||||
|
osc_dispatcher = dispatcher.Dispatcher()
|
||||||
|
for filter, target in dict_filter_and_target.items():
|
||||||
|
osc_dispatcher.map(filter, target)
|
||||||
|
osc_udp_server = osc_server.ThreadingOSCUDPServer((ip_address, osc_port), osc_dispatcher)
|
||||||
|
|
||||||
osc_client = OSCQueryService(title, http_port, osc_port)
|
osc_client = OSCQueryService(title, http_port, osc_port)
|
||||||
for filter, target in dict_filter_and_target.items():
|
for filter, target in dict_filter_and_target.items():
|
||||||
osc_client.advertise_endpoint(filter)
|
osc_client.advertise_endpoint(filter)
|
||||||
|
|
||||||
osc_udp_server.serve_forever()
|
osc_udp_server.serve_forever()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
osc_parameter_prefix = "/avatar/parameters/"
|
osc_parameter_prefix = "/avatar/parameters/"
|
||||||
|
|||||||
Reference in New Issue
Block a user