Giter Site home page Giter Site logo

essential-actions's Introduction

Stream-Pi Essential Actions

Set of trusted, essential actions and integrations for Stream-Pi using the Stream-Pi Action API. These actions are prebundled with public Stream-Pi releases.

Prerequisites

  • Java >= 11
  • Maven >= 3.6.3

Actions Help Guide

Quick Start

To test these actions out in your local environment you'll need to run the Stream-Pi Server and copy the contents of BuiltPlugins to the server's Plugins directory ($HOME/Stream-Pi/Server/Plugins by default), especially if you're writing your own custom action / integration.

Linux/Mac

Build all actions by executing make build-all from the command line or specific actions i.e. make twitch-talk.

Windows

Build all actions by executing build.bat from the command line or specific actions i.e. build.bat twitch.

List of Actions

Action Name Build Script Argument
Hotkey hotkey
Play Audio Clip playaudioclip
Media Key mediakey
OBS Suite obs-suite
Run Command runcommand
Text Block textblock
Twitch twitch_chat
Open File openfile
Twitter twitter
Website website
Webhook webhook
Run Executable runexecutable

essential-actions's People

Contributors

dependabot[bot] avatar evnpc avatar j4ckofalltrades avatar nbeal avatar prubiella avatar quimodotcom avatar rnayabed avatar samuelquinones avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

essential-actions's Issues

Update OBS Actions to use the Latest Websocket API

With the latest version of OBS, obs-websocket was integrated into the OBS project as a whole. With the advent of the new 5.0 websocket protocol, this has introduced breaking changes. At the current time, its possible to install compatibility plugins in order to make the current obs-websocket 4 based Actions work again, but this may become impossible as its not guaranteed the compatibility library wont be abandoned in the future.

As a result, a revamp to the current OBS actions so they work properly with the latest spec for the OBS-websocket protocol is needed. It can also have the effect of simplifying the setup procedures wildly for anyone who uses or hopes to use the Stream-PI software

Hotkeys not working on Discord

Hello,

I tried this amazing software but i have a big problem. I don't stream so i don't really need all the streaming-focused features but I'd like to use it to control other apps via Hotkeys.
Unfortunately when i try to set a hotkey on Discord, for example CTRL F12 to mute the mic it only works when i actually select the Discord window.
The same combination works if i press it on the keyboard even when the Discord window is not selected

I'm using Windows 11 and a raspberry zero w 2 with a 5 inch screen

Toggle Actions not synced to the real (OBS) state

Toggle actions are out of sync with the real state:

  • At startup
  • When client disconnect/reconnect
  • When the server crash and is restarted
  • When the same action is toggled from another button
  • When the same action is toggled from a combined button
  • When entering/leaving a folder
  • When the action is triggered by something else (directly OBS interface.)

Maybe I did not thought at all possibles states.

Twitch - Toggle Slow-Mode does nothing

As the title says, setting up the "toggle slow mode" feature,
Using 2.0.0-Snapshot

Steps to reproduce:

Drag toggle onto deck
Set Toggle Name to "hide"
Select Icon for button off state
Select Icon for button on state
Set Twitch Channel name
Set Duration to 15
Click the "save" button

Test button,
reload twitch page
check for slow-mode
slow-mode doesn't get enabled

