tvrage_api 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/README.md +38 -8
  4. data/lib/tvrage_api/base.rb +8 -3
  5. data/lib/tvrage_api/client.rb +23 -3
  6. data/lib/tvrage_api/info.rb +19 -0
  7. data/lib/tvrage_api/recap.rb +47 -0
  8. data/lib/tvrage_api/schedule.rb +35 -0
  9. data/lib/tvrage_api/search.rb +30 -4
  10. data/lib/tvrage_api/show.rb +70 -8
  11. data/lib/tvrage_api/update.rb +16 -2
  12. data/lib/tvrage_api/version.rb +1 -1
  13. data/lib/tvrage_api.rb +3 -0
  14. data/spec/fixtures/all_recaps.xml +8 -0
  15. data/spec/fixtures/episode_info.xml +1 -0
  16. data/spec/fixtures/episode_list.xml +21 -0
  17. data/spec/fixtures/full_schedule.xml +60 -0
  18. data/spec/fixtures/full_search.xml +53 -0
  19. data/spec/fixtures/full_show_info.xml +36 -0
  20. data/spec/fixtures/last_recaps.xml +18 -0
  21. data/spec/fixtures/last_updates.xml +6 -0
  22. data/spec/fixtures/quick_info.txt +13 -0
  23. data/spec/fixtures/quick_schedule.txt +1 -0
  24. data/spec/fixtures/search.xml +39 -0
  25. data/spec/fixtures/show_info.xml +21 -0
  26. data/spec/fixtures/show_list.xml +5 -0
  27. data/spec/fixtures/show_recaps.xml +47 -0
  28. data/spec/functionals/info_spec.rb +30 -0
  29. data/spec/functionals/recap_spec.rb +66 -0
  30. data/spec/functionals/schedule_spec.rb +48 -0
  31. data/spec/functionals/search_spec.rb +48 -0
  32. data/spec/functionals/show_spec.rb +102 -0
  33. data/spec/functionals/update_spec.rb +30 -0
  34. data/spec/integrations/info_spec.rb +14 -0
  35. data/spec/integrations/recap_spec.rb +26 -0
  36. data/spec/integrations/schedule_spec.rb +20 -0
  37. data/spec/integrations/search_spec.rb +4 -3
  38. data/spec/integrations/show_spec.rb +12 -5
  39. data/spec/integrations/update_spec.rb +3 -2
  40. data/tvrage_api.gemspec +1 -1
  41. metadata +57 -18
  42. data/spec/integrations/client_spec.rb +0 -55
  43. data/spec/tvrage_api/client_spec.rb +0 -23
  44. data/spec/tvrage_api/search_spec.rb +0 -22
  45. data/spec/tvrage_api/show_spec.rb +0 -38
  46. data/spec/tvrage_api/update_spec.rb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9cc485fd0b5d0192d75bfd365bc26843cd60ef6b
4
- data.tar.gz: 1d30a3840cf19545ab13c8aee5548e84db2115d2
3
+ metadata.gz: 770687502ef4bed24d33cd8f46cdc1899e36d64d
4
+ data.tar.gz: dade9e9f981d4fcc935c94cbb52e94d10e67816d
5
5
  SHA512:
6
- metadata.gz: cfbf9c7afdea409cce8bad1f8fb0fe3a7af818ab4ade2daf379baa20dc339d7d672bf2c1f5cf555fb121c1226eddb077b251cdb33713f9d4edd4f5f7f9d52c17
7
- data.tar.gz: 06e72ebd87168457edbd8629273517495f6902fa23d267cfae7d544d0253792f355949c84df20fbd79dda2b3a67cbfd95578e55cacf8e7a0377173ce1ee8ea60
6
+ metadata.gz: 3f208019294a07196dc7e772624674d36e4a80928132053404ef0e4ddc5c7c3879a4248d347f4ddd20185099f8a48795535f8f54ac5b2cce76910d925216fd4c
7
+ data.tar.gz: 01b54ceb78671945147f352880c8a810491638542f7dbb7f9203f96b035afdbb9eb4027dc3e1a42c4d756a93391a78640496aee411e0df53a21ef317c4644983
data/.travis.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  language: ruby
2
- script: 'bundle exec rspec spec/tvrage_api'
2
+ script: 'bundle exec rspec spec/functionals'
3
3
  rvm:
