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.
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.