Skip to content
Open

#2 #24

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0d24667
Falta alguna cosa, ver comentarios
Thurmiel Aug 15, 2020
d314c1c
He cambiado el texto para que siga algunos patrones de diseño de PEP8
Daniel-Tomas Aug 16, 2020
fda4385
Cambios en el tratamiento de excepciones y casos frontera. Faltan alg…
Daniel-Tomas Aug 17, 2020
eac91a2
Cambio de un error de sintaxis
Daniel-Tomas Aug 17, 2020
eb926bf
Cambio de inicio de comandos (''!' en vez de '$')
Daniel-Tomas Aug 17, 2020
ea367ad
Añadida funcionalidad para que admin o ponentes puedan silenciar (!Ba…
Daniel-Tomas Aug 18, 2020
0dfe497
Cambiada estructura del proyecto, "bot.py" es el archivo principal en…
Daniel-Tomas Aug 19, 2020
9578043
Introducida la extension voice_control en ./Extensions, correspondie…
Daniel-Tomas Aug 19, 2020
5ef0a63
Cambios en la forma de usar y almacenar los roles permitidos (la func…
Daniel-Tomas Aug 21, 2020
9799ba0
Añadido cierre del archivo token.txt
Daniel-Tomas Aug 25, 2020
e39b48d
Añadido un comando nuevo y renombrado los existentes. Modificado todo…
Daniel-Tomas Aug 25, 2020
6fc96bd
Añadido un comando nuevo y renombrado los existentes. Modificado todo…
Daniel-Tomas Aug 25, 2020
1649ebd
Merge remote-tracking branch 'origin/#2' into #2
Daniel-Tomas Aug 26, 2020
be1433a
Subidos archivos para pytest
Daniel-Tomas Sep 1, 2020
6293eb8
Subidos archivos pip
Daniel-Tomas Sep 2, 2020
2f91375
Añadidos archivos para test
Daniel-Tomas Sep 2, 2020
fa1c112
Haciendo del bot una clase
Daniel-Tomas Sep 5, 2020
878c7f3
Añadido el archivo util.py con variables y funciones genéricas. Final…
Daniel-Tomas Sep 7, 2020
d120742
Cambiado el nombre del ficehro con variables, de util a lib
Daniel-Tomas Sep 14, 2020
8f56b71
cambiando la estructura a la propuesta
Daniel-Tomas Sep 22, 2020
e459b88
cambiando la estructura a la propuesta v2
Daniel-Tomas Sep 23, 2020
c8aab9c
Finalizado el cambio a la estructura a la propuesta. Error en comand…
Daniel-Tomas Sep 23, 2020
3fb5b77
Solucionado el anterior problema
Daniel-Tomas Sep 23, 2020
6aacbac
Cambiado un detalle para estar mas seguros
Daniel-Tomas Sep 23, 2020
249895a
cambio sin importancia
Daniel-Tomas Oct 12, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Pipfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
pytest = "*"
discord = "*"

[requires]
python_version = "3.8"
218 changes: 218 additions & 0 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions src/Extensions/logic/lib/voice_variables.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
MUTE = 1
UNMUTE = 0
109 changes: 109 additions & 0 deletions src/Extensions/logic/voice_control.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
from Extensions.logic.lib.voice_variables import UNMUTE, MUTE
from src.Extensions.logic.lib.roles_functions import VOICE_PERMITTED_ROLES_NAMES, have_permitted_rol, \
str_permitted_roles_names


class VoiceControl:

def __init__(self):
self.levantados_ = []

def levantados_logic(self):
if len(self.levantados_) == 0:
result = 'Nadie ha levantado la mano'
else:
result = f'Los usuarios que han levantado la mano, en orden de llegada ' \
f'siendo el de mas a la izquierda el primero, son:\n {", ".join(self.levantados_)}'
return result

def levantar_mano_logic(self, message):
message_author = message.author
result = ""

if message_author.voice is None:
result = 'No puedes levantar la mano si no estas conectado a un canal de voz'
elif message_author.mention not in self.levantados_:
result = "```fix\n" + message_author.display_name + " ha levantado la mano```"
self.levantados_.append(message_author.mention)

return result

def bajar_mano_logic(self, message):
message_author = message.author
message_author_mention = message_author.mention

if message_author.voice is None:
result = 'No puedes bajar la mano si no estas conectado a un canal de voz'

elif message_author_mention in self.levantados_:
result = "```fix\n" + message_author.display_name + " ha bajado la mano```"
self.levantados_.remove(message_author_mention)
else:
result = 'No puedes bajarte la mano si no la has levantado previamente'

return result

@staticmethod
def silenciar_logic(message):
message_author = message.author
message_channel = message.channel
mentions = message.mentions
mention_everyone = message.mention_everyone
result = ["", MUTE, []]

if len(mentions) > 0 or mention_everyone:
if not have_permitted_rol(message_author.roles, VOICE_PERMITTED_ROLES_NAMES):
result[0] = f'Solo puedes silenciarte a ti mismo si no eres ' \
f'{str_permitted_roles_names(VOICE_PERMITTED_ROLES_NAMES)}'
return tuple(result)

if mention_everyone:
for member in message_channel.members:
if member.voice is not None and not have_permitted_rol(member.roles, VOICE_PERMITTED_ROLES_NAMES):
result[2].append(member)
result[0] = "```css\n[Silencio todo el mundo]```"
else:
for member in mentions:
if have_permitted_rol(member.roles, VOICE_PERMITTED_ROLES_NAMES):
result[0] = f'No puedes silenciar a {member.mention} ' \
f'ya que es {str_permitted_roles_names(VOICE_PERMITTED_ROLES_NAMES)}'
elif member.voice is None:
result[0] = f'No puedes silenciar a {member.mention} si no está conectado a un canal de voz'
else:
result[2].append(member)
result[0] = f'A {member.mention} le ha silenciado un ' \
f'{str_permitted_roles_names(VOICE_PERMITTED_ROLES_NAMES)}'
else: # No ha mencionado a nadie (autosilenciar)
if message_author.voice is None: # Si no estas en ningun canal de voz, VoiceState es None
result[0] = 'No puedes silenciarte si no estas conectado a un canal de voz'
else:
result[2].append(message_author)
result[0] = f'{message_author.mention} se ha silenciado'

return tuple(result)

@staticmethod
def desilenciar_logic(message):
message_channel = message.channel
result = ["", UNMUTE, []]

if not have_permitted_rol(message.author.roles, VOICE_PERMITTED_ROLES_NAMES):
result[0] = f'No puedes desilenciar si no eres {str_permitted_roles_names(VOICE_PERMITTED_ROLES_NAMES)}'
return tuple(result)

if message.mention_everyone:
for member in message_channel.members:
if member.voice is not None:
result[2].append(member)

result[0] = "```css\n[A hablar todo el mundo]```"
else:
for member in message.mentions:
if member.voice is None:
result[0] = f'No puedes desilenciar a {member.mention} si no está conectado a un canal de voz'
else:
result[2].append(member)
result[0] = f'A {member.mention} le ha desilenciado un ' \
f'{str_permitted_roles_names(VOICE_PERMITTED_ROLES_NAMES)} :speaking_head:'

return tuple(result)
Loading