googlepagerank 1.0.1 → 1.0.3
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.tar.gz.sig +0 -0
- data/History.txt +8 -0
- data/README.txt +7 -6
- data/Rakefile +1 -12
- data/bin/googlepagerank +20 -15
- data/lib/googlepagerank.rb +32 -28
- data/test/test_googlepagerank.rb +6 -3
- metadata +8 -7
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -1,27 +1,28 @@
|
|
1
1
|
= googlepagerank
|
2
|
-
|
3
|
-
|
2
|
+
* by Fran Dieguez
|
3
|
+
* http://googlepagerank.rubyforge.org/
|
4
4
|
|
5
5
|
== DESCRIPTION:
|
6
6
|
|
7
7
|
Ruby gem for fetching Google PageRank®. It returns the value of the Google PageRank® for a given domain name.
|
8
8
|
Googlepagerank calculation is powered and based on http://www.math.kobe-u.ac.jp/~kodama/gprank.rb
|
9
|
+
|
9
10
|
== FEATURES/PROBLEMS:
|
10
11
|
|
11
12
|
* Return the Google PageRank@ of a given domain name
|
12
13
|
|
13
14
|
== SYNOPSIS:
|
14
15
|
|
15
|
-
|
16
16
|
# Require all gems and libs needed...
|
17
17
|
require 'rubygems'
|
18
18
|
require 'googlepagerank'
|
19
19
|
|
20
|
-
# Fetching the page_rank
|
21
|
-
page_rank = Googlepagerank.get(domain,port
|
20
|
+
# Fetching the page_rank
|
21
|
+
page_rank = Googlepagerank.get(domain,port)
|
22
22
|
|
23
23
|
# See extracted data...
|
24
24
|
page_rank
|
25
|
+
|
25
26
|
== REQUIREMENTS:
|
26
27
|
|
27
28
|
* net/http
|
@@ -34,7 +35,7 @@ page_rank
|
|
34
35
|
|
35
36
|
(The MIT License)
|
36
37
|
|
37
|
-
Copyright (c) 2008
|
38
|
+
Copyright (c) 2008 Fran Dieguez
|
38
39
|
|
39
40
|
Permission is hereby granted, free of charge, to any person obtaining
|
40
41
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -6,18 +6,7 @@ require './lib/googlepagerank.rb'
|
|
6
6
|
|
7
7
|
Hoe.new('googlepagerank', GooglePageRank::VERSION) do |p|
|
8
8
|
# p.rubyforge_name = 'googlepagerankx' # if different than lowercase project name
|
9
|
-
|
10
|
-
p.name = "googlepagerank"
|
11
|
-
p.author = "Francisco Dieguez"
|
12
|
-
p.description = "Google PageRank Gem for Ruby."
|
13
|
-
p.email = 'fran.dieguez@glug.es'
|
14
|
-
p.summary = "Google PageRank for Ruby."
|
15
|
-
p.url = "http://www.mabishu.com/projects/googlepagerank"
|
16
|
-
p.clean_globs = ['test/actual'] # Remove this directory on "rake clean"
|
17
|
-
p.remote_rdoc_dir = '' # Release to root
|
18
|
-
p.changes = p.paragraphs_of('CHANGELOG', 0..1).join("\n\n")
|
19
|
-
# * extra_deps - An array of rubygem dependencies.
|
9
|
+
p.developer('Fran Dieguez', 'fran.dieguez@glug.es')
|
20
10
|
end
|
21
11
|
|
22
12
|
# vim: syntax=Ruby
|
23
|
-
|
data/bin/googlepagerank
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
# == Synopsis
|
4
4
|
#
|
5
5
|
# Fetch the Google PageRank for a given url
|
6
|
+
#
|
7
|
+
# from command line
|
6
8
|
#
|
7
9
|
# ==
|
8
10
|
#
|
@@ -22,6 +24,12 @@
|
|
22
24
|
require "rubygems"
|
23
25
|
require "googlepagerank"
|
24
26
|
require "getoptlong"
|
27
|
+
def usage
|
28
|
+
puts "Usage: googlepagerank [-h] [-s] -u domain.com "
|
29
|
+
puts "Options:\n";
|
30
|
+
puts "\t-h help\n";
|
31
|
+
puts "\t-s silent\n"
|
32
|
+
end;
|
25
33
|
opt_url=""
|
26
34
|
opt_silent=0;
|
27
35
|
|
@@ -29,12 +37,6 @@ port=80 # 80 World Wide Web HTTP
|
|
29
37
|
proxy=nil; proxy_port=nil
|
30
38
|
# proxy="10.1.4.1"; proxy_port=8080 # 8080 HTTP Alternate
|
31
39
|
|
32
|
-
def usage
|
33
|
-
puts "usage: googlepagerank [-h] [-s] -u http://... "
|
34
|
-
puts "Options:\n";
|
35
|
-
puts "-h help\n";
|
36
|
-
puts "-s silent\n"
|
37
|
-
end;
|
38
40
|
|
39
41
|
arg_parser=GetoptLong.new
|
40
42
|
arg_parser.set_options(
|
@@ -55,15 +57,18 @@ arg_parser.each{|opt,arg|
|
|
55
57
|
#puts "opt_silent= #{opt_silent}"
|
56
58
|
#puts "opt_url= #{opt_url}"
|
57
59
|
|
58
|
-
|
59
|
-
|
60
|
-
rank = GooglePageRank.get(opt_url,port,proxy,proxy_port)
|
61
|
-
if (rank >= 0) then
|
62
|
-
printf("PageRank: %d : %s\n", rank, opt_url);
|
63
|
-
else
|
64
|
-
printf("PageRank: NO_INDEX : %s\n", opt_url);
|
65
|
-
end
|
60
|
+
if opt_url.nil? or opt_url == ""
|
61
|
+
usage()
|
66
62
|
else
|
67
|
-
|
63
|
+
if (opt_silent == 0) then
|
64
|
+
rank = GooglePageRank.get(opt_url,port,proxy,proxy_port)
|
65
|
+
if (rank >= 0) then
|
66
|
+
printf("PageRank: %d : %s\n", rank, opt_url);
|
67
|
+
else
|
68
|
+
printf("PageRank: NO_INDEX : %s\n", opt_url);
|
69
|
+
end
|
70
|
+
else
|
71
|
+
printf("%d\n", GooglePageRank.get(opt_url));
|
72
|
+
end
|
68
73
|
end
|
69
74
|
exit(0);
|
data/lib/googlepagerank.rb
CHANGED
@@ -3,38 +3,11 @@
|
|
3
3
|
require "net/http"
|
4
4
|
|
5
5
|
class GooglePageRank
|
6
|
-
VERSION = '1.0.
|
6
|
+
VERSION = '1.0.3'
|
7
7
|
|
8
8
|
M=0x100000000 # modulo for unsigned int 32bit(4byte)
|
9
9
|
|
10
|
-
def self.m1(a,b,c,d)
|
11
|
-
return (((a+(M-b)+(M-c))%M)^(d%M))%M # mix/power mod
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.c2i(s="",k=0)
|
15
|
-
# char codes to int. Little Endian
|
16
|
-
return ((s[k+3].to_i*0x100+s[k+2].to_i)*0x100+s[k+1].to_i)*0x100+s[k].to_i
|
17
|
-
end
|
18
10
|
|
19
|
-
def self.mix(a,b,c)
|
20
|
-
a=a%M; b=b%M; c=c%M
|
21
|
-
a = m1(a,b,c, c >> 13); b = m1(b,c,a, a << 8); c = m1(c,a,b, b >> 13);
|
22
|
-
a = m1(a,b,c, c >> 12); b = m1(b,c,a, a << 16); c = m1(c,a,b, b >> 5);
|
23
|
-
a = m1(a,b,c, c >> 3); b = m1(b,c,a, a << 10); c = m1(c,a,b, b >> 15);
|
24
|
-
return [a,b,c];
|
25
|
-
end
|
26
|
-
|
27
|
-
def self.checkSum(url="http://sample/index.html")
|
28
|
-
a= 0x9E3779B9; b= 0x9E3779B9; c= 0xE6359A60;
|
29
|
-
iurl="info:"+url; len = iurl.size; k=0;
|
30
|
-
while (len>=k+12) do
|
31
|
-
a += c2i(iurl,k) ; b += c2i(iurl,k+4); c += c2i(iurl,k+8); a,b,c = mix(a,b,c);
|
32
|
-
k=k+12
|
33
|
-
end
|
34
|
-
a += c2i(iurl,k); b += c2i(iurl,k+4); c += (c2i(iurl,k+8)<<8)+len; a,b,c = mix(a,b,c);
|
35
|
-
return c;
|
36
|
-
end
|
37
|
-
|
38
11
|
# Calculates the PageRank for the given _url_
|
39
12
|
# ATENTION: Old version, use the GooglePageRak.get() instead
|
40
13
|
#
|
@@ -118,4 +91,35 @@ class GooglePageRank
|
|
118
91
|
}
|
119
92
|
if (p.size>0) then return p.to_i; else return -1; end
|
120
93
|
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
def self.m1(a,b,c,d)
|
98
|
+
return (((a+(M-b)+(M-c))%M)^(d%M))%M # mix/power mod
|
99
|
+
end
|
100
|
+
|
101
|
+
def self.c2i(s="",k=0)
|
102
|
+
# char codes to int. Little Endian
|
103
|
+
return ((s[k+3].to_i*0x100+s[k+2].to_i)*0x100+s[k+1].to_i)*0x100+s[k].to_i
|
104
|
+
end
|
105
|
+
|
106
|
+
def self.mix(a,b,c)
|
107
|
+
a=a%M; b=b%M; c=c%M
|
108
|
+
a = m1(a,b,c, c >> 13); b = m1(b,c,a, a << 8); c = m1(c,a,b, b >> 13);
|
109
|
+
a = m1(a,b,c, c >> 12); b = m1(b,c,a, a << 16); c = m1(c,a,b, b >> 5);
|
110
|
+
a = m1(a,b,c, c >> 3); b = m1(b,c,a, a << 10); c = m1(c,a,b, b >> 15);
|
111
|
+
return [a,b,c];
|
112
|
+
end
|
113
|
+
|
114
|
+
def self.checkSum(url="http://sample/index.html")
|
115
|
+
a= 0x9E3779B9; b= 0x9E3779B9; c= 0xE6359A60;
|
116
|
+
iurl="info:"+url; len = iurl.size; k=0;
|
117
|
+
while (len>=k+12) do
|
118
|
+
a += c2i(iurl,k) ; b += c2i(iurl,k+4); c += c2i(iurl,k+8); a,b,c = mix(a,b,c);
|
119
|
+
k=k+12
|
120
|
+
end
|
121
|
+
a += c2i(iurl,k); b += c2i(iurl,k+4); c += (c2i(iurl,k+8)<<8)+len; a,b,c = mix(a,b,c);
|
122
|
+
return c;
|
123
|
+
end
|
124
|
+
|
121
125
|
end
|
data/test/test_googlepagerank.rb
CHANGED
@@ -3,10 +3,13 @@ require "test/unit"
|
|
3
3
|
require "googlepagerank"
|
4
4
|
|
5
5
|
class TestGooglePageRank < Test::Unit::TestCase
|
6
|
-
def
|
6
|
+
def test_valid_domain
|
7
7
|
assert_equal(9, GooglePageRank.get("www.apple.com",80,nil,nil))
|
8
8
|
end
|
9
|
-
def
|
10
|
-
assert_equal(-1, GooglePageRank.get("
|
9
|
+
def test_invalid_domain
|
10
|
+
assert_equal(-1, GooglePageRank.get("w.w.w.com",80))
|
11
|
+
end
|
12
|
+
def test_malformed_domain
|
13
|
+
assert_equal(-1, GooglePageRank.get("@@@",80))
|
11
14
|
end
|
12
15
|
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: googlepagerank
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Fran Dieguez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
EHxmDQrhRAnf3g==
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2008-
|
33
|
+
date: 2008-05-19 00:00:00 +02:00
|
34
34
|
default_executable:
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
@@ -42,8 +42,9 @@ dependencies:
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 1.5.1
|
44
44
|
version:
|
45
|
-
description: Google PageRank
|
46
|
-
email:
|
45
|
+
description: "Ruby gem for fetching Google PageRank\xC2\xAE. It returns the value of the Google PageRank\xC2\xAE for a given domain name. Googlepagerank calculation is powered and based on http://www.math.kobe-u.ac.jp/~kodama/gprank.rb"
|
46
|
+
email:
|
47
|
+
- fran.dieguez@glug.es
|
47
48
|
executables:
|
48
49
|
- googlepagerank
|
49
50
|
extensions: []
|
@@ -61,7 +62,7 @@ files:
|
|
61
62
|
- lib/googlepagerank.rb
|
62
63
|
- test/test_googlepagerank.rb
|
63
64
|
has_rdoc: true
|
64
|
-
homepage:
|
65
|
+
homepage: by Fran Dieguez
|
65
66
|
post_install_message:
|
66
67
|
rdoc_options:
|
67
68
|
- --main
|
@@ -86,6 +87,6 @@ rubyforge_project: googlepagerank
|
|
86
87
|
rubygems_version: 1.1.1
|
87
88
|
signing_key:
|
88
89
|
specification_version: 2
|
89
|
-
summary:
|
90
|
+
summary: "Ruby gem for fetching Google PageRank\xC2\xAE"
|
90
91
|
test_files:
|
91
92
|
- test/test_googlepagerank.rb
|
metadata.gz.sig
CHANGED
Binary file
|