Intercambiar Pokémon hoy: escribes en un grupo, tu mensaje se hunde bajo otros treinta y nadie sabe muy bien qué le falta.
He hecho TradePok para arreglar eso: tu Pokédex apuntada, y encontrar con quién cambiar deja de ser preguntar a gritos.
https://t.co/Y8RixvxKpV
Os presento a FantasyBot, un agente para LaLiga Fantasy que:
- Hace clausulazos💰
- Puja en el último minuto de mercado⏲️
- Optimiza alineaciones en base a las noticias👀
- Estima el valor de un jugador para saber si ficharlo📈
Y cualquier cosa que puedas hacer tú en la app ;)
Stack: React + Next.js, backend en Python, SQLite, bot en https://t.co/WsdvJu7W58. Todo en un VPS.
Gratis, sin publicidad y sin ánimo de lucro. Es un proyecto de fans.
https://t.co/s9gAP3AEQj
Llevo unas semanas construyendo TradePok, una web para organizar intercambios de Pokémon.
Esta semana la he sacado de mi propio Discord para que funcione en cualquier servidor. Cuento lo que he aprendido, incluido el agujero de seguridad que casi dejo abierto.
En una plataforma cuyo único activo es la confianza, eso es lo peor que te puede pasar.
Arreglado con un token opaco de un solo uso y 15 minutos de vida. Canje con un UPDATE atómico, para que dos peticiones simultáneas no pasen las dos.
El fallo que casi dejo pasar:
Para vincular la cuenta de Discord al registrarse usaba un enlace con el discord_id dentro.
Pero un ID de Discord no es un secreto. Se copia con dos clics.
Cualquiera podía registrarse con el ID de otro y heredar su reputación
Y ahí salió algo mejor.
Solo necesito saber si un usuario REGISTRADO está en un servidor. El resto de miembros no se consultan nunca.
Así que guardo solo la intersección: de 50.000 filas a unos cientos. Y de paso dejo de almacenar IDs de gente que nunca usó mi web.
La decisión difícil fue: cuando alguien publica un anuncio, ¿en qué servidores debe aparecer?
Preguntarle a Discord si el usuario está en cada servidor es una llamada por servidor y por anuncio. Insostenible.
Solución: tabla de miembros de entrada y salida.
El punto de partida: un bot atado a un servidor con el ID fijo en una variable de entorno.
Pasar a multiservidor cambia una sola cosa, pero lo cambia todo: nada puede estar fijo. Canal, filtros, roles... todo pasa a ser una fila en una tabla con su guild_id.
El resultado va en la propia dirección: la copias y la pegas donde quieras. No guardamos nada de lo que escribes.
Está en beta y le faltan comprobaciones. Si ves algo mal, dímelo.
https://t.co/OlMeztjwnZ
¿Ese Pokémon que te van a pasar es lo que dicen?
Revisor gratis y sin cuenta: pones sus datos de HOME —cintas, sellos, ball, símbolo de origen— y te dice qué no cuadra.
No da veredictos, da señales.
En beta: se irán añadiendo comprobaciones.
https://t.co/OlMeztjwnZ
Lo que NO hace:
No dice «legal» ni «ilegal».
Solo se ve lo visible, y un Pokémon generado con oficio pasa esas comprobaciones sin despeinarse. Son señales para preguntar, no para acusar a nadie.