4
4
  - 2.0.0
data/README.md CHANGED
@@ -29,25 +29,55 @@ Search show by name:
29
29
 
30
30
  ```ruby
31
31
  client = TvrageApi::Client.new
32
- client.search.by_name('buffy')
33
- client.search.full_by_name('buffy')
32
+ client.search.by_name(show: 'buffy')
33
+ client.search.full_by_name(show: 'buffy')
34
34
  ```
35
35
 
36
36
  Search show by id:
37
37
 
38
38
  ```ruby
39
39
  client = TvrageApi::Client.new
40
- client.show.find('123')
41
- client.show.find_full('123')
42
- client.show.episodes('123') # show with all episodes
43
- client.show.episode('123', season, episode) # show with specific episode
40
+ client.show.find(sid: '123')
41
+ client.show.find_full(sid: '123')
42
+ client.show.episodes(sid: '123') # show with all episodes
43
+ client.show.episode(sid: '123', ep: 'SEASONxEPISODE') # show with specific episode
44
+ client.show.all
44
45
  ```
45
46
 
46
- Search all show ids:
47
+ QuickInfo (it return plain text, not parsed)
47
48
 
48
49
  ```ruby
49
50
  client = TvrageApi::Client.new
50
- client.update.all
51
+ client.info.find(show: 'Alias') # main information
52
+ client.info.find(show: 'Alias', ep: '2x04') # episode information
53
+ client.info.find(show: 'Alias', exact: 1) # exact information
54
+ ```
55
+
56
+ Schedule (quick method return plain text)
57
+
58
+ ```ruby
59
+ client = TvrageApi::Client.new
60
+ client.schedule.quick
61
+ client.schedule.full(country: 'US')
62
+ ```
63
+
64
+ Recaps
65
+
66
+ ```ruby
67
+ client = TvrageApi::Client.new
68
+ client.recap.all
69
+ client.recap.show(show: 5410)
70
+ client.recap.last(days: 100)
71
+ ```
72
+
73
+ Updates:
74
+
75
+ ```ruby
76
+ client = TvrageApi::Client.new
77
+ client.update.last # last 24 hours
78
+ client.update.last(hours: 48) # set timeline (default: 48)
79
+ client.update.last(sort: 'episodes') # only shows where episodes have changed
80
+ client.update.last(since: 1403668430) # updates since last visit
51
81
  ```
52
82
 
53
83
  ## Contributing
@@ -1,6 +1,11 @@
1
- require 'httparty'
1
+ require 'service_api'
2
2
 
3
3
  class TvrageApi::Base
4
- include HTTParty
5
- base_uri 'http://services.tvrage.com/feeds/'
4
+ include ServiceApi::BaseFaraday
5
+
6
+ private
7
+
8
+ def base_url
9
+ 'http://services.tvrage.com/'
10
+ end
6
11
  end
@@ -1,13 +1,33 @@
1
1
  class TvrageApi::Client
2
+ attr_reader :options
3
+
4
+ def initialize(options = {})
5
+ @options = options
6
+
7
+ @options[:adapter] ||= :net_http
8
+ end
9
+
2
10
  def search
3
- @search ||= TvrageApi::Search.new
11
+ @search ||= TvrageApi::Search.new(self)
4
12
  end
5
13
 
6
14
  def show
7
- @show ||= TvrageApi::Show.new
15
+ @show ||= TvrageApi::Show.new(self)
8
16
  end
9
17
 
10
18
  def update
11
- @show ||= TvrageApi::Update.new
19
+ @update ||= TvrageApi::Update.new(self)
20
+ end
21
+
22
+ def info
23
+ @info ||= TvrageApi::Info.new(self)
24
+ end
25
+
26
+ def schedule
27
+ @schedule ||= TvrageApi::Schedule.new(self)
28
+ end
29
+
30
+ def recap
31
+ @recap ||= TvrageApi::Recap.new(self)
12
32
  end
13
33
  end
