esearchy 0.2.0 → 0.2.0.1

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/README.rdoc CHANGED
@@ -56,6 +56,7 @@ For now, there are two main ways of performing a search:
56
56
 
57
57
  * Executable CLI command
58
58
 
59
+ esearchy -h
59
60
 
60
61
  * Library
61
62
 
@@ -73,7 +74,8 @@ For thouse who want to integrate this to their application you can use it in "th
73
74
 
74
75
  == INSTALL:
75
76
  * > sudo gem sources -a http://gems.github.com (If you do not have the repository)
76
- * > sudo gem install FreedomCoder-esearchy
77
+ * > sudo gem install gemcutter
78
+ * > sudo gem install esearchy
77
79
 
78
80
  == THANKS:
79
81
 
data/bin/esearchy CHANGED
@@ -1,16 +1,18 @@
1
- #!/usr/bin/env ruby -wKU
1
+ #!/usr/bin/env ruby
2
+ # -wKU
2
3
  # esearchy
3
4
  #
4
5
  # Created by FreedomCoder on 2009-10-24.
5
6
  # Copyright 2009 FreedomCoder's Labs. All rights reserved.
6
7
  #
8
+
7
9
  if RUBY_PLATFORM =~ /mingw|mswin/
8
10
  require 'Win32API'
9
11
  class Wcol
10
12
  gsh = Win32API.new("kernel32", "GetStdHandle", ['L'], 'L')
11
13
  @textAttr = Win32API.new("kernel32","SetConsoleTextAttribute", ['L','N'], 'I')
12
14
  @h = gsh.call(-11)
13
-
15
+
14
16
  def self.color(col)
15
17
  @textAttr.call(@h,col)
16
18
  end
@@ -26,11 +28,10 @@ end
26
28
 
27
29
  require 'rubygems'
28
30
  require 'getoptlong'
29
- require 'sqlite3'
30
- require 'prawn'
31
+ require 'sqlite3' rescue raise "gem install sqlite3"
32
+ require 'prawn' rescue raise "gem install prawn"
31
33
  require 'prawn/layout'
32
-
33
- require '../lib/esearchy.rb'
34
+ require 'esearchy'
34
35
 
35
36
  ESearchy::log = true
36
37
 
@@ -40,8 +41,9 @@ ESearchy::log = true
40
41
  @params = {}
41
42
  @list = []
42
43
  @output = nil
43
- @email_engines = [:Google,:Yahoo,:Bing,:Altavista,:Usenet,:PGP,:Spider,:GoogleGroups]
44
- @people_engines = [:LinkedIn,:Naymz,:Classmates,:GoogleProfiles]
44
+
45
+ @email_engines = [:Google, :Bing, :Yahoo, :Altavista, :PGP, :Spider ,:Usenet, :GoogleGroups ]
46
+ @people_engines = [:LinkedIn, :Naymz, :Classmates, :GoogleProfiles]
45
47
 
