feedzirra 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +21 -0
  4. data/Gemfile +6 -1
  5. data/README.md +25 -3
  6. data/lib/feedzirra/feed.rb +28 -4
  7. data/lib/feedzirra/feed_utilities.rb +24 -0
  8. data/lib/feedzirra/parser/atom.rb +33 -2
  9. data/lib/feedzirra/parser/itunes_rss_item.rb +1 -0
  10. data/lib/feedzirra/parser/rss.rb +1 -0
  11. data/lib/feedzirra/version.rb +1 -1
  12. data/spec/feedzirra/feed_spec.rb +25 -2
  13. data/spec/feedzirra/feed_utilities_spec.rb +20 -0
  14. data/spec/feedzirra/parser/atom_spec.rb +11 -0
  15. data/spec/feedzirra/parser/itunes_rss_item_spec.rb +4 -0
  16. data/spec/feedzirra/parser/rss_spec.rb +4 -0
  17. data/spec/sample_feeds/AmazonWebServicesBlog.xml +1 -0
  18. data/spec/sample_feeds/AtomFeedWithSpacesAroundEquals.xml +2 -1
  19. data/spec/sample_feeds/FeedBurnerUrlNoAlternate.xml +1 -0
  20. data/spec/sample_feeds/GoogleDocsList.xml +1 -0
  21. data/spec/sample_feeds/HREFConsideredHarmful.xml +1 -0
  22. data/spec/sample_feeds/ITunesWithSpacesInAttributes.xml +2 -1
  23. data/spec/sample_feeds/PaulDixExplainsNothing.xml +1 -0
  24. data/spec/sample_feeds/PaulDixExplainsNothingAlternate.xml +1 -0
  25. data/spec/sample_feeds/SamRuby.xml +1 -0
  26. data/spec/sample_feeds/TechCrunch.xml +1 -0
  27. data/spec/sample_feeds/TenderLovemaking.xml +1 -0
  28. data/spec/sample_feeds/TrotterCashionHome.xml +1 -0
  29. data/spec/sample_feeds/TypePadNews.xml +1 -0
  30. data/spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml +2 -1
  31. data/spec/sample_feeds/itunes.xml +2 -0
  32. data/spec/sample_feeds/pet_atom.xml +497 -0
  33. data/spec/spec_helper.rb +4 -0
  34. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 048f791232329d98fa0df072ce3e5c7847c41749
4
- data.tar.gz: 72e0a96c185791334ecdbfd7afab28221d49613d
3
+ metadata.gz: 935a303a640e7d1691deac27f8fa4842890d20f8
4
+ data.tar.gz: c8fb4c77b662451975749d78c40327bdbd53d819
5
5
  SHA512:
6
- metadata.gz: 7c641a152886c14656b4e6152d2c8c295a60fe492d45960a3177cfdd71241a7a6af7771a100d632c65d649743f2fbc909dd34e6f8f9c68b5eecfe3b528dddce4
7
- data.tar.gz: 846fe77d347dcfc4f2ae943f76472e6fab1f3116a1872149e2c78f0ac37082d156f066759d9f68b222950f380ef8867577629b9ae43f0c2e72fa6881bf332fb7
6
+ metadata.gz: a5219f1781ac43e8736032ae7cb9b7d3840394af711a1f2041e7ee71bfba894977d8ed4040077e003977c5af768622284725021c8f3d661ce70c93fdce882eff
7
+ data.tar.gz: 1f525c241c9c5f7de1351f8941d48a944b225fe71cfee43918cadcabaaabe70bd1a3c9b9028145c24b100e21b29246d03e7011e4c3e680629cc7832a4cfc09f5
@@ -5,4 +5,4 @@ rvm:
5
5
  - 1.9.2
6
6
  - 1.9.3
7
7
  - 2.0.0
8
- - rbx-19mode
8
+ - rbx
@@ -1,5 +1,26 @@
1
1
  # Feedzirra Changelog
2
2
 