@@ -0,0 +1,19 @@
1
+ class TvrageApi::Info < TvrageApi::Base
2
+ def find(options = {})
3
+ find_path_with_params(options).get
4
+ end
5
+
6
+ def find_url(options = {})
7
+ find_path_with_params(options).url
8
+ end
9
+
10
+ private
11
+
12
+ def find_path_with_params(options)
13
+ path(find_path).params(options)
14
+ end
15
+
16
+ def find_path
17
+ 'tools/quickinfo.php'
18
+ end
19
+ end
@@ -0,0 +1,47 @@
1
+ class TvrageApi::Recap < TvrageApi::Base
2
+ def all
3
+ path(all_path).get
4
+ end
5
+
6
+ def all_url
7
+ path(all_path).url
8
+ end
9
+
10
+ def show(options = {})
11
+ show_path_with_params(options).get
12
+ end
13
+
14
+ def show_url(options = {})
15
+ show_path_with_params(options).url
16
+ end
17
+
18
+ def last(options = {})
19
+ last_path_with_params(options).get
20
+ end
21
+
22
+ def last_url(options = {})
23
+ last_path_with_params(options).url
24
+ end
25
+
26
+ private
27
+
28
+ def all_path
29
+ 'recaps/all_recaps.php'
30
+ end
31
+
32
+ def show_path_with_params(options)
33
+ path(show_path).params(options)
34
+ end
35
+
36
+ def show_path
37
+ 'recaps/show_recaps.php'
38
+ end
39
+
40
+ def last_path_with_params(options)
41
+ path(last_path).params(options)
42
+ end
43
+
44
+ def last_path
45
+ 'recaps/last_recaps.php'
46
+ end
47
+ end
@@ -0,0 +1,35 @@
1
+ class TvrageApi::Schedule < TvrageApi::Base
2
+ def quick(options = {})
3
+ quick_path_with_params(options).get
4
+ end
5
+
6
+ def quick_url(options = {})
7
+ quick_path_with_params(options).url
8
+ end
9
+
10
+ def full(options = {})
11
+ full_path_with_params(options).get
12
+ end
13
+
14
+ def full_url(options = {})
15
+ full_path_with_params(options).url
16
+ end
17
+
18
+ private
19
+
20
+ def quick_path_with_params(options)
21
+ path(quick_path).params(options)
22
+ end
23
+
24
+ def quick_path
25
+ 'tools/quickschedule.php'
26
+ end
27
+
28
+ def full_path_with_params(options)
29
+ path(full_path).params(options)
30
+ end
31
+
32
+ def full_path
33
+ 'feeds/fullschedule.php'
34
+ end
35
+ end
@@ -1,9 +1,35 @@
1
1
  class TvrageApi::Search < TvrageApi::Base
2
- def by_name(name)
3
- self.class.get('search.php', show: name)
2
+ def by_name(options = {})
3
+ by_name_path_with_params(options).get
4
4
  end
5
5
 
6
- def full_by_name(name)
7
- self.class.get('full_search.php', show: name)
6
+ def by_name_url(options = {})
7
+ by_name_path_with_params(options).url
8
+ end
9
+
10
+ def full_by_name(options = {})
11
+ full_by_name_path_with_params(options).get
12
+ end
13
+
14
+ def full_by_name_url(options = {})
15
+ full_by_name_path_with_params(options).url
16
+ end
17
+
18
+ private
19
+
20
+ def by_name_path_with_params(options)
21
+ path(by_name_path).params(options)
22
+ end
23
+
24
+ def by_name_path
25
+ 'feeds/search.php'
26
+ end
27
+
28
+ def full_by_name_path_with_params(options)
29
+ path(full_by_name_path).params(options)
30
+ end
31
+
32
+ def full_by_name_path
33
+ 'feeds/full_search.php'
8
34
  end
9
35
  end
@@ -1,17 +1,79 @@
1
1
  class TvrageApi::Show < TvrageApi::Base
2
- def find(id)
3
- self.class.get('showinfo.php', sid: id)
2
+ def find(options = {})
3
+ find_path_with_params(options).get
4
4
  end
5
5
 
6
- def find_full(id)
7
- self.class.get('full_show_info.php', sid: id)
6
+ def find_url(options = {})
7
+ find_path_with_params(options).url
8
8
  end
9
9
 
10
- def episodes(show_id)
11
- self.class.get('episode_list.php', sid: show_id)
10
+ def find_full(options = {})
11
+ find_full_path_with_params(options).get
12
12
  end