46
48
  opts = GetoptLong.new(
47
49
  [ '--help', '-h', GetoptLong::NO_ARGUMENT ],
@@ -71,7 +73,7 @@ opts.each do |opt, arg|
71
73
  case opt
72
74
  when '--help':
73
75
  # BEGIN OF HELP
74
- ESearchy::LOG.puts "\nHELP for Esearchy\n---------------------\n
76
+ puts "\nHELP for Esearchy\n---------------------\n
75
77
  --help, -h
76
78
  \tWell I guess you know what this is for (To obtain this Help).\n
77
79
  INPUT PARAMS:
@@ -113,6 +115,10 @@ opts.each do |opt, arg|
113
115
  Copyright 2009 - FreedomCoder\n"
114
116
  #END OF HELP
115
117
  exit(0)
118
+ when '--disable-people':
119
+ @people_engines = []
120
+ when '--disable-emails':
121
+ @email_engines = []
116
122
  when '--disable-google':
117
123
  @email_engines.delete(:Google)
118
124
  when '--disable-yahoo':
@@ -141,9 +147,11 @@ opts.each do |opt, arg|
141
147
  @params[:query] = arg
142
148
  when '--company':
143
149
  @params[:company] = arg
150
+ when '--website':
151
+ @params[:website] = arg
144
152
  when '--file':
145
153
  if File.exists?(arg)
146
- open(arg,'r').each_line do |line|
154
+ File.open(arg,'r').each_line do |line|
147
155
  temp[:query],temp[:company],temp[:website] = line.split(',')
148
156
  @list << temp
149
157
  end
@@ -168,24 +176,24 @@ opts.each do |opt, arg|
168
176
  end
169
177
 
170
178
 
171
- def configure(maxhits = 500, yahoo_key = nil, bing_key = nil)
172
- File.new(ENV['HOME'] + "/.esearchyrc", +w ) do |line|
173
- line << "MAXHITS=" + maxhits
174
- line << "YAHOOKEY=" + yahoo_key if @yahoo_key
175
- line << "BINGKEY=" + bing_key if @bing_key
179
+ def configure(maxhits = nil, yahoo_key = nil, bing_key = nil)
180
+ File.open(ENV['HOME'] + "/.esearchyrc", "w" ) do |line|
181
+ line << "MAXHITS=#{maxhits.to_s || "500"}\n"
182
+ line << "YAHOOKEY=#{yahoo_key.to_s}\n" if yahoo_key
183
+ line << "BINGKEY=#{bing_key.to_s}\n" if bing_key
176
184
  end
177
185
  end
178
186
 
179
187
  def read_conf
180
- File.read((ENV['HOME'] + "/.esearchyrc").readlines.each do |line|
188
+ File.open(ENV['HOME'] + "/.esearchyrc").readlines.each do |line|
181
189
  key, value = line.split("=")
182
190
  case key
183
191
  when "MAXHITS"
184
- @params[:maxhits] ||= value
192
+ @params[:maxhits] ||= value.to_i
185
193
  when "YAHOOKEY"
186
194
  @yahoo_key ||= value
187
195
  when "BINGKEY"
188
- @bing_key = ||value
196
+ @bing_key ||= value
189
197
  end
190
198
  end
191
199
  end
@@ -196,20 +204,25 @@ end
196
204
 
197
205
  ### PRINTING FINDING METHODS ###
198
206
  def print_(list)
199
- list.each do |email|
200
- unless @emails.include?(email)
201
- case RUBY_PLATFORM
202
- when /mingw|mswin/
203
- print_windows
204
- when /linux|darwin/
205
- print_linux
207
+ unless list.nil?
208
+ list.each do |item|
209
+ case item
210
+ when String
211
+ case RUBY_PLATFORM
212
+ when /mingw|mswin/
213
+ print_windows(item)
214
+ when /linux|darwin/
215
+ print_linux(item)
216
+ end
217
+ when Array
218
+ puts item.join " "
206
219
  end
207
220
  end
208
221
  end
209
222
  end
210
223
 
211
224
  def print_linux(email)
212
- if email.match(/#{@query.gsub("@","").split('.')[0]}/)
225
+ if email.match(/#{ESearchy::Search.query.gsub("@","").split('.')[0]}/)
213
226
  puts "\033[31m" + email + "\033\[0m"
214
227
  else
215
228
  puts "\033[32m" + email + "\033\[0m"
@@ -217,7 +230,7 @@ def print_linux(email)
217
230
  end
218
231
 
219
232
  def print_windows(email)
220
- if email.match(/#{@query.gsub("@","").split('.')[0]}/)
233
+ if email.match(/#{ESearchy::Search.query.gsub("@","").split('.')[0]}/)
221
234
  Wcol::puts(12, email)
222
235
  else
223
236
  Wcol::puts(2, email)
@@ -226,7 +239,6 @@ end
226
239
 
227
240
  ### SAVING TO DISK ###
228
241
  class Output
229
-
230
242
  def initialize(name)
231
243
  @output = name
232
244
  end
@@ -246,10 +258,7 @@ class Output
246
258
  def save_csv(data)
247
259
  out = File.new(name, "w")
248
260
  out << "EMAILS/PERSON, TYPE, CLASS, MATCH\n"
249
- data.each do |r|
250
- out << r.each { |x| x
251
- end
252
-
261
+ data.each { |r| out << r.each { |x| x }}
253
262
  end
254
263
 
255
264
  def save_pdf(data)
@@ -262,6 +271,7 @@ class Output
262
271
  :font_size => 10,
263
272
  :vertical_padding => 2,
264
273
  :horizontal_padding => 5
274
+ end
265
275
  end
266
276
 
267
277
  def save_sqlite(data)
@@ -284,18 +294,18 @@ end
284
294
  def execute(p)
285
295
  if p[:query]
286
296
  search = ESearchy::Search.new(p)
287
-
297
+
288
298
  search.start do |s|
289
299
  s.Emails(@email_engines) do |e|
290
300
  e.Yahoo.appid= @yahoo_key if @yahoo_key
291
- e.Bing.appid= @bing_key if @bing_key
292
- e.search do |e|
293
- dump(e.results)
294
- print_(e.emails.uniq)
301
+ e.Bing.appid= @bing_key if @bing_key
302
+ e.search do |x|
303
+ dump(x.results)
304
+ print_(x.emails.uniq)
295
305
  end
296
- e.docs do |e|
297
- dump(e.results)
298
- print_(e.emails.uniq)
306
+ e.docs do |x|
307
+ dump(x.results)
308
+ print_(x.emails.uniq)
299
309
  end
300
310
  end
301
311
 
@@ -303,13 +313,21 @@ def execute(p)
303
313
  p.search { |p| dump(p.results) }
304
314
  end
305
315
  end
306
- @output.save(search.results)
307
- puts "-------RESULTS--------"
316
+ @output.save(search.results) if @output
317
+ puts "-------FINAL RESULTS--------"
308
318
  print_ search.emails
309
319
  print_ search.people
310
320
  end
311
321
  end
312
322
 
323
+ puts "\033[31m------------------------------------------------------------------------------\033\[0m"
324
+ puts "\033[31m ||---- \033\[0m //--- ||---- __ //----\\\\ //--- || || \\\\ // "
325
+ puts "\033[31m || \033\[0m // || // \\\\ || \\\\ // || || \\\\//"
326
+ puts "\033[31m ||---- \033\[0m \\\\ ||---- // \\\\ ||----// || ||-----|| // "
327
+ puts "\033[31m || \033\[0m \\\\ || //-----\\\\ || \\\\ \\\\ || || //"
328
+ puts "\033[31m ||---- \033\[0m ---// ||---- // \\\\ || \\\\ \\\\--- || || // "
329
+ puts "\033[31m------------------------------------------------------------------------------\033\[0m"
330
+ puts "\n"
313
331
  puts "DISCLOSURE: This is just an example tool ESearchy is more and more a piece
314
332
  of code intended to work as a Library and you should create your own little.rb file :)"
315
333
  puts "------------------------------------------------------------------------"
@@ -331,4 +349,5 @@ end
331
349
  unless @params.empty?
332
350
  execute(@params)
333
351
  end
334
- puts "Happy Hacking :)\nGood Bye.\n"
352
+ puts "\n------------------------"
353
+ puts "Happy Hacking :)\nGood Bye.\n"
@@ -1,6 +1,6 @@
1
1
  module ESearchy
2
2
  module OtherEngines
3
- class Usenet
3
+ class Usenet < ESearchy::GenericEngine
4
4
  ENGINE = "usenet-addresses.mit.edu"
5
5
  PORT = 80
6
6
  NUM = 0 # Do not really ned it :)
@@ -136,7 +136,7 @@ module ESearchy
136
136
  def initialize(*args, &block)
137
137
  @engines={}
138
138
  @documents = []
139
- args.each do |e|
139
+ (args[0].instance_of?(Array) ? args[0] : args).each do |e|
140
140
  @engines[e] = ESearchy::Search::EMAIL_ENGINES[e].new(Search.query)
141
141
  end
142
142
  self.maxhits=Search.maxhits if Search.maxhits
@@ -165,7 +165,7 @@ module ESearchy
165
165
 
166
166
  def initialize(*args, &block)
167
167
  @engines={}
168
- args.each do |e|
168
+ (args[0].instance_of?(Array) ? args[0] : args).each do |e|
169
169
  @engines[e] = ESearchy::Search::PEOPLE_ENGINES[e].new(Search.company)
170
170
  end
171
171
  self.maxhits=Search.maxhits if Search.maxhits
@@ -2,4 +2,4 @@ require 'esearchy/OtherEngines/pgp'
2
2
  require 'esearchy/OtherEngines/usenet'
3
3
  require 'esearchy/OtherEngines/spider'
4
4
  require 'esearchy/OtherEngines/googlegroups'
5
- require 'esearchy/OtherEngines/ldap'
5
+ #require 'esearchy/OtherEngines/ldap'
data/lib/esearchy.rb CHANGED
@@ -10,7 +10,7 @@ require 'pdf/reader'
10
10
  if RUBY_PLATFORM =~ /mingw|mswin/
11
11
  require 'win32ole'
12
12
  end
13
- require 'ldap' # gem install ruby-ldap
13
+ #require 'ldap' # gem install ruby-ldap
14
14
 
15
15
  #ESEARCHY REQUIRES
16
16
  require 'esearchy/genericengine'
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.1
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-11 00:00:00 -03:00
12
+ date: 2009-12-15 00:00:00 -03:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1.6
33
+ version: 1.1.9
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: FreedomCoder-rubyzip
@@ -42,16 +42,6 @@ dependencies:
42
42
  - !ruby/object:Gem::Version
43
43
  version: 0.9.3
44
44
  version:
45
- - !ruby/object:Gem::Dependency
46
- name: ruby-ldap
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 0.9.9
54
- version:
55
45
  - !ruby/object:Gem::Dependency
56
46
  name: spidr
57
47
  type: :runtime