Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agregar comandos con teléfonos y horarios #11

Open
dgarroDC opened this issue Jun 28, 2019 · 18 comments
Open

Agregar comandos con teléfonos y horarios #11

dgarroDC opened this issue Jun 28, 2019 · 18 comments
Assignees
Milestone

Comments

@dgarroDC
Copy link
Member

No description provided.

@dsocolobsky
Copy link
Contributor

dsocolobsky commented Jul 4, 2019

Comando /exinfoteca

Si buscan en el buscador de Telegram van a encontrar una gran cantidad de mensajes con el mismo contenido "Donde esta la ex-infoteca?" Propongo crear el comando"/exinfoteca" que devuelva una breve descripción de donde se encuentra, o mejor, una foto (hay algunas si buscan en el grupo de Computación).

@rozen03 rozen03 self-assigned this Jul 5, 2019
@rozen03 rozen03 modified the milestones: /telefonos, /horarios Jul 5, 2019
@rozen03
Copy link
Collaborator

rozen03 commented Jul 5, 2019

Comando /exinfoteca

Si buscan en el buscador de Telegram van a encontrar una gran cantidad de mensajes con el mismo contenido "Donde esta la ex-infoteca?" Propongo crear el comando"/exinfoteca" que devuelva una breve descripción de donde se encuentra, o mejor, una foto (hay algunas si buscan en el grupo de Computación).

No sería mas amplio y menos sucio un comando que sea /donde y que mas o menos intente buscar lo que se paresca al argumento?

@dsocolobsky
Copy link
Contributor

Comando /exinfoteca
Si buscan en el buscador de Telegram van a encontrar una gran cantidad de mensajes con el mismo contenido "Donde esta la ex-infoteca?" Propongo crear el comando"/exinfoteca" que devuelva una breve descripción de donde se encuentra, o mejor, una foto (hay algunas si buscan en el grupo de Computación).

No sería mas amplio y menos sucio un comando que sea /donde y que mas o menos intente buscar lo que se paresca al argumento?

Hay tantos lugares que la gente no suela encontrar? Si hay mas de dos o tres supongo que si, se podría hacer eso.

La idea del comando es mas que "Usuario1" pregunte "Che adonde esta la ex-infoteca?" y "Usuario2" que ya sabe del comando en vez de tener que explicarlo y/o buscar la foto simplemenet ponga "/donde exinfoteca" o el comando que sea y salga.

@Oppen
Copy link
Contributor

Oppen commented May 24, 2020

/donde vacío puede retornar la lista de lugares que sabe encontrar.
/donde <lugar> pregunta dónde queda.
/donde <lugar> <ubicación> guarda en qué <ubicación> queda <lugar>.
Cierra? Seguramente el último comando requiera o bien que lo haga un admin o bien que pase por una autorización de admin. No sé bien si se puede hacer lo último.

@Oppen
Copy link
Contributor

Oppen commented May 24, 2020

El flujo sería así:

  1. Usuario U no sabe cómo preguntar por "infoteca".
  2. U llama a /donde.
  3. U mira la respuesta y ve que el bot conoce "infoteca".
  4. U sabe cómo preguntar por "infoteca". Llama /donde infoteca.
  5. El bot responde la ubicación de "infoteca".

Son varios pasos pero es exacto y creo que es bastante fácil.

@Oppen
Copy link
Contributor

Oppen commented May 24, 2020

Ver si hay un nombre más general para incluir teléfonos y todo eso.
Tal vez /lugares.

@araml
Copy link
Contributor

araml commented Sep 4, 2020

Agrege un PR donde en vez de escribir un comando + lugar (que me parece muy error prone), muestra una lista de botones con los posibles lugares y al clickear un boton el bot manda el texto guardado con la locacion/telefono/lo que sea. (Para enviar el texto se usa la misma idea que para sugerir grupos etc sugerirdonde nombre lugar|texto).
@rozen03 @dsocolobsky @dgarroDC @Oppen diganme que opinan.

@Oppen
Copy link
Contributor

Oppen commented Sep 4, 2020

A futuro si queremos ser bien fifi podemos hacer que pase un contacto, no? El PR se ve bien para mí.

@rozen03
Copy link
Collaborator

rozen03 commented Sep 4, 2020