(Yes, twitch API is logged in, and i'm able to send text to the chat using the "Send Channel Message" button

Trigger website in background

Triggering a "Website" command opens the webpage.
Would it be possible to let it send the command in the background, without opening the webpage?
Comparable to the "GET request in background" option on a Stream Deck.
I want to use Stream-Pi to control a web interface, and the current setup opens a webpage each time I send a command.

[Cross-Platform] [Feature Request] [OBS Action Plugin] Add action to trigger "Connect to OBS Websocket" (Original Post by Sranjb2)

What Platform is being Targeted?:
All Supported Platforms

Is this a Bug-Fix, Feature Request, or, Other?:
Feature Request

Describe the Issue:
Currently there is a "Connect At Startup" button available within the settings, But if the user wishes to use a "Hotkey Action"
to launch OBS then there should be a way to connect to OBS without entering the settings manually.
(This is not targeted at SLOBS just yet, but this feature should support SLOBS in the future. SLOBS - StreamLab's OBS.)
I believe this would be a great QOL (Quality Of Life) Update.

The original issue is here:
stream-pi/client#47

Calling Executable doesn't seem to work

I wrote a simple ruby executable to call some Home Assistant APIs, and it works just fine from the command line.

Sep 13 10:04:45 raziel-linux stream-pi-server-Stream-Pi_Server.desktop[1074120]: Sep 13, 2022 10:04:45 AM com.stream_pi.server.controller.Controller$3 call
Sep 13 10:04:45 raziel-linux stream-pi-server-Stream-Pi_Server.desktop[1074120]: INFO: action 03f79e88-67e7-47fd-9136-ab6fba2db67b clicked!
Sep 13 10:04:45 raziel-linux stream-pi-server-Stream-Pi_Server.desktop[1074120]: [pool-2-thread-6] :: com.stream_pi.server.controller.Controller$3 @ call -> :INFO = action 03f79e88-67e7-47fd-9136-ab6fba2db67b clicked!
Sep 13 10:04:45 raziel-linux stream-pi-server-Stream-Pi_Server.desktop[1074120]: Sep 13, 2022 10:04:45 AM com.stream_pi.runexecutableaction.RunExecutableAction onActionClicked
Sep 13 10:04:45 raziel-linux stream-pi-server-Stream-Pi_Server.desktop[1074120]: INFO: Full array : [/home/dkowis/gitwork/hass_scripts/keylights.rb, on]
Sep 13 10:04:45 raziel-linux stream-pi-server-Stream-Pi_Server.desktop[1074120]: [pool-2-thread-6] :: com.stream_pi.runexecutableaction.RunExecutableAction @ onActionClicked -> :INFO = Full array : [/home/dkowis/gitwork/hass_scripts/keylights.rb, on]

I can call that command from the CLI just fine, and my lights turn on, but nothing happens when using the Executable action. I don't know why.

Windows/Meta Key does not pass-through Input when triggered on a Linux Host

Device details:

  • Ubuntu 20.04 LTS with gnome shell 3.36.4

Issue Description
Tried to generate a hotkey button with the combination of WINDOWS,L or META,L to lock the screen as we can do with the keyboard but it seems that despite the event gets fired in the log, it doesn't do anything. Same happens when you try to create another hotkey to move a window to the left SHIFT,META,L nor SHIFT,WINDOWS,L work.

@rnayabed has found an issue regarding this in stackoverflow. It seems that Robot in Linux doesn't know how to deal with Windows key.

OBS temporarily displays a *Random* scene during Scene Transitions

Target Platform:
Cross-Platform

Is this a Bug-Fix, Feature Request, or, Other?:
Bug-Fix

What Platforms (Operating Systems) Were Used?:
(Host) Server - Stream-Pi Server for Windows (x86) Ver.1.0.0 EA2 - Windows 10 (x86-64)
(Guest) Client - Stream-Pi Client for Android (ARM x64) Ver.1.0.0 EA2 - Android (ARM)

Describe the Issue:
When using the OBS Action for Scene Transitions on occasions during the transition of one scene to another the screen
will temporarily display a random scene that changes every time you transition. This doesn't occur when you change the
scene using a mouse/cursor input.

What Solution do you suggest to Resolve the Issue?:
Check how the OBS Web Socket Plugin accesses RAM & Cached Data, this may be an issue with the Stream-Pi OBS
Web Socket Plugin calling for All Scene's to be displayed before immediately transitioning to the Target Scene. This is just a
thought and not based on any evidence other than limited experience.

Who was the Issue initially reported by?:
Cucciolo Di Informatico (Lorenzo Del Bello/Riccio Meticcio) - Italy

Do you have concerns about the details of this GitHub Issue? If you do then please comment below, Or, Contact me directly via GitHub/Discord/Element.io

Contact Details:
Discord - TOGLK
Element.io (Matrix) - TOGLK
GitHub - TOGLK

OBS URL

Hello, im new with the Raspbrry Pi and Github.
I downloaded the Stream-Pi stuff and it works really good but I cant find out how i connect OBS to my Stream-Pi(I dont know how I can find out hat the URL is. I hope anyone can help me so that I can use all features of the Stream-Pi.

Audio clip not working.

The audio clip isn't working when I click it. I specified the MP3 and saved the macro. Is it attempting to play through the non-existent raspberry pi speakers? I don't have any speakers at this time. I would love a option to switch the audio output in the server.

[Cross-Platform] [Feature Request] [Macro Action] Ability to combine two or more actions into one Button

Target Platform:
Cross-Platform

Is this a Bug-Fix, Feature Request, or, Other?:
Feature Request

Describe the Issue:
The Requirement to use two button to send a CTRL-C and then a block of text.

What Solution do you suggest to Resolve the Issue?:
Create a button item that allows combination of other action into a macro type action. Example: combine a Hotkey Action of CONTROL,C and a Text Block Action of "Hello All" to open chat area (Ctrl-C) and then send "Hello All".

Webhookaction Validate URL to be Secure

The HttpsURLConnection used in the WebhookAction only allows HTTPS, meaning http fails without any notification towards the user.
I would suggest doing some validation on the URL input, or allow to use unsecure connections as well.

Add support for Unicode & Other Text Characters/Symbols (Multi-Lingual Support)

Hello,

I wanted to add a TextBlock action to paste "СУКА БЛЯТЬ" (I'm not Russian so I have to Google every time to get the Cyrillic Version of cyka blyat). As I pressed to Icon on my RasPi I got this error message:
image

Also my Windows Key stop working and caps got activated permanently. The PRINT key didn't work too. I had to kill the StreamPi server with the task manager.

Won't Run Executable

I am on macOS, and when I try to use the executable, it comes back with permission denied. Any idea on this?

Websocket-Client does not supply password for OBS

I have the Websocket Server in my OBS Installation secured with a long Password (More than 12 characters, numbers and special characters) and when I try to connect to it with the StreamPi Server, I get the error that no password was supplied despite the fact that I have entered the password into the password-field.

Twitter API issues

Is there a detailed proceedure for setting up the twitter plugin?

I ask, because i have several sets of API keys and secrets from twitter's dev section, but it does no good.

[Targeting Release - 1.1.0] [Cross-Platform] [Feature Request] [Twitch Actions] Enable an "Emoji-Only" chat mode Toggle

Target Platform:

Cross-Platform

Targeted Release Version:

Stream-Pi Version 1.1.0

Is this a Bug-Fix, Feature Request, or, Other?:

Feature Request

What Platforms (Operating Systems) Were Used?:

(Host) Server - Not Applicable
(Guest) Client - Not Applicable

Describe the Issue:

The core function of this action would be for the user to set the "Chat" of their Twitch Stream to only allow the display of "Emoji" Icon's instead of regular text-based chatting.

What Solution('s) do you suggest in regards to this Issue?:

A "Toggle-able" action would be the best method with which to enable this functionality to the end-user.

Who was the Issue initially reported by?:

NorvillesDingus - Stream-Pi Testing & Auditing Team Member

Do you have concerns about the details of this GitHub Issue?
If you do then please comment below, Or, Contact me directly via GitHub/Discord/Matrix

Contact Details:
Discord - TOGLK
Matrix - TOGLK
GitHub - TOGLK

[Hotkey] - Cheatsheet with all the key mappings.

*Issue Description: *
It would be nice to have a cheatsheet with all the key mapping names in order to make it more easy to the new users to create their Hotkey buttons.

I'm thinking in something like:

KEY MAPPING IN PLUGIN MAPPING TO HOST
Ctrl CONTROL CONTROL
Alt ALT ALT
Win WINDOWS/SUPER/COMMAND WINDOWS
\ BACK_SLASH BACK_SLASH

Set Cursor Position - Define where the cursor is located upon activation

Target Platform:

Cross-Platform

Targeted Release Version:

Stream-Pi Version 1.1.0

Is this a Bug-Fix, Feature Request, or, Other?:

Feature Request

What Platforms (Operating Systems) Were Used?:

(Host) Server - Not Applicable
(Guest) Client - Not Applicable

Describe the Issue:

The core function of this action would be for the user to set the position of their cursor immediately upon activation of action via their Stream-Pi interface. The target position would be defined by it's X-Coordinate & Y-Coordinate on your screen, with no limitation on exactly where the cursor can be located so as to allow us to support desktop setups with more than one display, and, with unusual aspect ratios. This includes the ability to set a negative X-Coordinate or Y-Coordinate, with conceivably ANY value being a possibility.

Because Stream-Pi is at it's core a advanced macro-pad interface some considerations would have to be made in regards to ensuring that use of this particular action would not trigger Anti-Cheat mechanisms within games even if you are not targeting the game when using this particular action.
Many current Anti-Cheat methods rely on kernel-level monitoring and modification of your system to ensure that you are not using cheats, unfortunately because of this flawed method of implementing Anti-Cheat into game Stream-Pi is left exposed, with the potential for some games to class it's usage as cheating even when that is proven to be undeniably false.

This action would have the option like any other action to be combined together to set off a string of event's, doing so would allow you to activate a part of the interface on the screen regardless of what you're doing or where your cursor is currently located. A method to "go back" to the cursors original starting location would be needed to allow for such a feature to be implemented in a organic & dynamic manner.

What Solution('s) do you suggest in regards to this Issue?:

This new action would rely on multiple elements to ensure it's smooth integration and operation at all time's.
The primary focus would be to do the following;
1.) Ensure that the target location is always correct prior to activation of the action.
2.) To log the precise current location of the cursor prior to the activation of the action.
3.) To ensure that the target location is not where the cursor already is.
4.) Prevent the action from being detected by Anti-Cheat mechanisms via the use of randomisation methods.
5.) To ensure immediate activation of the action with no delay and for the action to be undertaken in less than 500ms for the total action process time-span.

One of the most critical elements in regards to this action is prevent detection by or activation of Anti-Cheat mechanisms due to their overzealous implementations. To do this I suggest that a element of controlled randomisation is added to every part of the movement of the cursor during the actions "in-use" period, and that would be achieved by doing the following;

1.) Upon initial activation of the action the cursors CURRENT LOCATION would be logged and saved to a temporary file that would be created either in Disk Cache or in RAM (whichever option is quicker and less time consuming).