3
+ ## 0.6.0
4
+
5
+ * General
6
+ * Update expected parser classes in docs [[#200][]]
7
+ * Fix Rubinius issue with Travis
8
+
9
+ * Enhancements
10
+ * Added content to `itunes_rss_item` [[#198][]]
11
+ * Allow user to pass a particular parser using `parse_with`
12
+ * Strip leading whitespace from XML [[#196][]]
13
+ * Parse out RSS version [[#172][]]
14
+ * Add generic preprocessing hook for Parsers
15
+ * Add preprocessing hook for Atom XHTML content [[#58][]] [[#130][]]
16
+
17
+ [#58]: https://github.com/pauldix/feedzirra/pull/58
18
+ [#130]: https://github.com/pauldix/feedzirra/issues/130
19
+ [#172]: https://github.com/pauldix/feedzirra/issues/172
20
+ [#196]: https://github.com/pauldix/feedzirra/pull/196
21
+ [#198]: https://github.com/pauldix/feedzirra/pull/198
22
+ [#200]: https://github.com/pauldix/feedzirra/pull/200
23
+
3
24
  ## 0.5.0
4
25
 
5
26
  * General
data/Gemfile CHANGED
@@ -9,4 +9,9 @@ end
9
9
  group :tools do
10
10
  gem 'guard-rspec'
11
11
  gem 'simplecov', :require => false, :platforms => :mri_19
12
- end
12
+ end
13
+
14
+ platforms :rbx do
15
+ gem 'racc'
16
+ gem 'rubysl'
17
+ end
data/README.md CHANGED
@@ -116,9 +116,31 @@ feed = Feedzirra::Feed.fetch_and_parse("http://feeds.feedburner.com/PaulDixExpla
116
116
 
117
117
  ### Adding a feed parsing class
118
118
 
119
+ When determining which parser to use for a given XML document, the following
120
+ list of parser classes is used:
121
+
122
+ * `Feedzirra::Parser::RSSFeedBurner`
123
+ * `Feedzirra::Parser::GoogleDocsAtom`
124
+ * `Feedzirra::Parser::AtomFeedBurner`
125
+ * `Feedzirra::Parser::Atom`
126
+ * `Feedzirra::Parser::ITunesRSS`
127
+ * `Feedzirra::Parser::RSS`
128
+
129
+ You can insert your own parser at the front of this stack by calling
130
+ `add_feed_class`, like this:
131
+
119
132
  ```ruby
120
- # Adds a new feed parsing class, this class will be used first
121
- Feedzirra::Feed.add_feed_class MyFeedClass
133
+ Feedzirra::Feed.add_feed_class MyAwesomeParser
134
+ ```
135
+
136
+ Now when you `fetch_and_parse`, `MyAwesomeParser` will be the first one to get a
137
+ chance to parse the feed.
138
+
139
+ If you have the XML and just want to provide a parser class for one parse, you
140
+ can specify that using `parse_with`:
141
+
142
+ ```ruby
143
+ Feedzirra::Feed.parse_with MyAwesomeParser, xml
122
144
  ```
123
145
 
124
146
  ### Adding attributes to all feeds types / all entries types
@@ -151,7 +173,7 @@ end
151
173
 
152
174
  # Fetch a feed containing GeoRss info and print them
153
175
  Feedzirra::Feed.fetch_and_parse("http://www.earthpublisher.com/georss.php").entries.each do |e|
154
- p "lat: #[e.lat}, long: #{e.long]"
176
+ p "lat: #{e.lat}, long: #{e.long}"
155
177
  end
156
178
  ```
157
179
 
@@ -2,17 +2,34 @@ module Feedzirra
2
2
  class Feed
3
3
  USER_AGENT = "feedzirra http://github.com/pauldix/feedzirra/tree/master"
4
4
 
5
+ # Passes raw XML and callbacks to a parser.
6
+ # === Parameters
7
+ # [parser<Object>] The parser to pass arguments to - must respond to
8
+ # `parse` and should return a Feed object.
9
+ # [xml<String>] The XML that you would like parsed.
10
+ # === Returns
11
+ # An instance of the parser feed type.
12
+ def self.parse_with(parser, xml, &block)
13
+ parser.parse xml, &block
14
+ end
15
+
5
16
  # Takes a raw XML feed and attempts to parse it. If no parser is available a Feedzirra::NoParserAvailable exception is raised.
6
17
  # You can pass a block to be called when there's an error during the parsing.
7
18
  # === Parameters
8
19
  # [xml<String>] The XML that you would like parsed.
9
20
  # === Returns
10
- # An instance of the determined feed type. By default a Feedzirra::Atom, Feedzirra::AtomFeedBurner, Feedzirra::RDF, or Feedzirra::RSS object.
21
+ # An instance of the determined feed type. By default, one of these:
22
+ # * Feedzirra::Parser::RSSFeedBurner
23
+ # * Feedzirra::Parser::GoogleDocsAtom
24
+ # * Feedzirra::Parser::AtomFeedBurner
25
+ # * Feedzirra::Parser::Atom
26
+ # * Feedzirra::Parser::ITunesRSS
27
+ # * Feedzirra::Parser::RSS
11
28
  # === Raises
12
29
  # Feedzirra::NoParserAvailable : If no valid parser classes could be found for the feed.
13
30
  def self.parse(xml, &block)
14
31
  if parser = determine_feed_parser_for_xml(xml)
15
- parser.parse(xml, block)
32
+ parse_with parser, xml, &block
16
33
  else
17
34
  raise NoParserAvailable.new("No valid parser for XML.")
18
35
  end
@@ -44,7 +61,14 @@ module Feedzirra
44
61
  # === Returns
45
62
  # A array of class names.
46
63
  def self.feed_classes
47
- @feed_classes ||= [Feedzirra::Parser::RSSFeedBurner, Feedzirra::Parser::GoogleDocsAtom, Feedzirra::Parser::AtomFeedBurner, Feedzirra::Parser::Atom, Feedzirra::Parser::ITunesRSS, Feedzirra::Parser::RSS]
64
+ @feed_classes ||= [
65
+ Feedzirra::Parser::RSSFeedBurner,
66
+ Feedzirra::Parser::GoogleDocsAtom,
67
+ Feedzirra::Parser::AtomFeedBurner,
68
+ Feedzirra::Parser::Atom,
69
+ Feedzirra::Parser::ITunesRSS,
70
+ Feedzirra::Parser::RSS
71
+ ]
48
72
  end
49
73
 
50
74
  # Makes all registered feeds types look for the passed in element to parse.
@@ -288,7 +312,7 @@ module Feedzirra
288
312
 
289
313
  if klass
290
314
  begin
291
- feed = klass.parse xml, on_parser_failure(url)
315
+ feed = parse_with klass, xml, &on_parser_failure(url)
292
316
 
293
317
  feed.feed_url = c.last_effective_url
294
318
  feed.etag = etag_from_header(c.header_str)
@@ -5,6 +5,30 @@ module Feedzirra
5
5
  attr_writer :new_entries, :updated, :last_modified
6
6
  attr_accessor :etag
7
7
 
8
+ def self.included(base)
9
+ base.extend ClassMethods
10
+ end
11
+
12
+ module ClassMethods
13
+ def parse(xml, &block)
14
+ xml = preprocess(xml) if preprocess_xml
15
+ super xml.lstrip, &block
16
+ end
17
+
18
+ def preprocess(xml)
19
+ # noop
20
+ xml
21
+ end
22
+
23
+ def preprocess_xml=(value)
24
+ @preprocess_xml = value
25
+ end
26
+
27
+ def preprocess_xml
28
+ @preprocess_xml
29
+ end
30
+ end
31
+
8
32
  def last_modified
9
33
  @last_modified ||= begin
10
34
  entry = entries.reject {|e| e.published.nil? }.sort_by { |entry| entry.published if entry.published }.last
@@ -1,5 +1,4 @@
1
1
  module Feedzirra
2
-
3
2
  module Parser
4
3
  # Parser for dealing with Atom feeds.
5
4
  class Atom
@@ -24,7 +23,39 @@ module Feedzirra
24
23
  def feed_url
25
24
  @feed_url ||= links.first
26
25
  end
26
+
27
+ def self.preprocess(xml)
28
+ Preprocessor.new(xml).to_xml
29
+ end
30
+
31
+ class Preprocessor
32
+ def initialize(xml)
33
+ @xml = xml
34
+ end
35
+
36
+ def to_xml
37
+ process_nodes
38
+ doc.to_xml
39
+ end
40
+
41
+ private
42
+
43
+ def process_nodes
44
+ nodes.each { |node| node.content = raw_html(node) unless node.cdata? }
45
+ end
46
+
47
+ def nodes
48
+ doc.search 'entry > content[type="xhtml"]'
49
+ end
50
+
51
+ def raw_html(node)
52
+ CGI.unescape_html node.inner_html
53
+ end
54
+
55
+ def doc
56
+ @doc ||= Nokogiri::XML @xml
57
+ end
58
+ end
27
59
  end
28
60
  end
29
-
30
61
  end
@@ -12,6 +12,7 @@ module Feedzirra
12
12
  element :title
13
13
  element :link, :as => :url
14
14
  element :description, :as => :summary
15
+ element :"content:encoded", :as => :content
15
16
  element :pubDate, :as => :published
16
17
 
17
18
  # If author is not present use author tag on the item
@@ -5,6 +5,7 @@ module Feedzirra
5
5
  class RSS
6
6
  include SAXMachine
7
7
  include FeedUtilities
8
+ element :rss, as: :version, value: :version
8
9
  element :title
9
10
  element :description
10
11
  element :link, :as => :url
@@ -1,3 +1,3 @@
1
1
  module Feedzirra
2
- VERSION = '0.5.0'
2
+ VERSION = '0.6.0'
3
3
  end
@@ -1,7 +1,9 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
+ class Hell < StandardError; end
4
+
3
5
  class FailParser
4
- def self.parse(_, on_failure)
6
+ def self.parse(_, &on_failure)
5
7
  on_failure.call
6
8
  end
7
9
  end
@@ -44,6 +46,26 @@ describe Feedzirra::Feed do
44
46
  end
45
47
  end
46
48
 
49
+ describe '#parse_with' do
50
+ let(:xml) { '<xml></xml>' }
51
+
52
+ it 'invokes the parser and passes the xml' do
53
+ parser = double 'Parser', parse: nil
54
+ parser.should_receive(:parse).with xml
55
+ Feedzirra::Feed.parse_with parser, xml
56
+ end
57
+
58
+ context 'with a callback block' do
59
+ it 'passes the callback to the parser' do
60
+ callback = -> { raise Hell }
61
+
62
+ expect do
63
+ Feedzirra::Feed.parse_with FailParser, xml, &callback
64
+ end.to raise_error Hell
65
+ end
66
+ end
67
+ end
68
+
47
69
  describe "#parse" do # many of these tests are redundant with the specific feed type tests, but I put them here for completeness
48
70
  context "when there's an available parser" do
49
71
  it "should parse an rdf feed" do
@@ -391,7 +413,8 @@ describe Feedzirra::Feed do
391
413
  end
392
414
 
393
415
  it 'should parse the xml' do
394
- Feedzirra::Parser::AtomFeedBurner.should_receive(:parse).with(@paul_feed[:xml], an_instance_of(Proc)).and_return(@feed)
416
+ Feedzirra::Parser::AtomFeedBurner.should_receive(:parse).
417
+ with(@paul_feed[:xml]).and_return(@feed)
395
418
  Feedzirra::Feed.add_url_to_multi(@multi, @paul_feed[:url], [], {}, {})
396
419
  @easy_curl.on_success.call(@easy_curl)
397
420
  end
@@ -3,10 +3,30 @@ require File.dirname(__FILE__) + '/../spec_helper'
3
3
  describe Feedzirra::FeedUtilities do
4
4
  before(:each) do
5
5
  @klass = Class.new do
6
+ include SAXMachine
6
7
  include Feedzirra::FeedUtilities
7
8
  end
8
9
  end
9
10
 
11
+ describe "preprocessing" do
12
+ context "when the flag is not set" do
13
+ it "does not call the preprocessing method" do
14
+ @klass.preprocess_xml = false
15
+ @klass.should_not_receive :preprocess
16
+ @klass.parse sample_rss_feed
17
+ end
18
+ end
19
+
20
+ context "when the flag is set" do
21
+ it "calls the preprocessing method" do
22
+ @klass.preprocess_xml = true
23
+ @klass.should_receive(:preprocess).
24
+ and_return sample_rss_feed
25
+ @klass.parse sample_rss_feed
26
+ end
27
+ end
28
+ end
29
+
10
30
  describe "instance methods" do
11
31
  it "should provide an updated? accessor" do
12
32
  feed = @klass.new
@@ -62,4 +62,15 @@ describe Feedzirra::Parser::Atom do
62
62
  @feed.entries.size.should == 10
63
63
  end
64
64
  end
65
+
66
+ describe "preprocessing" do
67
+ it "retains markup in xhtml content" do
68
+ Feedzirra::Parser::Atom.preprocess_xml = true
69
+
70
+ feed = Feedzirra::Parser::Atom.parse sample_atom_xhtml_feed
71
+ entry = feed.entries.first
72
+
73
+ entry.content.should match /\<div/
74
+ end
75
+ end
65
76
  end
@@ -56,4 +56,8 @@ describe Feedzirra::Parser::ITunesRSSItem do
56
56
  it "should parse the closed captioned flag" do
57
57
  @item.itunes_closed_captioned.should eq 'yes'
58
58
  end
59
+
60
+ it "should parse the encoded content" do
61
+ @item.content.should == "<p><strong>TOPIC</strong>: Gooseneck Options</p>"
62
+ end
59
63
  end
@@ -25,6 +25,10 @@ describe Feedzirra::Parser::RSS do
25
25
  @feed = Feedzirra::Parser::RSS.parse(sample_rss_feed)
26
26
  end
27
27
 
28
+ it "should parse the version" do
29
+ @feed.version.should == "2.0"
30
+ end
31
+
28
32
  it "should parse the title" do
29
33
  @feed.title.should == "Tender Lovemaking"
30
34
  end
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="utf-8"?>
2
3
  <feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">
3
4
  <title>Amazon Web Services Blog</title>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
3
  <!--
3
4
  This atom/xml feed is an index to active advisories, watches and warnings
@@ -57,4 +58,4 @@ active alerts.
57
58
  <value>/O.NEW.KCAR.WW.Y.0024.121108T0000Z-121108T1700Z/</value>
58
59
  </cap:parameter>
59
60
  </entry>
60
- </feed>
61
+ </feed>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?>
3
4
  <feed xmlns="http://www.w3.org/2005/Atom">
@@ -1,3 +1,4 @@
1
+
1
2
  <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
2
3
  xmlns:docs="http://schemas.google.com/docs/2007" xmlns:batch="http://schemas.google.com/gdata/batch"
3
4
  xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;DUMFR3YyfCt7ImA9WxNTFU0.&quot;">
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="utf-8"?>
2
3
 
3
4
  <rdf:RDF
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <rss
3
4
  xmlns:itunes = "http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"
@@ -59,4 +60,4 @@
59
60
  </item>
60
61
 
61
62
  </channel>
62
- </rss>
63
+ </rss>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
3
4
  <title>Paul Dix Explains Nothing</title>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
3
4
  <title>Paul Dix Explains Nothing</title>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="utf-8"?>
2
3
  <feed xmlns="http://www.w3.org/2005/Atom"
3
4
  xmlns:thr="http://purl.org/syndication/thread/1.0">
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
3
4
 
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <rss version="2.0"
3
4
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
3
4
  <title>TrotterCashion - Home</title>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
3
4
  <title>Everything Typepad</title>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2
3
  <feed xmlns="http://www.w3.org/2005/Atom">
3
4
 
@@ -27,4 +28,4 @@ Sobald mir mehr einfällt, schreibe ich mal wieder was :-).</content>
27
28
  </source>
28
29
  </entry>
29
30
 
30
- </feed>
31
+ </feed>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
3
4
 
@@ -33,6 +34,7 @@
33
34
  <itunes:image href="http://example.com/podcasts/everything/AllAboutEverything.jpg" />
34
35
  <itunes:order>12</itunes:order>
35
36
  <itunes:isClosedCaptioned>yes</itunes:isClosedCaptioned>
37
+ <content:encoded>&lt;p&gt;&lt;strong&gt;TOPIC&lt;/strong&gt;: Gooseneck Options&lt;/p&gt;</content:encoded>
36
38
  </item>
37
39
 
38
40
  <item>
@@ -0,0 +1,497 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">
3
+ <title>Pet Secret Shopper</title>
4
+ <link rel="self" type="application/atom+xml" href="http://www.petsecretshopper.com/atom.xml" />
5
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/" />
6
+ <id>tag:typepad.com,2003:weblog-92292159429973771</id>
7
+ <updated>2012-12-27T10:32:37-08:00</updated>
8
+ <subtitle>Product reviews of dog and cat toys, food, treat, collars, leashes, grooming supplies and more!</subtitle>
9
+ <generator uri="http://www.typepad.com/">TypePad</generator>
10
+ <entry>
11
+ <title>Sentry Calming Collar for dogs</title>
12
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/12/sentry-calming-collar.html" />
13
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/12/sentry-calming-collar.html" thr:count="1" thr:updated="2013-01-18T13:46:38-08:00" />
14
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017d3f3c659c970c</id>
15
+ <published>2012-12-27T10:32:37-08:00</published>
16
+ <updated>2013-02-14T12:55:04-08:00</updated>
17
+ <summary>With all of our kids home for the holidays our house has turned in to Grand Central Station. The abundance of noise and chaos agitates our very sensitive Great Dane, Shakespeare, to the point that he jumps up on folks, paces back and forth, and barks for no apparent reason....</summary>
18
+ <author>
19
+ <name>dogtime</name>
20
+ </author>
21
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dogs" />
22
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pet Supplies" />
23
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
24
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Reviews" />
25
+
26
+
27
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
28
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>
29
+ <a class="asset-img-link" href="http://www.obama-dog.com/.a/6a010535222d03970c017d3f3c6976970c-pi" style="float: left;"><img alt="Sentry Calming Collar for dogs" class="asset asset-image at-xid-6a010535222d03970c017d3f3c6976970c" src="http://www.obama-dog.com/.a/6a010535222d03970c017d3f3c6976970c-250wi" style="width: 220px; margin: 0px 5px 5px 0px;" title="Sentry Calming Collar for dogs" /></a>With all of our kids home for the holidays our house has turned in to Grand Central Station. The abundance of noise and chaos agitates our very sensitive Great Dane, Shakespeare, to the point that he jumps up on folks, paces back and forth, and barks for no apparent reason. A super time to test <a href="http://www.petco.com/product/109324/Sentry-Calming-Collar-for-Dogs.aspx" target="_blank" title="Sentry Calming Collar for dogs">Sentry&#39;s Calming Collar for dogs</a>!</p>
30
+ <p><strong>The claim:</strong> Sentry claims that the collar helps dogs in fearful or stressful situations (separation anxiety, fireworks, thunderstorms, visitors, new baby, traveling, pulling on leash, whining, chewing, aggression, incessant barking). The collar mimics pheromones that mother dogs produce to calm and reassure her puppies. The collar releases pheromones for up to 30 days and is non-toxic. </p>
31
+ <p>Watch the <strong><em>Science Behind the Pheromones</em></strong> video: <a href="http://www.youtube.com/watch?v=aEDGdvwEp60&amp;feature=relmfu">http://www.youtube.com/watch?v=aEDGdvwEp60&amp;feature=relmfu</a></p>
32
+ <p><strong>The test:</strong> Upon opening the collar&#39;s packaging I was greeted with the pleasing scent of lavender and chamomile. There was quite a bit of powdery residue that fell from the collar when we first opened it which the box states activates the &quot;pheromone technology.&quot; The generous 28&quot; collar fit easily around Shakey&#39;s neck with collar to spare which we snipped off with scissors.</p>
33
+ <p>The following day, as family members began pouring through the door, we paid close attention to Shakespeare&#39;s behavior waiting for the jumping, pacing and barking to begin, &quot;when much to our wondering eyes did appear&quot; a very calm and shockingly stress-free pup. Even our&#0160;3 year old granddaughter&#39;s boisterous behavior failed to get so much as a twitch out of our gentle giant. We were simply amazed!</p>
34
+ <p><strong>Final word:</strong> We found the <a href="http://www.petco.com/product/109324/Sentry-Calming-Collar-for-Dogs.aspx" target="_blank" title="Sentry Calming Collar for dogs">Sentry Calming Collar for dogs</a> did live up to its claim to calm our fretful, furry family member and would strongly recommend it to anyone with a fearful or anxious pup. </p>
35
+ <p><strong>Where to buy:</strong> The Sentry Calming Collar for dogs can be purchased in-store and online at most pet supply retail stores including <a href="http://www.petco.com/product/109324/Sentry-Calming-Collar-for-Dogs.aspx" target="_blank" title="Sentry Calming Collar for dogs">Petco.com</a> for $9.99.</p>
36
+ <p><strong>Bonus:</strong> Help spread the word about the
37
+ Sentry Calming Collar and one lucky reader will win a $50.00 donation from
38
+ DogTime Media to the non-profit 501c3 shelter or rescue of their choice!</p>
39
+ <p>There are three ways to qualify:</p>
40
+ <p>1) Add a
41
+ comment to this blog post telling us about your
42
+ experience with the Calming Collar or why you want to try
43
+ this product</p>
44
+ <p>2) Tweet about this review post and leave the URL to your Tweet in a comment on this post</p>
45
+ <p>3) Blog
46
+ about this review post and leave the URL to your blog post in a comment on this post</p>
47
+ <p>One winner will be selected and announced on the Pet Secret Shopper blog. Contest ends 02/13/13.</p></div>
48
+ </content>
49
+
50
+
51
+ </entry>
52
+ <entry>
53
+ <title>Join the Vote for Vaccination campaign! </title>
54
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/11/vote-for-vaccination-dog-campaign.html" />
55
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/11/vote-for-vaccination-dog-campaign.html" thr:count="0" />
56
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017ee5c5af35970d</id>
57
+ <published>2012-11-30T08:51:39-08:00</published>
58
+ <updated>2012-11-30T08:53:31-08:00</updated>
59
+ <summary>Be sure to catch MyPet.com&#39;s spokesperson, Mutt, in an adorable (and educational) video in which he recalls his bout with dog flu and schools his friends and us on the symptoms of dog flu. Pet Secret Shopper</summary>
60
+ <author>
61
+ <name>dogtime</name>
62
+ </author>
63
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
64
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dogs" />
65
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pet Supplies" />
66
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
67
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Reviews" />
68
+
69
+
70
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
71
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>
72
+ <a class="asset-img-link" href="http://www.mypet.com/#" target="_blank" title="MyPet.com&#39;s Vote for Vaccination"><img alt="MyPet.com&#39;s Vote for Vaccination Campaign" class="asset asset-image at-xid-6a010535222d03970c017ee5c5ab92970d" src="http://www.obama-dog.com/.a/6a010535222d03970c017ee5c5ab92970d-350wi" style="width: 350px; display: block; margin-left: auto; margin-right: auto;" title="MyPet.com&#39;s Vote for Vaccination Campaign" /></a><br />Vaccinating your pet can save her from contracting a variety of nasty illnesses including rabies. The pet loving folks at <a href="http://www.mypet.com/#" target="_blank" title="MyPet.com">MyPet.com</a> are encouraging all pet owners to join their Vote for Vaccination campaign to learn more about the benefits of vaccinations and which vaccinations best suit your pet&#39;s lifestyle. </p>
73
+ <p>To see which vaccines your pet may need, take <a href="http://www.mypet.com/#Pet_Owners_Risk" target="_blank" title="Risk Assesment Quiz">MyPet.com&#39;s risk
74
+ assessment quiz</a> and discuss the results with your veterinarian to
75
+ develop a personalized vaccination schedule for your cat or dog.</p>
76
+ <p><strong>Vaccination tips:</strong></p>
77
+ <ul>
78
+ <li>Every pet should
79
+ visit his or her veterinarian regularly and receive regular vaccinations in
80
+ order to stay healthy.</li>
81
+ <li>Core vaccines are
82
+ generally recommended for all pets. Lifestyle vaccines are designed for pets
83
+ that are at risk for certain diseases based on their daily routines. </li>
84
+ <li>The risk assessment
85
+ on <a href="http://www.mypet.com" target="_blank">www.mypet.com</a> helps educate pet owners about what diseases their pet may
86
+ be at risk for and what to ask their veterinarian about at their next visit.</li>
87
+ </ul>
88
+ <p><strong>Other activities available at <a href="http://www.mypet.com" target="_blank">www.mypet.com</a> include:</strong></p>
89
+ <ul>
90
+ <li>Upload photos of
91
+ their pets to the interactive campaign map</li>
92
+ <li>See what clinics in
93
+ their area are supporting the campaign</li>
94
+ <li>Enter a caption
95
+ contest and win a prize</li>
96
+ <li>Watch videos of Mutt
97
+ and Kitty in action on the campaign trail as they talk about ways to keep their
98
+ pet healthy</li>
99
+ </ul>
100
+ <p>Be sure to catch <a href="http://www.mypet.com/#" target="_blank" title="MyPet.com">MyPet.com&#39;s</a> spokesperson, Mutt, in an adorable (and educational) <a href="http://www.mypet.com/dogflu/" target="_blank" title="Dog flu video">video</a> in which he recalls his bout with <a href="http://www.doginfluenza.com/owners/" target="_blank" title="Dog Influenza">dog flu</a> and schools his friends and us on the symptoms of dog flu.</p>
101
+ <h3 style="text-align: center;">Remember, a healthy pet is a happy pet!</h3></div>
102
+ </content>
103
+
104
+
105
+ </entry>
106
+ <entry>
107
+ <title>Dog Flu | learn how it&#39;s spread, the symptoms, and how to avoid it</title>
108
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/10/dog-flu-symptoms-contagious.html" />
109
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/10/dog-flu-symptoms-contagious.html" thr:count="0" />
110
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017d3cc7fffc970c</id>
111
+ <published>2012-10-18T08:31:25-07:00</published>
112
+ <updated>2012-10-18T08:33:40-07:00</updated>
113
+ <summary>The most common sign of dog flu is a soft, wet cough that may last for 3 to 4 weeks. Other signs include fever, runny nose, fatigue, and loss of appetite. Pet Secret Shopper Product Reviews</summary>
114
+ <author>
115
+ <name>dogtime</name>
116
+ </author>
117
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
118
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Current Affairs" />
119
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dogs" />
120
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
121
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Reviews" />
122
+
123
+
124
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
125
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>
126
+ <a class="asset-img-link" href="http://yads.zedo.com/ads2/c?a=1339743;g=0;c=809000000;i=0;x=8192;n=809;s=2;k=http://www.mypet.com/dogflu" target="_blank"><img alt="Dog Flu (Canine Influenza)" class="asset asset-image at-xid-6a010535222d03970c017c32997d05970b" src="http://www.obama-dog.com/.a/6a010535222d03970c017c32997d05970b-300wi" style="width: 300px; display: block; margin-left: auto; margin-right: auto;" title="Dog Flu (Canine Influenza)" /></a><br />If you&#39;ve ever wondered if your dog can get the flu, the answer is yes! While it&#39;s not the same strain of flu virus that humans contract, it&#39;s just as serious and worthy of special shout-out to my followers.</p>
127
+ <p><strong>About dog flu</strong></p>
128
+ <ul>
129
+ <li>Canine Influenza is a very serious threat to dogs and its symptoms can easily be confused with <em>Bordetella </em>(canine cough).</li>
130
+ <li>Canine
131
+ influenza only affects dogs and cannot be passed to humans.</li>
132
+ <li>The
133
+ virus that causes flu in dogs—canine influenza virus (CIV) H3N8—was first
134
+ identified in January 2004. Dog flu cases have now been reported in 39 states. </li>
135
+ <li>Because
136
+ most dogs have no natural immunity against CIV, virtually all dogs exposed to
137
+ the virus become infected.</li>
138
+ </ul>
139
+ <p><strong>Risk factors for dogs</strong></p>
140
+ <ul>
141
+ <li>Just
142
+ like <em>Bordetella</em>, dogs that spend time
143
+ at boarding facilities, doggy daycares, groomers, dog parks, and group training
144
+ are at a high risk of contracting canine influenza.</li>
145
+ <li>Many
146
+ facilities that require vaccination against <em>Bordetella</em>
147
+ (canine cough) are beginning to see the benefit of also requiring vaccination
148
+ against canine influenza. </li>
149
+ </ul>
150
+ <p><strong>Symptoms</strong></p>
151
+ <ul>
152
+ <li>The
153
+ most common sign of dog flu is a soft, wet cough that may last for 3 to 4
154
+ weeks. Other signs include fever, runny nose, fatigue, and loss of appetite.</li>
155
+ <li>Like
156
+ human flu, dog flu can lead to more serious conditions like pneumonia. Up to 8%
157
+ of dogs that get the flu can die from the infection.</li>
158
+ <li>Recognizing
159
+ the signs of dog flu is not enough to prevent spreading the disease.
160
+ <ul>
161
+ <li>About
162
+ 20% of infected dogs will show no signs of disease but can still spread CIV to
163
+ other dogs.</li>
164
+ <li>By the time a CIV-infected dog shows signs
165
+ of illness, the dog is likely to have stopped spreading the virus.
166
+ <ul>
167
+ <li>Prior to showing
168
+ signs of illness, dogs can spread CIV to surrounding objects, which become
169
+ sources of infection, as well as directly to other dogs.</li>
170
+ <li>Dog flu cannot be diagnosed by signs
171
+ alone. A veterinarian will need to perform blood tests to determine
172
+ if a dog has the flu.<strong> <br /></strong></li>
173
+ </ul>
174
+ </li>
175
+ </ul>
176
+ </li>
177
+ </ul>
178
+ <p><strong>How you can protect your dog against the flu</strong></p>
179
+ <ul>
180
+ <li>Vaccinating
181
+ your pet is the best way to protect him/her against CIV.</li>
182
+ <li>The
183
+ first CIV vaccine approved in 2009, Nobivac<sup>®</sup> Canine Flu H3N8 from Merck
184
+ Animal Health,
185
+ has been shown to reduce the spread of disease among dogs.</li>
186
+ <li>Owners
187
+ should talk to their veterinarians and see if their dog’s lifestyle merits
188
+ vaccination.</li>
189
+ </ul>
190
+ <p>For more information
191
+ on Canine Influenza check out <a href="http://yads.zedo.com/ads2/c?a=1339743;g=0;c=809000000;i=0;x=8192;n=809;s=2;k=http://www.mypet.com/dogflu" target="_blank" title="Canine Influenza (dog flu)">MyPet.com</a>.</p>
192
+ <p><em>This post is published courtesy of DogTime&#39;s Blog Champions program.</em> </p></div>
193
+ </content>
194
+
195
+
196
+ </entry>
197
+ <entry>
198
+ <title>A-Door-able | Bouncing mouse, octopus, &amp; bird cat toys</title>
199
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/10/a-door-able-bouncing-mouse-cat-toy.html" />
200
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/10/a-door-able-bouncing-mouse-cat-toy.html" thr:count="0" />
201
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017d3cb68f06970c</id>
202
+ <published>2012-10-14T18:38:09-07:00</published>
203
+ <updated>2012-10-15T07:47:06-07:00</updated>
204
+ <summary>Atty and Scout attack the mouse and, once out of their grasp, the elastic cord flings it high in the air in random directions. I kind of wish it squeaked but I suppose that would drive me crazy after about 20 minutes. Sometimes the simplest toys are the best ones! Pet Secret Shopper Product Reviews</summary>
205
+ <author>
206
+ <name>dogtime</name>
207
+ </author>
208
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Games" />
209
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Toys" />
210
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
211
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Games" />
212
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
213
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Reviews" />
214
+
215
+
216
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
217
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>
218
+ <a class="asset-img-link" href="http://www.petcarerx.com/search/search.aspx?q=A-Door-Able" target="_blank"><img alt="A-Door-able bouncing cat toy" class="asset asset-image at-xid-6a010535222d03970c017c3287edd0970b" src="http://www.obama-dog.com/.a/6a010535222d03970c017c3287edd0970b-350wi" style="width: 350px; display: block; margin-left: auto; margin-right: auto;" title="A-Door-able bouncing cat toy" /></a>We have two 3 month old kittens, Atticus and Scout (brother &amp; sister), who are always looking for something to play with. We&#39;ve bombed with a variety of cat toys but it was a happy day indeed when my daughter brought home an A-Door-able kitty toy to amuse them.</p>
219
+ <p>
220
+ <a class="asset-img-link" href="http://www.obama-dog.com/.a/6a010535222d03970c017d3cb68d21970c-pi" style="float: left;"><img alt="Atticus and his new favorite toy!" class="asset asset-image at-xid-6a010535222d03970c017d3cb68d21970c" src="http://www.obama-dog.com/.a/6a010535222d03970c017d3cb68d21970c-200wi" style="width: 180px; margin: 0px 5px 5px 0px;" title="Atticus and his new favorite toy!" /></a>You simply clip the (plastic coated) hanger on any door frame and let the hilarity begin! Scout and Atty went absolutely bonkers over this thing. I couldn&#39;t believe how long it kept their attention. The first time I put it up they must have played with it for over an hour.</p>
221
+ <p>The little toy hangs at the end of an adjustable elastic cord and makes a rattling sound when bounced. We have the mouse but I see that the octopus and bird are catnip scented. We&#39;ll have to try one of those next!</p>
222
+ <p>
223
+ <a class="asset-img-link" href="http://www.petcarerx.com/search/search.aspx?q=A-Door-Able" style="float: right;" target="_blank"><img alt="A-Door-able Bird" class="asset asset-image at-xid-6a010535222d03970c017ee42c32dd970d" src="http://www.obama-dog.com/.a/6a010535222d03970c017ee42c32dd970d-150wi" style="width: 140px; margin: 0px 0px 5px 5px;" title="A-Door-able Bird" /></a>Atty and Scout attack the mouse and upon release, the elastic cord flings it high in the air in random directions. Occasionally I have to retrieve it from the top of the microwave. I kind of wish it squeaked but I suppose that would drive me crazy after about 20 minutes. It also has a breakaway safety clip which I think is an absolutely awesome feature!</p>
224
+ <p>We LOVE this toy! So often, it&#39;s the simplest toys the cats love the best!</p>
225
+ <p>You can purchase A-Door-ables for $4.99 at <a href="http://www.petcarerx.com/search/search.aspx?q=A-Door-Able" target="_blank" title="A-Door-ables">PetCareRX.com</a>.</p>
226
+ <p>Think your product can pass the Secret Shopper test? Send us an email: SecretShopperBlog@gmail.com</p></div>
227
+ </content>
228
+
229
+
230
+ </entry>
231
+ <entry>
232
+ <title>Petmate Curvations Pet Tote</title>
233
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/10/petmate-curvations-pet-tote.html" />
234
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/10/petmate-curvations-pet-tote.html" thr:count="0" />
235
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017ee406082c970d</id>
236
+ <published>2012-10-07T19:01:31-07:00</published>
237
+ <updated>2012-10-07T19:01:31-07:00</updated>
238
+ <summary>Beyond being very cute and stylish it comes completely apart to store easily, the sides have full zippers to be able to put your dog in and take out easily. Pet Secret Shopper Product Reviews</summary>
239
+ <author>
240
+ <name>dogtime</name>
241
+ </author>
242
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Food &amp; Treats" />
243
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Games" />
244
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Toys" />
245
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
246
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dog Games" />
247
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dog Toys" />
248
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dogs" />
249
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Games" />
250
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pet Supplies" />
251
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
252
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Reviews" />
253
+
254
+
255
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
256
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>
257
+ <a class="asset-img-link" href="http://www.petmate.com/curvations-pet-tote" target="_blank"><img alt="Petmate Curvations Tote" class="asset asset-image at-xid-6a010535222d03970c017c32624591970b" src="http://www.obama-dog.com/.a/6a010535222d03970c017c32624591970b-350wi" style="width: 350px; display: block; margin-left: auto; margin-right: auto;" title="Petmate Curvations Tote" /></a><br />When we visited <a href="http://www.petmate.com/curvations-pet-tote" target="_blank" title="Petmate">Petmate&#39;s</a> booth at this year&#39;s Global Pet Expo in Orlando, we were like kids in a candy store. So many new products to check-out, including their latest pet carrier design, the Curvations Pet Tote. We like the hip design, the sleek look, comfy padded shoulder strap and, the removable, <span style="text-decoration: underline;">washable</span> pet bed. </p>
258
+ <p>
259
+ <a class="asset-img-link" href="http://www.amazon.com/Petmate-21788-Curvations-Puppies-Black/dp/B00973JQ9C" style="float: left;" target="_blank"><img alt="Yorkie Poo is ready to go!" class="asset asset-image at-xid-6a010535222d03970c017ee4067ef7970d" src="http://www.obama-dog.com/.a/6a010535222d03970c017ee4067ef7970d-150wi" style="width: 145px; margin: 0px 5px 5px 0px;" title="Yorkie Poo is ready to go!" /></a>Our guest reviewer, Becki, had this to say, &quot;We have a 6 lb Yorkie poo and recently tried the Petmate Curvations Pet Tote.&#0160; It has so many great features! Beyond being very
260
+ cute and stylish it comes completely apart to store easily, the sides have full
261
+ zippers to be able to put your dog in and take out easily, a pet bed inside,
262
+ ventilation all the way around the carrier, a shoulder strap and carry handle,
263
+ in addition to feet on the bottom of the carrier.&#0160; It really is very well
264
+ made and designed I would highly recommend this to anyone traveling with their
265
+ pet!&quot;</p>
266
+ <p>You can purchase the <a href="http://www.petmate.com/curvations-pet-tote" target="_blank" title="Petmate Curvations Tote">Petmate Curvations Tote</a> for $55.73 at <a href="http://www.amazon.com/Petmate-21788-Curvations-Puppies-Black/dp/B00973JQ9C" target="_blank" title="Petmate Curvations Pet Tote">Amazon.com</a>.</p>
267
+ <p>
268
+ <a class="asset-img-link" href="http://globalpetexpo.org/Default.asp" style="float: left;" target="_blank"><img alt="Global Pet Expo" class="asset asset-image at-xid-6a010535222d03970c016763a48a65970b" src="http://www.obama-dog.com/.a/6a010535222d03970c016763a48a65970b-120wi" style="width: 120px; margin: 0px 5px 5px 0px;" title="Global Pet Expo" /></a><strong><a href="http://www.petmate.com/" target="_blank" title="Petmate">Petmate</a> | 2012 Global Pet Expo Exhibitor</strong></p>
269
+ <p>Think your product can pass the Secret Shopper test? Send us an email:SecretShopperBlog@gmail.com</p></div>
270
+ </content>
271
+
272
+
273
+ </entry>
274
+ <entry>
275
+ <title>Fat Cat Foodies Boogie Mats</title>
276
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/09/fat-cat-catnip-filled-boogie-mats.html" />
277
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/09/fat-cat-catnip-filled-boogie-mats.html" thr:count="0" />
278
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017ee3e29411970d</id>
279
+ <published>2012-09-30T19:49:42-07:00</published>
280
+ <updated>2012-10-07T19:14:35-07:00</updated>
281
+ <summary>&quot;This thing is awesome. Our cat Jasmine is old and cranky. She is not usually interested in anything, but she loves this mat. It has become her &#39;spot&#39;.&quot;</summary>
282
+ <author>
283
+ <name>dogtime</name>
284
+ </author>
285
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Food &amp; Treats" />
286
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Games" />
287
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Toys" />
288
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
289
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pet Supplies" />
290
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
291
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Reviews" />
292
+
293
+
294
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
295
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>
296
+ <a class="asset-img-link" href="http://www.obama-dog.com/.a/6a010535222d03970c017d3c6d1f16970c-pi"><img alt="Fat Cat Foodies &amp; Kitty Hoots Boogie Mat" class="asset asset-image at-xid-6a010535222d03970c017d3c6d1f16970c" src="http://www.obama-dog.com/.a/6a010535222d03970c017d3c6d1f16970c-320wi" style="display: block; margin-left: auto; margin-right: auto;" title="Fat Cat Foodies &amp; Kitty Hoots Boogie Mat" /></a></p>
297
+ <p>The Boogie Mat is a fun splash of color with whimsical designs that makes me smile even though I&#39;m knee deep in kitty litter clumps. At 13&quot; by 16½&quot; it&#39;s small enough to toss from spot to spot yet large enough to protect my couch while Indy indulges in a little catnap.<br /><br />Indy loves the crinkly sound it makes as she walks across it or rolls around on it and the aroma of the Zoom Around the Room Organic Catnip (included) provides the pièce de ré·sis·tance. Our new rescue kittens are still learning the lay of the land but I suspect they&#39;ll conspire to steal the Boogie Mat from big sister once they&#39;re settled in.</p>
298
+ <p>
299
+ <a class="asset-img-link" href="http://www.cattoys.com/fat-cat-kitty-hoots-boogie-mat-for-de-cat-foodies.html" style="float: left;" target="_blank"><img alt="Jasmine protecting her Boogie Mat" class="asset asset-image at-xid-6a010535222d03970c017ee3e2af0c970d" src="http://www.obama-dog.com/.a/6a010535222d03970c017ee3e2af0c970d-200wi" style="width: 180px; margin: 0px 5px 5px 0px;" title="Jasmine protecting her Boogie Mat" /></a>Our kitty-loving compadre, Nikki, says, &quot;This thing is awesome.&#0160; Our cat Jasmine is old and
300
+ cranky.&#0160; She is not usually interested in anything, but she loves this
301
+ mat.&#0160; It has become her &#39;spot&#39;.&#0160; </p>
302
+ <p>It has a zipper on the side where
303
+ you put in the catnip and it makes a crinkling sound when she steps on
304
+ it.&#0160; </p>
305
+ <p>She plays with it, sleeps on it, and protects it from the dogs in our
306
+ house!!&#0160; It is so cute to see her acting like a kitten again!&#0160; Must
307
+ be the catnip!!&#0160; We will definitely keep this around filled with fresh catnip!!&quot;</p>
308
+ <p>You can purchase Fat Cat Boogie Mats at <a href="http://www.cattoys.com/fat-cat-kitty-hoots-boogie-mat-for-de-cat-foodies.html" target="_blank" title="Buy Fat Cat Boogie Mats">CatToys.com</a> for $9.99.</p>
309
+ <p>
310
+ <a href="http://globalpetexpo.org/Default.asp" style="float: left;" target="_blank"><img alt="Global Pet Expo" src="http://www.obama-dog.com/.a/6a010535222d03970c016763a48a65970b-120wi" style="width: 120px; margin: 0px 5px 5px 0px;" title="Global Pet Expo" /></a><strong><a href="http://www.petmate.com/" target="_blank" title="Petmate">Petmate</a> | 2012 Global Pet Expo Exhibitor</strong></p>
311
+ <p>Think your product can pass the Secret Shopper test? Send us an email:SecretShopperBlog@gmail.com</p></div>
312
+ </content>
313
+
314
+
315
+ </entry>
316
+ <entry>
317
+ <title>Solvit Kitty&#39;scape Cat Tower</title>
318
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/09/solvit-kittyscape-cat-tower.html" />
319
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/09/solvit-kittyscape-cat-tower.html" thr:count="1" thr:updated="2013-02-05T12:56:41-08:00" />
320
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017c3215cc77970b</id>
321
+ <published>2012-09-23T16:55:20-07:00</published>
322
+ <updated>2012-10-14T18:36:53-07:00</updated>
323
+ <summary>We had fun with the Kitty’scape. First we experimented with building a low, wide structure, but then we changed it into a tall tower. Our kittens, Atticus and Scout LOVE their Kitty’scape Cat Tower! Pet Secret Shopper Product Reviews</summary>
324
+ <author>
325
+ <name>dogtime</name>
326
+ </author>
327
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Games" />
328
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Toys" />
329
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
330
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pet Supplies" />
331
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
332
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Reviews" />
333
+
334
+
335
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
336
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>by Guest Blogger Patrick Holwell</p>
337
+ <p>
338
+ <a class="asset-img-link" href="http://www.solvitproducts.com/products-ls798_1_ls-i87_i.aspx" target="_blank"><img alt="Solvit Products" class="asset asset-image at-xid-6a010535222d03970c017d3c44034d970c" src="http://www.obama-dog.com/.a/6a010535222d03970c017d3c44034d970c-300wi" style="width: 300px; display: block; margin-left: auto; margin-right: auto;" title="Solvit Products" /></a><br />
339
+ <span style="font-family: Century Gothic; font-size: small;">It was a good day when we
340
+ received the <a href="http://www.solvitproducts.com/products-ls798_1_ls-i87_i.aspx" target="_blank" title="Solvit Kitty&#39;scape">Solvit Kitty’scape Deluxe Cat Tower</a>.&#0160; The unique thing about the Kitty’scape
341
+ concept is that its parts can be assembled in a variety of ways. You can have a
342
+ wide structure or can build a tower that reaches up over five feet.&#0160; </span></p>
343
+ <p><a href="http://www.thepetonline.com/cat-furniture-c-550.html?osCsid=72927e7dd316a855004432ab2c5d7e63" style="float: left;" target="_blank"><img alt="Atticus chillin&#39; on the Kitty&#39;scape" src="http://www.obama-dog.com/.a/6a010535222d03970c017ee3b9f523970d-150wi" style="width: 140px; margin: 0px 5px 5px 0px;" title="Atticus chillin&#39; on the Kitty&#39;scape" /></a><span style="font-family: Century Gothic; font-size: small;">We had fun with the Kitty’scape. First we
344
+ experimented with building a low, wide structure, but then we changed it into a
345
+ tall tower. Our kittens, Atticus and Scout LOVE their Kitty’scape Cat Tower!
346
+ They especially enjoy the penthouse canopy at the top of the structure, as well
347
+ as the higher platforms. <br /></span></p>
348
+ <p><span style="font-family: Century Gothic; font-size: small;">
349
+ This is an excellent quality
350
+ product. The parts are stout plastic or wood, and clearly well made. They all
351
+ fit together properly, and everything was in the box that was supposed to be.
352
+ Our Kitty’scape Deluxe Cat Tower was easy to assemble and everything we hoped
353
+ it would be. It was fun to be creative with how we put it together. <br /></span></p>
354
+ <p><span style="font-family: Century Gothic; font-size: small;">
355
+ <a class="asset-img-link" href="http://www.thepetonline.com/cat-furniture-c-550.html?osCsid=72927e7dd316a855004432ab2c5d7e63" style="float: right;" target="_blank"><img alt="Scout &amp; Atticus playing on the Kitty&#39;scape" class="asset asset-image at-xid-6a010535222d03970c017c321691f2970b" src="http://www.obama-dog.com/.a/6a010535222d03970c017c321691f2970b-150wi" style="width: 140px; margin: 0px 0px 5px 5px;" title="Scout &amp; Atticus playing on the Kitty&#39;scape" /></a>Kitty’scape really is a unique
356
+ design for a cat play structure, and was easy to assemble.&#0160; Comparatively, <a href="priced" target="_blank" title="Solvit Products">Solvit Kitty’scape products</a>
357
+ are quite competitive in price. We tested the deluxe kit, which retails for
358
+ $150. You can also get the Intermediate Kit for around $105 and the Basic Kit
359
+ for around $75. If you wish, you can get other accessories, such as the
360
+ Scratching Plate and the Adventure Bridge, the Hammock, and a variety of other
361
+ expansion parts. <br /></span></p>
362
+ <p><span style="font-family: Century Gothic; font-size: small;">This is a fun product that is competitively </span>priced<span style="font-family: Century Gothic; font-size: small;">, of good quality and most important, FUN for your cats!
363
+ Atticus and Scout recommend it heartily!</span></p>
364
+ <p><span style="font-family: Century Gothic; font-size: small;">You can purchase the Solvit <strong>Kitty&#39;scape Cat Tower</strong> online at <a href="http://www.thepetonline.com/cat-furniture-c-550.html?osCsid=72927e7dd316a855004432ab2c5d7e63" target="_blank" title="Buy Solvit Kitty&#39;scape at ThePetOnling.com">ThePetOnline.com</a>.</span></p>
365
+ <p>
366
+ <a href="http://globalpetexpo.org/Default.asp" style="float: left;" target="_blank"><img alt="Global Pet Expo" src="http://www.obama-dog.com/.a/6a010535222d03970c016763a48a65970b-120wi" style="width: 120px; margin: 0px 5px 5px 0px;" title="Global Pet Expo" /></a><strong><a href="http://www.solvitproducts.com/products-ls798_1_ls-i87_i.aspx" target="_blank" title="Solvit Products">Solvit Products</a> | 2012 Global Pet Expo Exhibitor</strong></p>
367
+ <p>Think your product can pass the Secret Shopper test? Send us an email:SecretShopperBlog@gmail.com</p></div>
368
+ </content>
369
+
370
+
371
+ </entry>
372
+ <entry>
373
+ <title>Dog Whisperer | Final Episodes - Sept 8th and 15th - 8 PM ET</title>
374
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/09/fepjd-zdog-whisperer-final-episodes-sept-8th-and-15th-8-pm-et.html" />
375
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/09/fepjd-zdog-whisperer-final-episodes-sept-8th-and-15th-8-pm-et.html" thr:count="0" />
376
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017d3beb6fe0970c</id>
377
+ <published>2012-09-08T17:39:13-07:00</published>
378
+ <updated>2012-09-08T17:39:13-07:00</updated>
379
+ <summary>As another season of the Dog Whisperer comes to a close we thank our lucky liver treats for Cesar&#39;s serene supervision as we delved deeper into the canine psyche. Only two episodes left and we&#39;re here to tell you that they were worth the wait! Pet Secret Shopper Product Reviews</summary>
380
+ <author>
381
+ <name>dogtime</name>
382
+ </author>
383
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
384
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dogs" />
385
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
386
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Television" />
387
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Video Reviews" />
388
+
389
+
390
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
391
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>
392
+ <a class="asset-img-link" href="http://channel.nationalgeographic.com/wild/dog-whisperer/" target="_blank"><img alt="Cesar Millan the Dog Whisperer on Nat Geo Wild" class="asset asset-image at-xid-6a010535222d03970c0177449a9b15970d" src="http://www.obama-dog.com/.a/6a010535222d03970c0177449a9b15970d-350wi" style="width: 350px; display: block; margin-left: auto; margin-right: auto;" title="Cesar Millan the Dog Whisperer on Nat Geo Wild" /></a><br />The <a href="http://channel.nationalgeographic.com/wild/dog-whisperer/interactives/diagnose-that-dog/" target="_blank" title="Dog Whisperer - Diagnose that dog!">Dog Whisperer</a> has become so much a part of our culture that I catch my sister trying to &quot;Tssst!&quot; her grand-dog into behaving as I try &quot;Tsst-zing!&quot; my husband into doing the same. I imagine there are millions of Dog Whisperer devotees, just like us, who are also doing their darndest to mimic <a href="http://channel.nationalgeographic.com/wild/dog-whisperer/" target="_blank" title="Cesar Millan">Cesar&#39;s </a>mystical methods. LOL!</p>
393
+ <p style="text-align: center;"><strong><span style="font-size: 11pt;">Check-out the Captain of Canine Conversation in this hysterical video:</span></strong></p>
394
+ <p style="text-align: center;">
395
+ <object data="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" height="318" id="flashObj" type="application/x-shockwave-flash" width="486">
396
+ <param name="data" value="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" />
397
+ <param name="bgcolor" value="#FFFFFF" />
398
+ <param name="flashVars" value="videoId=1687751130001&amp;playerID=102195605001&amp;playerKey=AQ~~,AAAABvaL8JE~,ufBHq_I6Fnyou4pHiM9gbgVQA16tDSWm&amp;domain=embed&amp;dynamicStreaming=true" />
399
+ <param name="base" value="http://admin.brightcove.com" />
400
+ <param name="seamlesstabbing" value="false" />
401
+ <param name="allowFullScreen" value="true" />
402
+ <param name="swLiveConnect" value="true" />
403
+ <param name="allowScriptAccess" value="always" />
404
+ <param name="src" value="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" />
405
+ <param name="name" value="flashObj" />
406
+ <param name="flashvars" value="videoId=1687751130001&amp;playerID=102195605001&amp;playerKey=AQ~~,AAAABvaL8JE~,ufBHq_I6Fnyou4pHiM9gbgVQA16tDSWm&amp;domain=embed&amp;dynamicStreaming=true" />
407
+ <param name="allowfullscreen" value="true" />
408
+ </object>
409
+ &#0160;</p>
410
+ <p>As another season of the <a href="http://tvblogs.nationalgeographic.com/blog/dog-whisperer/" target="_blank" title="Dog Whisperer blog">Dog Whisperer</a> comes to a close we thank our
411
+ lucky liver treats for Cesar&#39;s serene supervision as we delved deeper
412
+ into the canine psyche. Only two episodes left and we&#39;re here to tell you that they were worth the wait!</p>
413
+ <p>Tonight&#39;s episode, &quot;Hollywood Hounds&quot; features fitness guru, <a class="zem_slink" href="http://www.jillianmichaels.com" rel="homepage" target="_blank" title="Jillian Michaels (personal trainer)">Jillian Michaels</a>, and her <a href="http://dogtime.com/dog-breeds/chihuahua" target="_blank" title="Chihuahua Breed Profile">Chihuahua</a>, Richard, who is in desparate need of a mental &quot;chill pill.&quot; Jillian is in the process of adopting a two year old daughter and doesn&#39;t want to fear for her new babe&#39;s safety around her pup.</p>
414
+ <p>Next we visit <a class="zem_slink" href="http://www.kelseylive.com/" rel="homepage" target="_blank" title="Kelsey Grammer">Kelsey Grammer</a> and his wife, Kayte, whose dogs, Elvis and George, have a propensity for pottying indoors rather than dirtying their outdoor play-space. Will Cesar be able to save the day <span style="text-decoration: underline;">and</span> the carpet?</p>
415
+ <p>In next Saturday&#39;s episode, &quot;Cesar&#39;s Worst Bite,&quot; Cesar comes face to face with Holly, a <a href="http://dogtime.com/dog-breeds/labrador-retriever" target="_blank" title="Labrador Retriever Breed Profile">Lab</a> pup with some serious food aggression issues. Cesar learns first-hand just how dangerous this pooch&#39;s problem is when he is rushed to the hospital after sustaining a bad bite. </p>
416
+ <p>In Cesar&#39;s next case we meet Lenie, pregnant and homeless, with an opportunity to make a fresh start courtesty of a women&#39;s shelter that is willing to take-in her and her beloved <a href="http://dogtime.com/dog-breeds/american-pit-bull-terrier" target="_blank" title="American Pit Bull Terrier Breed Profile">Pit Bull</a>, Tucker. But will Tucker&#39;s protective nature keep Lenie from making a better life for her and her unborn baby? Can the <a href="http://video.nationalgeographic.com/video/nat-geo-wild/full-episodes-1/dog-whisperer-1/" target="_blank" title="Dog Whisperer Videos">Dog Whisperer</a> work his magic and keep this family together?</p>
417
+ <p>Tune in to <a href="http://channel.nationalgeographic.com/wild/dog-whisperer/" target="_blank" title="The Dog Whisperer on Nat Geo Wild">Nat Geo Wild</a> tonight, September 8th, and next Saturday, September 15th, for the exciting, final installments of our favorite Dog Whisperer, Cesar Milan!</p></div>
418
+ </content>
419
+
420
+
421
+ </entry>
422
+ <entry>
423
+ <title>FroliCat BOLT Laser Interactive Pet Toy from My Three Cats</title>
424
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/08/bolt-laser-interactive-pet-toy-my-three-cats-1.html" />
425
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/08/bolt-laser-interactive-pet-toy-my-three-cats-1.html" thr:count="1" thr:updated="2012-09-04T09:32:48-07:00" />
426
+ <id>tag:typepad.com,2003:post-6a010535222d03970c017c3192d179970b</id>
427
+ <published>2012-08-31T17:26:42-07:00</published>
428
+ <updated>2012-08-31T17:31:21-07:00</updated>
429
+ <summary>BOLT is one of the best names they could have come up with for this toy. I have two extremely playful cats and when they hear me tap on the laser and call their names they come running. Pet Secret Shopper Product Reviews</summary>
430
+ <author>
431
+ <name>dogtime</name>
432
+ </author>
433
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Games" />
434
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Toys" />
435
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
436
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dog Games" />
437
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dog Toys" />
438
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dogs" />
439
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Games" />
440
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pet Supplies" />
441
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
442
+
443
+
444
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
445
+ <div xmlns="http://www.w3.org/1999/xhtml"><p>by Guest Blogger: Peoria Cat Tales</p>
446
+ <p>
447
+ <a class="asset-img-link" href="http://www.mythreecats.com/products/bolt-laser-interactive-cat-toy-new" style="float: left;" target="_blank"><img alt="FroliCat BOLT Laser Toy from MyThreeCats.com" class="asset asset-image at-xid-6a010535222d03970c017744706ede970d" src="http://www.obama-dog.com/.a/6a010535222d03970c017744706ede970d-200wi" style="width: 200px; margin: 0px 5px 5px 0px;" title="FroliCat BOLT Laser Toy from MyThreeCats.com" /></a><a href="http://www.mythreecats.com/products/bolt-laser-interactive-cat-toy-new" target="_blank" title="BOLT Interactive Laser Toy">BOLT</a> is one of the best names they could have come up with for this toy. &#0160;I have two extremely playful cats and when they hear me tap on the laser and call their names they come running. &#0160;
448
+ They literally &#0160;Bolt from their naps and start chasing the little red pin
449
+ point laser everywhere.</p>
450
+ <p>You can place it anywhere, turn on the timer and let it go. &#0160;I especially&#0160;&#0160;like the tilt-able mirror which changes the height of the laser. &#0160;When it is on high they jump from one chair to another and on low they slide all over the wooden floors trying to catch the dot!</p>
451
+ <p>I really like having the option of either holding the <a href="http://www.mythreecats.com/products/bolt-laser-interactive-cat-toy-new" target="_blank" title="BOLT Interactive Laser Toy">BOLT Laser Toy</a> in my hand to manipulate the laser dot or setting the 15 minute timer.</p>
452
+ <p>The only suggestion I would make would be to not place it on the floor and leave. &#0160;The cats are so curious they just want to get up close and see the laser which is not good for their eyes! It is definitely worth buying as it is sturdy enough to last forever!</p>
453
+ <p style="text-align: center;"><iframe frameborder="0" height="268" src="http://www.youtube.com/embed/PZyAD14QR6o" width="357"></iframe>&#0160;</p>
454
+ <p>
455
+ You can purchase the BOLT Laser Toy for $19.95 at <a href="http://www.mythreecats.com/products/bolt-laser-interactive-cat-toy-new" target="_blank" title="My Three Cats">MyThreeCats.com</a>. The <a href="http://www.mythreecats.com/products/bolt-laser-interactive-cat-toy-new" target="_blank" title="FroliCat BOLT Laser Interactive Toy">FroliCat BOLT Laser Toy</a> looks like great fun for dogs too!</p>
456
+ <p>Think your product&#0160; can pass the Secret Shopper test? Send us an email: SecretShopperBlog@gmail.com.</p></div>
457
+ </content>
458
+
459
+
460
+ </entry>
461
+ <entry>
462
+ <title>By Nature | Natural Adult Formula Cat Food</title>
463
+ <link rel="alternate" type="text/html" href="http://www.petsecretshopper.com/2012/07/by-nature-natural-adult-formula-cat-food.html" />
464
+ <link rel="replies" type="text/html" href="http://www.petsecretshopper.com/2012/07/by-nature-natural-adult-formula-cat-food.html" thr:count="1" thr:updated="2012-08-24T02:29:59-07:00" />
465
+ <id>tag:typepad.com,2003:post-6a010535222d03970c0167684cbbdd970b</id>
466
+ <published>2012-07-09T07:28:39-07:00</published>
467
+ <updated>2012-07-24T07:57:33-07:00</updated>
468
+ <summary>Breaking into the food before the review is our cat&#39;s way of saying, &quot;WE LUV DIS FUD!&quot; Pet Secret Shopper Product Reviews</summary>
469
+ <author>
470
+ <name>dogtime</name>
471
+ </author>
472
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cat Food &amp; Treats" />
473
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Cats" />
474
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dog Food &amp; Treats" />
475
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Dogs" />
476
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pet Supplies" />
477
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Pets" />
478
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Reviews" />
479
+
480
+
481
+ <content type="xhtml" xml:lang="en-US" xml:base="http://www.petsecretshopper.com/">
482
+ <div xmlns="http://www.w3.org/1999/xhtml"><p><a class="asset-img-link" href="http://www.bynaturepetfoods.com/productpages/catmain.php" target="_blank"><img alt="By Nature Natural Pet Foods" class="asset asset-image at-xid-6a010535222d03970c0167684cbb16970b" src="http://www.obama-dog.com/.a/6a010535222d03970c0167684cbb16970b-300wi" style="width: 300px; display: block; margin-left: auto; margin-right: auto;" title="By Nature Natural Pet Foods" /></a>Cats are notoriously finicky eaters and the members of our Kitty Review Crew are no exception. We&#39;re never quite sure how they&#39;re going to react to new foods or treats, however their reaction to an unguarded bag of <a href="http://www.bynaturepetfoods.com/productpages/catmain.php" target="_blank" title="By Nature Adult Cat Formula">By Nature&#39;s Adult Dry Cat Food</a> left on the living room floor made their opinions quite clear.</p>
483
+ <p><a class="asset-img-link" href="http://www.bynaturepetfoods.com/productpages/catmain.php" style="float: right;" target="_blank"><img alt="Exhibit A: Buddha and the torn bag of By Nature cat food" class="asset asset-image at-xid-6a010535222d03970c01761641ef0d970c" src="http://www.obama-dog.com/.a/6a010535222d03970c01761641ef0d970c-200wi" style="width: 180px; margin: 0px 0px 5px 5px;" title="Exhibit A: Buddha and the torn bag of By Nature cat food" /></a>I submit the photo (right) as Exhibit A. As you can see, I found the bag of food covered in tiny tooth marks, torn open, and missing a considerable amount of its contents.&#0160;</p>
484
+ <p>Evidently they found the aroma drifting from the bag irresistible and became obsessed with devouring it&#39;s crunchy bounty. Breaking into the food before the review is our cat&#39;s way of saying, &quot;WE LUV DIS FUD!&quot;</p>
485
+ <p>I like the fact that By Nature&#39;s <a class="zem_slink" href="http://www.petsecretshopper.com/2012/06/gama2-airtight-vittles-vault-stackables.html" rel="autointext" target="_blank" title="Gamma2 | Airtight Vittles Vault Stackables">pet foods</a> (both dry and canned), are all natural, contain real chicken, beef, and turkey with no soy, wheat, or corn. There&#39;s an interesting article on the ByNaturePetFoods.com website that explains <a href="http://www.bynaturepetfoods.com/nutrition/pdf/bynature-whats-better-chicken-or-chicken-meal.pdf" target="_blank" title="Chicken meal vs non-rendered chicken">why chicken meal is better than &quot;non-rendered&quot; chicken</a>. I had no idea!</p>
486
+ <p><a class="asset-img-link" href="http://www.obama-dog.com/.a/6a010535222d03970c0177432c8045970d-pi" style="float: left;"><img alt="Pet Secret Shopper&#39;s 5 Paw Rating" class="asset asset-image at-xid-6a010535222d03970c0177432c8045970d" src="http://www.obama-dog.com/.a/6a010535222d03970c0177432c8045970d-100wi" style="width: 80px; margin: 0px 5px 5px 0px;" title="Pet Secret Shopper&#39;s 5 Paw Rating" /></a>5 cat burglar paws up for By Nature Cat Food!</p>
487
+ <p>You can purchase<a href="http://www.bynaturepetfoods.com/productpages/catmain.php" target="_blank" title="By Nature Adult Cat Formula"> By Nature Adult Cat Formula</a> and Kitten Formula online at <a href="http://www.waggintails.com/m-100-by-nature.html" target="_blank" title="By Nature Cat Food at WagginTails.com">WagginTails.com</a>. Prices range from $9.99 to $34.99.</p>
488
+ <p><a href="http://www.obama-dog.com/.a/6a010535222d03970c016763a48a65970b-pi" style="float: left;"><img alt="Global-pet-expo-logo-ss-120" class="asset asset-image at-xid-6a010535222d03970c016763a48a65970b" src="http://www.obama-dog.com/.a/6a010535222d03970c016763a48a65970b-120wi" style="width: 120px; margin: 0px 5px 5px 0px;" title="Global-pet-expo-logo-ss-120" /></a><strong><span style="color: #0d569f;"><a href="http://www.bynaturepetfoods.com/" target="_blank" title="By Nature Pet Foods">By Nature</a> <span style="color: #111111;">| 2012 Global Pet Expo Exhibitor</span></span></strong></p>
489
+ <p>Think your product can pass the <a class="zem_slink" href="http://www.petsecretshopper.com/2012/06/by-nature-pork-sweet-potato-natural-dry-dog-food.html" rel="autointext" target="_blank" title="By Nature | Pork &amp; Sweet Potato Natural Dry Dog Food">Secret Shopper</a>&#39;s test? Send us an email: SecretShopperBlog@gmail.com.</p></div>
490
+ </content>
491
+
492
+
493
+ </entry>
494
+
495
+ </feed>
496
+
497
+ <!-- ph=1 -->
@@ -17,6 +17,10 @@ def sample_atom_feed
17
17
  load_sample("AmazonWebServicesBlog.xml")
18
18
  end
19
19
 
20
+ def sample_atom_xhtml_feed
21
+ load_sample("pet_atom.xml")
22
+ end
23
+
20
24
  def sample_atom_feed_line_breaks
21
25
  load_sample("AtomFeedWithSpacesAroundEquals.xml")
22
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feedzirra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Dix
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-12-01 00:00:00.000000000 Z
14
+ date: 2013-12-17 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: sax-machine
@@ -160,6 +160,7 @@ files:
160
160
  - spec/sample_feeds/TypePadNews.xml
161
161
  - spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml
162
162
  - spec/sample_feeds/itunes.xml
163
+ - spec/sample_feeds/pet_atom.xml
163
164
  - spec/spec_helper.rb
164
165
  homepage: http://github.com/pauldix/feedzirra
165
166
  licenses:
@@ -224,4 +225,5 @@ test_files:
224
225
  - spec/sample_feeds/TypePadNews.xml
225
226
  - spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml
226
227
  - spec/sample_feeds/itunes.xml
228
+ - spec/sample_feeds/pet_atom.xml
227
229
  - spec/spec_helper.rb