OpenEOS - Open source EOS player

Webteases are great, but what if you're in the mood for a slightly more immersive experience? Chat about Tease AI and other offline tease software.

Moderator: 1885

Triple Alfa
Explorer At Heart
Explorer At Heart
Posts: 175
Joined: Wed Dec 05, 2007 12:35 pm

Re: OpenEOS - Open source EOS player

Post by Triple Alfa »

Just played the audio demo and am once again impressed. These kinds of additions to EOS really expand the scope of potential.
I really hope there is a future here as I'd love to see what teases can be made with the new features.
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

Trusfrated wrote: Tue Dec 22, 2020 4:09 am This feels really revolutionary! I'm excited to see more content created exclusively for it. :w00t:
Triple Alfa wrote: Wed Dec 23, 2020 1:53 am Just played the audio demo and am once again impressed. These kinds of additions to EOS really expand the scope of potential.
I really hope there is a future here as I'd love to see what teases can be made with the new features.
Thanks! Hopefully OpenEOS will gain some traction with authors.

(If it does, I'll need to move the player to a more permanent home.)
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

notSafeForDev wrote: Sat Dec 12, 2020 8:12 pm Alright, I'm sold after seeing proper support for gifs.

Rather than making a completely new editor to support new features, perhaps we could use something like tampermonkey to add to the existing one:

Code: Select all

// ==UserScript==
// @name        New script - milovana.com
// @namespace   Violentmonkey Scripts
// @match       https://milovana.com/eos/editor/*
// @grant       none
// @version     1.0
// @author      notSafeForDev
// @description Adds additional fields to the EOS editor to support OpenEOS features: https://milovana.com/forum/viewtopic.php?f=26&t=23558
// ==/UserScript==

let lastPageText = "";

onRequestAnimationFrame();

function onRequestAnimationFrame() {
  requestAnimationFrame(onRequestAnimationFrame);
  
  const loader = document.getElementsByClassName("MuiCircularProgress-root")[0];
  if (loader !== undefined) {
    return;
  }
  
  const page = document.querySelector("#root > div > main > header > div > h6");
  if (page !== null && page.textContent !== lastPageText) {
    lastPageText = page.textContent;
    onPageEnter(page.textContent);
  }
}

function onPageEnter(pageTitle) {
  const actionTitle = document.querySelector("#root > div > main > div > div > div.MuiGrid-root.MuiGrid-item.MuiGrid-grid-xs-12.MuiGrid-grid-md-7.MuiGrid-grid-lg-6 > div > div.MuiCardHeader-root > div.MuiCardHeader-content > span");
  
  if (actionTitle !== null && actionTitle.textContent === "Image") {
    const form = document.querySelector("#root > div > main > div > div > div.MuiGrid-root.MuiGrid-item.MuiGrid-grid-xs-12.MuiGrid-grid-md-7.MuiGrid-grid-lg-6 > div > div.MuiCardContent-root > div");
    const formInput = form.querySelector("input");
    
    const formGif = form.cloneNode(true);
    const formGifInput = formGif.querySelector("input");
    const formGifLabel = formGif.querySelector("label");
    
    const formOutput = form.cloneNode(true);
    const formOutputInput = formOutput.querySelector("input");
    const formOutputLabel = formOutput.querySelector("label");
    
    form.parentNode.appendChild(formGif);
    form.parentNode.appendChild(formOutput);
    
    formGifLabel.textContent = "Gif/Webp URL";
    formGifInput.value = "";
    
    formOutputLabel.textContent = "Paste this in Locator field";
    formOutputInput.value = ""
    
    const updateOutputForm = () => {
      const gifUrlStart = "+(|oeos:";
      const encodedUrl = encodeURIComponent(formGifInput.value);
      let locatorBase = formInput.value;
      
      if (formInput.value.includes(gifUrlStart) === true) {
        locatorBase = formInput.value.substr(0, formInput.value.indexOf(gifUrlStart));
      }
      
      formOutputInput.value = locatorBase + "+(|oeos:" + encodedUrl + ")";
    }
    
    addInputChangeListener(formInput, updateOutputForm);
    formGifInput.addEventListener("input", updateOutputForm);
  }
  
  if (pageTitle === "Share") {
    const form = document.querySelector("#root > div > main > div > div > div > div");
    
    if (form === null) {
      return;
    }
    
    const formOpenEOS = form.cloneNode(true);
    const formOpenEOSInput = formOpenEOS.querySelector("input");
    let link = formOpenEOS.value;
    
    form.parentNode.appendChild(formOpenEOS);
    formOpenEOSInput.value = formOpenEOSInput.value.replace("https://milovana.com/webteases/showtease.php", "https://oeos-player-preview.herokuapp.com/");
    
    formOpenEOS.onclick = () => {
      formOpenEOSInput.select();
      document.execCommand("copy");
    }
  }
}

function addInputChangeListener(input, callback) {
  var currentValue = input.value;
  
  // Since text inputs can also be changed by code, we don't use native addEventListener
  setInterval(() => {
    if (currentValue !== input.value) {
      callback(input.value);
    }
    currentValue = input.value;
  }, 16);
}
You wouldn't happen to be maintaining an easily installable version of this on https://openuserjs.org would you? If so, I'd like to link to it in OpenEOS' Wiki.
Triple Alfa
Explorer At Heart
Explorer At Heart
Posts: 175
Joined: Wed Dec 05, 2007 12:35 pm

Re: OpenEOS - Open source EOS player

Post by Triple Alfa »

I just finished my first try of a program called Virtual Succubus. It features a 3D Mistress that gives you orders based on a ton of configurable options. In it I encountered four features that I think OEOS could really benefit from.

1) All its text was displayed at the bottom of screen, but the background was the 3D world. That made me think that it might be cool to be able to optionally overlap the text in OEOS over the image.

