tt2468
7b52d7e015
requesthandler: Move GetRecordDirectory to config
...
More consistency
2022-02-14 17:11:07 -08:00
tt2468
9664f28483
requesthandler: Finish transition requests
2022-02-14 17:01:44 -08:00
tt2468
d9070f9edb
requesthandler: Add scene scene transition override requests
...
It's named like:
`Get Scene (Scene Transition) Override`
2022-02-14 15:57:33 -08:00
tt2468
fa8a091a3e
RequestHandler: Add SendStreamCaption
2022-02-13 15:20:19 -08:00
tt2468
341259e610
RequestHandler: Save config after profile parameter change
...
Fixes a bug where changed parameters were not applying across loads
Fixes #895
2022-02-13 14:46:49 -08:00
tt2468
c64e360c2d
Merge pull request #904 from dnaka91/fix-int-type
...
server: Fix int type of batch execution enum
2022-02-13 14:41:45 -08:00
Dominik Nakamura
403c69463a
server: Fix int type of batch execution enum
2022-02-02 10:36:59 +09:00
Dominik Nakamura
ddf752fd03
docs: Fix wrong field name in SceneItemLockStateChanged
2022-01-29 23:50:12 +09:00
tt2468
d2ddde3229
eventhandler: Add a few transition events
2022-01-28 16:56:21 -08:00
tt2468
14227237d7
Base: [BREAKING] Update default WebSocket port to 4455
...
Our original strategy of relying on clients to simply detect the
protocol version and use the correct one was optimistic at best,
and it has been realized during the transition process from 4.x to 5.x
that sharing 4444 is not practical. As such, we'll be using 4455 in
the future for 5.x.
If you are a client developer, we suggest continuing to maintain
appropriate protocol version detection and support, as the WebSocket
port is at the end of the day simply a suggestion.
2022-01-28 15:38:08 -08:00
tt2468
3e2984fd7a
eventhandler: Add SceneItemSelected event
...
So I didn't think anyone actually used this, but I was wrong. So I'm
adding it again.
2022-01-28 15:33:28 -08:00
tt2468
38d78596ce
requesthandler: Add replay buffer requests
2022-01-26 21:19:10 -08:00
tt2468
13c7b83c34
requesthandler: Fix compiler warnings with latest OBS master
...
OBS has deprecated the `_addref` functions, so the new norm is to use
`_get_ref`.
2022-01-26 17:40:45 -08:00
tt2468
ae906bb283
RequestHandler: Add VirtualCam requests
2022-01-18 19:23:06 -08:00
tt2468
873eadec05
requesthandler: Fix documentation of dB value input
...
Max dB value is 26dB, not -26dB.
2022-01-08 22:13:53 -08:00
tt2468
dea0fcd561
Base: Add logging for compile time ASIO version
2022-01-07 23:00:48 -08:00
tt2468
6035294339
requesthandler: Add GetSourceFilter
2022-01-03 13:54:27 -08:00
tt2468
6a2d5968ad
requesthandler: Add private source settings get/set requests
...
It was requested via Discord to be able to modify the private settings
of any private source, since that functionality is used by some client
software to store stateful data. As private settings are in territory
that no normal user should ever tread into, these requests will be left
undocumented.
2022-01-01 17:43:26 -08:00
tt2468
fe64620731
requesthandler: Add scene item blend mode requests
2021-12-31 18:05:05 -08:00
tt2468
24e43d0276
requesthandler: Add GetSpecialInputs
2021-12-31 16:49:18 -08:00
tt2468
506a9167c3
requesthandler: Add SetInputAudioTracks
2021-12-31 15:26:54 -08:00
tt2468
35c8a87def
requesthandler: Profile requests if PLUGIN_TESTS is enabled
2021-12-31 15:26:54 -08:00
tt2468
e451a8d6b0
requesthandler: Use unordered_map for request table
...
Shaves like 0.0005ms off of request time, but still worth noting.
2021-12-31 15:26:54 -08:00
tt2468
702f88cea8
requesthandler: Add GetInputAudioTracks
2021-12-31 14:08:22 -08:00
tt2468
6d216e0412
docs: Fix docs of InputAudioTracksChanged
2021-12-31 14:08:22 -08:00
tt2468
e43ebde794
Base: Use static_cast in place of reinterpret_cast
...
static_cast is a much safer cast method
2021-12-30 00:21:29 -08:00
tt2468
4a2654d095
RequestHandler: Add GetGroupList
2021-12-30 00:12:41 -08:00
tt2468
a90dafb971
Merge pull request #885 from obsproject/feature/input-audio-requests-events
...
Input audio requests and events
2021-12-29 21:12:23 -08:00
tt2468
12c6527442
Merge pull request #884 from obsproject/feature/ui-dialog-requests
...
RequestHandler: Add input open dialog requests
2021-12-29 21:08:41 -08:00
tt2468
31997db509
EventHandler: Uncomment audio_monitoring signal
2021-12-29 21:05:28 -08:00
tt2468
9113ff9021
RequestHandler: Add audio balance requests
2021-12-29 21:03:16 -08:00
tt2468
1ed095de48
EventHandler: Add InputAudioBalanceChanged
2021-12-29 21:03:16 -08:00
tt2468
a94ac24027
RequestHandler: Add input open dialog requests
...
Adds
- `OpenInputPropertiesDialog`
- `OpenInputFiltersDialog`
- `OpenInputInteractDialog`
2021-12-29 21:00:11 -08:00
tt2468
903b7d4171
Merge pull request #860 from obsproject/fix/audio_monitoring_check
...
Requests: Add support check for monitoring in `SetInputAudioMonitoringType`
2021-12-29 20:59:38 -08:00
tt2468
a59ce69ba1
Merge pull request #857 from obsproject/fix/remove-old-ifdefs
...
Base: Remove old ifdefs
2021-12-29 20:54:24 -08:00
tt2468
195c4a3ca9
Merge pull request #873 from obsproject/fix/inputvolumemeters-check
...
ObsVolumeMeter: Reenable check for valid input
2021-12-29 20:54:00 -08:00
tt2468
3b2369ae97
Requests: Add support check for SetInputAudioMonitorType
2021-12-29 20:50:27 -08:00
tt2468
af634b63fd
Merge pull request #854 from obsproject/request/removeinput
...
Requests: Enable RemoveInput
2021-12-29 20:49:09 -08:00
tt2468
444685c89d
Utils: Reenable check for valid input in volumemeter
2021-12-29 20:45:20 -08:00
tt2468
05aba45809
Base: Remove old ifdefs
...
It was a very cool method to save our precious std::strtoll method,
but will no longer be needed on the next OBS release.
2021-12-29 20:40:49 -08:00
tt2468
1f1a8926b1
Requests: Enable RemoveInput
2021-12-29 20:40:14 -08:00
tt2468
947450ce4e
Revert "Revert "Events: Re-enable *Changing events""
...
This reverts commit c60d09246c
.
2021-12-29 20:29:45 -08:00
tt2468
38157579a6
Requests: Enable GetRecordDirectory
2021-12-29 19:53:10 -08:00
tt2468
707ac3f7e3
docs: Increase complexity of G/SetProfileParameter
2021-12-29 00:51:50 -08:00
tt2468
732d5af50c
EventHandler: Add Ui category
2021-12-29 00:34:25 -08:00
tt2468
0939273abf
EventSubscription: Add Ui
category
2021-12-29 00:32:28 -08:00
tt2468
f8263caa03
RequestHandler: Add code comment to RemoveSceneItem
2021-12-29 00:23:30 -08:00
tt2468
af217c05f1
EventHandler: [BREAKING] Rename CurrentSceneChanged to CurrentProgramSceneChanged
...
Now matches the requests
2021-12-28 23:53:58 -08:00
tt2468
e640ae1218
docs: Finish documenting events
2021-12-28 23:45:11 -08:00
tt2468
bb2c125601
Utils: Use atomic in VolumeMeter manager
2021-12-28 22:50:11 -08:00
tt2468
e1cb858d2d
Utils: Split monitor type util
2021-12-28 22:49:58 -08:00
tt2468
1339202c02
docs: Fix Array fields in transition requests
2021-12-28 22:37:00 -08:00
tt2468
964e91bbd7
docs: Document ObsMediaInputAction
2021-12-28 18:57:02 -08:00
tt2468
9385a2449e
docs: Document the rest of the undocumented requests
2021-12-28 18:28:04 -08:00
tt2468
ec79124b5f
docs: Document transition requests
2021-12-28 18:11:30 -08:00
tt2468
4d65c2adee
Utils: Move GetListPropertyItems to utils
2021-12-28 17:16:41 -08:00
tt2468
e2f60b002e
RequestHandler: Reorder Ui requests to new category
2021-12-28 16:58:28 -08:00
tt2468
86506778ad
RequestHandler: Add Ui category
...
Creates a new category specific to requests controlling the OBS UI.
2021-12-28 16:58:28 -08:00
tt2468
0992f74fad
RequestHandler: Use ValidateScene2 for GetSceneItemId
2021-12-28 16:58:28 -08:00
tt2468
430e61bef7
RequestHandler: Use ValidateScene2 in ValidateSceneItem
2021-12-28 16:58:28 -08:00
tt2468
da83de7503
Config: Fix firstload password generation
2021-12-25 00:57:09 -08:00
tt2468
07249da400
RequestHandler: More transition requests
2021-12-23 21:00:11 -08:00
tt2468
14238027cc
RequestHandler: More transition requests
2021-12-23 01:07:27 -08:00
tt2468
5cbf439f55
Utils: Add GetSceneTransitionByName
2021-12-23 01:07:15 -08:00
tt2468
e05be47847
RequestHandler: Add GetTransitionKindList
2021-12-22 16:28:12 -08:00
tt2468
2302fdd25f
Utils: Fix up transition related utils
2021-12-22 16:27:50 -08:00
tt2468
1c6ec1dda2
RequestHandler: Add ResourceNotConfigurable
2021-12-22 16:08:39 -08:00
tt2468
ad347c4823
RequestHandler: Add files for Transitions and Filters
2021-12-22 15:57:57 -08:00
tt2468
40ff3f6960
Base: More code/comment nitpicks
2021-12-21 20:35:08 -08:00
tt2468
0f303504e1
Base: Nitpick cleanup for obs-websocket.cpp
2021-12-21 20:35:08 -08:00
tt2468
91e3f5ee18
EventHandler: Remove platform include
...
Already included by obs-websocket.h, but does not have ifdefs
protecting strtoll. Better to just remove it.
2021-12-21 20:35:08 -08:00
tt2468
b331f76d40
Utils: Use output path util instead of hacky method
...
We still have to wait for a new OBS version to be released before this
will work, but to be fair it was pretty broken in the previous state.
2021-12-21 03:09:45 -08:00
tt2468
a898bacd79
Utils: Rename VolumeMeter utils for consistency
2021-12-21 03:09:45 -08:00
tt2468
527a008002
RequestHandler: Remove OutputStartFailed request status
...
Accidentally pushed this commit when it was for a component which will
not be implemented.
2021-12-21 03:09:45 -08:00
tt2468
f566ccd76b
Utils: Add output state util to utils
2021-12-21 01:32:12 -08:00
tt2468
2e8622e8d7
RequestHandler: Fix IsValid() input parameter
2021-12-21 01:32:12 -08:00
tt2468
4a193d44a1
RequestHandler: Add OutputStartFailed request status
2021-12-21 01:32:12 -08:00
tt2468
d29b87ffc1
EventHandler: Remove unused file
2021-12-21 01:32:12 -08:00
tt2468
1e6a60f545
Utils: Rename ListHelper
to ArrayHelper
2021-12-21 01:32:12 -08:00
tt2468
5cd1af426a
Utils: Rename DataHelper
to ObjectHelper
2021-12-21 01:32:12 -08:00
tt2468
f66080a031
Utils: Split Obs utils into individual files
2021-12-21 01:32:12 -08:00
tt2468
82ad3313e8
docs: More docs
2021-12-21 01:32:12 -08:00
tt2468
0c7fda28a0
Merge pull request #881 from dnaka91/fix-wrong-opcode-formatting
...
protocol: Fix error formatting for wrong op codes
2021-12-19 17:11:30 +07:00
Dominik Nakamura
9749502e88
protocol: Fix error formatting for wrong op codes
2021-12-19 17:30:58 +09:00
Dominik Nakamura
c3e6bc323a
Adjust spacing of docs
2021-12-19 17:23:22 +09:00
Dominik Nakamura
873ad1b167
docs: Document missing overlay
field
2021-12-19 16:31:31 +09:00
tt2468
a40e79e987
Utils/Obs: Fix build (again)
2021-12-17 15:48:59 -08:00
tt2468
84e649a6f7
Utils: Tweak some includes
2021-12-17 14:47:56 -08:00
tt2468
c4ab69481b
Base: Move AutoRelease helpers to utils + build fix
...
- Moves the AutoRelease helpers to utils/Obs.h
- Fixes build using obsproject/obs-studio/pull/5580
2021-12-17 14:35:19 -08:00
tt2468
edf4e942fa
RequestHandler: Use correct output in GetRecordStatus
...
It was using the stream output due to a glitch, surprised nobody
reported it yet.
2021-12-17 02:38:56 -08:00
tt2468
54fd7af5ef
Merge pull request #878 from dnaka91/fix-scenes-type
...
docs: Fix `scenes` type from `String` to `Object`
2021-12-17 14:53:12 +07:00
Dominik Nakamura
2a33179588
docs: Fix scenes
type from String
to Object
2021-12-17 16:37:27 +09:00
Dominik Nakamura
947f261d17
docs: Improve generated docs formatting
2021-12-17 16:21:07 +09:00
tt2468
f7ab102c21
Merge pull request #877 from dnaka91/supported-image-formats
...
docs: Add missing `supportedImageFormats` to docs
2021-12-17 13:57:14 +07:00
tt2468
77f8c5be4d
Merge pull request #876 from dnaka91/scenes-wrong-category
...
docs: Correct the category for scene requests
2021-12-17 13:55:53 +07:00
Dominik Nakamura
64c3b62360
docs: Add missing supportedImageFormats
to docs
2021-12-17 15:16:37 +09:00
Dominik Nakamura
2c2b584ecc
docs: Correct the category for scene requests
2021-12-17 15:00:47 +09:00
Dominik Nakamura
69522024d2
docs: Adjust slotValue
type to Any
2021-12-17 12:21:39 +09:00
tt2468
0f6ee87f99
WebSocketServer: [BREAKING] Remove ignoreInvalidMessages identify param
...
This parameter is a weird one. With the abstraction of requests from
the underlying websocket protocol, there theoretically should be no
need to ignore invalid messages, because the implementation of the
low-level protocol on clients should be solid, with the requests
themselves not being fatal to the session.
As such, I consider this to be feature bloat, with lots of messy code
attributed to it.
2021-12-15 02:41:37 -08:00
tt2468
41a145c57c
SettingsDialog: Only restart when necessary
...
The previous few commits now allow for us to change settings without
restarting the WebSocket server.
2021-12-15 02:11:33 -08:00
tt2468
fab56d71ea
WebSocketServer: Get config values directly from Config
...
We were previously storing config values in the WebSocketServer class
itself, in a weak attempt at modularity. It's better to give up on that
idea and just get it from the Config object itself.
2021-12-15 02:06:52 -08:00
tt2468
b490e4409b
CMakeLists: Add runtime tests flag
2021-12-15 02:06:31 -08:00
tt2468
8fbcbad9ec
Config: Make values atomic
2021-12-15 02:06:16 -08:00
tt2468
82d5468b73
EventHandler: [BREAKING] Rename ExternalPluginEvents
to Vendors
...
Make it fit the rest of the naming
2021-12-14 21:51:30 -08:00
tt2468
2e7262fe11
docs: Document plugin api event
2021-12-14 18:33:50 -08:00
tt2468
5f261de143
WebSocketApi: Finish implementations
2021-12-14 18:22:52 -08:00
tt2468
29a5cfe2fe
Utils: Include algorithm
...
Good thing to have
2021-12-14 18:02:13 -08:00
tt2468
20426924cd
Utils: [BREAKING CHANGE] Remove groups from GetSceneList + re-add order
...
- Removes the `isGroup` boolean field from the scene object, and does
not include any groups in the returned array.
- Reintroduces ordered results. Previous versions used a method which
did not return the scene list in the same order as the UI. This change
also means that this request is more susceptible to crashing OBS if
called during a scene collection change.
- Adds the `sceneIndex` number to the scene object. 0 being the bottom
of the scene list, just like in other requests like `GetSceneItemList`.
2021-12-14 17:37:06 -08:00
tt2468
889062e44b
RequestHandler: Reorder BroadcastCustomEvent
...
Code cleanup stuff
2021-12-13 19:20:27 -08:00
tt2468
eb8d69dca5
Base: Move request batch processing to requesthandler directory
...
Request batch processing had less to do with the protocol/server and
more to do with the actual request handler, so it felt better to move
it.
2021-12-13 19:10:08 -08:00
tt2468
e47de63786
docs: Fix request type typo
2021-12-13 12:33:35 -08:00
tt2468
d7887b4c32
WebSocketServer: Fix execution type
2021-12-11 23:28:37 -08:00
tt2468
de1f843ce6
WebSocketServer: Swap variable behavior and fix crash caused by const parameters
2021-12-10 23:58:14 -08:00
tt2468
5ac813b897
WebSocketServer: Tiny code cleanup
2021-12-10 22:33:52 -08:00
tt2468
43e2860709
WebSocketServer: Implement haltOnFailure for batch requests
2021-12-10 22:28:22 -08:00
tt2468
c9c5da6837
RequestBatchExecutionType: Change executionType values
...
Fits better for the front-facing API.
2021-12-10 22:00:02 -08:00
tt2468
b66d2284b3
WebSocketOpCode: Add IsValid check
...
Not used, but useful addition.
2021-12-10 21:59:13 -08:00
tt2468
fcbe11616d
docs: Overhaul documentation ( #863 )
...
More docs-related commits will follow, but this needs to be merged in order to continue with other development.
* Docs: Overhaul docs generator (beginning)
* docs: Rename comments file
* docs: Move comments gitignore
* docs: Initial request documentation
* docs: Improvements to comment processing
* docs: More improvements
* docs: Add enum functionality for protocol.json
* WebSocketServer: Document enums
* RequestHandler: Document RequestStatus enum
* Base: Move ObsWebSocketRequestBatchExecutionType to its own file
Moves it to its own file, renaming it to `RequestBatchExecutionType`.
Changes the RPC to use integer values for selecting execution type
instead of strings.
* docs: Update introduction header
Removes the enum section, and documents RequestBatchExecutionType.
* WebSocketCloseCode: Shuffle a bit
* Base: Use `field` instead of `key` or `parameter` in most places
* RequestStatus: Mild shuffle
It was really bothering me that OutputPaused and OutputNotPaused
had to be separated, so we're breaking it while we're breaking
other stuff.
* docs: Delete old files
They may be added back in some form, but for now I'm getting them
out of the way.
* docs: Add enum identifier value
Forgot to add this before, oops
* docs: Document more enums
* docs: Add basic protocol.md generator
* docs: More work on MD generator
* docs: MD generator should be finished now
* docs: More fixes
* docs: More fixes
* docs: More tweaks + add readme
* docs: Update readme and add inputs docs
* docs: More documentation
2021-12-10 21:38:18 -08:00
tt2468
6cec018c8d
WebSocketServer: Fix null check for request batch variables
2021-12-10 21:20:48 -08:00
tt2468
6d684eb07f
ObsVolumeMeter: Don't use obs_weak_source_expired()
...
This function is not released yet.
TODO: Reenable its usage when OBS 27.2.0 is released.
2021-11-22 20:14:54 -08:00
tt2468
5704ea2970
Requests: Increase InputVolumeMeters update rate to 20/sec
...
We were using a 60ms interval before, which just feels too slow.
A 50ms interval feels much better.
2021-11-22 03:51:41 -08:00
tt2468
d48ddef031
EventHandler: Implement InputVolumeMeters
...
This is probably one of the most requested features for obs-websocket.
This currently works by firing an event to all explicit subscribers
with an array of all active audio sources every **60 milliseconds.**
The `inputLevelsMul` field follows this data format:
Base: [Channel, Channel]
Channel: [magnitude (mul), peak (mul), input_peak (mul)]
*Not Muted* *Muted*
Example: [[0.3, 0.5, 0.9], [0.0, 0.0, 0.0]]
(input_peak is the actual peak value, before volume adjustment.)
You may notice that the values are only in mul. This is because we are
trying to cut down on bandwidth. dB values can be calculated using this
formula:
`dB = 20.0 * log10(mul)`
2021-11-22 03:37:56 -08:00
tt2468
1ac6ac6c87
plugin-macros: Remove extra [obs-websocket] tag
2021-11-21 17:51:53 -08:00
tt2468
bc7b8d330a
RequestHandler: Move RequestStatus.h to types directory
2021-11-21 03:13:53 -08:00
tt2468
c95511eb5f
Base: Remove UNUSED_PARAMETER() usages
...
I prefer to use undefined parameters instead.
2021-11-21 03:08:06 -08:00
tt2468
2a4e86d8da
Base: Add more module exports + code cleanup
2021-11-21 02:50:41 -08:00
tt2468
4d8013b07e
SettingsDialog: Add 6 character minimum length
...
Security requirements should be held just like every other platform
out there, even if they are lax
2021-11-21 02:29:21 -08:00
tt2468
2e079ad681
WebSocketServer: Various code cleanup
2021-11-21 01:37:21 -08:00
tt2468
29a72f9af8
WebSocketServer: Use WebSocketOpCode where possible
2021-11-21 01:37:21 -08:00
tt2468
0a294a558e
WebSocketServer: Move enums to types
directory
...
Code cleanup, makes WebSocketServer match how enums are handled in
other parts of the plugin
2021-11-21 01:37:21 -08:00
tt2468
4ca259b790
Base: Enforce -Wall and fix compiler warnings
...
That was *a lot* of warnings.
2021-11-20 02:34:48 -08:00
tt2468
32a9e12f62
Base: Logging improvements
...
Use blog_debug() in place of almost all debug logging messages, and
change some log levels to be less verbose.
2021-11-20 01:50:49 -08:00
tt2468
60f12a16f3
plugin-macros: Add blog_debug()
...
obs-studio's LOG_DEBUG setting only works in very specific
circumstances, which is why we implement our own debug logging. This
will help a lot of code cleanup.
2021-11-20 01:46:01 -08:00
tt2468
99cbaaf34c
Base: Implement ObsWebSocketApi + cleanup
...
- Implements a WIP ObsWebSocketApi, for obs-websocket-api.h. Events are
finished, but requests are not.
- Some logging improvements
- A bit of code cleanup around the plugin
2021-11-20 01:26:50 -08:00
tt2468
bd6c663775
Base: Add copyright header to source
2021-11-19 17:32:22 -08:00
tt2468
18ed1589ae
Base: Update obs-websocket git locations
...
obs-websocket has moved to the obsproject
2021-11-19 17:24:15 -08:00
tt2468
07a20b6458
Merge pull request #856 from dnaka91/record-pause-resume
...
Events: Add events for record pause and resume
2021-11-18 22:28:04 -08:00
Dominik Nakamura
6cb8eef96d
Events: Add events for record pause and resume
2021-11-19 15:24:00 +09:00
tt2468
5ab091a40b
Base: Move WebSocketServer to its own directory
...
Just helps with organization
2021-11-18 00:29:28 -08:00
tt2468
c60d09246c
Revert "Events: Re-enable *Changing events"
...
This reverts commit 32be21886c
.
2021-11-17 03:16:42 -08:00
tt2468
4076c0baa9
Requests: Add media input requests
2021-11-17 03:03:14 -08:00
tt2468
01013c1b27
Base: Fix compile error
...
I literally could have sworn I remember json::null() being valid, but
I guess not. Oops
2021-11-17 02:58:11 -08:00
tt2468
1dbb7a9686
Requests: Apply some code style changes
2021-11-17 02:14:13 -08:00
tt2468
0f17d3d6f8
Utils/Obs: Update StringHelper function names
...
I hated having `String` appended to half of the utils since it was
extra
2021-11-17 01:23:23 -08:00
tt2468
08eb2defbc
Requests: Add GetMediaInputState
2021-11-17 01:17:40 -08:00
tt2468
7403264d42
Requests/Utils: Modify utils naming/usage
...
A bit too niche to have a util that takes an output and returns a
timecode string. Let's just make it take a duration in milliseconds.
2021-11-17 01:07:04 -08:00
tt2468
32be21886c
Events: Re-enable *Changing events
2021-11-17 00:37:50 -08:00
tt2468
d5a702b0e8
Events: Disable *Changing events
...
CI fails right now because they are not yet included in an OBS release.
2021-11-17 00:36:53 -08:00
tt2468
0671ded7d1
Requests: Add recording requests
2021-11-17 00:30:17 -08:00
tt2468
9197a48088
Requests: Add SetSceneItemTransform
...
Yay party
2021-11-12 23:24:39 -08:00