-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
128 lines (115 loc) · 3.91 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using agsXMPP;
using agsXMPP.protocol.client;
using agsXMPP.Collections;
using agsXMPP.protocol.iq.roster;
using System.Threading;
using ActualMessage = agsXMPP.protocol.client.Message;
using System.Net;
using System.Text.RegularExpressions;
using System.Globalization;
using System.IO;
namespace JABBERNAUT
{
public enum Games { None, HotAndCold }
class Program
{
static List<Utilisateur> online;
public static XmppClientConnection xmpp = new XmppClientConnection("chat.facebook.com");
static void Main(string[] args)
{
online = new List<Utilisateur>();
Thread query = new Thread(TellUsTheTruth);
query.IsBackground = true;
Console.WriteLine("JID: [email protected]");
string JID_Sender = "[email protected]";
string Password = "";
using (StreamReader sR = new StreamReader("pw.txt"))
{
Password = sR.ReadLine();
}
Jid jidSender = new Jid(JID_Sender);
xmpp.Open(jidSender.User, Password);
xmpp.OnMessage += xmpp_OnMessage;
xmpp.OnLogin += new ObjectHandler(xmpp_OnLogin);
xmpp.OnClose += xmpp_OnClose;
xmpp.OnError += xmpp_OnError;
xmpp.OnPresence += new PresenceHandler(xmpp_OnPresence);
query.Start(xmpp);
while (true)
{
if (Console.ReadKey(true).Key == ConsoleKey.Q)
{
xmpp.Close();
break;
}
}
}
static void xmpp_OnMessage(object sender, ActualMessage msg)
{
var user = GIMME(msg.From);
string uName = user.infos.FirstName;
Program.Loggit(user, msg.Body, ConsoleColor.Green);
if (!string.IsNullOrEmpty(msg.Body))
{
//FAIRE UN INPUTHANDLER POUR LES INPUT!!!!!
//non raph tayeule
user.Input(msg.Body);
}
}
private static Utilisateur GIMME(Jid jid)
{
var toReturn = online.Find(a => a.ID.User == jid.User);
if (toReturn == null)
{
toReturn = new Utilisateur(jid);
online.Add(toReturn);
Program.Loggit(toReturn, "Added!", ConsoleColor.Blue);
toReturn.Input("aide");
}
return toReturn;
}
static void xmpp_OnClose(object sender)
{
Console.WriteLine("Connection closed");
}
static void xmpp_OnError(object sender, Exception ex)
{
Console.WriteLine(ex.Message);
}
private static void TellUsTheTruth(object obj)
{
while (true)
{
Console.Title = string.Format("Connection State:{0} -- Authenticated?:{1}", xmpp.XmppConnectionState, xmpp.Authenticated);
Thread.Sleep(100);
}
}
public static void Loggit(Utilisateur user, string message, ConsoleColor color)
{
Console.ForegroundColor = color;
Console.Write("<{0}>", user.infos.Name);
Console.ResetColor();
Console.WriteLine(message);
}
private static void xmpp_OnPresence(object sender, Presence pres)
{
if (pres.Type == PresenceType.available)
{
var user = GIMME(pres.From);
string uName = user.infos.FirstName;
}
}
private static void xmpp_OnLogin(object sender)
{
Console.WriteLine("Logged In");
Presence p = new Presence(ShowType.chat, "Online");
p.Type = PresenceType.available;
xmpp.Send(p);
}
}
}