2) Since all the text was at the bottom this also included all the countdowns. This made it way easier and more enjoyable to keep track of the countdown as I didn't have to take my eyes off the girl. Now obviously you could do this with text in OEOS, but I don't think anyone wants to manually setup long timers like that. It would also push any relevant text up and constantly move the counting text upwards as well, rather than having a clean statically positioned countdown. Plus a custom look for the timer would be beneficial.

3) Several times it featured countdowns that paused on a number, using a change in color as emphasis, before continuing. Since it was so easy to keep track of the countdowns it really enabled the program to play around with my expectations. This was very enjoyable.

4) The program made liberal use of fading out to black between scenes. It might be cool to be have transition effects like that in OEOS.
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

Triple Alfa wrote: Sat Dec 26, 2020 2:07 am I just finished my first try of a program called Virtual Succubus. It features a 3D Mistress that gives you orders based on a ton of configurable options. In it I encountered four features that I think OEOS could really benefit from.

1) All its text was displayed at the bottom of screen, but the background was the 3D world. That made me think that it might be cool to be able to optionally overlap the text in OEOS over the image.
Most of the existing OpenEOS demos already allow text to overlap the image on some of the examples. (Images can be set to full height of container -- however, it will not clip the width of the image if the image is too wide.) Let me know if this isn't what you mean. (Screenshot would be helpful.)
Triple Alfa wrote: Sat Dec 26, 2020 2:07 am 2) Since all the text was at the bottom this also included all the countdowns. This made it way easier and more enjoyable to keep track of the countdown as I didn't have to take my eyes off the girl. Now obviously you could do this with text in OEOS, but I don't think anyone wants to manually setup long timers like that. It would also push any relevant text up and constantly move the counting text upwards as well, rather than having a clean statically positioned countdown. Plus a custom look for the timer would be beneficial.

3) Several times it featured countdowns that paused on a number, using a change in color as emphasis, before continuing. Since it was so easy to keep track of the countdowns it really enabled the program to play around with my expectations. This was very enjoyable.
Not sure I understand. Screenshots would be helpful.
Triple Alfa wrote: Sat Dec 26, 2020 2:07 am 4) The program made liberal use of fading out to black between scenes. It might be cool to be have transition effects like that in OEOS.
I've been thinking about adding optional transitions to images. Would need to completely change the way I'm displaying images to make it happen -- but I may do it.
Triple Alfa
Explorer At Heart
Explorer At Heart
Posts: 175
Joined: Wed Dec 05, 2007 12:35 pm

Re: OpenEOS - Open source EOS player

Post by Triple Alfa »

fapnip wrote: Sat Dec 26, 2020 3:54 pm Most of the existing OpenEOS demos already allow text to overlap the image on some of the examples. (Images can be set to full height of container -- however, it will not clip the width of the image if the image is too wide.) Let me know if this isn't what you mean. (Screenshot would be helpful.)
I checked the first example again and that is what I meant. I didn't realize that was already possible.
Not sure I understand. Screenshots would be helpful.
This is a normal instruction with three buttons at the bottom:
Image

As you can see it is very easy to both read the text and keep your eyes on the girl as it overlaps her.


This is an example of a timer with two buttons at the bottom:
Image

The "41s" is the countdown and will change every second like: "40s", "39s", etc.
The timer will sometimes be paused. For example it will countdown "5s, 4s, 3s" and then stay on "3s" for ten seconds before continuing the countdown and then maybe pausing again at "1s". To emphasize the pause the program also changes the color of the "3s"-text.


