My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
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