13
13
 
14
- def episode(series_id, season, episode)
15
- self.class.get('episodeinfo.php', sid: series_id, ep: "#{season}x#{episode}")
14
+ def find_full_url(options = {})
15
+ find_full_path_with_params(options).url
16
+ end
17
+
18
+ def episodes(options = {})
19
+ episodes_path_with_params(options).get
20
+ end
21
+
22
+ def episodes_url(options = {})
23
+ episodes_path_with_params(options).url
24
+ end
25
+
26
+ def episode(options = {})
27
+ episode_path_with_params(options).get
28
+ end
29
+
30
+ def episode_url(options = {})
31
+ episode_path_with_params(options).url
32
+ end
33
+
34
+ def all
35
+ path(all_path).get
36
+ end
37
+
38
+ def all_url
39
+ path(all_path).url
40
+ end
41
+
42
+ private
43
+
44
+ def find_path_with_params(options)
45
+ path(find_path).params(options)
46
+ end
47
+
48
+ def find_path
49
+ 'feeds/showinfo.php'
50
+ end
51
+
52
+ def find_full_path_with_params(options)
53
+ path(find_full_path).params(options)
54
+ end
55
+
56
+ def find_full_path
57
+ 'feeds/full_show_info.php'
58
+ end
59
+
60
+ def episodes_path_with_params(options)
61
+ path(episodes_path).params(options)
62
+ end
63
+
64
+ def episodes_path
65
+ 'feeds/episode_list.php'
66
+ end
67
+
68
+ def episode_path_with_params(options)
69
+ path(episode_path).params(options)
70
+ end
71
+
72
+ def episode_path
73
+ 'feeds/episodeinfo.php'
74
+ end
75
+
76
+ def all_path
77
+ 'feeds/show_list.php'
16
78
  end
17
79
  end
@@ -1,5 +1,19 @@
1
1
  class TvrageApi::Update < TvrageApi::Base
2
- def all
3
- self.class.get('show_list.php')
2
+ def last(options = {})
3
+ last_path_with_params(options).get
4
+ end
5
+
6
+ def last_url(options = {})
7
+ last_path_with_params(options).url
8
+ end
9
+
10
+ private
11
+
12
+ def last_path_with_params(options)
13
+ path(last_path).params(options)
14
+ end
15
+
16
+ def last_path
17
+ 'feeds/last_updates.php'
4
18
  end
5
19
  end
@@ -1,3 +1,3 @@
1
1
  module TvrageApi
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/tvrage_api.rb CHANGED
@@ -8,3 +8,6 @@ require 'tvrage_api/base'
8
8
  require 'tvrage_api/search'
9
9
  require 'tvrage_api/show'
10
10
  require 'tvrage_api/update'