Está testeado? La botonera de donde que hace?
No me queda claro que se haya programado comportamiento para los botones de donde

@Oppen
Copy link
Contributor

Oppen commented Sep 4, 2020

Verdad. Te habrás comido de commitear un archivo?

@araml
Copy link
Contributor

araml commented Sep 4, 2020

No, la respuesta está aca
32a0870#diff-f7290e35defc8eea5aab55a6478f6748R328

y los botones los genera con
32a0870#diff-f7290e35defc8eea5aab55a6478f6748R420

La botonera lo unico que hace es escupir el texto en el chat donde se clickeo el boton.

A futuro si queremos ser bien fifi podemos hacer que pase un contacto, no? El PR se ve bien para mí.

Un contacto de tg o decis el texto de un telefono/mail? Lo segundo es posible ahora, lo primero ni idea como se haría para fwdear un contacto.

@rozen03
Copy link
Collaborator

rozen03 commented Sep 4, 2020

Disculpá me comi esa linea, perfecto entonces, me gusta.
Falta ver si se puede hacer q se borre si se mandan sucesivos mensajes

@araml
Copy link
Contributor

araml commented Sep 7, 2020

Estuve viendo el tema de borrar mensajes, tendria que funcionar para cualquier canal? Si es asi hay que trackear todos los chats en donde usaron el comando /Donde, ya que si solo se guarda el ultimo msg id podes borrar el texto en otros canales, por ej alguien que se fijo por privado.

@dgarroDC
Copy link
Member Author

dgarroDC commented Sep 7, 2020

Tendría que revisarlo mejor quizás, pero no se borran ya los mensajes? Veo que los mensajes enviados los agregás en context.sent_messages, así que ya debería manejarlo bien el https://github.com/rozen03/dcubabot/blob/master/deletablecommandhandler.py (que ya tiene en cuenta lo de los chats en donde se usa el comando).

@araml
Copy link
Contributor

araml commented Sep 7, 2020

Quien llama a eso? Por lo menos en lo que probé yo si spameas click a los botones no se borran los mensajes anteriores.

@dgarroDC
Copy link
Member Author

dgarroDC commented Sep 8, 2020

Ah tenés razón, estaba viendo el mensaje con la lista de botones en vez del mensaje que manda cuando los tocás. Así que ese handler no sé si nos va a servir, habrá que pensar otra cosa. 🤔

@araml
Copy link
Contributor

araml commented Sep 9, 2020

Pero se puede reusar o hay que implementarlo de 0? Habría que trackear en la db todos los chats en los que se uso el comando y limpiar la db constantemente.

@dgarroDC
Copy link
Member Author

A ver, lo que se me ocurre es que podríamos extraer esto a una función que este fuera del DeletableCommandHandler y la puedas llamar desde acá. La función tomaría 3 parámetros:

  • origen: string que dice qué triggereó el mensaje nuevo (un comando, un botón o lo que fuese)
  • chat_id: en qué chat se mandó el mensaje (que también coincide con de qué chat salió el origen que lo triggereó)
  • messages: cuáles son los mensajes nuevos (algunos comandos podrían mandar más de un mensaje nuevo así que por eso es una lista)

La función se encargaría de borrar los mensajes con el origen y chat especificado (por ejemplo, "respuestas al comando /estasvivo en el chat 1" o "respuestas al tocar un botón de /donde en el chat 2"), además de tener como responsabilidad guardar en la base los nuevos mensajes enviados para ese origen y chat para que sean borrados la próxima vez.

En el caso de DeletableCommandHandler mandarías el nombre del comando como origen (self.command[0]), update.effective_chat.id como chat_id y context.sent_messages como messages.

En el caso de acá mandarías algo como /donde button reply en origen (o alguna otra cosa que quieras usar para identificarlo), message.chat_id como chat_id y para messages una lista cuyo único elemento es el mensaje enviado.

Una sutileza es que origen se correspondería con el campo command de SentMessage, con lo cual sería más prolijo renombrar ese campo a origen también, te parece @rozen03? Si es muy complicado lo dejamos como command y ya fue, tampoco es para tanto, igual tampoco me convence tanto el nombre origen.

Con eso creo que estaría cubierto todo. También se me ocurren otras alternativas a no enviar un mensaje como respuesta a los botones, si es que te gusta más:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants