Eos Editor Preview - Milovana's new interactive webtease editor

You can find important news and current events here.
Ed_
Curious Newbie
Curious Newbie
Posts: 3
Joined: Sun Apr 18, 2010 8:49 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Ed_ »

how does one remove pictures from a gallery?

Also, eos gave me a heart attack when I clicked a different tease, came back to teh one I worked on, and suddenly a much prior version was displayed. However, clicking on "preview" showed the version I was working in was still present. closing eos and opening it again made all the new pages reappear.
User avatar
Roundhound
Explorer At Heart
Explorer At Heart
Posts: 603
Joined: Sun Aug 25, 2013 8:09 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Roundhound »

So with multiple people mentioning it looking like EOS is deleting their content it much just be a browser caching issue. If you refresh the page with CTRL+F5 it will reload your page without using the cache.
User avatar
Roundhound
Explorer At Heart
Explorer At Heart
Posts: 603
Joined: Sun Aug 25, 2013 8:09 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Roundhound »

Is there a way to completely clear out EOS tease data from a browser? I just ended up encountering a bug in a tease I just published because I wasn't able to easily test it on a blank machine.

If not this might be a decent feature to build into the EOS editor. A button that will clear out all tease storage and configuration things.
User avatar
Roundhound
Explorer At Heart
Explorer At Heart
Posts: 603
Joined: Sun Aug 25, 2013 8:09 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Roundhound »

Keermirr wrote: Sat Mar 30, 2019 4:40 am
Roundhound wrote: Sat Mar 30, 2019 4:24 am Is there a way to completely clear out EOS tease data from a browser? I just ended up encountering a bug in a tease I just published because I wasn't able to easily test it on a blank machine.

If not this might be a decent feature to build into the EOS editor. A button that will clear out all tease storage and configuration things.
You mean something like this? Or 'clear out' in other way?
I use Chromium, and if i reload the page the missing stuff is back.
I am hoping for a method that wouldn't log me out of milovana and potentially other sites.
Triple Alfa
Explorer At Heart
Explorer At Heart
Posts: 175
Joined: Wed Dec 05, 2007 12:35 pm

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Triple Alfa »

I'm having a really strange issue. I'm using the same code but with different variable names and inverted boolean values in two places in my tease and one works, but the other doesn't.

This:

Code: Select all

var hasSeenVanessa = teaseStorage.getItem("hasSeenVanessa") || false
teaseStorage.setItem("hasSeenVanessa", true)
Followed by an if statement:

Code: Select all

hasSeenVanessa === false
works perfectly fine.

But this:

Code: Select all

var isNewPlayer = teaseStorage.getItem("isNewPlayer") || true
teaseStorage.setItem("isNewPlayer", false)
Followed by if statement:

Code: Select all

isNewPlayer === true
Does not.

The first code executes as if hasSeenVanessa is true. Which should be the case as I ran the tease before up to that point.
The second code executes as if isNewPlayer is true. Which shouldn't be the case beyond the first startup.

Edit: It might be relevant to note that the second(non-working) code is part of the "start"-page.
Triple Alfa
Explorer At Heart
Explorer At Heart
Posts: 175
Joined: Wed Dec 05, 2007 12:35 pm

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Triple Alfa »

snakelinux wrote: Sun Apr 07, 2019 1:09 am I tested Triple Alfa's scenario. It has nothing to do with the start page. It says it is always true because it treats the statement
teaseStorage.getItem("isNewPlayer") || true
as a boolean.
If teaseStorage.getItem("isNewPlayer") is false then
(false || true)
gets passed into variable IsNewPlayer
That boolean statement
(false || true)
is true therefore IsNewPlayer is true.
Also if teaseStorage.getItem("isNewPlayer") is true then the statement passed in is
(true || true)
which is true.
Either way it is true that gets passed into IsNewPlayer.
This does not look like a bug to me but a misunderstanding as to what it is doing.
Thank you for the testing!
This is kinda strange since I took the code literally from the tutorial and replaced the integer values with booleans expecting it to work the same.

The tutorial does:

Code: Select all

var counter = teaseStorage.getItem("counter") || 0
counter++
teaseStorage.setItem("counter", counter)
According to the tutorial the counter variable should use the storage value or default to the number after "||". How do I get this same functionality but for booleans? Of course if this works I could just use integers, but that's a less efficient workaround.

I guess I could also work around it by using if-statements and checking the return of teaseStorage.getItem("isNewPlayer"), but that seems even more cumbersome than just using integers.

Edit1:
I just changed my code over from boolean to integer. It is now exactly like the tutorial and it still doesn't work. The problem is exactly the same as before. Unless I'm doing something wrong it seems like a bug as the tutorial is telling me to do this exactly.

Edit2:
Okay I think I've isolated the bug.
This doesn't work:

Code: Select all

var isNewPlayer = teaseStorage.getItem("isNewPlayer") || 1
teaseStorage.setItem("isNewPlayer", 0)
But this does:

Code: Select all