11
+ require 'tvrage_api/info'
12
+ require 'tvrage_api/schedule'
13
+ require 'tvrage_api/recap'
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+
3
+ <recaps found='800' >
4
+ <show><id>3256</id><recaps>144</recaps><last>2H, 51M</last></show>
5
+ <show><id>10408</id><recaps>100</recaps><last>26H, 40M</last></show>
6
+ <show><id>5923</id><recaps>4</recaps></show>
7
+ <show><id>6406</id><recaps>3</recaps></show>
8
+ </recaps>
@@ -0,0 +1 @@
1
+ <show id='2930'><name>Buffy the Vampire Slayer</name><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer</link><started>1997-03-10</started><ended>2003-05-20</ended><country>USA</country><status>Ended</status><classification>Scripted</classification><genres><genre>Action</genre><genre>Adventure</genre><genre>Comedy</genre><genre>Drama</genre><genre>Horror/Supernatural</genre><genre>Mystery</genre><genre>Sci-Fi</genre></genres><airtime>Tuesday at 08:00 pm</airtime><runtime>60</runtime><episode><number>02x04</number><title>Inca Mummy Girl</title><airdate>1997-10-06</airdate><url>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28092</url></episode><latestepisode><number>07x22</number><title>Chosen</title><airdate>2003-05-20</airdate></latestepisode></show>
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+
3
+
4
+ <Show>
5
+ <name>Buffy the Vampire Slayer</name>
6
+ <totalseasons>7</totalseasons>
7
+ <Episodelist>
8
+
9
+ <Season no="1">
10
+ <episode><epnum>1</epnum><seasonnum>01</seasonnum><prodnum>4V01</prodnum><airdate>1997-03-10</airdate><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28077</link><title>Welcome to the Hellmouth (1)</title></episode>
11
+ <episode><epnum>2</epnum><seasonnum>02</seasonnum><prodnum>4V02</prodnum><airdate>1997-03-10</airdate><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28078</link><title>The Harvest (2)</title></episode>
12
+ </Season>
13
+
14
+ <Season no="2">
15
+ <episode><epnum>13</epnum><seasonnum>01</seasonnum><prodnum>5V01</prodnum><airdate>1997-09-15</airdate><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28089</link><title>When She Was Bad</title></episode>
16
+ <episode><epnum>14</epnum><seasonnum>02</seasonnum><prodnum>5V02</prodnum><airdate>1997-09-22</airdate><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28090</link><title>Some Assembly Required</title></episode>
17
+ </Season>
18
+
19
+ </Episodelist>
20
+
21
+ </Show>
@@ -0,0 +1,60 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <schedule>
3
+ <DAY attr="2014-6-24">
4
+ <time attr="05:00 am">
5
+ <show name="ECW Hardcore TV">
6
+ <sid>1598</sid>
7
+ <network>WWE Network</network>
8
+ <title>
9
+ ECW World Champion Shane Douglas defends his title against Ron Simmons
10
+ </title>
11
+ <ep>07x44</ep>
12
+ <link>
13
+ http://www.tvrage.com/shows/id-1598/episodes/1065591078
14
+ </link>
15
+ </show>
16
+ <show name="Early Start">
17
+ <sid>40446</sid>
18
+ <network>CNN</network>
19
+ <title>Season 3, Episode 122</title>
20
+ <ep>03x122</ep>
21
+ <link>
22
+ http://www.tvrage.com/shows/id-40446/episodes/1065573066
23
+ </link>
24
+ </show>
25
+ </time>
26
+ <time attr="05:30 am">
27
+ <show name="Way Too Early">
28
+ <sid>35766</sid>
29
+ <network>msnbc</network>
30
+ <title>Season 5, Episode 222</title>
31
+ <ep>05x222</ep>
32
+ <link>
33
+ http://www.tvrage.com/shows/id-35766/episodes/1065574118
34
+ </link>
35
+ </show>
36
+ <show name="Wake Up With Al">
37
+ <sid>40464</sid>
38
+ <network>Weather Channel</network>
39
+ <title>Season 5, Episode 222</title>
40
+ <ep>05x222</ep>
41
+ <link>
42
+ http://www.tvrage.com/shows/id-40464/episodes/1065574431
43
+ </link>
44
+ </show>
45
+ </time>
46
+ </DAY>
47
+ <DAY attr="2016-9-7">
48
+ <time attr="08:00 pm">
49
+ <show name="The 2016 Summer Paralympics">
50
+ <sid>37733</sid>
51
+ <network>NBC</network>
52
+ <title>Opening ceremonies</title>
53
+ <ep>01x01</ep>
54
+ <link>
55
+ http://www.tvrage.com/shows/id-37733/episodes/1065386277
56
+ </link>
57
+ </show>
58
+ </time>
59
+ </DAY>
60
+ </schedule>
@@ -0,0 +1,53 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+
3
+ <Results>
4
+ <show>
5
+ <showid>2930</showid>
6
+ <name>Buffy the Vampire Slayer</name>
7
+ <link>http://www.tvrage.com/Buffy_The_Vampire_Slayer</link>
8
+ <country>US</country>
9
+ <started>Mar/10/1997</started>
10
+ <ended>May/20/2003</ended>
11
+ <seasons>7</seasons>
12
+ <status>Ended</status>
13
+ <runtime>60</runtime>
14
+ <classification>Scripted</classification>
15
+ <genres><genre>Action</genre><genre>Adventure</genre><genre>Comedy</genre><genre>Drama</genre><genre>Horror/Supernatural</genre><genre>Mystery</genre><genre>Sci-Fi</genre></genres>
16
+ <network country="US">UPN</network>
17
+ <airtime>20:00</airtime>
18
+ <airday>Tuesday</airday>
19
+ <akas><aka country="SE">Buffy &amp; vampyrerna</aka><aka country="DE">Buffy - Im Bann der Dämonen</aka><aka country="NO">Buffy - Vampyrenes skrekk</aka><aka country="HU">Buffy a vámpírok réme</aka><aka country="FR">Buffy Contre les Vampires</aka><aka country="IT">Buffy l'Ammazza Vampiri</aka><aka country="PL">Buffy postrach wampirów</aka><aka country="BR">Buffy, a Caça-Vampiros</aka><aka country="PT">Buffy, a Caçadora de Vampiros</aka><aka country="ES">Buffy, Cazavampiros</aka><aka country="HR">Buffy, ubojica vampira</aka><aka country="FI">Buffy, vampyyrintappaja</aka><aka country="EE">Vampiiritapja Buffy</aka><aka country="IS">Vampírubaninn Buffy</aka><aka country="RU">Баффи – истребительница вампиров</aka></akas>
20
+ </show>
21
+ <show>
22
+ <showid>31192</showid>
23
+ <name>Buffy the Vampire Slayer - Season Eight: Motion comics</name>
24
+ <link>http://www.tvrage.com/shows/id-31192</link>
25
+ <country>US</country>
26
+ <started>Jul/19/2010</started>
27
+ <ended>Nov/22/2010</ended>
28
+ <seasons>1</seasons>
29
+ <status>Canceled/Ended</status>
30
+ <runtime>15</runtime>
31
+ <classification>Animation</classification>
32
+ <genres><genre>Animation General</genre><genre>Action</genre><genre>Adventure</genre><genre>Comedy</genre><genre>Drama</genre><genre>Horror/Supernatural</genre><genre>Sci-Fi</genre></genres>
33
+ <network country="US">iTunes</network>
34
+ <airtime>12:00</airtime>
35
+ <airday>Tuesday</airday>
36
+ </show>
37
+ <show>
38
+ <showid>2931</showid>
39
+ <name>Buffy the Animated Series</name>
40
+ <link>http://www.tvrage.com/Buffy_the_Animated_Series</link>
41
+ <country>US</country>
42
+ <started>2002</started>
43
+ <ended></ended>
44
+ <seasons>1</seasons>
45
+ <status>Pilot Rejected</status>
46
+ <runtime>4</runtime>
47
+ <classification>Animation</classification>
48
+ <genres><genre>Animation General</genre><genre>Action</genre><genre>Adventure</genre><genre>Horror/Supernatural</genre></genres>
49
+ <network country="US">FOX</network>
50
+ <airtime>12:00</airtime>
51
+ <airday>Tuesday</airday>
52
+ </show>
53
+ </Results>
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+
3
+
4
+ <Show>
5
+ <name>Buffy the Vampire Slayer</name>
6
+ <totalseasons>7</totalseasons>
7
+ <showid>2930</showid>
8
+ <showlink>http://tvrage.com/Buffy_The_Vampire_Slayer</showlink>
9
+ <started>Mar/10/1997</started>
10
+ <ended>May/20/2003</ended>
11
+ <image>http://images.tvrage.com/shows/3/2930.jpg</image>
12
+ <origin_country>US</origin_country>
13
+ <status>Ended</status>
14
+ <classification>Scripted</classification>
15
+ <genres><genre>Action</genre><genre>Adventure</genre><genre>Comedy</genre><genre>Drama</genre><genre>Horror/Supernatural</genre><genre>Mystery</genre><genre>Sci-Fi</genre></genres>
16
+ <runtime>60</runtime>
17
+ <network country="US">UPN</network>
18
+ <airtime>20:00</airtime>
19
+ <airday>Tuesday</airday>
20
+ <timezone>GMT-5 +DST</timezone>
21
+ <akas><aka country="SE">Buffy &amp; vampyrerna</aka><aka country="DE">Buffy - Im Bann der Dämonen</aka><aka country="NO">Buffy - Vampyrenes skrekk</aka><aka country="HU">Buffy a vámpírok réme</aka><aka country="FR">Buffy Contre les Vampires</aka><aka country="IT">Buffy l'Ammazza Vampiri</aka><aka country="PL">Buffy postrach wampirów</aka><aka country="BR">Buffy, a Caça-Vampiros</aka><aka country="PT">Buffy, a Caçadora de Vampiros</aka><aka country="ES">Buffy, Cazavampiros</aka><aka country="HR">Buffy, ubojica vampira</aka><aka country="FI">Buffy, vampyyrintappaja</aka><aka country="EE">Vampiiritapja Buffy</aka><aka country="IS">Vampírubaninn Buffy</aka><aka country="RU">Баффи – истребительница вампиров</aka></akas>
22
+ <Episodelist>
23
+
24
+ <Season no="1">
25
+ <episode><epnum>1</epnum><seasonnum>01</seasonnum><prodnum>4V01</prodnum><airdate>1997-03-10</airdate><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28077</link><title>Welcome to the Hellmouth (1)</title><screencap>http://images.tvrage.com/screencaps/15/2930/28077.png</screencap></episode>
26
+ <episode><epnum>2</epnum><seasonnum>02</seasonnum><prodnum>4V02</prodnum><airdate>1997-03-10</airdate><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28078</link><title>The Harvest (2)</title><screencap>http://images.tvrage.com/screencaps/15/2930/28078.png</screencap></episode>
27
+ </Season>
28
+
29
+ <Season no="2">
30
+ <episode><epnum>13</epnum><seasonnum>01</seasonnum><prodnum>5V01</prodnum><airdate>1997-09-15</airdate><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28089</link><title>When She Was Bad</title><screencap>http://images.tvrage.com/screencaps/15/2930/28089.png</screencap></episode>
31
+ <episode><epnum>14</epnum><seasonnum>02</seasonnum><prodnum>5V02</prodnum><airdate>1997-09-22</airdate><link>http://www.tvrage.com/Buffy_The_Vampire_Slayer/episodes/28090</link><title>Some Assembly Required</title><screencap>http://images.tvrage.com/screencaps/15/2930/28090.png</screencap></episode>
32
+ </Season>
33
+
34
+ </Episodelist>
35
+
36
+ </Show>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+
3
+ <recaps found='19' >
4
+ <show>
5
+ <id>10408</id>
6
+ <episode_id>1065590202</episode_id>
7
+ <episode_url>http://www.tvrage.com/Americas_Got_Talent/episodes/1065590202</episode_url>
8
+ <recap_url>http://www.tvrage.com/Americas_Got_Talent/episodes/1065590202/recap</recap_url>
9
+ <recap></recap>
10
+ </show>
11
+ <show>
12
+ <id>10408</id>
13
+ <episode_id>1065579369</episode_id>
14
+ <episode_url>http://www.tvrage.com/Americas_Got_Talent/episodes/1065579369</episode_url>
15
+ <recap_url>http://www.tvrage.com/Americas_Got_Talent/episodes/1065579369/recap</recap_url>
16
+ <recap></recap>
17
+ </show>
18
+ </recaps>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+
3
+ <updates at='1403725287' found='417' sorting='latest_updates' showing='Last 24H'>
4
+ <show><id>42055</id><last>-27927</last><lastepisode>-27927</lastepisode></show>
5
+ <show><id>1817</id><last>-27712</last><lastepisode>-27053</lastepisode></show>
6
+ </updates>
@@ -0,0 +1,13 @@
1
+ <pre>Show ID@2537
2
+ Show Name@Alias
3
+ Show URL@http://www.tvrage.com/Alias
4
+ Premiered@2001
5
+ Started@Sep/30/2001
6
+ Ended@May/22/2006
7
+ Latest Episode@05x17^All the Time in the World^May/22/2006
8
+ Country@USA
9
+ Status@Canceled/Ended
10
+ Classification@Scripted
11
+ Genres@Action | Adventure | Drama
12
+ Network@ABC
13
+ Runtime@60
@@ -0,0 +1 @@
1
+ [DAY]Wednesday, 25 Jun 2014[/DAY] [TIME]05:00 pm[/TIME] [SHOW]CNN^The Situation Room^09x213^http://www.tvrage.com/The_Situation_Room[/SHOW] [SHOW]Al Jazeera America^Inside Story (US)^01x222^http://www.tvrage.com/shows/id-37215[/SHOW] [TIME]06:00 pm[/TIME] [SHOW]BET^106 and Park^14x180^http://www.tvrage.com/106_and_Park[/SHOW]