My favorites
▼
|
Sign in
dot-omegle
A .NET library for the Omegle chat network
Project Home
Downloads
Wiki
Issues
Source
Export to GitHub
READ-ONLY: This project has been
archived
. For more information see
this post
.
Search
Search within:
All issues
Open issues
New issues
Issues to verify
for
Advanced search
Search tips
Subscriptions
Issue
1
attachment: recaptcha.patch
(7.2 KB)
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
Index: CleverOmegle/Program.cs
===================================================================
--- CleverOmegle/Program.cs (revision 9)
+++ CleverOmegle/Program.cs (working copy)
@@ -26,6 +26,8 @@
using System.Text;
using ChatterBotAPI;
using dotOmegle;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
namespace CleverOmegle
{
@@ -71,6 +73,8 @@
omegle.Connected += new EventHandler(omegle_Connected);
omegle.UnhandledResponse += new UnhandledResponseEvent(omegle_UnhandledResponse);
omegle.WebException += new EventHandler(omegle_WebException);
+ omegle.CaptchaRequired += new CaptchaRequiredEvent(omegle_CaptchaRequired);
+ omegle.CaptchaRefused += new EventHandler(omegle_CaptchaRefused);
omegle.Start();
omegle.omegleMode = true;
omegle.continueRestarts = true;
@@ -84,6 +88,37 @@
return;
}
+ private static void omegle_CaptchaRequired(object sender, CaptchaRequiredArgs e)
+ {
+ Console.WriteLine("Captcha Required. Press any key to launch browser.");
+ Console.ReadKey();
+
+ PostSubmitter post = new PostSubmitter();
+ post.Url = "http://www.google.com/recaptcha/api/challenge";
+ post.PostItems.Add("k", e.id);
+ post.PostItems.Add("ajax", "1");
+ post.Type = PostSubmitter.PostTypeEnum.Get;
+
+ string response = "{" + post.Post().Split(new char[] {'{','}'})[1] + "}";
+ string challenge = JsonConvert.DeserializeObject<JObject>(response)["challenge"].ToString();
+
+ System.Diagnostics.Process.Start("http://www.google.com/recaptcha/api/image?c=" + challenge);
+
+ Console.Write("Please Input Captcha: ");
+ string userInput = Console.ReadLine();
+
+ if (userInput != string.Empty)
+ omegle.SendCaptcha(challenge, userInput);
+ else
+ omegle.MainLoop();
+ }
+
+ public static void omegle_CaptchaRefused(object sender, EventArgs e)
+ {
+ Console.WriteLine("Captcha invalid.");
+ omegle.MainLoop();
+ }
+
private static void omegle_UnhandledResponse(object sender, UnhandledResponseEventArgs e)
{
Console.WriteLine(e.response);
Index: dotOmegle/CaptchaRequiredArgs.cs
===================================================================
--- dotOmegle/CaptchaRequiredArgs.cs (revision 0)
+++ dotOmegle/CaptchaRequiredArgs.cs (revision 0)
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace dotOmegle
+{
+ public class CaptchaRequiredArgs : EventArgs
+ {
+ public string id;
+ //public string url;
+
+ public CaptchaRequiredArgs(string id)
+ {
+ this.id = id;
+ //this.url = "http://www.google.com/recaptcha/api/challenge?k=" + id + "&ajax=1&cachestop=0.7569315146943529";
+ }
+ }
+
+ public delegate void CaptchaRequiredEvent(object sender, CaptchaRequiredArgs e);
+}
Index: dotOmegle/Omegle.cs
===================================================================
--- dotOmegle/Omegle.cs (revision 9)
+++ dotOmegle/Omegle.cs (working copy)
@@ -57,6 +57,9 @@
public event EventHandler Count;
public event EventHandler WebException;
public event UnhandledResponseEvent UnhandledResponse;
+ public event CaptchaRequiredEvent CaptchaRequired;
+ public event EventHandler CaptchaRefused;
+
/// <summary>
/// Raised when the application is still looking for a partner to connect to.
/// </summary>
@@ -147,6 +150,18 @@
return sendPost.Post();
}
+ public string SendCaptcha(string challenge, string response)
+ {
+ PostSubmitter sendPost = new PostSubmitter();
+ sendPost.Url = "http://bajor.omegle.com/recaptcha";
+ sendPost.PostItems.Add("id", ID);
+ sendPost.PostItems.Add("challenge", challenge);
+ sendPost.PostItems.Add("response", response);
+ sendPost.Type = PostSubmitter.PostTypeEnum.Post;
+
+ return sendPost.Post();
+ }
+
public void StartTyping()
{
PostSubmitter sendPost = new PostSubmitter();
@@ -219,34 +234,42 @@
switch (event_)
{
//we need to prefix and suffix each one with a literal " character
- case "\"connected\"":
+ case "connected":
if (this.Connected != null)
this.Connected(this, new EventArgs());
break;
- case "\"strangerDisconnected\"":
+ case "strangerDisconnected":
if (this.StrangerDisconnected != null)
this.StrangerDisconnected(this, new EventArgs());
break;
- case "\"gotMessage\"":
+ case "gotMessage":
if (this.MessageReceived != null)
this.MessageReceived(this, new MessageReceivedArgs(ev[1].ToString().TrimStart('"').TrimEnd('"')));
break;
- case "\"waiting\"":
+ case "waiting":
if (this.WaitingForPartner != null)
this.WaitingForPartner(this, new EventArgs());
break;
- case "\"typing\"":
+ case "typing":
if (this.StrangerTyping != null)
this.StrangerTyping(this, new EventArgs());
break;
- case "\"stoppedTyping\"":
+ case "stoppedTyping":
if (this.StrangerStoppedTyping != null)
this.StrangerStoppedTyping(this, new EventArgs());
break;
- case "\"count\"":
+ case "count":
if (this.Count != null)
this.Count(this, new EventArgs()); //I'm a cheapskate, ev[1] holds user count though.
break;
+ case "recaptchaRequired":
+ if (this.CaptchaRequired != null)
+ this.CaptchaRequired(this, new CaptchaRequiredArgs(ev[1].ToString()));
+ break;
+ case "recaptchaRejected":
+ if (this.CaptchaRefused != null)
+ this.CaptchaRefused(this, new EventArgs());
+ break;
case "error": // should probably handle this one
case "spyMessage":
case "spyTyping":
Powered by
Google Project Hosting