This repo has been archived, you probably want to view Casterlabs/Caffeinated instead.
casterlabs / caffeinated Goto Github PK
View Code? Open in Web Editor NEWThe code for Caffeinated.
Home Page: https://casterlabs.co?ref=github_caffeinated
The code for Caffeinated.
Home Page: https://casterlabs.co?ref=github_caffeinated
This repo has been archived, you probably want to view Casterlabs/Caffeinated instead.
Hi,
I've noticed this in all releases of Caffeinated, including the most recent, which I am running. I am running Caffeinated on Windows 11 with Kick and Twitch linked. I select the Category/Game for the stream but an incorrect category appears on both streaming platforms.
I have double-checked that I am clicking/selecting the correct game from the search results.
How to Reproduce the Issue
This happens for both Twitch and Kick. I have tried it multiple times, and make sure that I have selected Among Us as the Category in Casterlabs Caffeinated. I have tried this in every release I've used to date and had the same result
Many streamers want the ability to give away items to their viewers. Platforms like Gleam have the best experience, where people can enter the giveaway by doing things (e.g following an account) and can enter multiple times that way.
During onSettingsUpdate, a widget may choose to reconstruct the settings layout (e.g add another input based on a checkbox). This causes the Widget Editor UI to completely re-render rather than just re-rendering the changes, causing fields to lose focus and for the app to hitch for up to 1 second.
Originally suggested by Gravelezz on [Discord](https://discord.com/channels/702178064075063427/110199298524].
Reported by RussianSlender on Discord.
Originally suggested by !Dialed on Discord.
This helps people customize their alerts for certain events.
Originally suggested by jp.
Seems that a lot of people have issues using the current dashboard. I want to switch it to a static layout that is easier to use.
Originally suggested by Midgeworth and many others on Discord.
As suggested by some people:
Basically this'd have a dashboard piece that would allow you to highlight questions on-screen and answer them.
These features pretty much exist everywhere in some shape or form.
Been whittling away at this one for a bit, looks like a PubSub definition changed somewhere.
We can also look into importing other services, possibly using SESL.
I probably broke something simple, just need to get this checked.
The settings for the following within the Activity Feed aren't loading properly:
The settings for following within the Activity Feed aren't saving or loading properly:
Checking ui.json
shows that the settings do get saved after changing them (aside from Text Size; noted below). However, attempting to switch to another tab and then back to the Dashboard, shows that the settings aren't loading in properly and behave as if they are at their default values. Attempting to change any of the settings through the settings menu then results in the aforementioned settings being reset in ui.json
.
Changing the values manually through ui.json
, then opening Caffeinated results in the same behavior.
Text Size specifically isn't getting saved in ui.json
even when changed through the settings menu. Otherwise, the behavior is the same as the other 3 settings.
Right now, even the fixed limit of 500 is taxxing on the renderer. Let's just move it to a pagination system and only show a few (<100) at a time.
Originally suggested by HH.
As title says, can't compile due to dependency issue for Rakurai. After further research I noticed rakurai was deleted so please update and fix!! Thanks! :)
Just need to update FLF and disable colored console.
There's a lot of features being left on the table here. Channel points, Polls, Predictions, etc. Let's try to bring those into Caffeinated some how.
This was originally present between 3.2-1.1.
Originally suggested by Demon3r_ on Discord:
Touch Portal is a phone app/desktop app that I use as a stream deck. It has a nice dev team behind it and plenty of people that help out, was wondering if it was possible to work with TP to integrate the two apps together.
This helps create a faux DPI scaling effect.
This is likely due to PubSub's deprecation. We need to switch to EventSub and better manage our subscriptions.
Not all system fonts and font weights are supported at the moment for things like Labels and Alerts, While Google Fonts work perfectly fine the Local fonts struggle with loading in or the font weight is not the desired one and there is no setting to change it as of now.
Example 1: The Label with a Google Font works flawlessly, albeit can't adjust the font weight but something is better than nothing
Example 2: The Label with a Locally Installed Font works flawlessly but no font weight options. and does not appear in the search box unlike with google fonts.
Example 3: The Label with a Locally Installed Font same type as the previous one, does not work
Allow users to optionally stylize their own layouts using CSS for more customization.
Currently, with the way Caffeinated handles adding to OBS, it adds the Widgets using iframes that you can't add CSS to.
Allowing CSS either through OBS or directly through Caffeinated, for Chat specifically, would help a lot in making it fit better on their stream layouts. And maybe it can be extended to the other Widgets and Alerts.
We'll keep it minimized to tray.
When downloading the caffeinated app from casterlabs.co for linux, the program launches for a bit and says "Launching Caffeinated.." then crashes with no helpful output from the terminal. However, below is what I got from launching the program in the terminal. Maybe I could help fix this somehow and/or help test if it works. Please let me know or help fix this! :)
App Directory: /home/peli/.local/share/casterlabs-caffeinated
Log file: /home/peli/.local/share/casterlabs-caffeinated/logs/updater.log
Chosen Streamer: template
App isn't responding (or isn't open), attempting to kill it.
IPC communication timed out.
You are up to date!
Updater CommandLine: ./Casterlabs-Caffeinated-Updater
> System.out.println("Hello World!");
Hello World!
[INFO ] [Bootstrap] App has been started by the updater, cool beans.
[INFO ] [CaffeinatedApp]
[INFO ] [CaffeinatedApp]
[INFO ] [CaffeinatedApp] ---------- 2023-11-26T05:59:51.299141Z ----------
[INFO ] [CaffeinatedApp] Log file: /home/peli/.local/share/casterlabs-caffeinated/logs/app.log
[INFO ] [Bootstrap] Starting app.
[INFO ] [EmojiIndex] Loading emoji index...
[INFO ] [SystemFontsProvider] Loading System fonts.
[INFO ] [InstanceManager] IPC (HOST): SUMMON
[WARN ] [_LocaleLoader] Unable to find locale provider for: en-US
[INFO ] [Bootstrap] Entry | Value
[INFO ] [Bootstrap] -----------------------------+-------------------------
[INFO ] [Bootstrap] buildInfo.versionString | 1.2-a69e346-stable
[INFO ] [Bootstrap] buildInfo.author | Casterlabs
[INFO ] [Bootstrap] buildInfo.isDev | false
[INFO ] [Bootstrap] platform.arch | x86_64
[INFO ] [Bootstrap] platform.osFamily | Unix
[INFO ] [Bootstrap] platform.osDistribution | Linux
[INFO ] [Bootstrap] bootstrap.args | null
[INFO ] [Bootstrap]
[INFO ] [SoraFramework] Loaded plugin Caffeinated Conductor (LocalServer):Casterlabs (co.casterlabs.caffeinated.conductor)
[INFO ] [GoogleFontsProvider] Loading GoogleFonts.
[INFO ] [LocalServer] Started!
[INFO ] [Bootstrap] Initializing UI (this may take some time)
[INFO ] [Bootstrap] Starting the UI
UI Started!
Additionally, we really need to make the documentation more approachable (e.g examples).
As well as a default layout.
When a user redeems a reward with a Global cooldown (In Twitch: "Redemption Cooldown Time"), it does not appear in Caffeinated's Activity Feed.
Here are the lines from App.log (with ids and names censored)
[WARN ] [AuthInstance Koi (twitch)] Unsupported event type: CHANNEL_POINTS
[SEVERE] [KoiConnection.KoiSocket] {"event":{"reward":{"global_cooldown":{"is_enabled":true,"global_cooldown_seconds":120},"cost":100,"cooldown_expires_at":"2024-02-06T21:21:18Z","title":"Apple Juice (Hydrate)!","is_enabled":true,"is_in_stock":false,"default_reward_image":"https://static-cdn.jtvnw.net/custom-reward-images/default-4.png","background_color":"#FF0000","max_per_user_per_stream":{"is_enabled":false,"max_per_user_per_stream":0},"is_paused":false,"is_user_input_required":false,"reward_image":"https://static-cdn.jtvnw.net/custom-reward-images/########/30c96e0d-21b4-4f2e-aa58-cbf2c48d942b/ca963ee2-0c51-4ab0-ae59-f5fd5ea933a6/custom-4.png","max_per_stream":{"is_enabled":false,"max_per_stream":0},"is_sub_only":false,"id":"30c96e0d-21b4-4f2e-aa58-cbf2c48d942b","prompt":"Apple Juice Superiority "},"streamer":{"id":"########","channel_id":"########","platform":"TWITCH","UPID":"########;TWITCH"},"sender":{"badges":[],"image_link":"https://static-cdn.jtvnw.net/link/link/link/link","color":"#3EFFFF","subscriber_count":-1,"roles":[],"displayname":"USERNAME","followers_count":-1,"bio":"Welcome to the Beautiful Wave Digital Resort! I am the host for your stay, USERNAME. Please take up a cup of Apple/Orange juice, sit back, and relax. \u7f8e\u6ce2\u30c7\u30b8\u30bf\u30eb\u30ea\u30be\u30fc\u30c8\u3078\u3088\u3046\u3053\u305d\uff01\u3042\u306a\u305f\u306e\u30db\u30b9\u30c8\u3067\u7f8e\u6ce2\u30c1\u30de\u30fc\u3068\u7533\u3057\u307e\u3059\u3002\u30aa\u30ec\u30f3\u30b8\u30b8\u30e5\u30fc\u30b9\uff0f\u30ea\u30f3\u30b4\u30b8\u30e5\u30fc\u30b9\u3092\u53d6\u3063\u3066\u30ea\u30e9\u30c3\u30af\u30b9\u3057\u3066\u304a\u9858\u3044\u3057\u307e\u3059\u3002","id":"########","channel_id":"########","platform":"TWITCH","username":"USERNAME","UPID":"########;TWITCH","link":"https://twitch.tv/USERNAME"},"id":"chat:71138a4c-e941-4974-9fc2-a424361bb114","message":null,"status":"UNFULFILLED","timestamp":"2024-02-06T21:19:18.706671280Z","event_type":"CHANNEL_POINTS","event_abilities":{"upvotable":false,"deletable":false}},"type":"EVENT"}
[SEVERE] [AuthInstance (-#########) ?] java.lang.NullPointerException: event is marked non-null but is null
[SEVERE] [AuthInstance (-#########) ?] at co.casterlabs.koi.api.listener.KoiEventUtil.reflectInvoke(KoiEventUtil.java:11)
[SEVERE] [AuthInstance (-#########) ?] at co.casterlabs.koi.api.KoiConnection$KoiSocket.onMessage(KoiConnection.java:207)
[SEVERE] [AuthInstance (-#########) ?] at org.java_websocket.client.WebSocketClient.onWebsocketMessage(WebSocketClient.java:636)
[SEVERE] [AuthInstance (-#########) ?] at org.java_websocket.drafts.Draft_6455.processFrameText(Draft_6455.java:986)
[SEVERE] [AuthInstance (-#########) ?] at org.java_websocket.drafts.Draft_6455.processFrame(Draft_6455.java:910)
[SEVERE] [AuthInstance (-#########) ?] at org.java_websocket.WebSocketImpl.decodeFrames(WebSocketImpl.java:401)
[SEVERE] [AuthInstance (-#########) ?] at org.java_websocket.WebSocketImpl.decode(WebSocketImpl.java:233)
[SEVERE] [AuthInstance (-#########) ?] at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:516)
[SEVERE] [AuthInstance (-#########) ?] at java.base/java.lang.Thread.run(Unknown Source)
Note: May also want to test for Max Per Stream (In Twitch: "Limit Redemptions Per Stream") and Max Per User Per Stream (In Twitch: "Limit Redemptions Per User Per Stream")
Looks like we've got some bugs in the system. Let's iron those out.
A common feature across the Twitch/YouTube/Kick Dashboard are the live counters like Subs/Likes/Members/Viewers/Followers, along with essential ones like Total Live viewers, now some of these are visible on the Dashboard like the Viewer List shows the total viewers but this could be minimized into a Quick Glanceable Dock on the dashboard, with modular options to choose to what to Display at the counters and separate them by platform or if the user wants to have them merged into one. (For example, Twitch and YouTube subs as 1 merged total sub counter or 2 counters, one for each platform)
maybe even add API status indicators to these for us geeks who just want to monitor these things right from the app. to know if something is down or under maintenance. or if everything is functioning perfectly and I'm just streaming to 0 viewers on 5 platforms. with a deserted chat and viewer list and that no service is at fault.
Twitch removed the ability for bots to execute commands via IRC, we need to add a middleware to do them via the API instead.
Attempting to connect initially with Twitch results in an infinite loading screen.
When checking \AppData\Roaming\casterlabs-caffeinated\preferences\auth.json
, the token is saved.
Connecting with YouTube works, but trying to connect to Twitch afterward still results in infinite loading.
Checking app.log
shows constant disconnects and reconnects to Twitch.
Again, checking auth.json
, the token is again saved.
Uninstalling, deleting any extra files, and then reinstalling does not help. I also tried restarting the computer after deleting the files.
Some people prefer it the other direction because it's how their platforms do it natively.
Originally suggested by TheBenPsych.
!tts commands are a fun way to get viewers interacting with the stream more and help with engagement rates. Many streamers will probably tie this into their loyalty points.
Requested by Stallion.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.