2.) After that process of the action has completed the next part would start which would be moving the cursor to the pre-defined location on your screen, during the process of movement their would be two additional parameters that would be applied, each with a controllable level of "Randomness" to their respective behaviour.
The first parameter would be cursor acceleration & deceleration, the second parameter would be "Cursor Curve", which is the amount of arc/curve that the cursor exhibits as it moves to the target location, each parameter would have a value between 0-10 which would control how "Random" the action is, and, how much it varies before reaching the same target destination every time.

3.) The final destination of the cursor at it's target location would NEVER be the same upon every activation of the action. The target destination would also have an element of randomisation as to exactly where it lands around the pre-defined position, this would vary with a "Randomisation" value of 1-10 like the other parameters and it would need to be adjusted so that it can still activate the button on the screen beneath the cursor if that is something that you wish to do with the action. The key part here is to ensure that the cursor never lands in the same location twice in a row, and, it always has an element of "jitters" to it as it centres on the target destination.

4.) If you have enabled the toggle to "Return the cursor to it's starting destination", then the same behaviours mentioned in sections 2 & 3 above would also be replicated here with the same randomisation to their behaviour, this is all done to ensure that no Anti-Cheat mechanism is triggered by Stream-Pi when the action is used.

Who was the Issue initially reported by?:

TOGLK - Stream-Pi Lead Tester & Auditor

Do you have concerns about the details of this GitHub Issue?
If you do then please comment below, Or, Contact me directly via GitHub/Discord/Element.io

Contact Details:
Discord - TOGLK
Element.io (Matrix) - TOGLK
GitHub - TOGLK

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.