var isNewPlayer = teaseStorage.getItem("isNewPlayer") || 1
isNewPlayer = 0
teaseStorage.setItem("isNewPlayer", isNewPlayer)
So somehow the "isNewPlayer" variable is not just an integer. And when you try to write just an integer value to the storage it doesn't accept it. But if you assign an integer value to the "isNewPlayer" variable and write that to the storage it works just fine.

Edit3:
So the problem now is that you have to change to original variable to be able to write it to storage. This is terrible since we need that to make comparisons in if statements. So I tried to do this workaround, but it failed:

Code: Select all

var isNewPlayer = teaseStorage.getItem("isNewPlayer") || 1
var isNewPlayerTemp = isNewPlayer
isNewPlayerTemp = 0
teaseStorage.setItem("isNewPlayer", isNewPlayerTemp)
Even making a straight duplicate variable and using that makes it stop working.

Edit4:
Okay I just realized that I'm an idiot checking the variable that I put to 0 just before and not the stored value.

Edit5:
I just tried to use Say to display the value in storage using an eval tag with

Code: Select all

teaseStorage.getItem("isNewPlayer")
and it doesn't work.

Okay now a hopefully proper attempt. Using:

Code: Select all

var isNewPlayer = teaseStorage.getItem("isNewPlayer") || 1
teaseStorage.setItem("isNewPlayer", 0)
var isNewPlayerTemp = teaseStorage.getItem("isNewPlayer")
I write the value of the storage to Say using isNewPlayerTemp. It displays as "0".
The next time the code runs it should use the stored "0" and put it in variable isNewPlayer.
That should then lead to the following if statement:

Code: Select all

isNewPlayer == 1
being false.
But this does not happen. The next time the code is run the result is the same. The if statement is true.

Edit6:
I found a very useful article talking about the problems of using || to set default values in javascript:
https://www.codereadability.com/javascr ... -operator/

I'm not sure I totally understand what constitutes falsy and truthy in this case, but the fact that I'm using "0" and it's directly mentioned as falsy is enough I think.

Edit7:
Working Solution:

Code: Select all

var isNewPlayer = teaseStorage.getItem("isNewPlayer") || 2
teaseStorage.setItem("isNewPlayer", 1)
Changing the "0" and "1" values to "1" and "2" respectively avoids the falsy problem mentioned in the above article. The code now seems to work as intended.

It is worth mentioning that the code used in the tutorial for the counter only works because the default value is set to "0". When the value of the storage is "0" it is considered falsy and is overwritten by the default value, but because the default value just so happens to be the same it all works out.

I have however encountered a problem with the preview system. It seems like the changes to the code don't always take. Even when using ctrl+F5 the result was not what was expected, but going back into the code to the code I just changed and clicking preview there gets the right result.(Without changing any code) So either the code is stuck sometimes or the memory storage is.
User avatar
Roundhound
Explorer At Heart
Explorer At Heart
Posts: 603
Joined: Sun Aug 25, 2013 8:09 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Roundhound »

Triple Alfa wrote: Sun Apr 07, 2019 10:40 am Edit7:
Working Solution:

Code: Select all

var isNewPlayer = teaseStorage.getItem("isNewPlayer") || 2
teaseStorage.setItem("isNewPlayer", 1)
Changing the "0" and "1" values to "1" and "2" respectively avoids the falsy problem mentioned in the above article. The code now seems to work as intended.

It is worth mentioning that the code used in the tutorial for the counter only works because the default value is set to "0". When the value of the storage is "0" it is considered falsy and is overwritten by the default value, but because the default value just so happens to be the same it all works out.

I have however encountered a problem with the preview system. It seems like the changes to the code don't always take. Even when using ctrl+F5 the result was not what was expected, but going back into the code to the code I just changed and clicking preview there gets the right result.(Without changing any code) So either the code is stuck sometimes or the memory storage is.
I have a couple things I want to mention about this post. First, about the preview code and storage. The storage does not get wiped when entering preview mode. What I would do, is for testing create a button on your start page that will reset the values. You create a function like this in your init file:

Code: Select all

function resetValues() {
teaseStorage("newPlayer", 0);
teaseStorage("myOtherValues", "relevant Values);
}
You can then call this from the button by having it do an eval action with:

Code: Select all

resetValues();
Now you can easily reset anything to test the newPlayer/returningPlayer scenarios.

Secondly, this is more of a general rant from a software developer than specifically at you so please don't take it personally. I really hate it when people in languages like Javascript, Java, C# use integer values like 0, 1, 2 for true or false booleans. Especially in Javascript because it makes problems like the above happen. This isn't assembly where you need to monitor every bit yourself. Just use true or false if a value only has two possibilities like "isNewPlayer". This is also problematic when sharing code with others. Looking at your solution I now have to really think "what does 1 and 2 mean for isNewPlayer?" while true or false is pretty self-explanatory.

Basically, make your code easy to read even for your future self. If you come back to this is one year will you remember exactly why you used 1 and 2? Also tight efficient code is not really a thing to worry about in todays web applications (especially in EOS). If you are using a loop then be concerned a bit (infinite loops are a problem or ones with a lot going on inside of it) but storing one more variable or using a longer variable name to make it more descriptive isn't anything to worry about.

As I said this isn't specifically at you, Triple Alfa. It's just something I have noticed a few times here with people asking for help.
Triple Alfa
Explorer At Heart
Explorer At Heart
Posts: 175
Joined: Wed Dec 05, 2007 12:35 pm

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Triple Alfa »

@RoundHound:
I know that storage does not get wiped. I reset it manually when needed for testing. I didn't expect it to take so long to troubleshoot so I didn't bother trying to figure out how to setup some debug buttons.

Also this whole mess started with me using boolean values instead of integers. I switched to integers out of necessity, not desire. You can read all about that in my first post and snakelinux's reply to that. If you can figure out a way to make it work nicely with booleans I'd love to use your alternative.

Edit1:
I tried to implement your debug button solution, but ran into two problems.
1) Your code was missing the .setItem part after teaseStorage.
2) After I've reset the values with the new function the "isNewPlayer" stored variable does not change during the playthrough as it should. I can reset the tease over and over with the same result. But if I go into any code editor and trigger a save(with no changes made to the code) it suddenly works properly.

