Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lire le chat Twitch sans rater de messages

Application qui permet d'avoir un chat en colonne

    12 septembre 2018 à 15:24:36

    Bonjour,

    Je vous présente mon chat en colonne pour Twitch : Lire le chat (plusieurs syntaxe : lirelechat ou aussi : lirelech.at). L'affichage des messages en colonne permet de lire tous les messages sans en rater, pour éviter des allers-retours de haut en bas avec la scrollbar.

    Le lien du site : https://lirelech.at/

    Twitter : @Lirelechat Auteur : @4Trois

    Genèse

    Mon projet est né il y a 1 an de la problématique suivante : comment faire en sorte que le chat Twitch affiche plus de messages ? Lorsque les streamers jouent, ils peuvent très vite être débordés par leur jeu et leur chat.

    Lorsque j'ai réfléchi à cette idée, une contrainte est apparue : on est limité en hauteur, mais on a beaucoup de largeurs inutilisées. J'ai compris qu'un système de colonne était la solution.

    Explication technique : J'ai donc pensé à faire un userScript sur `https://www.twitch.tv/*/chat`, ceci a mobilisé mes compétences en Javascript et CSS pour modifier la page et utiliser les propriétés CSS pour créer des colonnes. J'ai pu constater deux choses : Firefox et Chrome ne gèrent pas la chose de la même façon ; et c'est assez simple d'utilisation quand on a compris le mécanisme pour calculer si le nouveau message va activer les scrollbars ou pas et savoir combien de message à supprimer à la fin pour compenser le nouveau message.

    Ensuite est né un deuxième UserScript, cette fois j'ai entièrement recréé le chat en Javascript de 0, via les WebSocket je me connectais au webIRC de Twitch. Je chargeais l'userScript sur une page d'erreur `https://www.twitch.tv/p/machin/chat/` ceci me permettait de récupérer le Token d'authentification facilement, sans devoir souscrire à une clé API et devoir gérer la connexion OAuth.

    Il y a quelques mois, j'ai décidé de partager mon idée/projet à toutes les personnes qui le souhaitent. Mon application/page web est enregistrée sur Twitch pour l'utilisation de l'API Twitch.

    Sur cette image, nous pouvons remarquer plusieurs détails :

    • Un surlignement orange des messages de salutation (=> bonjour, salut, hello, etc...) ;
    • Un dégradé arc-en-ciel, qui permet de retrouver plus facilement le dernier message que vous avez lu. L'idée est simple : colorer le message par ancienneté pour les retrouver plus facilement après 30 à 40 secondes de concentration sur votre jeu ;
    • L'affiche du flux des connexions et déconnexion au chat.

    Le lien du site : https://lirelech.at/

    Quelques informations techniques supplémentaires

    Ce projet est hébergé sur mon serveur OVH. J'utilise apache 2 comme serveur HTTP, le site est entièrement statique (ni de PHP, ni de Python/Django, ni de JavaScript/nodeJS), le serveur ne connait donc pas le Token qui a été généré par l'API EndPoint de Twitch, ce Token est stocké côté client, je n'ai aucun accès dessus, si l'envie m'en prend de l'utiliser, je ne pourrais pas, ni personne d'autre. J'utilise l'OAuth 2.0 Implicit Grant ce qui me permet d'éviter de devoir utiliser un serveur de script pour générer le Token.

    Pour le côté client, la base : HTML/LESS et Javascript. J'utilise en bibliothèque JavaScript jQuery et Less pour compiler le JS, à l'occasion il faudra que je le minify côté prod.

    Je n'utilise plus les propriétés CSS pour gérer mes colonnes, mais du JavaScript c'est plus fiable et j'ai le même résultat attendu sur tous les navigateurs.

    Bon visionnage,

    43.

    -
    Edité par QuaranteTrois 24 février 2019 à 5:20:30

    • Partager sur Facebook
    • Partager sur Twitter
      14 janvier 2019 à 15:37:15

      J'ai ajouté pas mal de nouveauté ! (Vive le CSS :D)

      [image cachée]

      -
      Edité par QuaranteTrois 26 février 2019 à 16:28:20

      • Partager sur Facebook
      • Partager sur Twitter
        17 janvier 2019 à 0:24:53

        Avant noel j'ai eu Vegas Pros 5 à 25€ grace au Bundle Vegas.

        Je me suis donc relancé à l'édition de video, j'ai donc essayé un petit essai, pour presenter mon projet :

        https://mobile.twitter.com/4Trois/status/1085625110084628481 (attention au volume)

        C'est loin d'être la version finale, c'est même ma première ébauche.

        L'idee de depart consistait à faire défiler plusieurs images avec un rythme soutenu pour ne pas relacher l'attention du public en restant synchro à la musique. Un peu à l'idée d'une pub pour voiture.

        J'ai donc commencé par chercher une musique, libre de droit et compatible a mon utilisation NC. Elle a été légèrement modifié avec plus de reverb, pour la rendre plus dynamique 

         Ensuite j'ai cherché différentes photos de config dualscreen sur google, puis j'ai ajouté des calques dynamiques avec photoshop pour pouvoir changer facilement le contenus des ecrans des PC se trouvant sur les photos.

        EDIT : missclick sur envoyer, donc la suite :

        A partir de ces deux etapes j'ai ouvert Vegas Pro 15. On peut constater plusieurs problèmes :

          - Problème de format, toutes les images ne sont pas en 16/9 ;

          - Probleme de vitesse de zoom ;

          - Je switch peut etre trop vite d'une image à l'autre.

        Si vous avez des conseils n'hésitez pas !

        -
        Edité par QuaranteTrois 17 janvier 2019 à 0:28:47

        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2019 à 19:15:37

          Génial ! Projet qui semble bien fait !
          • Partager sur Facebook
          • Partager sur Twitter
            4 février 2019 à 13:41:12

            Merci !

            J'ai créé un compte Twitter spécialement pour le projet : @lirelechat. Mes Tweets persos et les Tweets de lirelechat ne pouvait pas cohabiter et perdurer ensemble. J'ai donc pris la peine de créer un nouveau compte Twitter.

            Il ne manque plus qu'à me faire connaître ! https://twitter.com/lirelechat/status/1092391768425926660

            J'ai aussi fait une nouvelle maquette du nouveau webdesign ! Image disponible https://zestedesavoir.com/media/galleries/6109/b7f642f5-2b73-440f-ab6e-f28f215fcedd.png

            -
            Edité par QuaranteTrois 5 février 2019 à 15:02:37

            • Partager sur Facebook
            • Partager sur Twitter
              22 février 2019 à 3:23:07

              J'ai eu un peu de mal à faire cette vidéo d'intro.

              J'avais commencé avec Vegas Pro 15 mais j'avais un lag dans l'animation, au final j'ai refais mon projet sur After Effect puis j'ai rencontré des difficultés pour encoder la vidéo en 1080p60fps, après 4 heures d'essais, j'ai lâché l'affaire pour finalement encoder en 1080p25fps. :')

              https://youtu.be/91zRTR9CWdo

              • Partager sur Facebook
              • Partager sur Twitter
                24 février 2019 à 5:21:43

                Je me suis amusé à faire cette maquette, la souris est animée quand vous passez le curseur sur l'écran de gauche.

                http://liremonch.at/en/demo/rifftrax

                :)

                -
                Edité par QuaranteTrois 24 février 2019 à 5:23:25

                • Partager sur Facebook
                • Partager sur Twitter
                  24 février 2019 à 10:56:10

                  Vraiment cool comme projet. C'est pas très beau mais bon. T'as pensé à juste utiliser bootstrap pour que le site soit plus agréable ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 février 2019 à 18:47:52

                    lol

                    -
                    Edité par QuaranteTrois 24 février 2019 à 21:03:47

                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 février 2019 à 20:21:06

                      ?

                      J'rigole pas, c'est assez moche et ça fait pas clean du tout, utiliser un framework CSS te permettrait d'avoir un look plus pro, plus cohérent et une meilleure UX.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 février 2019 à 21:07:56

                        C'est tellement tourné vers la critique non constructive que LOL. Ce n'est pas l'outil qui fait la beauté d'un site, ce n'est pas parce que je vais me mettre à l'utiliser que je vais forcement bien faire ou faire mieux. Je pourrais même faire pire en pensant bien faire avec Bootstrap.

                        J'apprécierais des arguments plutôt qu'une critique brute sur laquel, je ne peux pas travailler. J'ai plus l'impression d'un troll qu'autres choses.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 février 2019 à 0:04:44

                          Mais je vois pas que ce tu trouves pas constructif / ne comprend pas ?

                          Regarde moi ce screenshot que t'as pris toi-même : https://pbs.twimg.com/media/DvyhIPgXQAEwO0n.jpg

                          C'est un bordel innommable ce truc, y a des couleurs partout, des fonds blancs sans raison sous les pseudos, les smileys dépassent des box, les marges ont l'air d'une taille complètement aléatoire, et de façon globale ça fait juste ultra daté, on dirait un site des années 2000.

                          Tiens allez, je t'ai pondu ça en 10 minutes : http://image.noelshack.com/fichiers/2019/09/2/1551135830-sans-titre-1.jpg 

                          J'ai juste pas vraiment changé la topbar parce que j'ai plus le temps. Liseré orange = "spam", liseré vert = "first".

                          Le CSS si ça t'intéresse : 

                          .message {
                          	padding: 5px;
                          	border: 1px solid #c3c3c3;
                          }
                          
                          .msg-content > p {
                          	border: none;
                          	background-color: white !important;
                              box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
                              margin-bottom: 10px !important;
                          }
                          
                          .msg-content > p .badge {
                          	margin-right: 3px;
                          }
                          
                          #chatContainer #upstream .colonne,
                          #chatContainer .colonne {
                          	background: none;
                          	border: none;
                          	padding: 10px;
                          }
                          
                          .msg-content > p.premierpas,
                          .msg-content > p.SPAM {
                          	padding-right: 9px;
                          }
                          .msg-content > p.premierpas:before {
                          	content: "";
                          	width: 4px;
                          	bottom: 0;
                          	background: #aaefa5;
                          }
                          
                          .msg-content > p.SPAM:after {
                          	content: "";
                          	width: 4px;
                          	top: 0;
                          	background: #ffb873 !important;
                          }
                          
                          body {
                          	background: #eef0f2;
                          }
                          
                          #chatContainer {
                          	background: none;
                          }
                          
                          #toolbar {
                          	border: none;
                              box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important;
                              background: #4b367c;
                          }
                          
                          #toolbar div.login {
                          	background: #232127;
                          	border: none;
                          	color: white;
                          	border-radius: 0;
                          }
                          



                          -
                          Edité par SachaDuBourgPalette 26 février 2019 à 0:06:24

                          • Partager sur Facebook
                          • Partager sur Twitter
                            26 février 2019 à 2:52:42

                            > des fonds blancs sans raison sous les pseudos,

                            Si, 30% des pseudos supportent mal les fonds colorés. :lol:

                            > les smileys dépassent des box

                            C'était voulu (surtout car ça cassait le line-height). Au départ, je voulais afficher le plus de message possible mais en faite afficher déjà 3 colonnes c'est déjà bien (d'où ma récente mise à jour du style "espacé"). C'est vrai qu'ajouter un padding ça ne fait pas de mal.

                            Oh merci je garde : http://image.noelshack.com/fichiers/2019/09/2/1551135830-sans-titre-1.jpg pour le fond noir&blanc.

                            Au début mon site n'était pas fait pour être joli et fonctionnel - il convenait très bien en dégradé et facilité grandement la lecture du chat en plein jeu. Je vais essayais de revoir le dégradé. J'y tiens à mes messages dégradés.

                            Je m'embête à calculer le dégrader pour faciliter la lecture.

                            const color = HSV2RGB(__QT_NUMBER_i, 0.3, 1);
                            
                            $p.css("background-color", RGB2HEX(color)); //"rgb("+color.r+", "+color.g+", "+color.b+")");
                            __QT_NUMBER_i = (__QT_NUMBER_i <= 1) ? __QT_NUMBER_i + 0.012 : 0;



                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              26 février 2019 à 8:41:18

                              Je ne peux que rejoindre Sacha, c'est affreux...

                              Aujourd'hui un utilisateur cherche une interface simple et épurée (voir Openclassroom, Google, Twitch etc)

                              Toi, tu fais compliqué dans l'affichage des données et en plus ca repousse l'œil !

                              Voila pourquoi on a mis en place bootstrap et autres utilitaires pour ceux comme toi et moi, qui n'arrivent pas à créer un design cohérent .

                              Pour finir, en postant ton Message sur le forum tu acceptes d'être critiqué, ce sont les règles .

                              • Partager sur Facebook
                              • Partager sur Twitter
                                26 février 2019 à 16:58:02

                                Ce n'est pas vraiment un problème d'utiliser ou non un framework CSS, c'est qu'au début ce script a été conçu pour un cercle limité d'usagers qui voulaient simplement :

                                 - Voir beaucoup de messages (donc les colonnes) ;

                                 - Suivre facilement les messages après avoir quitté des yeux le chat pendant 30-40 secondes (donc les couleur en dégradé).

                                Je ne me suis donc pas posé la question de suivre un thème en flat design car l'apparence ne comptait pas seulement le contenu. Et aujourd'hui, je me suis habitué au design, ça ne me choque plus, je me concentre sur les messages.

                                ---------

                                SachaDuBourgPalette : J'ai suivi ce que tu m'as conseillé, je continuerais pour modifier les card/thumbnail lors de sub ou de gift.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  26 février 2019 à 19:34:00

                                  Ouais je pense que la version N&B est très bien maintenant, et la version colorée est également plus lisible.

                                  Je comprend qu'à la base tu l'as surtout fait pour toi et pour une petite communauté, mais je pense que ça a un vrai potentiel pour devenir un truc vachement utilisé, du coup c'est pertinent d'avoir un design professionnel pour attirer les gens.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    27 février 2019 à 0:41:27

                                    Je comprend qu'à la base tu l'as surtout fait pour toi et pour une petite communauté, mais je pense que ça a un vrai potentiel pour devenir un truc vachement utilisé, du coup c'est pertinent d'avoir un design professionnel pour attirer les gens.

                                    C'est ce que je souhaite faire, mon nombre d'utilisateurs journaliers ne me satisfait pas. :/

                                    ----

                                    Je vais revoir la toolbar, j'ai quelques idées. Mettre les options la dedans m'avait permis de gagner du temps pour les intégrer. Je pense aussi intégrer dat.gui avec différents niveaux de réglages : simple/avancé.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      28 février 2019 à 21:06:46

                                      Bonjour :)

                                      Pour dire vrai, j'ai jamais utilisé Twitch, et en voyant le projet, j'etait perplexe mais l’idée et géniale ! Même si, je l'accorde, le look peut être amélioré. 

                                      Je n’hésiterai pas à mettre la banniere dans ma signature :D

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        14 mars 2019 à 23:39:14

                                        Merci ;)

                                        J'ai modifié la police d'écriture du site pour rendre l'écriture plus légère et aéré. Je travaille actuellement sur le support de Youtube, l'ajout d'une fonctionnalité "streamdeck virtuel" --> Notamment si le streamer à une tablette mais aucun streamdeck.

                                        Je travaille aussi le support du KeyEvent via un logiciel qui interagira avec le chat en websocket (en local). Ceci me permettra :

                                        • de créer une animation/source obs pour afficher les touches presser de l'ordinateur (ça fonctionnera aussi en réseau local si le streamer à un PC de jeu et un PC pour la capture).
                                        • de pouvoir mettre un listener pour le streamdeck.
                                        Le streamer pourra choisir quel touche partager :

                                        Le logiciel est en VB/WinForm, je pense intégrer un visuel HTML au lieu d'utiliser directement les controls de winform. Ceci me permettrait d'obtenir un rendu plus propre.

                                        -
                                        Edité par QuaranteTrois 14 mars 2019 à 23:40:05

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          21 mars 2019 à 17:23:28

                                          J'ai mis à jour le thème de la page d'accueil :

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            18 mars 2020 à 14:26:00

                                            Le support pour Mixer arrive bientôt : https://twitter.com/lirelechat/status/1240265445652992002

                                            -
                                            Edité par QuaranteTrois 18 mars 2020 à 14:26:39

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              6 juillet 2020 à 19:29:52

                                              J'ai intégré mixer, il y a quelques mois mais avec l'annonce de fusion de Mixer et de Facebook gaming, je ne sais pas si le support va durer longtemps.
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Lire le chat Twitch sans rater de messages

                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                              • Editeur
                                              • Markdown