Thema: Briefkasten Parser
-
13.07.2012, 23:08 #1
- Registriert seit
- 22.05.2012
- Beiträge
- 203
Thanked 21 Times in 9 PostsBriefkasten Parser
Hier habt ihr eine Klasse, womit ihr den Inhalt von einer /m parsen könnt. Ist sehr simpel gehalten, nichts besonderes.
Program.cs
/*
Briefkasten Parser
© The Don of NYC - 2012
*/
using KNLib;
using System;
using System.Windows.Forms;
namespace Briefkasten_Parser
{
class Program
{
static void Main()
{
Application.EnableVisualStyles();
Console.Title = "Briefkasten Parser";
KSClient KSC = new KSClient(new Applet("applet.jar"));
KSC.OnTokenReceived += new KSClient.ReceivedHandler(KSC_OnTokenReceived);
KSC.Connect(ChatSystem.DE);
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("<ENTER> Knuddes Login");
Console.ReadLine();
KSC.Login("", "", "");
}
static void KSC_OnTokenReceived(KSClient KSC, String packet)
{
String[] token = packet.Split('\0');
switch (token[0])
{
case "u":
Console.WriteLine("Erfoglreich eingeloggt.");
break;
case "r":
if (token[4].Contains("hat dir gerade"))
KSC.SendMessage("/m +");
break;
case "k":
if (token[1].Contains("Briefkasten"))
new MailBox(token[20]).Show();
break;
}
}
}
}
MailBox.cs
using System;
using System.Windows.Forms;
using System.Collections.Generic;
class MailBox
{
#region Getter
public String Sender
{
get;
private set;
}
public String Date
{
get;
private set;
}
public String Content
{
get;
private set;
}
public List<MailBox> Messages
{
get;
private set;
}
#endregion
public MailBox(String token)
{
Messages = new List<MailBox>();
String[] msg = token.Split(new String[] { "Weiterleiten" }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < msg.Length - 1; i++)
{
Sender = Split(msg[i], "°14°_°BB>_h", 1).Split('|')[0];
Date = Split(msg[i], "|/w "<°°°_#", 1).Split('#')[0];
Content = Split(Split(msg[i], "°>left<°°+0011r+509°", 1), "°+5000°°r°°", 0);
Content = Content.Remove(Content.Length - 1);
Messages.Add(new MailBox(Sender, Date, Content));
}
}
public void Show()
{
foreach (MailBox mBox in Messages)
{
MessageBox.Show(String.Format("Absender: {0}\nDatum: {1}\nNachricht:\n{2}", mBox.Sender, mBox.Date, mBox.Content),
"Neue Nachricht", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private MailBox(String sender, String date, String content)
{
this.Sender = sender;
this.Date = date;
this.Content = content;
}
private String Split(String str, String separator, int index)
{
try
{
return str.Split(new String[] { separator }, StringSplitOptions.RemoveEmptyEntries)[index];
}
catch (IndexOutOfRangeException)
{
return String.Empty;
}
}
}
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.