opl-
Repos
68
Followers
27

Live game status over web sockets.

105
36

🦋 Butterfly is a feature packed Koa router

Run JavaScript in your KRunner

Node.js stuff for Valve's Winter 2015 ARG

14
6

Events

create branch
opl- create branch fix/various
Created at 2 weeks ago
create branch
opl- create branch change/biconsumerless-conditions
Created at 2 weeks ago
create branch
opl- create branch feat/condition-hasitem
Created at 2 weeks ago
Created at 2 weeks ago
Not working on 1.21.0

The events code is completely commented out in that branch because the difficulty .dat files are now on version 3 (community docs here), which completely changes how events work.

I believe I came to the conclusion that a lot of it is no longer backwards compatible with the old events protocol, to the point where I wasn't sure if I could even translate back to the old format at all.

Internally, the game automatically converts the old 2.x format to the new format, meaning even sending events for older maps that are still in the old 2.x format is non-trivial.

I genuinely think that at this point it might be easier to just rewrite the whole mod from scratch built on top of Zenject and MonoMod with a redesigned protocol, than it would be to make the old protocol work with all these changes. That said, this would of course make all the overlays stop working (at least without putting even more effort into building a translation layer for backwards compatibility) and it still wouldn't be an evening project.

Created at 3 weeks ago
issue comment
[Bug]: Improve Linux XDG FileChooser implementation

I figured out a solution which works for me after brief two hours of confusion.

#19159 tries to be safe in how it depends on libgtk by loading it dynamically and trying to find the dialog related functions dynamically. It does this by requesting a file called libgtk-3.so:

https://github.com/tristan957/electron/blob/25b540187140463a4d0f9908bccc8606d2693bb4/shell/browser/ui/file_dialog_gtk.cc#L75

Debian, meanwhile, packages libgtk as libgtk-3.so.0:

$ dpkg -L libgtk-3-0:amd64
...
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
...

As a workaround, I linked the library (which seems to be common practice with sonames, but is for some reason applied very inconsistently by repository maintainers):

sudo ln /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 /usr/lib/x86_64-linux-gnu/libgtk-3.so

Restarting the electron application and triggering a file picker again confirmed that this was the issue.

(As an aside, the KDE file picker appeared behind the electron application which hints at an extra issue here. Setting a window override for window class xdg-desktop-portal-kde to force no focus stealing prevention fixed this, which makes me think this might caused by the parent window not being set?)

Created at 1 month ago
Not working on 1.21.0

I already made an attempt at updating for this version (see the update/1.20.0 branch) and in the process found some rather unfortunate changes

The short version is that this update has changed the scoring system significantly enough that it'd require significant changes to this mod to keep the data it sends make sense. As an example, using the current version of the branch above the score ends up showing the score with a single cut delay: if there's no notes to cut for half a minute, overlays will continue showing the now out-of-date score for half a minute, because the score for the last cut was never sent out.

More specifically, scoring now happens in bulk at the end of the frame for each note cut during that frame. There's no events sent inside of the loop which iterates over cuts to score during that frame either, which further complicates figuring out the score for each of the cuts.

This mod has been long due for a rewrite but I have no motivation to do so, especially with how life's going right now.

For the time being you can try denpadokei's fork (they don't seem to know English, so there might be some setup differences, documentation in Japanese, or missing documentation): https://github.com/denpadokei/HttpSiraStatus/releases/tag/7.0.0

Created at 1 month ago
issue comment
Updating to the Last Frame Image

Copied from the comments on my Reddit post:

I was running a program to save all data sent by Reddit throughout the event. My program received the message telling it to switch to the white only palette at 22:47:31 UTC.

Files used (last full frames received before config change received at 1649112450989 and 1649112451013):

https://hot-potato.reddit.com/media/canvas-images/1649112450736-0-f-p8WJC8gp.png

https://hot-potato.reddit.com/media/canvas-images/1649112450717-1-f-ZBu5lxtz.png

https://hot-potato.reddit.com/media/canvas-images/1649112450738-2-f-Oq1IAWrM.png

https://hot-potato.reddit.com/media/canvas-images/1649112450939-3-f-asYsAbV9.png

Here's a link to the raw data surrounding the configuration update for the nerds among us. I'll publish all my raw data after I package it up.

https://cdn.discordapp.com/attachments/429823324210593793/960698306261028904/ws-white-palette.json

Created at 1 month ago

Add onOpen to WebSocketTap options

Created at 1 month ago

Rework AmqpTap to simplify assertions

Created at 1 month ago

Limit AmqpTap channel to one concurrent message

Created at 1 month ago

Remove accidental console.log

Created at 1 month ago

Remove queue expires

Created at 1 month ago

Allow ignoring AmqpTap messages in transform

Created at 1 month ago

Add AmqpTap transform

Created at 1 month ago

Export TapOptions in index

Created at 1 month ago

Add support for passing WebSocket options

Created at 1 month ago

Remove unnecessary author and source name in WebSocketTap

Created at 1 month ago

Add AMQP sink and tap

Created at 1 month ago

WIP: amqp

Created at 1 month ago

WIP: amqp

Created at 1 month ago

WIP: amqp

Created at 1 month ago
opl- create branch feat/amqp
Created at 1 month ago

Increase backoff time of WebSocketTap resolveURL

Created at 1 month ago

Fix super called too late in WebSocketTap

Created at 1 month ago