esearchy 0.2.0.1 → 0.2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/esearchy +207 -117
- metadata +2 -2
data/bin/esearchy
CHANGED
@@ -18,9 +18,9 @@ if RUBY_PLATFORM =~ /mingw|mswin/
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.puts(color, text)
|
21
|
-
self.color(
|
22
|
-
puts text
|
23
|
-
self.color(
|
21
|
+
self.color(color)
|
22
|
+
Kernel.puts text
|
23
|
+
self.color(7)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -28,9 +28,6 @@ end
|
|
28
28
|
|
29
29
|
require 'rubygems'
|
30
30
|
require 'getoptlong'
|
31
|
-
require 'sqlite3' rescue raise "gem install sqlite3"
|
32
|
-
require 'prawn' rescue raise "gem install prawn"
|
33
|
-
require 'prawn/layout'
|
34
31
|
require 'esearchy'
|
35
32
|
|
36
33
|
ESearchy::log = true
|
@@ -38,15 +35,30 @@ ESearchy::log = true
|
|
38
35
|
@yahoo_key = nil
|
39
36
|
@bing_key = nil
|
40
37
|
@maxhits = nil
|
38
|
+
@docs = true
|
41
39
|
@params = {}
|
42
40
|
@list = []
|
43
41
|
@output = nil
|
44
42
|
|
45
|
-
@email_engines = [:Google, :Bing, :Yahoo, :Altavista, :PGP, :Spider ,:Usenet, :GoogleGroups ]
|
46
|
-
@people_engines = [:LinkedIn, :Naymz, :Classmates, :GoogleProfiles]
|
43
|
+
@email_engines = [] #[:Google, :Bing, :Yahoo, :Altavista, :PGP, :Spider ,:Usenet, :GoogleGroups ]
|
44
|
+
@people_engines = [] #[:LinkedIn, :Naymz, :Classmates, :GoogleProfiles]
|
47
45
|
|
48
46
|
opts = GetoptLong.new(
|
49
47
|
[ '--help', '-h', GetoptLong::NO_ARGUMENT ],
|
48
|
+
[ '--enable-all', GetoptLong::NO_ARGUMENT ],
|
49
|
+
[ '--enable-people', GetoptLong::NO_ARGUMENT ],
|
50
|
+
[ '--enable-emails', GetoptLong::NO_ARGUMENT ],
|
51
|
+
[ '--enable-google', GetoptLong::NO_ARGUMENT ],
|
52
|
+
[ '--enable-yahoo', GetoptLong::NO_ARGUMENT ],
|
53
|
+
[ '--enable-bing', GetoptLong::NO_ARGUMENT ],
|
54
|
+
[ '--enable-altavisa', GetoptLong::NO_ARGUMENT ],
|
55
|
+
[ '--enable-linkedin', GetoptLong::NO_ARGUMENT ],
|
56
|
+
[ '--enable-gprofiles', GetoptLong::NO_ARGUMENT ],
|
57
|
+
[ '--enable-naymz', GetoptLong::NO_ARGUMENT ],
|
58
|
+
[ '--enable-ggroups', GetoptLong::NO_ARGUMENT ],
|
59
|
+
[ '--enable-pgp', GetoptLong::NO_ARGUMENT ],
|
60
|
+
[ '--enable-usenet', GetoptLong::NO_ARGUMENT ],
|
61
|
+
[ '--enable-spider', GetoptLong::NO_ARGUMENT ],
|
50
62
|
[ '--disable-google', GetoptLong::NO_ARGUMENT ],
|
51
63
|
[ '--disable-yahoo', GetoptLong::NO_ARGUMENT ],
|
52
64
|
[ '--disable-bing', GetoptLong::NO_ARGUMENT ],
|
@@ -58,6 +70,7 @@ opts = GetoptLong.new(
|
|
58
70
|
[ '--disable-pgp', GetoptLong::NO_ARGUMENT ],
|
59
71
|
[ '--disable-usenet', GetoptLong::NO_ARGUMENT ],
|
60
72
|
[ '--disable-spider', GetoptLong::NO_ARGUMENT ],
|
73
|
+
[ '--disable-docs', GetoptLong::NO_ARGUMENT ],
|
61
74
|
[ '--query','-q', GetoptLong::REQUIRED_ARGUMENT ],
|
62
75
|
[ '--company','-c', GetoptLong::REQUIRED_ARGUMENT ],
|
63
76
|
[ '--website','-w', GetoptLong::REQUIRED_ARGUMENT ],
|
@@ -71,85 +84,144 @@ opts = GetoptLong.new(
|
|
71
84
|
|
72
85
|
opts.each do |opt, arg|
|
73
86
|
case opt
|
74
|
-
when '--help'
|
87
|
+
when '--help' then
|
75
88
|
# BEGIN OF HELP
|
76
|
-
puts "
|
77
|
-
--help, -h
|
78
|
-
\tWell I guess you know what this is for (To obtain this Help).\n
|
79
|
-
INPUT PARAMS:
|
80
|
-
--query, -q [@domain.com]
|
81
|
-
\t The domain name to search.\n
|
82
|
-
--company, -c [Company Inc]
|
83
|
-
\t The company name to search.\n
|
84
|
-
--website, -w [www.domain.com]
|
85
|
-
\t The website name to spider.\n
|
86
|
-
--yahookey, -y [key]
|
87
|
-
\t The Yahoo API Key .\n
|
88
|
-
--bingkey, -b [key]
|
89
|
-
\t The Bing API Key .\n
|
90
|
-
--filter, -p
|
91
|
-
\t The pattern to use to filter emails.(not fully implemented)\n
|
92
|
-
--file, -f [file_name]
|
93
|
-
\tIf we need to search more than one domain we can provide a list.\n
|
94
|
-
--output, -o
|
95
|
-
\tThe output file name.\n\n
|
96
|
-
PLUGIN OPTIONS:
|
97
|
-
--
|
98
|
-
\t
|
99
|
-
--
|
100
|
-
\t
|
101
|
-
--
|
102
|
-
\t
|
103
|
-
--
|
104
|
-
\t
|
105
|
-
--
|
106
|
-
\t
|
107
|
-
--
|
108
|
-
\t
|
109
|
-
--
|
110
|
-
\t
|
111
|
-
--
|
112
|
-
\t
|
113
|
-
--
|
114
|
-
\t
|
115
|
-
|
89
|
+
puts "nHELP for Esearchy\n---------------------\n"
|
90
|
+
puts "--help, -h"
|
91
|
+
puts "\tWell I guess you know what this is for (To obtain this Help).\n"
|
92
|
+
puts "INPUT PARAMS:"
|
93
|
+
puts "--query, -q [@domain.com]"
|
94
|
+
puts "\t The domain name to search.\n"
|
95
|
+
puts "--company, -c [Company Inc]"
|
96
|
+
puts "\t The company name to search.\n"
|
97
|
+
puts "--website, -w [www.domain.com]"
|
98
|
+
puts "\t The website name to spider.\n"
|
99
|
+
puts "--yahookey, -y [key]"
|
100
|
+
puts "\t The Yahoo API Key .\n"
|
101
|
+
puts "--bingkey, -b [key]"
|
102
|
+
puts "\t The Bing API Key .\n"
|
103
|
+
puts "--filter, -p"
|
104
|
+
puts "\t The pattern to use to filter emails.(not fully implemented)\n"
|
105
|
+
puts "--file, -f [file_name] "
|
106
|
+
puts "\tIf we need to search more than one domain we can provide a list.\n"
|
107
|
+
puts "--output, -o"
|
108
|
+
puts "\tThe output file name.\n\n"
|
109
|
+
puts "PLUGIN OPTIONS:"
|
110
|
+
puts "--enable-all"
|
111
|
+
puts "\t Enables all ( Emails and People) searches.\n"
|
112
|
+
puts "--enable-people"
|
113
|
+
puts "\t Enables all People searches.\n"
|
114
|
+
puts "--enable-emails"
|
115
|
+
puts "\t Enables all Email searches.\n"
|
116
|
+
puts "--enable-google"
|
117
|
+
puts "\t Enables Google searches.\n"
|
118
|
+
puts "--enable-yahoo"
|
119
|
+
puts "\t Enables Yahoo searches.\n"
|
120
|
+
puts "--enable-bing"
|
121
|
+
puts "\t Enables Bing searches.\n"
|
122
|
+
puts "--enable-linkedin"
|
123
|
+
puts "\t Enables LinkedIn searches.\n"
|
124
|
+
puts "--enable-gprogiles"
|
125
|
+
puts "\t Enables Google Profiles searches.\n"
|
126
|
+
puts "--enable-naymz"
|
127
|
+
puts "\t Enables Naymz searches.\n"
|
128
|
+
puts "--enable-ggroups"
|
129
|
+
puts "\t Enables Google Groups searches.\n"
|
130
|
+
puts "--enable-pgp"
|
131
|
+
puts "\t Enables PGP searches.\n"
|
132
|
+
puts "--enable-usenet"
|
133
|
+
puts "\t Enables Usenet searches.\n\n"
|
134
|
+
puts "--disable-docs"
|
135
|
+
puts "\t Disables searches inside docs.\n\n"
|
136
|
+
puts "--disable-google"
|
137
|
+
puts "\t Disables Google searches.\n"
|
138
|
+
puts "--disable-yahoo"
|
139
|
+
puts "\t Disables Yahoo searches.\n"
|
140
|
+
puts "--disable-bing"
|
141
|
+
puts "\t Disables Bing searches.\n"
|
142
|
+
puts "--disable-linkedin"
|
143
|
+
puts "\t Disables LinkedIn searches.\n"
|
144
|
+
puts "--disable-gprogiles"
|
145
|
+
puts "\t Disables Google Profiles searches.\n"
|
146
|
+
puts "--disable-naymz"
|
147
|
+
puts "\t Disables Naymz searches.\n"
|
148
|
+
puts "--disable-ggroups"
|
149
|
+
puts "\t Disables Google Groups searches.\n"
|
150
|
+
puts "--disable-pgp"
|
151
|
+
puts "\t Disables PGP searches.\n"
|
152
|
+
puts "--disable-usenet"
|
153
|
+
puts "\t Disables Usenet searches.\n\n"
|
154
|
+
puts "Copyright 2009 - FreedomCoder\n"
|
116
155
|
#END OF HELP
|
117
156
|
exit(0)
|
118
|
-
when '--
|
119
|
-
@people_engines = []
|
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
|
-
|
157
|
+
when '--enable-all' then
|
158
|
+
@people_engines = [:LinkedIn, :Naymz, :Classmates, :GoogleProfiles]
|
159
|
+
@email_engines = [:Google, :Bing, :Yahoo, :Altavista, :PGP, :Spider ,:Usenet, :GoogleGroups ]
|
160
|
+
when '--enable-people' then
|
161
|
+
@people_engines = [:LinkedIn, :Naymz, :Classmates, :GoogleProfiles]
|
162
|
+
when '--enable-emails' then
|
163
|
+
@email_engines = [:Google, :Bing, :Yahoo, :Altavista, :PGP, :Spider ,:Usenet, :GoogleGroups ]
|
164
|
+
when '--enable-google' then
|
165
|
+
@email_engines << :Google
|
166
|
+
when '--enable-yahoo' then
|
167
|
+
@email_engines << :Yahoo
|
168
|
+
when '--enable-bing' then
|
169
|
+
@email_engines << :Bing
|
170
|
+
when '--enable-altavisa' then
|
171
|
+
@email_engines << :Altavista
|
172
|
+
when '--enable-spider' then
|
173
|
+
@email_engines << :Spider
|
174
|
+
when '--enable-linkedin' then
|
175
|
+
@people_engines << :LinkedIn
|
176
|
+
when '--enable-gprofiles' then
|
177
|
+
@people_engines << :GoogleProfiles
|
178
|
+
when '--enable-naymz' then
|
179
|
+
@people_engines << :Naymz
|
180
|
+
when '--enable-classmates' then
|
181
|
+
@email_engines << :Classmates
|
182
|
+
when '--enable-ggroups' then
|
183
|
+
@email_engines << :GoogleGroups
|
184
|
+
when '--enable-pgp' then
|
185
|
+
@email_engines << :PGP
|
186
|
+
when '--enable-usenet' then
|
187
|
+
@email_engines << :Usenet
|
188
|
+
when '--disable-people' then
|
189
|
+
@people_engines = []
|
190
|
+
when '--disable-emails' then
|
191
|
+
@email_engines = []
|
192
|
+
when '--disable-google' then
|
193
|
+
@email_engines.delete(:Google)
|
194
|
+
when '--disable-yahoo' then
|
195
|
+
@email_engines.delete(:Yahoo)
|
196
|
+
when '--disable-bing' then
|
197
|
+
@email_engines.delete(:Bing)
|
198
|
+
when '--disable-altavisa' then
|
199
|
+
@email_engines.delete(:Altavista)
|
200
|
+
when '--disable-spider' then
|
201
|
+
@email_engines.delete(:Spider)
|
202
|
+
when '--disable-linkedin' then
|
203
|
+
@people_engines.delete(:LinkedIn)
|
204
|
+
when '--disable-gprofiles' then
|
205
|
+
@people_engines.delete(:GoogleProfiles)
|
206
|
+
when '--disable-naymz' then
|
207
|
+
@people_engines.delete(:Naymz)
|
208
|
+
when '--disable-classmates' then
|
209
|
+
@email_engines.delete(:Classmates)
|
210
|
+
when '--disable-ggroups' then
|
211
|
+
@email_engines.delete(:GoogleGroups)
|
212
|
+
when '--disable-pgp' then
|
213
|
+
@email_engines.delete(:PGP)
|
214
|
+
when '--disable-usenet' then
|
215
|
+
@email_engines.delete(:Usenet)
|
216
|
+
when '--disable-docs' then
|
217
|
+
@docs = false
|
218
|
+
when '--query' then
|
147
219
|
@params[:query] = arg
|
148
|
-
when '--company'
|
220
|
+
when '--company' then
|
149
221
|
@params[:company] = arg
|
150
|
-
when '--website'
|
222
|
+
when '--website' then
|
151
223
|
@params[:website] = arg
|
152
|
-
when '--file'
|
224
|
+
when '--file' then
|
153
225
|
if File.exists?(arg)
|
154
226
|
File.open(arg,'r').each_line do |line|
|
155
227
|
temp[:query],temp[:company],temp[:website] = line.split(',')
|
@@ -159,15 +231,15 @@ opts.each do |opt, arg|
|
|
159
231
|
raise ArgumentError, "File not found"
|
160
232
|
exit(0)
|
161
233
|
end
|
162
|
-
when '--yahookey'
|
234
|
+
when '--yahookey' then
|
163
235
|
@yahoo_key = arg
|
164
|
-
when '--bingkey'
|
236
|
+
when '--bingkey' then
|
165
237
|
@bing_key = arg
|
166
|
-
when '--filter'
|
238
|
+
when '--filter' then
|
167
239
|
@pattern = arg
|
168
|
-
when '--output'
|
240
|
+
when '--output' then
|
169
241
|
@output = Output.new arg
|
170
|
-
when '--maxhits'
|
242
|
+
when '--maxhits' then
|
171
243
|
@params[:maxhits] = arg.to_i
|
172
244
|
else
|
173
245
|
puts "Unknown command. Please try again"
|
@@ -188,11 +260,11 @@ def read_conf
|
|
188
260
|
File.open(ENV['HOME'] + "/.esearchyrc").readlines.each do |line|
|
189
261
|
key, value = line.split("=")
|
190
262
|
case key
|
191
|
-
when "MAXHITS"
|
263
|
+
when "MAXHITS" then
|
192
264
|
@params[:maxhits] ||= value.to_i
|
193
|
-
when "YAHOOKEY"
|
265
|
+
when "YAHOOKEY" then
|
194
266
|
@yahoo_key ||= value
|
195
|
-
when "BINGKEY"
|
267
|
+
when "BINGKEY" then
|
196
268
|
@bing_key ||= value
|
197
269
|
end
|
198
270
|
end
|
@@ -222,7 +294,7 @@ def print_(list)
|
|
222
294
|
end
|
223
295
|
|
224
296
|
def print_linux(email)
|
225
|
-
if email.match(/#{ESearchy::Search.query.gsub("@","").split('.')[0]}/)
|
297
|
+
if email.match(/#{ESearchy::Search.query.gsub("@","").split('.')[0]}/i)
|
226
298
|
puts "\033[31m" + email + "\033\[0m"
|
227
299
|
else
|
228
300
|
puts "\033[32m" + email + "\033\[0m"
|
@@ -230,10 +302,10 @@ def print_linux(email)
|
|
230
302
|
end
|
231
303
|
|
232
304
|
def print_windows(email)
|
233
|
-
if email.match(/#{ESearchy::Search.query.gsub("@","").split('.')[0]}/)
|
234
|
-
Wcol
|
305
|
+
if email.match(/#{ESearchy::Search.query.gsub("@","").split('.')[0]}/i)
|
306
|
+
Wcol.puts(12, email)
|
235
307
|
else
|
236
|
-
Wcol
|
308
|
+
Wcol.puts(2, email)
|
237
309
|
end
|
238
310
|
end
|
239
311
|
|
@@ -262,6 +334,9 @@ class Output
|
|
262
334
|
end
|
263
335
|
|
264
336
|
def save_pdf(data)
|
337
|
+
require 'prawn'
|
338
|
+
require 'prawn/layout'
|
339
|
+
|
265
340
|
Prawn::Document.generate(name) do
|
266
341
|
table data,
|
267
342
|
:position => :center,
|
@@ -275,6 +350,7 @@ class Output
|
|
275
350
|
end
|
276
351
|
|
277
352
|
def save_sqlite(data)
|
353
|
+
require 'sqlite3'
|
278
354
|
@db = SQLite3::Database.new(file)
|
279
355
|
@db.execute("CREATE TABLE IF NOT EXISTS results (
|
280
356
|
id integer primary key asc,
|
@@ -296,21 +372,27 @@ def execute(p)
|
|
296
372
|
search = ESearchy::Search.new(p)
|
297
373
|
|
298
374
|
search.start do |s|
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
375
|
+
unless @email_engines.empty?
|
376
|
+
s.Emails(@email_engines) do |e|
|
377
|
+
e.Yahoo.appid= @yahoo_key if @yahoo_key and @email_engines.include?(:Yahoo)
|
378
|
+
e.Bing.appid= @bing_key if @bing_key and @email_engines.include?(:Bing)
|
379
|
+
e.search do |x|
|
380
|
+
dump(x.results)
|
381
|
+
print_(x.emails.uniq)
|
382
|
+
end
|
383
|
+
if @docs
|
384
|
+
e.docs do |x|
|
385
|
+
dump(x.results)
|
386
|
+
print_(x.emails.uniq)
|
387
|
+
end
|
388
|
+
end
|
309
389
|
end
|
310
390
|
end
|
311
|
-
|
312
|
-
|
313
|
-
|
391
|
+
|
392
|
+
unless @people_engines.empty?
|
393
|
+
s.People(@people_engines) do |p|
|
394
|
+
p.search { |p| dump(p.results) }
|
395
|
+
end
|
314
396
|
end
|
315
397
|
end
|
316
398
|
@output.save(search.results) if @output
|
@@ -319,20 +401,28 @@ def execute(p)
|
|
319
401
|
print_ search.people
|
320
402
|
end
|
321
403
|
end
|
322
|
-
|
323
|
-
puts "
|
324
|
-
puts "\
|
325
|
-
puts "
|
326
|
-
puts "\
|
327
|
-
puts "\
|
328
|
-
puts "
|
329
|
-
|
404
|
+
if RUBY_PLATFORM =~ /mingw|mswin/
|
405
|
+
puts "___________ _________ .__ "
|
406
|
+
puts "\_ _____// _____/ ____ _____ _______ ____ | |__ ___.__."
|
407
|
+
puts " | __)_ \_____ \_/ __ \\__ \\_ __ \_/ ___\| | < | |"
|
408
|
+
puts " | \/ \ ___/ / __ \| | \/\ \___| Y \___ |"
|
409
|
+
puts "/_______ /_______ /\___ >____ /__| \___ >___| / ____|"
|
410
|
+
puts " \/ \/ \/ \/ \/ \/\/ "
|
411
|
+
else
|
412
|
+
puts "\033[31m___________ \033\[0m_________ .__ "
|
413
|
+
puts "\033[31m\\_ _____/\033\[0m/ _____/ ____ _____ _______ ____ | |__ ___.__."
|
414
|
+
puts "\033[31m | __)_ \033\[0m\\_____ \\_/ __ \\\\__ \\\\_ __ \\_/ ___\\| | < | |"
|
415
|
+
puts "\033[31m | \\\033\[0m/ \\ ___/ / __ \\| | \\/\\ \\___| Y \\___ |"
|
416
|
+
puts "\033[31m/_______ /\033\[0m_______ /\\___ >____ /__| \___ >___| / ____|"
|
417
|
+
puts "\033[31m \\/\033\[0m \\/ \\/ \\/ \\/ \\/\\/"
|
418
|
+
end
|
330
419
|
puts "\n"
|
331
|
-
puts "DISCLOSURE: This is just an example tool
|
332
|
-
|
420
|
+
puts "DISCLOSURE: This is just an example tool for the library. ESearchy is intended
|
421
|
+
to work as a Library/Framework and you should create your own scripts :)"
|
333
422
|
puts "------------------------------------------------------------------------"
|
334
423
|
puts "REMINDER:"
|
335
|
-
puts "- if you want to use GoogleProfiles, LinkedIn, Classmates or Naymz,
|
424
|
+
puts "- if you want to use GoogleProfiles, LinkedIn, Classmates or Naymz,"
|
425
|
+
puts " you will need to use the --company (-c) <company_name> option"
|
336
426
|
puts "- If you want to spider a website you need to use the --website (-w) <URL> option"
|
337
427
|
|
338
428
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: esearchy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0.
|
4
|
+
version: 0.2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matias P. Brutti
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-16 00:00:00 -03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|