It sometimes also displays text in the center:
Image


Example of a custom beat-meter the player has to follow:
Image


I hope this helps you visualize what I meant.
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

Triple Alfa wrote: Sat Dec 26, 2020 5:29 pm As you can see it is very easy to both read the text and keep your eyes on the girl as it overlaps her.
Images appear to be broken. (If Milovana doesn't support the image types you're using, you could upload them to imgbb.com and paste the links.)
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

Triple Alfa wrote: Sat Dec 26, 2020 5:29 pm This is a normal instruction with three buttons at the bottom:
This is an example of a timer with two buttons at the bottom:
Image

The "41s" is the countdown and will change every second like: "40s", "39s", etc.
The timer will sometimes be paused. For example it will countdown "5s, 4s, 3s" and then stay on "3s" for ten seconds before continuing the countdown and then maybe pausing again at "1s". To emphasize the pause the program also changes the color of the "3s"-text.
Okay, got the screenshots working. Had to copy/paste the links to them. (jerking.empornium.ph restricts milovana.com as the referrer.)

I see. It's just a text timer. This could currently be implemented by authors on OpenEOS in multiple ways, but the easiest would probably be something like:

Code: Select all

new Say({
  label: '<p>Fondle your balls...</p>',
  mode: 'instant'
})
// Start our timer at 50 seconds
var countdown = 50
// Create a function we'll call to display our timer text
function buildTimerText() {
  return '<p style="font-size: 120%"><b>for ' +  countdown  + 's</b></p>'
}
// Create and show a new say bubble that we'll use for a timer
var myTimerBubble = new Say({
  label: buildTimerText(),
  mode: 'instant'
})
// Create and display select buttons
new Choice({
  options:[
  {label: 'Mercy!', onSelect: function(){
    clearInterval(myTimer)  // Stop the countdown
    pages.goto('mercy-page') // Do something
  }},
  {label: 'Failed', onSelect: function(){
    clearInterval(myTimer)  // Stop the countdown
    pages.goto('failed-page') // Do something
  }}
  ]
})
// Create an interval that runs every second (1000ms)
var myTimer = setInterval(function() {
  // Decrease timer
  countdown --
  // Update the text in our existing say bubble
  myTimerBubble.label(buildTimerText())
  if (countdown < 1) {
    // If our timer has reached zero
    clearInterval(myTimer)  // Stop the countdown
    pages.goto('timer-end-page') // Do something
  }
}, 1000)
Triple Alfa wrote: Sat Dec 26, 2020 5:29 pm It sometimes also displays text in the center:
Image
This could be done currently using image or page overlays. Not sure how to implement a user friendly version. Perhaps an option to expand the bubble container to the full height of the screen, rather than the bottom 30%, and center them?
Triple Alfa wrote: Sat Dec 26, 2020 5:29 pm Example of a custom beat-meter the player has to follow:
Image
Not sure I understand what's in that image, but just about anything custom could be done using image or page overlays.
Triple Alfa
Explorer At Heart
Explorer At Heart
Posts: 175
Joined: Wed Dec 05, 2007 12:35 pm

Re: OpenEOS - Open source EOS player

Post by Triple Alfa »

fapnip wrote: Sat Dec 26, 2020 6:15 pm I see. It's just a text timer. This could currently be implemented by authors on OpenEOS in multiple ways, but the easiest would probably be something like:
It's great to see that the individual elements already support this through code. I do want to make an argument for making it a default option though.(Using its own system and not hijacking the text labels.)
1) As mentioned it makes it easier for players to focus on both timer and image as well as any other text.
2) It would save creators a lot of headache and allow those without much coding experience the chance to use it too.
3) It would also allow the option to make it asynchronous. In your current code example the countdown label would move if new text was displayed making asynchronous use not possible.
4) It would save a lot of screen space on mobile devices as the timer would take up vertical space rather than horizontal.
5) Allowing fixed text to be around the timer adds surprisingly much to the experience.
This could be done currently using image or page overlays. Not sure how to implement a user friendly version. Perhaps an option to expand the bubble container to the full height of the screen, rather than the bottom 30%, and center them?
That seems like the easiest way. I do wonder though how good it would look with the default text label. Would require some testing.
Not sure I understand what's in that image, but just about anything custom could be done using image or page overlays.
Just imagine a beat-meter from a cock-hero video. It's basically that.
If you ever implement a default metronome option this would be the logical next step.
User avatar
T€ch
Explorer
Explorer
Posts: 86
Joined: Tue Aug 07, 2012 12:15 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: OpenEOS - Open source EOS player

