So I developed a plugin/forks some time back to add extra funscript support to stash. The first one is StashInteractiveTools. A plugin for stash that adds the following support
Adds ability to change sync offset
Adds ability to change the stroke length
Adds supports for multiple funscripts (with heatmap support)
The other is a fork of stash-vr to add support for ivdb tokens (Heresphere only). To enable all you need to do is add the ivdb video page as one of the urls ie IVDB.
For this you will need to build your own docker images but if you have docker desktop already install its pretty simple as just doing docker build . --tag stash-vr in the folder. Then running as normal ie
docker run --rm -it --name=stash-vr -p 9666:9666 -e STASH_GRAPHQL_URL=http://<stash-endpoing>/graphql -e LOG_LEVEL=trace -e STASH_API_KEY=<api_key if needed> -e FILTERS=<filter-ids-just-for-vr> stash-vr
I do plan to add this same type of support to the stash plugin itself but havn’t gotten around to it. Currently here is the roadmap of features that I would like to add
Add Ivdb support to Stash w/ heatmap generation (heatmap data is in ivdb api just have to figure out how it all works lol)
Add heatmap support for ivdb scripts in Herespehere (waiting on dev to update api to allow this)
Hopefully others will find this useful. There are a few bugs that I still need to iron out but if you find any feel free to add here or on GitHub.
Nice! I’ve been missing the interactive tools. But I don’t get how to install the plugin? Can’t find it in the community plugin directory in stash.
This seems really nice, I always love to see more interactive integration into stash. Do you have any plans on implementing either of these into their respective official repositories? I would think that the interactive tools plugin would fit neatly alongside the other approved stash-plugins.
I tried to test your StashInteractiveTools plugin. It nicely shows the stroke/synch settings, but they can’t be changed. I guess this is due to me using the standard stash docker. Is there a simple way to use your stash version? I can’t download or use a docker compose, it seems I need to build?
awesome work, there’s a few huge things this plugin could add:
ability to stream funscript/tcode output to wirelessly connected devices. right now stash only supports intiface, but supporting OSR/SR6 via the ESP32 wireless firmware would be awesome.
I’ve actually been working on this and have a fairly decent proof of concept. The biggest issue is stash doesn’t expose the multi-axis scripts, so my code currently depends on a http server serving those files.
I’m going to look at the possibility of using this plugin with mine to make things smoother.
i’m not very experienced with go nor REST APIs but it seems like it might not be that hard to get Stash to find all the other funscripts (roll/pitch/twist/surge/sway/etc)
Probably would need to modify the first method to return a list of paths, or maybe a map of key/value pairs with keys being something like “stroke” (or maybe “primary”), “twist”, “surge” etc and the values being the paths. I’m not sure how the serving method should be changed, obviously it can be modified to server only the “primary”/“stroke” funscript but i’m not sure how to integrate multi-axis support
Yeah, it shouldn’t be too bad to add in. The modifications in this thread is the right direction.
When I was writing the code for mine, I was trying to avoid modifying Stash, and only use what they provided directly.
I have thought about trying to make more modifications to Stash and submitting a pull request, but finding the free time to do so is going to take a while.
Sorry for getting back to this late, was sick last week
It tried to build your stash-vr in docker desktop but got next error:
“error writing generated code to file: open …/…/internal/ivdb/api/client.go: no such file or directory”
I managed to solve it by manually creating the missing api dir and copying the client.go file in there. After that, the build succeeded.
Thanks @DirtyWanker I’ll make sure fix that, I’m new to go itself and thought completely forgot some of the steps I had to figure out lol.
I tried to test your StashInteractiveTools plugin. It nicely shows the stroke/synch settings, but they can’t be changed. I guess this is due to me using the standard stash docker. Is there a simple way to use your stash version? I can’t download or use a docker compose, it seems I need to build?
Actually you should have been able to use the most latest version of stash which is v0.27.2-37-g0621d871. As for docker its better if you get the full docker desktop https://www.docker.com/. I need to see how the original dev did the releases so people wont need to build themselves
good stuff! I don’t suppose you would be willing to look at intiface integration? it seems that fizzled out a while ago.
@TaakoMagnusen When I first started with this idea I made a lot of changes to the core stash code but by direction of one of the developers they pushed me to go the plugin route since it went against their direction (Sorta why only handy is supported atm). The implementation would have been cleaner if I could have gotten my go work approved but it is what it is lol. I had to piggy back their http tunnel they give plugins which required me to copy the scripts to a .temp directory within the plugin folder (duplicated data I know but only way map the file paths).
Anyway @Spunkle let me know what you need. I haven’t added any special naming for multi-axis so if you have the proper naming I can expand my file resolving logic and also say dispatch an event for you to listen to or some other hooks.
If you decide to do that, I can just point what I have at those and that would eliminate the need for an additional webserver running alongside stash. Bonus points for integrating the multple funscripts option, for cases with multiple multi-axis scripts
unfortunately, no new routes can be added to the main stash endpoint thats what I have it proxy via their plugin endpoints. I’ll see what I can come up with when I get some free time