grapi 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +3 -3
- data/VERSION +1 -1
- data/grapi.gemspec +4 -5
- data/lib/grapi/reader.rb +18 -5
- metadata +2 -2
data/README.textile
CHANGED
@@ -29,8 +29,8 @@ Public API:
|
|
29
29
|
|
30
30
|
* initialize(verbose= false)
|
31
31
|
* login(USERNAME, PASSWORD)
|
32
|
-
* reading_list(:continuation => nil, :dump_data => false, :output => "atom/json")
|
33
|
-
* subscribe(feed_url, label=test)
|
32
|
+
* reading_list(:continuation => nil, :dump_data => false, :output => "atom/json", :items => 1000, :lable => nil)
|
33
|
+
* subscribe(feed_url, label = test)
|
34
34
|
* unsubscribe(feed_url)
|
35
35
|
* mark_as_read( entry_google_ids ) # can pass an entry id or an array of entries id
|
36
36
|
|
@@ -48,5 +48,5 @@ h3. Links
|
|
48
48
|
|
49
49
|
* "Friends of the Unofficial Google Reader API":http://groups.google.com/group/fougrapi
|
50
50
|
* "pyrfeed":http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI
|
51
|
-
* "Using the Google Reader API
|
51
|
+
* "Using the Google Reader API - Part 2":http://blog.martindoms.com/2009/10/16/using-the-google-reader-api-part-2/
|
52
52
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/grapi.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{grapi}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Aurelian Oancea"]
|
12
|
-
s.date = %q{2010-01-
|
12
|
+
s.date = %q{2010-01-22}
|
13
13
|
s.description = %q{Ruby client for unofficial Google Reader API}
|
14
14
|
s.email = %q{oancea@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -51,4 +51,3 @@ Gem::Specification.new do |s|
|
|
51
51
|
s.add_dependency(%q<curb>, [">= 0.6.1.0"])
|
52
52
|
end
|
53
53
|
end
|
54
|
-
|
data/lib/grapi/reader.rb
CHANGED
@@ -29,8 +29,12 @@ module Grapi
|
|
29
29
|
"service" => "reader",
|
30
30
|
"accountType" => "HOSTED_OR_GOOGLE"
|
31
31
|
}
|
32
|
-
@client.body_str.uncompress =~ /^SID=(.*)\n/
|
33
|
-
|
32
|
+
if @client.body_str.uncompress =~ /^SID=(.*)\n/
|
33
|
+
@client.headers['Cookie']= "SID=#{$1}"
|
34
|
+
else
|
35
|
+
# TODO: can we handle Error=CaptchaRequired?
|
36
|
+
raise Error.new("Authentication failed with: #{@client.body_str.uncompress}")
|
37
|
+
end
|
34
38
|
self
|
35
39
|
end
|
36
40
|
|
@@ -56,12 +60,21 @@ module Grapi
|
|
56
60
|
# :continuation (default: nil) -> continuation string
|
57
61
|
# :dump_data (default: false) -> whether to write the response to a file in /tmp or not
|
58
62
|
# :output (default: atom) -> desired output (atom|json)
|
63
|
+
# :items (default: 1000) -> amount of items to fetch
|
64
|
+
# :label (default: nil) -> get only the items in label, by default fetch all items
|
59
65
|
def reading_list(options={})
|
60
|
-
options= {:continuation => nil, :output => "atom", :dump_data => false}.update(options)
|
66
|
+
options= {:continuation => nil, :output => "atom", :dump_data => false, :items => 1000, :label => nil}.update(options)
|
67
|
+
|
68
|
+
base= if options[:label].nil?
|
69
|
+
"user/-/state/com.google/reading-list"
|
70
|
+
else
|
71
|
+
"user/-/label/#{options[:label]}"
|
72
|
+
end
|
73
|
+
|
61
74
|
if options[:output] == "atom"
|
62
|
-
get "http://www.google.com/reader/atom
|
75
|
+
get "http://www.google.com/reader/atom/#{base}?xt=user/-/state/com.google/read&ck=#{Time.now.to_i*1000}&n=#{options[:items]}&c=#{options[:continuation]}"
|
63
76
|
else
|
64
|
-
get "http://www.google.com/reader/api/0/stream/contents
|
77
|
+
get "http://www.google.com/reader/api/0/stream/contents/#{base}?output=#{options[:output]}&xt=user/-/state/com.google/read&ck=#{Time.now.to_i*1000}&n=#{options[:items]}&c=#{options[:continuation]}"
|
65
78
|
end
|
66
79
|
response= @client.body_str.uncompress
|
67
80
|
File.open("/tmp/#{Time.now.to_i}-reading_list.#{options[:output]}", "w"){|f|f<<response} if options[:dump_data]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aurelian Oancea
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-22 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|