tisboyo / Twitch_Bot

4 stars 2 forks source link

Vote system #65

Closed tisboyo closed 3 years ago

tisboyo commented 3 years ago

Add vote system similar to kit's. where !vote a is the command to vote.

tisboyo commented 3 years ago

For regular voting, the bot framework has it built in. Use !startpoll Title [option1, option2, option3, etc] 60 to start a 60 second poll Viewers will use !vote # to cast their vote.

tisboyo commented 3 years ago

Also available is !pollinfo and !listpolls

tisboyo commented 3 years ago

I believe this is ready to go once #86 is merged. There is one part left to it, that geekboy is working on but that will not hold up deploying this.

tisboyo commented 3 years ago

@geekbozu If you can put the the files as /web/static_files/poll-display.html and /web/static_files/poll-display.js and thank you sir for the help.

geekbozu commented 3 years ago

@baldengineer would need a font choice/plus file if its not built into windows. Mostly to ensure that physical look and legibility is met etc. Considerations, A mono-spaced font will be "easier" to code be consistent and technically jive with your stream theme. Code underway...don't need this until pretty up time.

baldengineer commented 3 years ago

I dunno. Will have to see it before I know what I want to use. For reference, I generally use Calibri for variable width and Mononoki for fixed width. I don't know what would be needed to use those in a web object in OBS. however, Verdana and Courier New are okay to start with.

Anything with Serifs can go in the same place as the Egg Nog carton.

geekbozu commented 3 years ago

Oki dokey I'll start with mononoki which works for me :) and it has it in woff which will make it "just work" as far as the end user will be concerned.

tisboyo commented 3 years ago

Moving milestone to January while waiting for front end work to be finalized.

baldengineer commented 3 years ago
baldengineer commented 3 years ago

0 seconds remaining: Voting Closed. 10 seconds remaining: Closing Vote. 30 Second remaining: Hurry and Vote! X minutes remaining: "Less than X minutes to vote."

I'd like the timer text to be generic since its chat that counts, not what is on stream.

baldengineer commented 3 years ago

"To Vote: !vote <#> in chat."

geekbozu commented 3 years ago
* [ ]  Periodically re-send poll setup data in case it was missed.

This needs to be tested with the front end...a re-send of the initial setup data will potentially cause it to display 2 poll and start to behave erratically... Does MQTT not have a mechanism to ensure message consistency?

tisboyo commented 3 years ago
* [ ]  Periodically re-send poll setup data in case it was missed.

This needs to be tested with the front end...a re-send of the initial setup data will potentially cause it to display 2 poll and start to behave erratically... Does MQTT not have a mechanism to ensure message consistency?

the concern was more if the page is opened late, but since you mention that I can see that being a big issue. So instead of that, how about I set it as remembered by mqtt and clear the setup topic completely once done. If I send a completely blank setup will it panic?

geekbozu commented 3 years ago

Hmm I have no idea...I know if you send a Finished followed by a setup that will always properly reset the poll. Obviously we do not want todo that mid poll however. And a setup packet with active = false will always clear the poll. In the code the active flag is the branching item. True == render/generate web page. False == Delete page. I could have it clear the page actually on setup. Which would show no entries until a new data frame is returned then it would catch back up. That said an empty packet should be "false" and clear the page.

Refreshing the page also will properly reset it (I can expose an MQTT endpoint todo that if needed as well...but that might be part of the concern is mqtt failing?)

geekbozu commented 3 years ago

Was there anything left I needed to do here as of the moment?

tisboyo commented 3 years ago

Was there anything left I needed to do here as of the moment?

I don't think so @geekbozu , but I could be wrong.