mirror of
https://github.com/onyx-and-iris/obsws-python.git
synced 2024-11-22 12:50:53 +00:00
Merge pull request #24 from onyx-and-iris/dev
check user home directory for config.toml
This commit is contained in:
commit
9c41f2bb59
@ -43,7 +43,7 @@ port = 4455
|
|||||||
password = "mystrongpass"
|
password = "mystrongpass"
|
||||||
```
|
```
|
||||||
|
|
||||||
It should be placed next to your `__main__.py` file.
|
It should be placed in your user home directory.
|
||||||
|
|
||||||
#### Otherwise:
|
#### Otherwise:
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Registers a list of callback functions to hook into OBS events.
|
|||||||
|
|
||||||
Simply run the code and trigger the events, press `<Enter>` to exit.
|
Simply run the code and trigger the events, press `<Enter>` to exit.
|
||||||
|
|
||||||
This example assumes the existence of a `config.toml`, placed next to `__main__.py`:
|
This example assumes the existence of a `config.toml`, placed in your user home directory:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[connection]
|
[connection]
|
||||||
|
@ -8,7 +8,7 @@ Requires [Python Keyboard library](https://github.com/boppreh/keyboard).
|
|||||||
|
|
||||||
Simply run the code and press the assigned hotkeys. Press `ctrl+enter` to exit.
|
Simply run the code and press the assigned hotkeys. Press `ctrl+enter` to exit.
|
||||||
|
|
||||||
This example assumes the existence of a `config.toml`, placed next to `__main__.py`:
|
This example assumes the existence of a `config.toml`, placed in your user home directory:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[connection]
|
[connection]
|
||||||
|
@ -4,7 +4,7 @@ Prints POSTFADER level values for audio device `Desktop Audio`. If mute toggled
|
|||||||
|
|
||||||
## Use
|
## Use
|
||||||
|
|
||||||
This example assumes the existence of a `config.toml`, placed next to `__main__.py`:
|
This example assumes the existence of a `config.toml`, placed in your user home directory:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[connection]
|
[connection]
|
||||||
|
@ -4,7 +4,7 @@ Collects the names of all available scenes, rotates through them and prints thei
|
|||||||
|
|
||||||
## Use
|
## Use
|
||||||
|
|
||||||
This example assumes the existence of a `config.toml`, placed next to `__main__.py`:
|
This example assumes the existence of a `config.toml`, placed in your user home directory:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[connection]
|
[connection]
|
||||||
|
@ -4,6 +4,7 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from random import randint
|
from random import randint
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
import websocket
|
import websocket
|
||||||
|
|
||||||
@ -36,11 +37,26 @@ class ObsClient:
|
|||||||
import tomllib
|
import tomllib
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
import tomli as tomllib
|
import tomli as tomllib
|
||||||
conn = {}
|
|
||||||
filepath = Path.cwd() / "config.toml"
|
def get_filepath() -> Optional[Path]:
|
||||||
|
"""
|
||||||
|
traverses a list of paths for a 'config.toml'
|
||||||
|
returns the first config file found or None.
|
||||||
|
"""
|
||||||
|
filepaths = [
|
||||||
|
Path.cwd() / "config.toml",
|
||||||
|
Path.home() / "config.toml",
|
||||||
|
Path.home() / ".config" / "obsws-python" / "config.toml",
|
||||||
|
]
|
||||||
|
for filepath in filepaths:
|
||||||
if filepath.exists():
|
if filepath.exists():
|
||||||
|
return filepath
|
||||||
|
|
||||||
|
conn = {}
|
||||||
|
if filepath := get_filepath():
|
||||||
with open(filepath, "rb") as f:
|
with open(filepath, "rb") as f:
|
||||||
conn = tomllib.load(f)
|
conn = tomllib.load(f)
|
||||||
|
self.logger.info(f"loading config from {filepath}")
|
||||||
return conn["connection"] if "connection" in conn else conn
|
return conn["connection"] if "connection" in conn else conn
|
||||||
|
|
||||||
def authenticate(self):
|
def authenticate(self):
|
||||||
|
@ -1 +1 @@
|
|||||||
version = "1.4.1"
|
version = "1.4.2"
|
||||||
|
Loading…
Reference in New Issue
Block a user