Coder Social home page Coder Social logo

atrium's People

Contributors

d5xyder avatar dependabot[bot] avatar maetis0511 avatar p0slx avatar

Watchers

 avatar

atrium's Issues

/convert

La commande peut être très vaste, mais ça pourrait être utile de pouvoir faire un /convert avec un lien de message (ou lien de fichier) et de le convertir dans un autre format selon une liste prédéfinie.

Pour les vidéos/GIF, je pense que l'utilisation de ffmpeg sera la meilleure solution sachant qu'il est déjà présent dans le bot.

Peut-être avoir une option pour le nombre de FPS, nombre de couleurs et la compression appliqué

Crash lors d'un mauvais retour d'API de yt-dlp pour les liens Twitter

Dans de rare cas, yt-dlp ne retourne pas un JSON valide / pas avec toutes les infos et fait donc crash le programme.

Il faudrait donc trouver un moyen de check si tout les champs sont bien valide car un .toString() est effectué avant envoie de l'embed.
Si il manque des champs alors on refait appel à yt-dlp avec le même lien, si il manque ENCORE des champs alors on répond au message avec un message d'erreur et on log une exception

/mute

Implémentation de la commande /mute avec un timeout (optionnel) et un pseudo en paramètre.

Format :
/mute <user> [timeout]

Pagination dans /ladder

Grâce à la commande /profileadd il est possible d'ajouter une personne à la BDD des personnes à fetch lors de la commande /ladder, or on ne peut mettre qu'une quantité limité de champs dans un embed.

Il faudrait faire un système de pagination s'il y a beaucoup de personnes dedans.
Discord.JS supporte maintenant les bouttons

Idéalement il faudrait faire un bouton suivant/précédent en dessous de l'embed et le modifier (si possible) après appuis sur un des boutons.
Le discord de r/jailbreak a parfois des choses comme ça, donc il faudrait essayer de voir comment ils ont fait.

Ce système pourrait être utilisé aussi pour autre chose donc c'est pas du temps de perdu.

Service systemd pour reboot le bot en cas de crash

Il est souvent arrivé que le bot crash suite à une exception qui n'a pas été catch.
Il y a déjà un fichier .service dans le repo mais pour l'instant il ne marche pas (crash lors du systemctl start)

Il faudrait prendre le temps de le déployer et de faire un système de log pour écrire l'exception dans un fichier avec le lien qui est en cause (car 100% des crash sont dû à yt-dlp pour l'instant suite à un mauvais retour d'API)

/log-deleted serialize pb

Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]: node:events:491
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:       throw er; // Unhandled 'error' event
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:       ^
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]: TypeError: Cannot read properties of undefined (reading 'serialize')
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at Object.execute (/home/p0slx/Atrium/events/messageDelete.js:15:12)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at Client.<anonymous> (/home/p0slx/Atrium/index.js:39:50)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at Client.emit (node:events:513:28)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at MessageDeleteAction.handle (/home/p0slx/Atrium/node_modules/discord.js/src/client/actions/MessageDelete.js:24:16)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at module.exports [as MESSAGE_DELETE] (/home/p0slx/Atrium/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_DELETE.js:4:32)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at WebSocketManager.handlePacket (/home/p0slx/Atrium/node_modules/discord.js/src/client/websocket/WebSocketManager.js:352:31)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at WebSocketShard.onPacket (/home/p0slx/Atrium/node_modules/discord.js/src/client/websocket/WebSocketShard.js:489:22)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at WebSocketShard.onMessage (/home/p0slx/Atrium/node_modules/discord.js/src/client/websocket/WebSocketShard.js:328:10)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at callListener (/home/p0slx/Atrium/node_modules/ws/lib/event-target.js:290:14)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at WebSocket.onMessage (/home/p0slx/Atrium/node_modules/ws/lib/event-target.js:209:9)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]: Emitted 'error' event on Client instance at:
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at emitUnhandledRejectionOrErr (node:events:394:10)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]:     at process.processTicksAndRejections (node:internal/process/task_queues:84:21)
Jan 12 10:52:24 ARM-Server start_atrium.sh[3313971]: Node.js v19.2.0

Retirer les # TikTok

Ça prend beaucoup de place sur l'écran pour rien, car personne les lis, donc autant que ce soit retiré avec un reg ex.

GIF Reddit reconnu comme des vidéos

Avec yt-dpl, les gifs sont reconnu comme des vidéos, j'ai pas regardé de plus loin d'où ça venait mais certainement du parsing quand ça check l'extension du fichier pour différencier les images des vidéos.

Ça a pour conséquence d'appeler ffmpeg sur un gif pour le transformer en MP4 et donc rend le GIF illisible, de plus ça rajoute du temps CPU pour rien.

Logger

Mis à part le stack trace lors d'un crash, on a rien pour savoir ce qui a causé un crash de l'app.
Il faudrait trouver un moyen de log toutes les exceptions y compris celle non catch et de dump les variables locales pour faciliter le debug.
J'ai trouvé un logger léger et en async qui pourrait faire l'affaire : pinojs

ffmpeg WASM

Au lieu de faire spawn un subprocess pour utiliser ffmpeg, il serait préférable d'utiliser ffmpeg WASM.
Ça rendra le code plus lisible d'une part et ce sera aussi plus simple à utiliser.

Redondance des liens

Comme certains utilisateurs ne regardent pas le contenu du channel avant de poster quelque chose, il serait bien de pouvoir garder en mémoire les liens envoyés dans la journée quel que soit le channel.

Le bot aurait comme comportement de supprimer le message contenant le lien déjà envoyé dans la journée et d'envoyer un message citant le lien original.

Impossible d'upload la vidéo si elle est trop lourde

Une vidéo de yt-dlp peut fail à s'upload si la vidéo est trop lourde pour la taille max d'upload du serveur.

Je ne sais pas si c'est possible mais le truc bien serait de GET le rang du serveur niveau boost et donc savoir la taille max possible d'upload et choisir entre :

  • Trop gros et donc balancer le lien de la vidéo directement
  • < taille max -> upload la vidéo

Twitter et Reddit non fontionnel

Depuis quelques jours, Reddit et Twitter ne marche plus, certainement un problème de yt-dlp, je n'ai pas check les logs encore, mais je pense que ça vient de là.
Peut-être update le paquet ? Structure du JSON qui a changé ?

Conversion vidéo avant envoie

Comme les fichiers sont directement téléchargés depuis le serveur, ils sont parfois assez lourds (40-50 Mo) et pour les petites connexions, ça peut être très lent à charger.
Avec le nouveau serveur, il est capable de convertir bien plus rapidement les fichiers que le précédent.
À voir selon le temps que ça met, mais c'est peut-être une solution.

Voir pour réduire la résolution. (pas besoin de FHD pour une vidéo Twitter)
Et appliquer une compression sans trop d'impact sur l'image (ffmpeg crf 28-32 ?) et voir l'impact sur les perfs.

Tech news

Dans un nouveau channel, il faudrait voir pour publier régulièrement des actualités sur l'informatique en général.
Essayer de voir pour les flux RSS ?
Le forum de Linux Tech Tips a les informations les plus importantes pour ce genre de fonctionnalité.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.