Post by T€ch »

Hello :wave:

first of all very nice project, it felt very revolutionary when i tested your Audio Sync Demo Tease.

I want to put in a feature request or lets say more a feature suggestion:
Yesterday i stumbled over a news-post that there is a open-source standard/software project for controlling sex-toys.
The project can be found here: https://buttplug.io/
Its written in Rust but also has JavaScript support.
I dont have so much technical knowledge, but perhaps it could be included into the Open EOS Player.
I am thinking of it as that you connect your sex-toy to your PC then open a Open EOS Tease, the Tease asks you if you want to use a sex-toy (you agree) and then you can play this tease with support for this sex-toy.
A good sex-toy for testing i think, which is supported by buttplug.io and also a lot of people could use is the XBox Gamepad (the rumble feature).

I dont know if its hard to include or not compatible with Open EOS. I just wanted to inform you that there is something like this which could be a cool feature for Open EOS.
zpigz
Explorer
Explorer
Posts: 5
Joined: Wed Dec 23, 2020 11:39 pm
Gender: Male
Sexual Orientation: Straight

Re: OpenEOS - Open source EOS player

Post by zpigz »

Bug report: For some reason if you change pages clicking a skippable autoplay Say bubble while a async timer or a audio is running it just dies .-. (letting the say bubble expire doesn't crash it tho :huh: ).

https://oeos.ml/?id=48384&key=0df37c02a8

PS: On page 2 it should say test1, test2 and test3 but it just dies in test1 lol.
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

Triple Alfa wrote: Sat Dec 26, 2020 10:04 pm It's great to see that the individual elements already support this through code. I do want to make an argument for making it a default option though.(Using its own system and not hijacking the text labels.)
I'll see what I can come up with.
Triple Alfa wrote: Sat Dec 26, 2020 10:04 pm Just imagine a beat-meter from a cock-hero video. It's basically that.
If you ever implement a default metronome option this would be the logical next step.
I've been trying to develop a relatively easy to use, yet flexible, CH type beat meter generator for OEOS, but haven't made much progress yet.
T€ch wrote: Wed Dec 30, 2020 1:56 pm I dont know if its hard to include or not compatible with Open EOS. I just wanted to inform you that there is something like this which could be a cool feature for Open EOS.
I'd like to have some way for authors to control connected toys via OpenEOS, just not sure what's the best way forward. I don't have any of these devices, and most of the APIs don't have virtual devices for developers to test code with. https://xtoys.app/, pointed out by notSafeForDev here, seemed like it could be a good option, but notSafeForDev appears to have dropped off the radar since.
zpigz wrote: Sat Jan 02, 2021 6:51 am Bug report: For some reason if you change pages clicking a skippable autoplay Say bubble while a async timer or a audio is running it just dies .-. (letting the say bubble expire doesn't crash it tho :huh: ).

https://oeos.ml/?id=48384&key=0df37c02a8

PS: On page 2 it should say test1, test2 and test3 but it just dies in test1 lol.
Thanks for the report!

Fix should be up now in v0.8.1.
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

notSafeForDev wrote: Sat Dec 12, 2020 8:12 pm Alright, I'm sold after seeing proper support for gifs.

Rather than making a completely new editor to support new features, perhaps we could use something like tampermonkey to add to the existing one:

[...]

This script adds additional text fields when picking image, one where you can paste a url to a gif/webp and another that gives you an output text to use as the locator. That way you don't need to use a url decoder. I tried making it update the locator text field through code, but as far as I can tell, that field can only be updated through user input.

Also, it adds an OpenEOS link in the share page.

Here's an updated version that doesn't require copy/paste for image URL additions, and updates the URL to the new temporary domain, oeos.ml (that will eventually change as well.):
OpenEOS Editor Extensions

(Edit: Replaced pasted userscript with link.)
Last edited by fapnip on Tue Jan 05, 2021 7:55 pm, edited 2 times in total.
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

Looks like there's some issues with audio actions on OpenEOS. Working on it...
fapnip
Explorer At Heart
Explorer At Heart
Posts: 430
Joined: Mon Apr 06, 2020 1:54 pm

Re: OpenEOS - Open source EOS player

Post by fapnip »

I've updated notSafeForDev's EOS Editor extensions user script to add more features, uploaded it to openuserjs.org, and created instructions to easily install it here:
Installing OpenEOS Editor Extensions

Also, I'm still working on fixing Audio issues. (Please let me know if you're currently developing an OpenEOS tease and you are having issues with audio.)
Post Reply

Who is online

Users browsing this forum: No registered users and 17 guests