feedjira-redis 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +119 -0
- data/LICENSE.txt +20 -0
- data/README.markdown +55 -0
- data/Rakefile +54 -0
- data/VERSION +1 -0
- data/feedjira-redis.gemspec +68 -0
- data/lib/feedjira-redis.rb +81 -0
- data/test/fixtures/monkeys_new.atom +313 -0
- data/test/fixtures/monkeys_old.atom +313 -0
- data/test/helper.rb +19 -0
- data/test/test_feedjira-redis.rb +74 -0
- metadata +143 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 584a2621cb48936a41def45f081be85a8a231629
|
4
|
+
data.tar.gz: c110460460fd313a05dc3e1ccb3ec25fd71d5748
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5f29a913f4a125854f6cda02c70ce32ab59c6d56ca7e191fcd3ee408d11102f193d389a831ee4ae593b4c1bbbfafc6a43ae2ca8e094bc61c77ffdd438a8cc843
|
7
|
+
data.tar.gz: 76d19bfaae1afe53a7b565264256b500a3bf9bf19e942d124857cae330f1c6429d1fe05b9d3f0ae8ada176a91f86c48b2e45bd8934e83db2063075081024e0f7
|
data/.document
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm --create ruby-2.0.0@feedzirra_redis_gem
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
activesupport (4.1.1)
|
5
|
+
i18n (~> 0.6, >= 0.6.9)
|
6
|
+
json (~> 1.7, >= 1.7.7)
|
7
|
+
minitest (~> 5.1)
|
8
|
+
thread_safe (~> 0.1)
|
9
|
+
tzinfo (~> 1.1)
|
10
|
+
addressable (2.3.6)
|
11
|
+
bcrypt (3.1.7)
|
12
|
+
bcrypt-ruby (3.1.5)
|
13
|
+
bcrypt (>= 3.1.3)
|
14
|
+
builder (3.2.2)
|
15
|
+
curb (0.8.5)
|
16
|
+
descendants_tracker (0.0.4)
|
17
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
18
|
+
dm-core (1.2.1)
|
19
|
+
addressable (~> 2.3)
|
20
|
+
dm-redis-adapter (0.9.0)
|
21
|
+
dm-core (>= 1.2.0)
|
22
|
+
dm-core (>= 1.2.0)
|
23
|
+
dm-types (>= 1.2.0)
|
24
|
+
dm-types (>= 1.2.0)
|
25
|
+
dm-validations (>= 1.2.0)
|
26
|
+
hiredis (~> 0.4.0)
|
27
|
+
hiredis (~> 0.4.0)
|
28
|
+
jeweler (>= 1.4.0)
|
29
|
+
rake (>= 10.0.3)
|
30
|
+
redis (>= 3.0.4)
|
31
|
+
redis (>= 3.0.4)
|
32
|
+
rspec (~> 1.3.2)
|
33
|
+
dm-types (1.2.2)
|
34
|
+
bcrypt-ruby (~> 3.0)
|
35
|
+
dm-core (~> 1.2.0)
|
36
|
+
fastercsv (~> 1.5)
|
37
|
+
json (~> 1.6)
|
38
|
+
multi_json (~> 1.0)
|
39
|
+
stringex (~> 1.4)
|
40
|
+
uuidtools (~> 2.1)
|
41
|
+
dm-validations (1.2.0)
|
42
|
+
dm-core (~> 1.2.0)
|
43
|
+
faraday (0.9.0)
|
44
|
+
multipart-post (>= 1.2, < 3)
|
45
|
+
fastercsv (1.5.5)
|
46
|
+
feedjira (1.2.0)
|
47
|
+
curb (~> 0.8.1)
|
48
|
+
loofah (~> 1.2.1)
|
49
|
+
sax-machine (~> 0.2.1)
|
50
|
+
git (1.2.6)
|
51
|
+
github_api (0.11.3)
|
52
|
+
addressable (~> 2.3)
|
53
|
+
descendants_tracker (~> 0.0.1)
|
54
|
+
faraday (~> 0.8, < 0.10)
|
55
|
+
hashie (>= 1.2)
|
56
|
+
multi_json (>= 1.7.5, < 2.0)
|
57
|
+
nokogiri (~> 1.6.0)
|
58
|
+
oauth2
|
59
|
+
hashie (2.1.1)
|
60
|
+
highline (1.6.21)
|
61
|
+
hiredis (0.4.5)
|
62
|
+
i18n (0.6.9)
|
63
|
+
jeweler (2.0.1)
|
64
|
+
builder
|
65
|
+
bundler (>= 1.0)
|
66
|
+
git (>= 1.2.5)
|
67
|
+
github_api
|
68
|
+
highline (>= 1.6.15)
|
69
|
+
nokogiri (>= 1.5.10)
|
70
|
+
rake
|
71
|
+
rdoc
|
72
|
+
json (1.8.1)
|
73
|
+
jwt (0.1.13)
|
74
|
+
multi_json (>= 1.5)
|
75
|
+
loofah (1.2.1)
|
76
|
+
nokogiri (>= 1.4.4)
|
77
|
+
mini_portile (0.5.3)
|
78
|
+
minitest (5.3.3)
|
79
|
+
multi_json (1.10.0)
|
80
|
+
multi_xml (0.5.5)
|
81
|
+
multipart-post (2.0.0)
|
82
|
+
nokogiri (1.6.1)
|
83
|
+
mini_portile (~> 0.5.0)
|
84
|
+
oauth2 (0.9.3)
|
85
|
+
faraday (>= 0.8, < 0.10)
|
86
|
+
jwt (~> 0.1.8)
|
87
|
+
multi_json (~> 1.3)
|
88
|
+
multi_xml (~> 0.5)
|
89
|
+
rack (~> 1.2)
|
90
|
+
rack (1.5.2)
|
91
|
+
rake (10.3.2)
|
92
|
+
rdoc (4.1.1)
|
93
|
+
json (~> 1.4)
|
94
|
+
redis (3.0.7)
|
95
|
+
rspec (1.3.2)
|
96
|
+
sax-machine (0.2.1)
|
97
|
+
nokogiri (~> 1.6.0)
|
98
|
+
shoulda (3.5.0)
|
99
|
+
shoulda-context (~> 1.0, >= 1.0.1)
|
100
|
+
shoulda-matchers (>= 1.4.1, < 3.0)
|
101
|
+
shoulda-context (1.2.1)
|
102
|
+
shoulda-matchers (2.6.1)
|
103
|
+
activesupport (>= 3.0.0)
|
104
|
+
stringex (1.5.1)
|
105
|
+
thread_safe (0.3.3)
|
106
|
+
tzinfo (1.1.0)
|
107
|
+
thread_safe (~> 0.1)
|
108
|
+
uuidtools (2.1.4)
|
109
|
+
|
110
|
+
PLATFORMS
|
111
|
+
ruby
|
112
|
+
|
113
|
+
DEPENDENCIES
|
114
|
+
bundler
|
115
|
+
dm-redis-adapter
|
116
|
+
feedjira
|
117
|
+
i18n
|
118
|
+
jeweler (>= 2.0.1)
|
119
|
+
shoulda
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011-2014 Logan Koester
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.markdown
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# feedjira-redis
|
2
|
+
|
3
|
+
FeedjiraRedis uses Datamapper's dm-redis-adapter to provide a persistance layer for the [feedjira](https://github.com/feedjira/feedjira) RSS/Atom feed consumption library.
|
4
|
+
|
5
|
+
## Example Usage
|
6
|
+
|
7
|
+
FeedjiraRedis can be used in much the same fashion as [feedjira](https://github.com/feedjira/feedjira) itself. One common use for FeedjiraRedis is to avoid updating the feed with every page hit, so you could update the feed from a Rakefile on a cron job instead.
|
8
|
+
|
9
|
+
#### Shared
|
10
|
+
|
11
|
+
DataMapper.setup(:default, { :adapter => 'redis' })
|
12
|
+
FEED_URL = 'https://github.com/logankoester/feedjira-redis/commits/master.atom'
|
13
|
+
|
14
|
+
#### Rakefile
|
15
|
+
|
16
|
+
namespace :blog do
|
17
|
+
desc 'Grab the latest blog posts'
|
18
|
+
task :update do
|
19
|
+
FeedjiraRedis::Feed.fetch_and_parse(FEED_URL)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
FeedjiraRedis::Feed is actually a Datamapper model that wraps the interface to Feedjira::Feed with some code to add persistence. Feeds are uniquely identified by their `feed_url` property, so when you call `fetch_and_parse` or `update` a second time the new entries are associated with the original feed.
|
24
|
+
|
25
|
+
Run `rake blog:update` to grab some entries.
|
26
|
+
|
27
|
+
#### Action
|
28
|
+
Now you just need to fetch the object your Rakefile created.
|
29
|
+
|
30
|
+
`@feed = FeedjiraRedis::Feed.first(:feed_url => FEED_URL)`
|
31
|
+
|
32
|
+
#### View
|
33
|
+
FeedjiraRedis::Entry is also a Datamapper model, but it shares the same properties as Feedjira::Entry.
|
34
|
+
|
35
|
+
%h1= @feed.title
|
36
|
+
- @feed.entries.each do |e|
|
37
|
+
%h2= e.title
|
38
|
+
%p= e.content
|
39
|
+
|
40
|
+
See the [Feedjira](https://github.com/feedjira/feedjira) documentation or [read the code](https://github.com/logankoester/feedjira-redis/blob/master/lib/feedjira-redis.rb) (it's short!) for further details.
|
41
|
+
|
42
|
+
## Contributing to feedjira-redis
|
43
|
+
|
44
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
45
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
46
|
+
* Fork the project
|
47
|
+
* Start a feature/bugfix branch
|
48
|
+
* Commit and push until you are happy with your contribution
|
49
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
50
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
51
|
+
|
52
|
+
## Copyright
|
53
|
+
|
54
|
+
Copyright (c) 2011-2014 Logan Koester. See LICENSE.txt for
|
55
|
+
further details.
|
data/Rakefile
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "feedjira-redis"
|
18
|
+
gem.homepage = "http://github.com/logankoester/feedjira-redis"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = %Q{Dead simple feed persistance}
|
21
|
+
gem.description = %Q{Dead simple feed persistence}
|
22
|
+
gem.email = "logan@logankoester.com"
|
23
|
+
gem.authors = ["Logan Koester"]
|
24
|
+
# dependencies defined in Gemfile
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
27
|
+
|
28
|
+
require 'rake/testtask'
|
29
|
+
Rake::TestTask.new(:test) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.pattern = 'test/**/test_*.rb'
|
32
|
+
test.verbose = true
|
33
|
+
end
|
34
|
+
|
35
|
+
#require 'simplecov'
|
36
|
+
#SimpleCov.configure do |test|
|
37
|
+
#Rcov::RcovTask.new do |test|
|
38
|
+
# test.libs << 'test'
|
39
|
+
# test.pattern = 'test/**/test_*.rb'
|
40
|
+
# test.verbose = true
|
41
|
+
# test.rcov_opts << '--exclude "gems/*"'
|
42
|
+
#end
|
43
|
+
|
44
|
+
task :default => :test
|
45
|
+
|
46
|
+
require 'rdoc/task'
|
47
|
+
Rake::RDocTask.new do |rdoc|
|
48
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
49
|
+
|
50
|
+
rdoc.rdoc_dir = 'rdoc'
|
51
|
+
rdoc.title = "feedjira-redis #{version}"
|
52
|
+
rdoc.rdoc_files.include('README*')
|
53
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
54
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.1
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "feedjira-redis"
|
8
|
+
s.version = "1.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Logan Koester"]
|
12
|
+
s.date = "2014-05-21"
|
13
|
+
s.description = "Dead simple feed persistence"
|
14
|
+
s.email = "logan@logankoester.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.markdown"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".rvmrc",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.markdown",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"feedjira-redis.gemspec",
|
29
|
+
"lib/feedjira-redis.rb",
|
30
|
+
"test/fixtures/monkeys_new.atom",
|
31
|
+
"test/fixtures/monkeys_old.atom",
|
32
|
+
"test/helper.rb",
|
33
|
+
"test/test_feedjira-redis.rb"
|
34
|
+
]
|
35
|
+
s.homepage = "http://github.com/logankoester/feedjira-redis"
|
36
|
+
s.licenses = ["MIT"]
|
37
|
+
s.require_paths = ["lib"]
|
38
|
+
s.rubygems_version = "2.0.14"
|
39
|
+
s.summary = "Dead simple feed persistance"
|
40
|
+
|
41
|
+
if s.respond_to? :specification_version then
|
42
|
+
s.specification_version = 4
|
43
|
+
|
44
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
45
|
+
s.add_runtime_dependency(%q<dm-redis-adapter>, [">= 0"])
|
46
|
+
s.add_runtime_dependency(%q<feedjira>, [">= 0"])
|
47
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
48
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
49
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
50
|
+
s.add_development_dependency(%q<jeweler>, [">= 2.0.1"])
|
51
|
+
else
|
52
|
+
s.add_dependency(%q<dm-redis-adapter>, [">= 0"])
|
53
|
+
s.add_dependency(%q<feedjira>, [">= 0"])
|
54
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
55
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
56
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
57
|
+
s.add_dependency(%q<jeweler>, [">= 2.0.1"])
|
58
|
+
end
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<dm-redis-adapter>, [">= 0"])
|
61
|
+
s.add_dependency(%q<feedjira>, [">= 0"])
|
62
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
63
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
64
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
65
|
+
s.add_dependency(%q<jeweler>, [">= 2.0.1"])
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
@@ -0,0 +1,81 @@
|
|
1
|
+
%w{rubygems feedjira dm-core dm-redis-adapter}.each { |f| require f }
|
2
|
+
|
3
|
+
module FeedjiraRedis
|
4
|
+
|
5
|
+
class Entry
|
6
|
+
include DataMapper::Resource
|
7
|
+
property :id, Serial
|
8
|
+
property :guid, String, :index => true
|
9
|
+
property :title, String
|
10
|
+
property :url, String
|
11
|
+
property :author, String
|
12
|
+
property :summary, Text
|
13
|
+
property :content, Text
|
14
|
+
property :published, Time
|
15
|
+
|
16
|
+
belongs_to :feed
|
17
|
+
end
|
18
|
+
|
19
|
+
class Feed
|
20
|
+
include DataMapper::Resource
|
21
|
+
property :id, Serial
|
22
|
+
property :title, String
|
23
|
+
property :url, String
|
24
|
+
property :feed_url, String, :index => true
|
25
|
+
property :etag, String
|
26
|
+
property :last_modified, DateTime
|
27
|
+
|
28
|
+
has n, :entries
|
29
|
+
|
30
|
+
def add_entries(entries)
|
31
|
+
entries.each do |entry|
|
32
|
+
unique_id = entry.id || entry.url
|
33
|
+
redis_entry = Entry.first_or_create( {:guid => unique_id}, {
|
34
|
+
:title => entry.title,
|
35
|
+
:summary => entry.summary,
|
36
|
+
:url => entry.url,
|
37
|
+
:published => entry.published,
|
38
|
+
:feed => self
|
39
|
+
})
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.fetch_and_parse(urls, options = {})
|
44
|
+
if urls.is_a?(String)
|
45
|
+
feed = Feedjira::Feed.fetch_and_parse(urls, options)
|
46
|
+
update_redis_from feed
|
47
|
+
elsif urls.is_a?(Array)
|
48
|
+
feeds = Feedjira::Feed.fetch_and_parse(urls, options)
|
49
|
+
redis_feeds = {}
|
50
|
+
feeds.map do |feed|
|
51
|
+
redis_feed = update_redis_from feed
|
52
|
+
redis_feeds.merge!(redis_feed.feed_url => redis_feed)
|
53
|
+
end
|
54
|
+
else
|
55
|
+
raise "Unexpected urls class #{urls.class}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# Delegate for compatibility
|
60
|
+
def self.update(feeds, options = {})
|
61
|
+
feeds.is_a?(Array) ? urls = feeds.map { |f| f.feed_url } : urls = feeds.feed_url
|
62
|
+
self.fetch_and_parse(urls, options)
|
63
|
+
end
|
64
|
+
|
65
|
+
private
|
66
|
+
def self.update_redis_from(feed)
|
67
|
+
redis_feed = Feed.first_or_create(:feed_url => feed.feed_url)
|
68
|
+
redis_feed.update({
|
69
|
+
:title => feed.title,
|
70
|
+
:url => feed.url,
|
71
|
+
:etag => feed.etag,
|
72
|
+
:last_modified => feed.last_modified
|
73
|
+
})
|
74
|
+
redis_feed.add_entries(feed.entries)
|
75
|
+
redis_feed.save
|
76
|
+
return redis_feed
|
77
|
+
end
|
78
|
+
end
|
79
|
+
DataMapper.finalize
|
80
|
+
end
|
81
|
+
|
@@ -0,0 +1,313 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<feed xmlns:google="http://base.google.com/ns/1.0" xml:lang="en-US" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.w3.org/2005/Atom" xmlns:twitter="http://api.twitter.com/">
|
3
|
+
<id>tag:search.twitter.com,2005:search/monkeys</id>
|
4
|
+
<link type="text/html" href="http://search.twitter.com/search?q=monkeys" rel="alternate"/>
|
5
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?q=monkeys" rel="self"/>
|
6
|
+
<title>monkeys - Twitter Search</title>
|
7
|
+
<link type="application/opensearchdescription+xml" href="http://search.twitter.com/opensearch.xml" rel="search"/>
|
8
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?q=monkeys&since_id=93416858476232704" rel="refresh"/>
|
9
|
+
<twitter:warning>since_id removed for pagination.</twitter:warning>
|
10
|
+
<updated>2011-07-19T20:28:09Z</updated>
|
11
|
+
<openSearch:itemsPerPage>15</openSearch:itemsPerPage>
|
12
|
+
<link type="application/atom+xml" href="http://search.twitter.com/search.atom?max_id=93416858476232704&page=2&q=monkeys" rel="next"/>
|
13
|
+
<entry>
|
14
|
+
<id>tag:search.twitter.com,2005:93416858476232704</id>
|
15
|
+
<published>2011-07-19T20:28:09Z</published>
|
16
|
+
<link type="text/html" href="http://twitter.com/Toots_90/statuses/93416858476232704" rel="alternate"/>
|
17
|
+
<title>Can't beat a bit of old school Arctic Monkeys.</title>
|
18
|
+
<content type="html">Can&apos;t beat a bit of old school Arctic <b>Monkeys</b>.</content>
|
19
|
+
<updated>2011-07-19T20:28:09Z</updated>
|
20
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1371302215/016w_normal.jpg" rel="image"/>
|
21
|
+
<twitter:geo>
|
22
|
+
</twitter:geo>
|
23
|
+
<twitter:metadata>
|
24
|
+
<twitter:result_type>recent</twitter:result_type>
|
25
|
+
</twitter:metadata>
|
26
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
27
|
+
<twitter:lang>en</twitter:lang>
|
28
|
+
<author>
|
29
|
+
<name>Toots_90 (Tabi Jones)</name>
|
30
|
+
<uri>http://twitter.com/Toots_90</uri>
|
31
|
+
</author>
|
32
|
+
</entry>
|
33
|
+
<entry>
|
34
|
+
<id>tag:search.twitter.com,2005:93416857209552896</id>
|
35
|
+
<published>2011-07-19T20:28:09Z</published>
|
36
|
+
<link type="text/html" href="http://twitter.com/MinnetonkaTwin/statuses/93416857209552896" rel="alternate"/>
|
37
|
+
<title>RT @MrBill01: You asked, and yes its true! - http://bit.ly/iyaqwl - I am a #Monkey's #Uncle!!!</title>
|
38
|
+
<content type="html">RT <a href="http://twitter.com/MrBill01">@MrBill01</a>: You asked, and yes its true! - <a href="http://bit.ly/iyaqwl">http://bit.ly/iyaqwl</a> - I am a <a href="http://search.twitter.com/search?q=%23Monkey" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#Monkey');">#Monkey</a>&apos;s <a href="http://search.twitter.com/search?q=%23Uncle" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#Uncle');">#Uncle</a>!!!</content>
|
39
|
+
<updated>2011-07-19T20:28:09Z</updated>
|
40
|
+
<link type="image/png" href="http://a0.twimg.com/profile_images/1286228873/Laura___Linda_004_normal.JPG" rel="image"/>
|
41
|
+
<twitter:geo>
|
42
|
+
</twitter:geo>
|
43
|
+
<twitter:metadata>
|
44
|
+
<twitter:result_type>recent</twitter:result_type>
|
45
|
+
</twitter:metadata>
|
46
|
+
<twitter:source><a href="http://www.twaitter.com" rel="nofollow">Twaitter</a></twitter:source>
|
47
|
+
<twitter:lang>en</twitter:lang>
|
48
|
+
<author>
|
49
|
+
<name>MinnetonkaTwin (Linda Rogers)</name>
|
50
|
+
<uri>http://twitter.com/MinnetonkaTwin</uri>
|
51
|
+
</author>
|
52
|
+
</entry>
|
53
|
+
<entry>
|
54
|
+
<id>tag:search.twitter.com,2005:93416797512024065</id>
|
55
|
+
<published>2011-07-19T20:27:54Z</published>
|
56
|
+
<link type="text/html" href="http://twitter.com/wizkhalifeh/statuses/93416797512024065" rel="alternate"/>
|
57
|
+
<title>RT @iFucked_Jbarbie: I no longer call girls hoes or bitches. I call them monkeys.</title>
|
58
|
+
<content type="html">RT <a href="http://twitter.com/iFucked_Jbarbie">@iFucked_Jbarbie</a>: I no longer call girls hoes or bitches. I call them <b>monkeys</b>.</content>
|
59
|
+
<updated>2011-07-19T20:27:54Z</updated>
|
60
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1380264334/40547_415279834666_768024666_4671457_3435242_n_normal.jpg" rel="image"/>
|
61
|
+
<twitter:geo>
|
62
|
+
</twitter:geo>
|
63
|
+
<twitter:metadata>
|
64
|
+
<twitter:result_type>recent</twitter:result_type>
|
65
|
+
</twitter:metadata>
|
66
|
+
<twitter:source><a href="http://ubersocial.com" rel="nofollow">ÜberSocial for BlackBerry</a></twitter:source>
|
67
|
+
<twitter:lang>en</twitter:lang>
|
68
|
+
<author>
|
69
|
+
<name>wizkhalifeh (Michael Khalifeh)</name>
|
70
|
+
<uri>http://twitter.com/wizkhalifeh</uri>
|
71
|
+
</author>
|
72
|
+
</entry>
|
73
|
+
<entry>
|
74
|
+
<id>tag:search.twitter.com,2005:93416771427635200</id>
|
75
|
+
<published>2011-07-19T20:27:48Z</published>
|
76
|
+
<link type="text/html" href="http://twitter.com/Wonderland_ESA/statuses/93416771427635200" rel="alternate"/>
|
77
|
+
<title>RT @JodiWonderland: Yay!!! Birthday week starts today with rescue Monkeys!!! All my little monkeys taking me to see real little monkeys! Love it!!! Xxxx</title>
|
78
|
+
<content type="html">RT <a href="http://twitter.com/JodiWonderland">@JodiWonderland</a>: Yay!!! Birthday week starts today with rescue <b>Monkeys</b>!!! All my little <b>monkeys</b> taking me to see real little <b>monkeys</b>! Love it!!! Xxxx</content>
|
79
|
+
<updated>2011-07-19T20:27:48Z</updated>
|
80
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1434781989/nuevo_avatar_normal.jpg" rel="image"/>
|
81
|
+
<twitter:geo>
|
82
|
+
</twitter:geo>
|
83
|
+
<twitter:metadata>
|
84
|
+
<twitter:result_type>recent</twitter:result_type>
|
85
|
+
</twitter:metadata>
|
86
|
+
<twitter:source><a href="http://www.echofon.com/" rel="nofollow">Echofon</a></twitter:source>
|
87
|
+
<twitter:lang>en</twitter:lang>
|
88
|
+
<author>
|
89
|
+
<name>Wonderland_ESA (Wondies El Salvador)</name>
|
90
|
+
<uri>http://twitter.com/Wonderland_ESA</uri>
|
91
|
+
</author>
|
92
|
+
</entry>
|
93
|
+
<entry>
|
94
|
+
<id>tag:search.twitter.com,2005:93416728360534020</id>
|
95
|
+
<published>2011-07-19T20:27:38Z</published>
|
96
|
+
<link type="text/html" href="http://twitter.com/KlrTwiLuver/statuses/93416728360534020" rel="alternate"/>
|
97
|
+
<title>@SunnySnark @quantumfizzx Just heard from @foundmyedward that 100 Monkeys is inKCMO on Aug 11. What ya say??</title>
|
98
|
+
<content type="html"><a href="http://twitter.com/SunnySnark">@SunnySnark</a> <a href="http://twitter.com/quantumfizzx">@quantumfizzx</a> Just heard from <a href="http://twitter.com/foundmyedward">@foundmyedward</a> that 100 <b>Monkeys</b> is inKCMO on Aug 11. What ya say??</content>
|
99
|
+
<updated>2011-07-19T20:27:38Z</updated>
|
100
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1448216508/image_normal.jpg" rel="image"/>
|
101
|
+
<twitter:geo>
|
102
|
+
</twitter:geo>
|
103
|
+
<twitter:metadata>
|
104
|
+
<twitter:result_type>recent</twitter:result_type>
|
105
|
+
</twitter:metadata>
|
106
|
+
<twitter:source><a href="http://twitter.com/#!/download/iphone" rel="nofollow">Twitter for iPhone</a></twitter:source>
|
107
|
+
<twitter:lang>en</twitter:lang>
|
108
|
+
<author>
|
109
|
+
<name>KlrTwiLuver (KlrTwiLuver)</name>
|
110
|
+
<uri>http://twitter.com/KlrTwiLuver</uri>
|
111
|
+
</author>
|
112
|
+
</entry>
|
113
|
+
<entry>
|
114
|
+
<id>tag:search.twitter.com,2005:93416711990165505</id>
|
115
|
+
<published>2011-07-19T20:27:34Z</published>
|
116
|
+
<link type="text/html" href="http://twitter.com/poxamario/statuses/93416711990165505" rel="alternate"/>
|
117
|
+
<title>Arctic Monkeys diz: SHALALALALAAAAAAAA</title>
|
118
|
+
<content type="html">Arctic <b>Monkeys</b> diz: SHALALALALAAAAAAAA</content>
|
119
|
+
<updated>2011-07-19T20:27:34Z</updated>
|
120
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1445779110/100_7524tt_normal.jpg" rel="image"/>
|
121
|
+
<twitter:geo>
|
122
|
+
</twitter:geo>
|
123
|
+
<twitter:metadata>
|
124
|
+
<twitter:result_type>recent</twitter:result_type>
|
125
|
+
</twitter:metadata>
|
126
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
127
|
+
<twitter:lang>in</twitter:lang>
|
128
|
+
<author>
|
129
|
+
<name>poxamario (M. San)</name>
|
130
|
+
<uri>http://twitter.com/poxamario</uri>
|
131
|
+
</author>
|
132
|
+
</entry>
|
133
|
+
<entry>
|
134
|
+
<id>tag:search.twitter.com,2005:93416678913884161</id>
|
135
|
+
<published>2011-07-19T20:27:26Z</published>
|
136
|
+
<link type="text/html" href="http://twitter.com/CrapSandviche/statuses/93416678913884161" rel="alternate"/>
|
137
|
+
<title>@travisrodgers So NO MOVIES WITH MONKEYS. what about Cowboys vs Aliens. Thanks.</title>
|
138
|
+
<content type="html"><a href="http://twitter.com/travisrodgers">@travisrodgers</a> So NO MOVIES WITH <b>MONKEYS</b>. what about Cowboys vs Aliens. Thanks.</content>
|
139
|
+
<updated>2011-07-19T20:27:26Z</updated>
|
140
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1431201706/RobertCrap2_normal.jpg" rel="image"/>
|
141
|
+
<twitter:geo>
|
142
|
+
</twitter:geo>
|
143
|
+
<twitter:metadata>
|
144
|
+
<twitter:result_type>recent</twitter:result_type>
|
145
|
+
</twitter:metadata>
|
146
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
147
|
+
<twitter:lang>en</twitter:lang>
|
148
|
+
<author>
|
149
|
+
<name>CrapSandviche (#1 Fan of Neagli)</name>
|
150
|
+
<uri>http://twitter.com/CrapSandviche</uri>
|
151
|
+
</author>
|
152
|
+
</entry>
|
153
|
+
<entry>
|
154
|
+
<id>tag:search.twitter.com,2005:93416625633632256</id>
|
155
|
+
<published>2011-07-19T20:27:13Z</published>
|
156
|
+
<link type="text/html" href="http://twitter.com/cocteaulab/statuses/93416625633632256" rel="alternate"/>
|
157
|
+
<title>RT @juangallagher: Muchas bandas quisieran un Baterista como Matt Helders de los Arctic Monkeys, que bueno es ese cabron.</title>
|
158
|
+
<content type="html">RT <a href="http://twitter.com/juangallagher">@juangallagher</a>: Muchas bandas quisieran un Baterista como Matt Helders de los Arctic <b>Monkeys</b>, que bueno es ese cabron.</content>
|
159
|
+
<updated>2011-07-19T20:27:13Z</updated>
|
160
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1241377562/Copia_de__DSC0028Total_normal.jpg" rel="image"/>
|
161
|
+
<twitter:geo>
|
162
|
+
</twitter:geo>
|
163
|
+
<twitter:metadata>
|
164
|
+
<twitter:result_type>recent</twitter:result_type>
|
165
|
+
</twitter:metadata>
|
166
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
167
|
+
<twitter:lang>es</twitter:lang>
|
168
|
+
<author>
|
169
|
+
<name>cocteaulab (Jean C. Rivadeneira)</name>
|
170
|
+
<uri>http://twitter.com/cocteaulab</uri>
|
171
|
+
</author>
|
172
|
+
</entry>
|
173
|
+
<entry>
|
174
|
+
<id>tag:search.twitter.com,2005:93416617517662208</id>
|
175
|
+
<published>2011-07-19T20:27:11Z</published>
|
176
|
+
<link type="text/html" href="http://twitter.com/perceptionalize/statuses/93416617517662208" rel="alternate"/>
|
177
|
+
<title>monkeys and copyright... http://huff.to/o6ySUs</title>
|
178
|
+
<content type="html"><b>monkeys</b> and copyright... <a href="http://huff.to/o6ySUs">http://huff.to/o6ySUs</a></content>
|
179
|
+
<updated>2011-07-19T20:27:11Z</updated>
|
180
|
+
<link type="image/png" href="http://a2.twimg.com/profile_images/1184639208/Unbenannt-1_normal.jpg" rel="image"/>
|
181
|
+
<twitter:geo>
|
182
|
+
</twitter:geo>
|
183
|
+
<twitter:metadata>
|
184
|
+
<twitter:result_type>recent</twitter:result_type>
|
185
|
+
</twitter:metadata>
|
186
|
+
<twitter:source><a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></twitter:source>
|
187
|
+
<twitter:lang>en</twitter:lang>
|
188
|
+
<author>
|
189
|
+
<name>perceptionalize (Maria Schreiber)</name>
|
190
|
+
<uri>http://twitter.com/perceptionalize</uri>
|
191
|
+
</author>
|
192
|
+
</entry>
|
193
|
+
<entry>
|
194
|
+
<id>tag:search.twitter.com,2005:93416611993747456</id>
|
195
|
+
<published>2011-07-19T20:27:10Z</published>
|
196
|
+
<link type="text/html" href="http://twitter.com/EvaEvsEva/statuses/93416611993747456" rel="alternate"/>
|
197
|
+
<title>Photoset: fuckyeaharcticmonkeys: http://tumblr.com/xjz3l8gju8</title>
|
198
|
+
<content type="html">Photoset: fuckyeaharcticmonkeys: <a href="http://tumblr.com/xjz3l8gju8">http://tumblr.com/xjz3l8gju8</a></content>
|
199
|
+
<updated>2011-07-19T20:27:10Z</updated>
|
200
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1440117754/DSC02724__479x640__normal.jpg" rel="image"/>
|
201
|
+
<twitter:geo>
|
202
|
+
</twitter:geo>
|
203
|
+
<twitter:metadata>
|
204
|
+
<twitter:result_type>recent</twitter:result_type>
|
205
|
+
</twitter:metadata>
|
206
|
+
<twitter:source><a href="http://www.tumblr.com/" rel="nofollow">Tumblr</a></twitter:source>
|
207
|
+
<twitter:lang>fr</twitter:lang>
|
208
|
+
<author>
|
209
|
+
<name>EvaEvsEva (Eva Paula )</name>
|
210
|
+
<uri>http://twitter.com/EvaEvsEva</uri>
|
211
|
+
</author>
|
212
|
+
</entry>
|
213
|
+
<entry>
|
214
|
+
<id>tag:search.twitter.com,2005:93416597934456832</id>
|
215
|
+
<published>2011-07-19T20:27:07Z</published>
|
216
|
+
<link type="text/html" href="http://twitter.com/rachelleannee/statuses/93416597934456832" rel="alternate"/>
|
217
|
+
<title>LOL Kathleen's dream about monkeys</title>
|
218
|
+
<content type="html">LOL Kathleen&apos;s dream about <b>monkeys</b></content>
|
219
|
+
<updated>2011-07-19T20:27:07Z</updated>
|
220
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1432495459/Picture0222_normal.jpg" rel="image"/>
|
221
|
+
<twitter:geo>
|
222
|
+
</twitter:geo>
|
223
|
+
<twitter:metadata>
|
224
|
+
<twitter:result_type>recent</twitter:result_type>
|
225
|
+
</twitter:metadata>
|
226
|
+
<twitter:source><a href="http://twitter.com/devices" rel="nofollow">txt</a></twitter:source>
|
227
|
+
<twitter:lang>en</twitter:lang>
|
228
|
+
<author>
|
229
|
+
<name>rachelleannee (Rachelle A. Rivera)</name>
|
230
|
+
<uri>http://twitter.com/rachelleannee</uri>
|
231
|
+
</author>
|
232
|
+
</entry>
|
233
|
+
<entry>
|
234
|
+
<id>tag:search.twitter.com,2005:93416567165026304</id>
|
235
|
+
<published>2011-07-19T20:26:59Z</published>
|
236
|
+
<link type="text/html" href="http://twitter.com/tfalls13/statuses/93416567165026304" rel="alternate"/>
|
237
|
+
<title>@Cubanaaa_ @bigwilli69 You may act white..but just know that between the both of yall #mixedpeople on us "porch monkeys".</title>
|
238
|
+
<content type="html"><a href="http://twitter.com/Cubanaaa_">@Cubanaaa_</a> <a href="http://twitter.com/bigwilli69">@bigwilli69</a> You may act white..but just know that between the both of yall <a href="http://search.twitter.com/search?q=%23mixedpeople" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#mixedpeople');">#mixedpeople</a> on us &quot;porch <b>monkeys</b>&quot;.</content>
|
239
|
+
<updated>2011-07-19T20:26:59Z</updated>
|
240
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1433774027/2SVCbC4R_normal" rel="image"/>
|
241
|
+
<twitter:geo>
|
242
|
+
</twitter:geo>
|
243
|
+
<twitter:metadata>
|
244
|
+
<twitter:result_type>recent</twitter:result_type>
|
245
|
+
</twitter:metadata>
|
246
|
+
<twitter:source><a href="http://twitter.com/download/android" rel="nofollow">Twitter for Android</a></twitter:source>
|
247
|
+
<twitter:lang>en</twitter:lang>
|
248
|
+
<author>
|
249
|
+
<name>tfalls13 (Trent Falls )</name>
|
250
|
+
<uri>http://twitter.com/tfalls13</uri>
|
251
|
+
</author>
|
252
|
+
</entry>
|
253
|
+
<entry>
|
254
|
+
<id>tag:search.twitter.com,2005:93416537817485312</id>
|
255
|
+
<published>2011-07-19T20:26:52Z</published>
|
256
|
+
<link type="text/html" href="http://twitter.com/andyohara52/statuses/93416537817485312" rel="alternate"/>
|
257
|
+
<title>The three wise monkeys. Not me. Not me and Not me. Cant see Cant hear Cant speak</title>
|
258
|
+
<content type="html">The three wise <b>monkeys</b>. Not me. Not me and Not me. Cant see Cant hear Cant speak</content>
|
259
|
+
<updated>2011-07-19T20:26:52Z</updated>
|
260
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1368528953/63474592352032250_normal.jpg" rel="image"/>
|
261
|
+
<twitter:geo>
|
262
|
+
</twitter:geo>
|
263
|
+
<twitter:metadata>
|
264
|
+
<twitter:result_type>recent</twitter:result_type>
|
265
|
+
</twitter:metadata>
|
266
|
+
<twitter:source><a href="http://www.snaptu.com" rel="nofollow">Snaptu</a></twitter:source>
|
267
|
+
<twitter:lang>en</twitter:lang>
|
268
|
+
<author>
|
269
|
+
<name>andyohara52 (andrew ohara)</name>
|
270
|
+
<uri>http://twitter.com/andyohara52</uri>
|
271
|
+
</author>
|
272
|
+
</entry>
|
273
|
+
<entry>
|
274
|
+
<id>tag:search.twitter.com,2005:93416516598505472</id>
|
275
|
+
<published>2011-07-19T20:26:47Z</published>
|
276
|
+
<link type="text/html" href="http://twitter.com/Mr_Blackett/statuses/93416516598505472" rel="alternate"/>
|
277
|
+
<title>Monkeys are the coolest animals.</title>
|
278
|
+
<content type="html"><b>Monkeys</b> are the coolest animals.</content>
|
279
|
+
<updated>2011-07-19T20:26:47Z</updated>
|
280
|
+
<link type="image/png" href="http://a1.twimg.com/profile_images/1449526393/b4_normal.jpg" rel="image"/>
|
281
|
+
<twitter:geo>
|
282
|
+
</twitter:geo>
|
283
|
+
<twitter:metadata>
|
284
|
+
<twitter:result_type>recent</twitter:result_type>
|
285
|
+
</twitter:metadata>
|
286
|
+
<twitter:source><a href="http://twitter.com/">web</a></twitter:source>
|
287
|
+
<twitter:lang>en</twitter:lang>
|
288
|
+
<author>
|
289
|
+
<name>Mr_Blackett (Brennon Blackett)</name>
|
290
|
+
<uri>http://twitter.com/Mr_Blackett</uri>
|
291
|
+
</author>
|
292
|
+
</entry>
|
293
|
+
<entry>
|
294
|
+
<id>tag:search.twitter.com,2005:93416506418925568</id>
|
295
|
+
<published>2011-07-19T20:26:45Z</published>
|
296
|
+
<link type="text/html" href="http://twitter.com/muzza299/statuses/93416506418925568" rel="alternate"/>
|
297
|
+
<title>@chiefie @bebe33 @ronindotca timing is everything. NZ's always last on the list. Unless it's in beta. Then we're the test-monkeys.</title>
|
298
|
+
<content type="html"><a href="http://twitter.com/chiefie">@chiefie</a> <a href="http://twitter.com/bebe33">@bebe33</a> <a href="http://twitter.com/ronindotca">@ronindotca</a> timing is everything. NZ&apos;s always last on the list. Unless it&apos;s in beta. Then we&apos;re the test-<b>monkeys</b>.</content>
|
299
|
+
<updated>2011-07-19T20:26:45Z</updated>
|
300
|
+
<link type="image/png" href="http://a3.twimg.com/profile_images/1282082203/muzza299_normal.jpeg" rel="image"/>
|
301
|
+
<twitter:geo>
|
302
|
+
</twitter:geo>
|
303
|
+
<twitter:metadata>
|
304
|
+
<twitter:result_type>recent</twitter:result_type>
|
305
|
+
</twitter:metadata>
|
306
|
+
<twitter:source><a href="http://www.osfoora.com" rel="nofollow">Osfoora for iPhone</a></twitter:source>
|
307
|
+
<twitter:lang>en</twitter:lang>
|
308
|
+
<author>
|
309
|
+
<name>muzza299 (Hugh McCracken)</name>
|
310
|
+
<uri>http://twitter.com/muzza299</uri>
|
311
|
+
</author>
|
312
|
+
</entry>
|
313
|
+
</feed>
|