Client irc qui lit à voix haute

Description

Un client IRC fait en C# qui utilise MSreader et la classe SpeechSynthesizer. Il suffit de downloader MSreader là :
http://www.microsoft.com/reader/fr/downloads/pc.mspx et le pack Français : http://www.microsoft.com/reader/fr/downloads/tts.mspx

Explications:
Envoyer un message : il faut écrire son nom dans la barre d'en haut et le message
dans la barre d'en bas, pareil pour joindre un canal sauf il ne faut pas mettre le #
Le bouton commande permet d'envoyer des commandes directement comme avec telnet par exemple :
PONG :1228970362
Le textbox à côtés des infos affiche s'il y a des erreurs.
Les messages privés vont dans Messages reçus et ceux venant du serveur
Le reste va dans la fenêtre de chat.

Source / Exemple :


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;// TcpClient
using System.IO; //StreamWriter StreamReader
using System.Threading; // Pour pas que le prog. gèle
using System.Speech.Synthesis; // Pour faire parler la machine 
using System.Text.RegularExpressions; // on utilise les regex pour décortiquer les infos reçus

namespace IrcRobot
{
    public partial class Form1 : Form
    {
        //références à cause des opérations inter-threads
        public static ListBox listBox;
        public static ListBox listBoxRecu;
        public static TextBox textbox;
        public static TextBox textbox2;
        public static Button boutonConnect;

        // Irc server to connect 
        public static string SERVER; //= "chat.freenode.net";//eu.undernet.org
        // Irc server's port (6667 is default port)
        private static int PORT;// = 6667;
        // User information defined in RFC 2812 (Internet Relay Chat: Client Protocol) is sent to irc server 
        private static string USER;// = "USER CSharpBot 8 * :I'm a C# irc bot";
        // Bot's nickname
        public static string NICK ;
        // Channel to join
        public static string CHANNEL;//= "#itsatest"

        // Les streams de lecture et écriture
        public static StreamWriter writer;
        public static StreamReader reader;
        public TcpClient irc;// = new TcpClient(SERVER, PORT);

        // string d'entrée chat
        static public string inputLine;
        // Liste de fenêtres de chat
        public static List<Form> ListeChat = new List<Form>();

        private delegate void Yo();
        // Pour vérifier si la dernière entrée du chat correspond à quelque chose
        private string test;
        // Pour faire parler la machine
        static public SpeechSynthesizer speaker = new SpeechSynthesizer();

        //regex
        Regex regex1;
        

        public Form1()
        {
            InitializeComponent();
            // Références
            listBox = lbMsgEnvoi;
            textbox = tberreur;
            textbox2 = tbMessage;
            listBoxRecu = lbMsgRecu;
            boutonConnect = btnConnexion;

            // Configuration du Speech
            //speaker.Rate = 1;
            speaker.Volume = 100;
            speaker.SelectVoiceByHints(VoiceGender.Female); // La voix est anglais par défaut donc on met le FR 

            // Pour réponse automatique 
            regex1 = new Regex("lol", RegexOptions.IgnoreCase);
        }

        // --------------------------------------------------------------------------
        // Bouton qui connecte
        // --------------------------------------------------------------------------
        private void btnconnexion_Click(object sender, EventArgs e)
        {
           // NetworkStream stream;

            // Variables prises dans Form1
            SERVER = tbInfoServer.Text;
            PORT = Convert.ToInt32(tbInfoPort.Text);
            NICK = tbInfoNick.Text;
            CHANNEL = tbInfoChannel.Text;
            USER = tbInfoUser.Text;//Meuuuu21 8 * :My name is bot

            // Se connecte et crée un objet pour lire et écrire
            try
            {
                new Thread(delegate()
            {
                irc = new TcpClient(SERVER, PORT);
                NetworkStream stream = irc.GetStream();
                //Encoding.Default automatically gets the encoding with the same codepage used by your system
                // Si on met pas d'encoding on aura pas les accents 
                reader = new StreamReader(stream, System.Text.Encoding.Default);
                writer = new StreamWriter(stream);

....... bon allez voir le source c'est pas très compliqué

Conclusion :


C'est facile de modifier le code pour l'adapter par exemple utiliser le ton de voix anglais.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (pigedanslelac)