Just to clarify what I'm doing:
1) Reset the variables
2) Run through the tease. It shows me as a new player that hasn't seen Vanessa, as it should.
3) Reset the tease and run through it again. It shows me as a new player that has seen Vanessa. I should not be a new player.
4) Any extra tease reset is the same as #3.
5) Go into any code editor. Press space, press backspace.
6) A save is triggered, but the code remains the same.
7) Run through the tease again. It shows me as a returning player that has seen Vanessa. This is correct.
User avatar
itslate
Explorer At Heart
Explorer At Heart
Posts: 290
Joined: Tue Nov 29, 2011 5:25 pm
Gender: Male
Sexual Orientation: Straight

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by itslate »

wb9k wrote: Fri Mar 22, 2019 2:30 am Found an error in the system. When a notification closes, either with a button or a timer, any timer active in the tease, at that moment, instantly ends and goes to the next action.
This. A closing notification also makes the tease progress, if it should be waiting for a "Say" command, etc, as said in viewtopic.php?f=4&t=21718&p=261607&hili ... on#p261607.
User avatar
itslate
Explorer At Heart
Explorer At Heart
Posts: 290
Joined: Tue Nov 29, 2011 5:25 pm
Gender: Male
Sexual Orientation: Straight

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by itslate »

Am I doing something wrong, or is it not possible to use the storage function in the preview mode? I don't wanna publish yet to try it out... :huh:

EOS is amazing, by the way.
User avatar
Shattered
Experimentor
Experimentor
Posts: 1391
Joined: Fri Jan 11, 2013 6:41 pm
I am a: Switch
Location: United Kingdom

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Shattered »

itslate wrote: Thu Apr 25, 2019 12:16 pm Am I doing something wrong, or is it not possible to use the storage function in the preview mode? I don't wanna publish yet to try it out... :huh:

EOS is amazing, by the way.
It works for me in preview.
User avatar
Shattered
Experimentor
Experimentor
Posts: 1391
Joined: Fri Jan 11, 2013 6:41 pm
I am a: Switch
Location: United Kingdom

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Shattered »

Anyone know if theres anyway to find the current page number and store it as a variable when a button on a notification is clicked?
User avatar
Quarz
Explorer
Explorer
Posts: 85
Joined: Sat Jan 09, 2016 11:31 pm
Gender: Male
Sexual Orientation: Straight
I am a: Submissive
Location: North Germany

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Quarz »

Shattered wrote: Tue May 07, 2019 10:12 pm Anyone know if theres anyway to find the current page number and store it as a variable when a button on a notification is clicked?
With page number you mean the page ID?
If so, then let's say you have made a variable "CurrentPage".
All you have to do is to create your notification and button and add an "Eval"-action in the buttons actions with

Code: Select all

CurrentPage = pages.getCurrentPageId();
CurrentPage will then have a string, which is the ID/Name of the page you're currently on.
User avatar
Shattered
Experimentor
Experimentor
Posts: 1391
Joined: Fri Jan 11, 2013 6:41 pm
I am a: Switch
Location: United Kingdom

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Shattered »

Quarz wrote: Wed May 08, 2019 3:32 pm
Shattered wrote: Tue May 07, 2019 10:12 pm Anyone know if theres anyway to find the current page number and store it as a variable when a button on a notification is clicked?
With page number you mean the page ID?
If so, then let's say you have made a variable "CurrentPage".
All you have to do is to create your notification and button and add an "Eval"-action in the buttons actions with

Code: Select all

CurrentPage = pages.getCurrentPageId();
CurrentPage will then have a string, which is the ID/Name of the page you're currently on.
Sweet, looks like it's working for me. Many thanks!
Lamei
Explorer
Explorer
Posts: 99
Joined: Wed Jan 30, 2019 8:23 pm

Re: Eos Editor Preview - Milovana's new interactive webtease editor

Post by Lamei »

Can anyone recommend a website to download metronome sound tracks? I have been using www.metronomer.com to genrate MP3 tracks but im very picky and im looking for a metronome track that sounds better.

I can recommend freesound.org for anyone that needs sound effects for their tease.

Thank you
Post Reply