rik079 / speasier Goto Github PK
View Code? Open in Web Editor NEWSpeak easier in Speasy. A.k.a Sock's Speaking Slave.
Home Page: https://speasier.rik079.xyz
License: BSD 3-Clause "New" or "Revised" License
Speak easier in Speasy. A.k.a Sock's Speaking Slave.
Home Page: https://speasier.rik079.xyz
License: BSD 3-Clause "New" or "Revised" License
Links to #2
I suggest the following table layout:
Column 1: GuildID TEXT NOT NULL UNIQUE
Column 2: ChannelID TEXT NOT NULL
Maybe, to link a text channel to a voice channel
Column 3: VChannelID TEXT NOT NULL
We need someone with admin access for this, so either me, Zib, or Micro (not sure why Worthy doesn't have it?)
Create roles (without colour or permission) for all English polly voices. The role names should excactly match the voice names.
Basic sounds to allow Speasier users to be able to make non-verbal contributions
Triggered in the same way as emojis (simple pairs of letters), we have a dozen or so sounds to allow groaning at jokes, applauding, laughing, cheering etc
Maybe starting with a character and then a letter fo rhte sound to be triggered, eg ^G (for groaning) ^A (applauding) etc
No idea if this is possible - you said any idea was a good one!
We should implement both description and usage for all commands. That will help with documentation.
A user should be able to get their data with a command like ?profile
, and be pointed to commands where they can change said data and claim a voice
Right now, an admin has to manually change the topic every time someone claims a voice. We can change this so the bot checks this at startup and everytime a voice is claimed or released.
Write the code that feeds the text that's given to it by some other module (probably the one that deals with configuring that text channel, silent messages), gives it to the Polly API and then stores the audio file somewhere (where this is should be figured out with #36)
I really really don't want to be pushy but I'd love to do this ๐
Create infrastructure that allows the bot to join a voice channel, read messages from a specified channel and check what roles can be used by whom.
Zib [Amy]vandaag om 14:34
!tts Amy At this point any idea is welcome. Even if it is completely outlandish, like having a command to launch a Falcon Heavy.
We definitely need this.
We'll need someone with a credit card to create the AWS account.
Some tables in the users
table are now obsolete, and they need to be deleted from the CREATE IF NOT EXISTS
query in database.py. If possible I'd also like a comment here with what those fields were (can't be bothered to look that up myself right now ๐)
Now that the number of commands and functionalities is increasing, and we don't have a truly functional (aka good-looking) ?help
functionality yet, it might be a good idea to make a command reference on the project's wiki?
Right now, there is no way to find out wheter an INSERT
or DELETE
query from Discord was successful or not, apart from opening the database with a browser or running a SELECT
query for the data. It would be great to let the bot send a message if the query was executed successfully.
we may need to use discord.py[audio] here, not sure
Configurable text channel via a command for admins.
If an unregistered user tries to use TTS, they should be given a default voice. This voice should be unclaimable.
regex to pull out links and just say "Youtube link" instead of "youtube.com/ljhslkhfkjfsdjksfd" or something like that
We need a list of voices that haven't been claimed yet, preferabbly in an embed, that can be opened with a command like ?unclaimed
This subcommand should display data on the TTS channel registration
This is the actual part that connects to the voice channel, and plays the file that's given to it
So this doesn't actually involve any coding yet, we just need to figure out how we're going to deal with all the files coming in, temporarily storing them, and (probably?) deleting them after use ASAP to save space
In most files, the copyright notice is # Copyright (C) Speasy
. Because of the new license, this needs to be changed to # Copyright (c) 2020 Rik079, Worthy Alpaca, Zibadian, Micro-T. All rights reserved.
A command to read out "/me action" as "name action"
Example: Zib enters "/me tells dad joke"
Spoken word: "Zib tells dad joke".
A command to mute and unmute yourself so that typed messages, which you don't want to be spoken need to be prefixed with the silent command everytime.
I merged #9 for now, because I didn't want to wait for someone more API-savvy then I to pop up, but it still needs to be fixed one day.
Both functions are now basically a copy of each other, with the search one having a warning that the function isn't complete yet. dadjoke.Dadjoke
in the first part of the if-statement needs to be changed to a dadjoke.DadjokeSearch()
and we have to find a way to deal with the different results that can come up, and pick a random one of them.
(get the pun? ๐)
The issue template config file doesn't work. Rik has no clue why. It makes Rik sad. ๐ข
If Socks is going to run the bot on her PC, probably everything will need to be installed first, so not only the repo but also Python, all dependencies, etc. It could be a good idea to write a bat file that installs everything.
SQLite database to put at least the following in there:
What the title says. @Worthy-Alpaca could you take a look at this? pleading face
Linked to #42
With the current situation, ?channel register
as now being developed in feat/42 requires 2 arguments: Voice channel ID
and Voice channel name
. The last one is only being used to give the name if one tries to re-register an already registered channel.
However, I had some issues with getting the channel name from it's ID. Maybe someone could take a look at this?
Admins need to be able to designate a channel as the text-to-speech channel of a voice channel, for now mainly #text-while voicing <-> Jeepers Creepers
Create an audio file in the repo that is set up if-not-exists if speasier.py
is run, and to create a queue by numbering audio files 1 to 5 and resetting it after that
So we don't have to constantly query the database on HDD/SSD all the time, reduces latency between enter and the start of the message being sent in the voice channel a bit. I guess the best way to do this is to create a :memory: database, and once a user starts speaking for the first time after the bot has been restarted, a copy of their profile is stored in this DB. this way, we only need to lookup the voice from the DB file outside of memory once, until the bot has to restart
We are almost done ๐ฅณ
all that remains is combine the modules and create a working tts bot
For now tts_default
(on/off), soundboard
(on/off), change_channel
(new voicechat)
A command to send a silent message
Bored + not able to work on voice yet = this issue.
Extra commands for debug:
say
we really need a permanent echo command
Make an admin command group with the following commands
unregister
unregisters a user
change_user_voice
changes a users voice
stop
stop the current TTS message
default_voice
set the default voice for unregistered users
Right now, it's possible to fill in a text channel in the 'voice chat' argument for c_vc
and I'm not sure if register
does any check on wheter the channel exists whatsoever.
Instead, both functions need to check wheter the specified channel is a voice channel or not, and return + send a message if it isn't.
Make a command that will automatically read out a bad joke
If the user enters a command that does not exist the bot should reply to that user and tell them rather then just output into a console.
it's not really usefull that we have to manually update the extensions in config.py
, so lets change that
Right now, ?debug uses the very ugly construction of using one of the first arguments as a subcommand, which limits the versatility of arguments that can be used for any of the debug commands. By converting this into a group, it looks nice and tidy, and some commands can be simplified
(linked to #21)
For the soundboard, we'll need to figure out where to get these sounds, preferabbly in MP3 format
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.