2024-03-24 18:24:15 +01:00
2024-03-24 18:24:15 +01:00
2024-03-24 18:17:11 +01:00
2023-10-31 17:20:18 +01:00
2024-03-24 18:24:15 +01:00
2023-10-31 17:56:31 +01:00

conjuntasbot

Instalación

Crea un Google Spreadsheet con el nombre que quieras y añade una hoja que se llame Socios, aquí añadirás el nombre de los socios del canal.

Haz una copia del archivo .env.example y renómbrala a .env. Rellena los datos necesarios:

  • TELEGRAM_TOKEN: El token del bot
  • ADMIN_IDS: Los IDs de Telegram de quien pueda crear conjuntas, separados por comas
  • GROUP_CHAT_ID: El ID del grupo donde se anclarán los mensajes de las conjuntas
  • SPREADSHEET_ID: El ID del Google Spreadsheet (se obtiene de la URL)

Entra a https://console.developers.google.com/ con tu cuenta de Google y haz click en CREAR PROYECTO, ponle el nombre que quieras. Entra al proyecto recién creado y haz click en + HABILITAR APIS Y SERVICIOS, selecciona Google Drive API y Google Sheets API, una vez añadidas vuelve al proyecto y haz click en Credenciales, luego en + CREAR CREDENCIALES y escoge Cuenta de servicio, ponle un nombre y acepta todo lo siguiente sin poner nada más. Vuelve al apartado de Credenciales y haz click en Administrar cuentas de servicio (en la derecha), luego sobre la cuenta creada, al final verás tres puntos uno encima de otro (Acciones), haz click ahí y luego en Administrar claves, haz click en AGREGAR CLAVE y luego en Crear clave nueva, escoge el formato JSON y créala, se descargará sola. Ahora coge el contenido de esta clave y crea un archivo en la carpeta data que se llame creds.json y pega el contenido del archivo.

Abre el archivo creds.json y coge el mail que aparece en "client_email":, comparte el documento creado en Google Sheets con ese mail y dale permisos de edición.

Ahora ya está todo listo para que funcione, ejecuta docker compose up -d y el bot ya estará en marcha.

Funcionamiento

El administrador usará los comandos en el apartado comandos.

Los usuarios responderán al mensaje anclado en el canal con "me apunto <número>", "me uno <número>", "me desapunto", "me borro"... Esto hará que se actualice el mensaje anclado con la lista de gente apuntada y cantidades.

Las conjuntas creadas pueden tener o no límite de productos, si no hay límite, todo el mundo puede apuntarse con la cantidad que quiera. Si lo hay, también existirá un límite por persona, por lo que se avisará al usuario tanto si supera el límite individual como si no lo supera pero no quedan suficientes productos disponibles (por ejemplo si el límite es de 10 en total y de 4 por persona, si solo quedan 2 productos y alguien quiere apuntarse con 4, no podrá).

Comandos

Los comandos se pueden escribir tanto en el grupo como por privado al bot, mejor esta última opción para no spamear.

/start_conjunta

Empieza una nueva conjunta, el bot te pedirá por orden:

  • Nombre del producto
  • Descripción del producto
  • Precio para socios (solo número)
  • Precio para no socios (solo número)
  • Una foto
  • Límite (si no lo hay, pon /unlimited)
  • Si hay límite, límite por persona
  • Escribir ok para finalizar

Al crearse la conjunta se añadirá a la base de datos interna del bot y se creará una nueva hoja en el documento de Google. También se enviará un mensaje con los datos correspondientes al canal seteado en .env y lo anclará.

/admin_summary

Este comando mostrará las conjuntas que haya ACTIVAS y un pequeño resumen, a su vez mostrará un menú para escoger si quieres ver más información de una conjunta , o cerrarla .

Si eliges mostrar más información, mostrará los detalles y la gente apuntada.

Si eliges cerrarla, la conjunta pasará al estado cerrado, el mensaje del grupo se quitará de mensajes anclados y ya no dejará apuntarse a nadie más. Tampoco se mostrará de nuevo con este comando, pero la hoja seguirá existiendo en el documento de Google Sheets.

Description
No description provided
Readme 58 KiB
Languages
Python 99.7%
Dockerfile 0.3%