kandianying 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e08a3117a042112b87b04fa4fb45b98f11226e85
4
- data.tar.gz: 23e76a94f7c4bd11a3ecbd001108cfab9a327ecc
3
+ metadata.gz: 95a157f5b1813fc44b21889c9c8b48273f6241fb
4
+ data.tar.gz: 31161c5de5247023276310a64febcc89a46f9763
5
5
  SHA512:
6
- metadata.gz: 761a096336b9fa8ea47980d0bb036bb8885dce7806a533179a31edfbcdc2ff85bce3d03433f319da6bf2c1554bf607c53887d0b57f40985ac7fe4e972050e7c6
7
- data.tar.gz: b049050aa1fe13f0e156827fd295d5e0c5a98ccd94390925bbff7ef014cdeeee0377e75f77e051872a5c15abaa5a9082b485f57bd092042ddd807e8b6d73f587
6
+ metadata.gz: 5de21692c8ccf28e865f0a812d231932409fcb7ae1a1aee7bca30e67df1f673251a534e2bf8f67e94904e4332209d27d0dd3860183a9fc90126e6c43af5cfb5f
7
+ data.tar.gz: 15e21f3f1f419139c178958144941dd637edc004b68edd351ec7ad6ad61a62a72ca8412c3b33a124e819e0b228e9c32f4433cc5b27c6b485f2d752d2e042fe8a
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - ruby-head
4
+ - "2.2.3"
5
+ - "2.1.0"
6
+ - jruby-head
7
+ # uncomment this line if your project needs to run something other than `rake`:
8
+ # script: bundle exec rspec spec
data/Gemfile CHANGED
@@ -1,5 +1,13 @@
1
1
  source 'https://www.rubygems.org'
2
2
 
3
- ruby '2.2.1'
4
-
5
3
  gemspec
4
+
5
+ gem 'nokogiri'
6
+
7
+ group :test do
8
+ gem 'rake'
9
+ gem 'vcr'
10
+ gem 'webmock'
11
+ gem 'minitest'
12
+ gem 'minitest-rg'
13
+ end
data/LICENSE CHANGED
@@ -0,0 +1,22 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+
data/README.md CHANGED
@@ -1,33 +1,34 @@
1
- # Hsinchu_Movie
1
+ # Hsinchu_Movie[![Gem Version](https://badge.fury.io/rb/kandianying.svg)](https://badge.fury.io/rb/kandianying)[![Build Status](https://travis-ci.org/SOAupstart2/Hsinchu_Movie.svg)](https://travis-ci.org/SOAupstart2/Hsinchu_Movie)
2
2
 
3
- https://rubygems.org/gems/kan_dian_ying
3
+ https://rubygems.org/gems/kandianying
4
4
 
5
- A simple Ruby Gem to scrap the website vieshow and to get film list and its dates and time.
5
+ A simple Ruby Gem to get data from cinema websites in Hsinchu. Currently, we can get the film lists and show times given a vieshow cinema code.
6
6
 
7
-
8
- ## Usage
7
+ ## Installation
9
8
 
10
9
  Run the following command:
11
-
12
10
  ```
13
11
  gem install kandianying
14
12
  ```
15
- ### Command line usage
16
13
 
14
+ ### General usage notes
15
+ Currently, usage requires specifying a theater_id. This value ranges from 1 to 14. For a cinema located in Hsinchu, use 5 or 12.
16
+
17
+ ### Command line usage
17
18
  ```
18
- kandianying 0005 # Puts JSON array of vieshow's films to command line
19
+ kandianying vieshow <theater_id>
20
+ # This prints out cinema name with films on display and show times.
19
21
  ```
20
22
 
21
23
  ### Usage in ruby code
22
24
  ```
23
- require 'soa_codeschool'
25
+ require 'kandianying'
24
26
 
25
- code_school = SiteScraper.new
26
- code_school.course_names # Returns array of course names
27
- code_school.code_school_data # Returns JSON array of code school courses and teachers
28
- code_school.code_school_output # Puts JSON array of code school courses and teachers
27
+ vieshow_movie = HsinChuMovie::Vieshow.new(<theater_id>)
28
+ vieshow_movie.movie_names # Returns array of film names
29
+ vieshow_movie.movie_table # Returns JSON array of film names, dates, time
30
+ vieshow_movie.to_json # Puts JSON array of movie_table
29
31
  ```
30
32
 
31
33
  ## License
32
-
33
- Distributed under the [MIT License](LICENSE).
34
+ Distributed under the [MIT License](LICENSE).
data/Rakefile CHANGED
@@ -0,0 +1,8 @@
1
+ require 'rake/testtask'
2
+
3
+ task default: [:spec]
4
+
5
+ desc 'Run specs'
6
+ Rake::TestTask.new(name = :spec) do |t|
7
+ t.pattern = 'spec/*_spec.rb'
8
+ end
data/bin/kandianying CHANGED
@@ -1,5 +1,19 @@
1
1
  #!/usr/bin/env ruby
2
2
  require_relative '../lib/kandianying'
3
+ VIESHOW_CODES = ('1'..'14').to_a.map { |e| e.length == 1 ? "0#{e}" : e }
3
4
 
4
- movie = HsinChuMovie.new(ARGV[0].to_s)
5
- puts movie.movie_table_output
5
+ if ARGV[0] == 'vieshow'
6
+ ARGV[1] = "0#{ARGV[1]}" if ARGV[1].length == 1
7
+ if VIESHOW_CODES.include? ARGV[1]
8
+ cinema = HsinChuMovie::Vieshow.new(ARGV[1])
9
+ puts cinema.cinema_name
10
+ cinema.movie_table.each do |_, movies|
11
+ movies.each do |movie, times|
12
+ puts movie
13
+ times.each { |k, v| puts k + "\t" + v }
14
+ end
15
+ end
16
+ else
17
+ puts 'Please use a cinema code between \'1\' and \'14\''
18
+ end
19
+ end
data/kandianying.gemspec CHANGED
@@ -12,13 +12,13 @@ Gem::Specification.new do |s|
12
12
  s.email = %w(stonegold546@gmail.com jr@nlplab.cc
13
13
  pengyu@gmail.com stozuka@gmail.com)
14
14
  s.files = `git ls-files`.split("\n")
15
- # s.test_files = `git ls-files spec/*`.split("\n")
15
+ s.test_files = `git ls-files spec/*`.split("\n")
16
16
  s.homepage = 'https://github.com/SOAupstart2/Hsinchu_Movie'
17
17
  s.license = 'MIT'
18
18
 
19
- # s.add_development_dependency 'minitest'
20
- # s.add_development_dependency 'minitest-rg'
21
- # s.add_development_dependency 'vcr'
22
- # s.add_development_dependency 'webmock'
19
+ s.add_development_dependency 'minitest'
20
+ s.add_development_dependency 'minitest-rg'
21
+ s.add_development_dependency 'vcr'
22
+ s.add_development_dependency 'webmock'
23
23
  s.add_runtime_dependency 'nokogiri'
24
24
  end
@@ -0,0 +1,64 @@
1
+ require 'open-uri'
2
+ require 'nokogiri'
3
+ require 'json'
4
+ require 'yaml'
5
+
6
+ # Scraper for Ambassador
7
+ module Ambassador
8
+ AMBASSADOR_THEATER_ID_URL = 'http://www.ambassador.com.tw/showtime_list.html'
9
+ AMBASSADOR_THEATER_ID_XPATH = "//*[@class='list-group sidebar-nav-v1']//li//a"
10
+ AMBASSADOR_TIME_API = 'http://cinemaservice.ambassador.com.tw/ambassadorsite.webapi/api/Movies/GetScreeningDateListForTheater/?'
11
+ AMBASSADOR_FILM_API = 'http://cinemaservice.ambassador.com.tw/ambassadorsite.webapi/api/Movies/GetShowtimeListForTheater/?'
12
+ # Class for Vieshow films
13
+ class Ambassador
14
+ attr_reader :movie_table
15
+ attr_reader :theater_id_table
16
+ def initialize
17
+ @movie_table = {}
18
+ @theater_id_table = fetch_theater_id_table(AMBASSADOR_THEATER_ID_URL)
19
+ theater_id_table.each do |theater_id, theater_name|
20
+ date_list = fetch_theater_date(theater_id)
21
+ @movie_table[theater_name] = fetch_movie_info(theater_id, date_list)
22
+ end
23
+ end
24
+
25
+ def fetch_movie_info(theater_id, date_list)
26
+ movie_info = Hash.new { |h, k| h[k] = {} }
27
+ date_list.each do |date|
28
+ ur = "#{AMBASSADOR_FILM_API}theaterId=#{theater_id}&showingDate=#{date}"
29
+ movies = JSON.parse(Nokogiri::HTML(open(ur)).text)
30
+ movies.each do |movie|
31
+ name = movie['ForeignName']
32
+ time = movie['PeriodShowtime'].first['Showtimes']
33
+ movie_info[name][date] = time
34
+ end
35
+ end
36
+ movie_info
37
+ end
38
+
39
+ def fetch_theater_date(theater_id)
40
+ url = "#{AMBASSADOR_TIME_API}theaterId=#{theater_id}"
41
+ JSON.parse(Nokogiri::HTML(open(url)).text)
42
+ end
43
+
44
+ def fetch_theater_id_table(url)
45
+ theater_id_list = {}
46
+ open_doc = Nokogiri::HTML(open(url))
47
+ theater = open_doc.xpath(AMBASSADOR_THEATER_ID_XPATH)
48
+ theater.each do |t|
49
+ theater_id = t.attributes['href'].value.split("'")[1]
50
+ theater_name = t.text
51
+ theater_id_list[theater_id] = theater_name
52
+ end
53
+ theater_id_list
54
+ end
55
+
56
+ def to_json
57
+ @movie_table.to_json
58
+ end
59
+
60
+ def to_yaml
61
+ @movie_table.yaml
62
+ end
63
+ end
64
+ end
@@ -1,5 +1,5 @@
1
- # Gem info
1
+ # Versioning
2
2
  module KanDianYing
3
- VERSION = '0.0.4'
4
- DATE = '2015-10-24'
3
+ VERSION = '0.0.5'
4
+ DATE = '2015-10-28'
5
5
  end
@@ -4,54 +4,75 @@ require 'json'
4
4
 
5
5
  # Scraper for VieShow
6
6
  module VieShow
7
- # initialize movie_table with url
8
- def initialize(visCinemaID)
9
- url = 'http://sales.vscinemas.com.tw/ticketing/visPrintShowTimes.aspx?'\
10
- 'visCinemaID=' + visCinemaID
11
- open_doc = open(url, 'Cookie' => 'AspxAutoDetectCookieSupport=1')
12
- doc = Nokogiri::HTML(open_doc)
13
- @table = doc.xpath("//*[@class='PrintShowTimesTable']//td"\
14
- "[@class='PrintShowTimesFilm' "\
15
- "or @class='PrintShowTimesDay' "\
16
- "or @class='PrintShowTimesSession']")
17
- @movie_table = Hash.new { |hash, key| hash[key] = [] }
18
- make_movie_table
7
+ VIESHOW_URL = 'http://sales.vscinemas.com.tw/ticketing/visPrintShowTimes'\
8
+ '.aspx?visCinemaID=00'
9
+ VIESHOW_COOKIE_SETTINGS = 'AspxAutoDetectCookieSupport=1'
10
+ VIESHOW_BASE_XPATH = 'PrintShowTimes'
11
+ VIESHOW_CLASSES_XPATH = %w(Film Day Session)
12
+ VIESHOW_TABLE_XPATH = "//*[@class=\'#{VIESHOW_BASE_XPATH}Table\']//td"
13
+ VIESHOW_DATA_XPATH = VIESHOW_CLASSES_XPATH.map do |scrape_class|
14
+ "@class=\'#{VIESHOW_BASE_XPATH}#{scrape_class}\'"
15
+ end.join(' or ')
16
+ VIESHOW_FULL_XPATH = VIESHOW_TABLE_XPATH + '[' + VIESHOW_DATA_XPATH + ']'
17
+ VIESHOW_CINEMA_CODES = ('1'..'14').to_a.map do |e|
18
+ e.length == 1 ? "0#{e}" : e
19
19
  end
20
+ VIESHOW_CINEMA_NAME_XPATH = "//*[contains(@class, 'PrintCinemaName')]"
20
21
 
21
- # make movie_table like the structure {"name"=>[[day,time],"name2".....}
22
- def make_movie_table
23
- current_movie = ''
24
- @table.each do |td|
25
- current_movie = movie_conditions(td, current_movie)
22
+ # Class for Vieshow films
23
+ class Vieshow
24
+ # initialize movie_table with ID
25
+ def initialize(vis_cinema_id)
26
+ vis_cinema_id = vis_cinema_id.to_s
27
+ vis_cinema_id = "0#{vis_cinema_id}" if vis_cinema_id.length == 1
28
+ fail unless VIESHOW_CINEMA_CODES.include? vis_cinema_id
29
+ doc = visit_vieshow(vis_cinema_id)
30
+ @table = doc.xpath(VIESHOW_FULL_XPATH)
31
+ @cinema_name = doc.xpath(VIESHOW_CINEMA_NAME_XPATH).text
32
+ @movie_table = Hash.new { |hash, key| hash[key] = [] }
33
+ make_movie_table
34
+ @movie_table = { @cinema_name => @movie_table }
26
35
  end
27
- @movie_table.each {|k,v| movie_table[k]= v.to_h}
28
- end
29
36
 
30
- # make make_movie_table simple
31
- def movie_conditions(td, current_movie)
32
- case td.first[1]
33
- when 'PrintShowTimesFilm'
34
- current_movie = td.text
35
- when 'PrintShowTimesDay'
36
- @movie_table[current_movie] << [td.text]
37
- when 'PrintShowTimesSession'
38
- @movie_table[current_movie][-1] << td.text
37
+ # fetch movie_table
38
+ attr_reader :movie_table, :cinema_name
39
+
40
+ def visit_vieshow(vis_cinema_id)
41
+ url = VIESHOW_URL + vis_cinema_id
42
+ open_doc = open(url, 'Cookie' => VIESHOW_COOKIE_SETTINGS)
43
+ Nokogiri::HTML(open_doc)
39
44
  end
40
- current_movie
41
- end
42
45
 
43
- # get all movies' names
44
- def movie_name
45
- @movie_table.keys
46
- end
46
+ # make movie_table like the structure {"name"=>[[day,time],"name2".....}
47
+ def make_movie_table
48
+ current_movie = ''
49
+ @table.each do |td|
50
+ current_movie = movie_conditions(td, current_movie)
51
+ end
52
+ @movie_table.each { |k, v| movie_table[k] = v.to_h }
53
+ end
47
54
 
48
- # fetch movie_table
49
- def movie_table
50
- @movie_table
51
- end
55
+ # make make_movie_table simple
56
+ def movie_conditions(td, current_movie)
57
+ case td.first[1]
58
+ when 'PrintShowTimesFilm'
59
+ current_movie = td.text
60
+ when 'PrintShowTimesDay'
61
+ @movie_table[current_movie] << [td.text]
62
+ when 'PrintShowTimesSession'
63
+ @movie_table[current_movie][-1] << td.text
64
+ end
65
+ current_movie
66
+ end
52
67
 
53
- # get json format from movie_table
54
- def to_json
55
- @movie_table.to_json
68
+ # get all movies' names
69
+ def movie_names
70
+ @movie_table.values[0].keys
71
+ end
72
+
73
+ # get json format from movie_table
74
+ def to_json
75
+ @movie_table.to_json
76
+ end
56
77
  end
57
78
  end
data/lib/kandianying.rb CHANGED
@@ -1,10 +1,8 @@
1
1
  require_relative './kandianying/vieshow'
2
+ require_relative './kandianying/ambassador'
2
3
 
3
4
  # class for crawling movie information
4
5
  class HsinChuMovie
5
6
  include VieShow
6
-
7
- def movie_table_output
8
- to_json
9
- end
7
+ include Ambassador
10
8
  end
@@ -0,0 +1,225 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://sales.vscinemas.com.tw/ticketing/visPrintShowTimes.aspx?visCinemaID=0005
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Cookie:
11
+ - AspxAutoDetectCookieSupport=1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - Ruby
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - private
25
+ Content-Type:
26
+ - text/html; charset=utf-8
27
+ Server:
28
+ - Microsoft-IIS/7.5
29
+ Set-Cookie:
30
+ - ASP.NET_SessionId=pughsh2sd2js0255s4yvxlik; path=/; HttpOnly
31
+ - visSessionID=db9d015bc079429f904574c90d80a496; expires=Sat, 28-Nov-2015 03:56:55
32
+ GMT; path=/
33
+ X-Aspnet-Version:
34
+ - 2.0.50727
35
+ X-Powered-By:
36
+ - ASP.NET
37
+ Date:
38
+ - Wed, 28 Oct 2015 03:56:54 GMT
39
+ Content-Length:
40
+ - '14023'
41
+ body:
42
+ encoding: UTF-8
43
+ string: "\r\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n<HTML>\r\n\t<HEAD>\r\n\t\t<title>\r\n\t\t\t***Vieshow
44
+ Cinemas***</title>\r\n\t\t<meta content=\"Microsoft Visual Studio .NET 7.1\"
45
+ name=\"GENERATOR\">\r\n\t\t<meta content=\"Visual Basic .NET 7.1\" name=\"CODE_LANGUAGE\">\r\n\t\t<meta
46
+ content=\"JavaScript\" name=\"vs_defaultClientScript\">\r\n\t\t<meta content=\"http://schemas.microsoft.com/intellisense/ie5\"
47
+ name=\"vs_targetSchema\">\r\n\t\t<script language=\"javascript\" src=\"visJavaCommon.js\"></script>\r\n\t\t<LINK
48
+ href=\"visStyles.css\" type=\"text/css\" rel=\"stylesheet\">\r\n\t\t<!-- visStylesUser.css
49
+ must proceed visStyles.css, so to override the default styles if requested
50
+ -->\r\n\t\t<LINK href=\"visStylesUser.css\" type=\"text/css\" rel=\"stylesheet\">\r\n\t</HEAD>\r\n\t<body
51
+ MS_POSITIONING=\"GridLayout\">\r\n\t\t<form name=\"Form1\" method=\"post\"
52
+ action=\"visPrintShowTimes.aspx?visCinemaID=0005\" id=\"Form1\">\r\n<input
53
+ type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\"/wEPDwULLTEwMzQ3Mjk5MzMPZBYEAgEPFgIeBFRleHQFFSoqKlZpZXNob3cgQ2luZW1hcyoqKmQCAw9kFgRmDxYEHgNzcmMFIkltYWdlcy9QcmludGFibGVMaXN0aW5nc0hlYWRlci5naWYeBUNsYXNzBRhJbWFnZVByaW50TGlzdGluZ3NIZWFkZXJkAgMPDxYEHgVXaWR0aBsAAAAAAACEQAEAAAAeBF8hU0ICgAJkZGT5mKGxhoS0nuX/bIKN/Ky7v46pnA==\"
54
+ />\r\n\r\n\t\t <table cellpadding=0 cellspacing=0 width=560 class=\"PrintShowTimesHeaderTable\">\r\n\t\t
55
+ \ <tr>\r\n\t\t <td valign=\"middle\"><img src=\"Images/PrintableListingsHeader.gif\"
56
+ id=\"imgHeader\" Class=\"ImagePrintListingsHeader\" /></td>\r\n\t\t <td><table
57
+ id=\"tblHeader\" class=\"PrintShowTimesHeaderTable\" border=\"0\">\r\n\t<tr>\r\n\t\t<td
58
+ colspan=\"2\"><a href=\"visHome.aspx\"><img src=\"images/back_print.gif\"
59
+ id=\"imgBack\" Class=\"ImageBack\" border=\"0\" /></a><a href=\"Javascript:
60
+ supportedPrint();\"><img src=\"images/PrintShowTimes.gif\" id=\"imgPrint\"
61
+ Class=\"ImagePrintShowTimes\" border=\"0\" /></a></td>\r\n\t</tr><tr>\r\n\t\t<td><span
62
+ class=\"PrintSelectionLabel\">Cinema:</span></td><td><span class=\"PrintCinemaName\">VS
63
+ Cinemas Hsinchu FE21</span></td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><span
64
+ class=\"PrintDateRange\">Showtimes for, Oct 28 Wed - Nov 12 Thu</span></td>\r\n\t</tr>\r\n</table></td>\r\n\t\t
65
+ \ </tr>\r\n\t\t <tr>\r\n\t\t <td colspan=2></td>\r\n\t\t
66
+ \ </tr>\r\n\t\t </table>\r\n\t\t\t\r\n\t\t\t<table id=\"tblShowTimes\"
67
+ class=\"PrintShowTimesTable\" border=\"0\" width=\"640\">\r\n\t<tr>\r\n\t\t<td
68
+ width=\"145\"></td><td width=\"495\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
69
+ colspan=\"2\">(4DX)THE LAST WITCH HUNTER (PG)</td>\r\n\t</tr><tr>\r\n\t\t<td
70
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
71
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">12:45, 14:50,
72
+ 16:55, 19:00, 21:10, 23:15</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
73
+ valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\"
74
+ valign=\"top\" colspan=\"1\">10:40, 12:45, 14:50, 16:55, 19:00, 21:10, 23:15</td>\r\n\t</tr><tr>\r\n\t\t<td
75
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
76
+ colspan=\"2\">(DIG C)THE LITTLE PRINCE (G)</td>\r\n\t</tr><tr>\r\n\t\t<td
77
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
78
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">15:00, 19:10</td>\r\n\t</tr><tr>\r\n\t\t<td
79
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td
80
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:50, 15:00,
81
+ 19:10</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
82
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(DIG E)THE LITTLE PRINCE (G)</td>\r\n\t</tr><tr>\r\n\t\t<td
83
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
84
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">12:55, 17:05,
85
+ 21:15, 23:20</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\" valign=\"top\"
86
+ colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\" valign=\"top\"
87
+ colspan=\"1\">12:55, 17:05, 21:15, 23:20</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
88
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(DIG)ANOTHER WOMAN (P)</td>\r\n\t</tr><tr>\r\n\t\t<td
89
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
90
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">15:40, 17:40,
91
+ 19:35, 00:10</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\" valign=\"top\"
92
+ colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\" valign=\"top\"
93
+ colspan=\"1\">11:00, 15:40, 17:40, 19:35, 00:10</td>\r\n\t</tr><tr>\r\n\t\t<td
94
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
95
+ colspan=\"2\">(DIG)BLACK MASS (R)</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
96
+ valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td class=\"PrintShowTimesSession\"
97
+ valign=\"top\" colspan=\"1\">13:30, 16:00, 18:20, 20:40, 23:00</td>\r\n\t</tr><tr>\r\n\t\t<td
98
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td
99
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">11:10, 13:30,
100
+ 16:00, 18:20, 20:40, 23:00</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
101
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(DIG)BRIDGE OF SPIES (P)</td>\r\n\t</tr><tr>\r\n\t\t<td
102
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
103
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">13:00, 17:30,
104
+ 21:30</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\" valign=\"top\"
105
+ colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\" valign=\"top\"
106
+ colspan=\"1\">13:00, 17:30, 21:30</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
107
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(DIG)CRIMSON PEAK (R)</td>\r\n\t</tr><tr>\r\n\t\t<td
108
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
109
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">12:50, 15:10,
110
+ 16:50, 21:35, 23:55</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
111
+ valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\"
112
+ valign=\"top\" colspan=\"1\">12:50, 15:10, 16:50, 21:35, 23:55</td>\r\n\t</tr><tr>\r\n\t\t<td
113
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
114
+ colspan=\"2\">(DIG)PAN (P)</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
115
+ valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td class=\"PrintShowTimesSession\"
116
+ valign=\"top\" colspan=\"1\">14:10</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
117
+ valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\"
118
+ valign=\"top\" colspan=\"1\">14:10</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
119
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(DIG)SPECTRE (PG)</td>\r\n\t</tr><tr>\r\n\t\t<td
120
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Nov 5 Thu</td><td
121
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:45, 13:30,
122
+ 16:15, 19:00, 21:45, 00:30</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
123
+ valign=\"top\" colspan=\"1\">Nov 6 Fri</td><td class=\"PrintShowTimesSession\"
124
+ valign=\"top\" colspan=\"1\">10:45, 13:30, 16:15, 19:00, 21:45, 00:30</td>\r\n\t</tr><tr>\r\n\t\t<td
125
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Nov 7 Sat</td><td
126
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:45, 13:30,
127
+ 16:15, 19:00, 21:45, 00:30</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
128
+ valign=\"top\" colspan=\"1\">Nov 8 Sun</td><td class=\"PrintShowTimesSession\"
129
+ valign=\"top\" colspan=\"1\">10:15, 13:00, 15:45, 18:30, 21:15, 00:00</td>\r\n\t</tr><tr>\r\n\t\t<td
130
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Nov 9 Mon</td><td
131
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:45, 13:30,
132
+ 16:15, 19:00, 21:45, 00:30</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
133
+ valign=\"top\" colspan=\"1\">Nov 10 Tue</td><td class=\"PrintShowTimesSession\"
134
+ valign=\"top\" colspan=\"1\">10:45, 13:30, 16:15, 19:00, 21:45, 00:30</td>\r\n\t</tr><tr>\r\n\t\t<td
135
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Nov 11 Wed</td><td
136
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:45, 13:30,
137
+ 16:15, 19:00, 21:45, 00:30</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
138
+ valign=\"top\" colspan=\"1\">Nov 12 Thu</td><td class=\"PrintShowTimesSession\"
139
+ valign=\"top\" colspan=\"1\">10:45, 13:30, 16:15, 19:00, 21:45, 00:30</td>\r\n\t</tr><tr>\r\n\t\t<td
140
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
141
+ colspan=\"2\">(DIG)THE GREEN INFERNO (R)</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
142
+ valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td class=\"PrintShowTimesSession\"
143
+ valign=\"top\" colspan=\"1\">12:40, 22:05, 00:05</td>\r\n\t</tr><tr>\r\n\t\t<td
144
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td
145
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:45, 12:40,
146
+ 22:05, 00:05</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
147
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(DIG)THE INTERN (P)</td>\r\n\t</tr><tr>\r\n\t\t<td
148
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
149
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">16:20, 18:40,
150
+ 21:00, 23:30</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\" valign=\"top\"
151
+ colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\" valign=\"top\"
152
+ colspan=\"1\">11:50, 16:20, 18:40, 21:00, 23:30</td>\r\n\t</tr><tr>\r\n\t\t<td
153
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
154
+ colspan=\"2\">(DIG)THE LAST WITCH HUNTER (PG)</td>\r\n\t</tr><tr>\r\n\t\t<td
155
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
156
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">13:45, 15:50,
157
+ 17:55, 20:00, 22:10, 00:15</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
158
+ valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\"
159
+ valign=\"top\" colspan=\"1\">11:40, 13:45, 15:50, 17:55, 20:00, 22:10, 00:15</td>\r\n\t</tr><tr>\r\n\t\t<td
160
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
161
+ colspan=\"2\">(DIG)THE MARTIAN (P)</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
162
+ valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td class=\"PrintShowTimesSession\"
163
+ valign=\"top\" colspan=\"1\">14:00, 16:40, 19:30, 22:20</td>\r\n\t</tr><tr>\r\n\t\t<td
164
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td
165
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">11:20, 14:00,
166
+ 16:40, 19:30, 22:20</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
167
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(DIG)WANSEI BACK HOME (G)</td>\r\n\t</tr><tr>\r\n\t\t<td
168
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
169
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">14:40</td>\r\n\t</tr><tr>\r\n\t\t<td
170
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td
171
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:30, 14:40,
172
+ 19:25</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
173
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(DIG)ZINNIA FLOWER (P)</td>\r\n\t</tr><tr>\r\n\t\t<td
174
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
175
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">20:10</td>\r\n\t</tr><tr>\r\n\t\t<td
176
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td
177
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">20:10</td>\r\n\t</tr><tr>\r\n\t\t<td
178
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
179
+ colspan=\"2\">(GC DIG)BRIDGE OF SPIES (P)</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
180
+ valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td class=\"PrintShowTimesSession\"
181
+ valign=\"top\" colspan=\"1\">14:55, 23:25</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
182
+ valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\"
183
+ valign=\"top\" colspan=\"1\">14:55, 23:25</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
184
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(GC DIG)CRIMSON PEAK (R)</td>\r\n\t</tr><tr>\r\n\t\t<td
185
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
186
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">12:20, 17:50</td>\r\n\t</tr><tr>\r\n\t\t<td
187
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td
188
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">12:20, 17:50</td>\r\n\t</tr><tr>\r\n\t\t<td
189
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
190
+ colspan=\"2\">(GC DIG)SPECTRE (PG)</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
191
+ valign=\"top\" colspan=\"1\">Nov 5 Thu</td><td class=\"PrintShowTimesSession\"
192
+ valign=\"top\" colspan=\"1\">10:50, 13:50, 16:50, 19:50, 22:50</td>\r\n\t</tr><tr>\r\n\t\t<td
193
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Nov 6 Fri</td><td
194
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:50, 13:50,
195
+ 16:50, 19:50, 22:50</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
196
+ valign=\"top\" colspan=\"1\">Nov 7 Sat</td><td class=\"PrintShowTimesSession\"
197
+ valign=\"top\" colspan=\"1\">10:50, 13:50, 16:50, 19:50, 22:50</td>\r\n\t</tr><tr>\r\n\t\t<td
198
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Nov 8 Sun</td><td
199
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:20, 13:20,
200
+ 16:20, 19:20, 22:20</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
201
+ valign=\"top\" colspan=\"1\">Nov 9 Mon</td><td class=\"PrintShowTimesSession\"
202
+ valign=\"top\" colspan=\"1\">10:50, 13:50, 16:50, 19:50, 22:50</td>\r\n\t</tr><tr>\r\n\t\t<td
203
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Nov 10 Tue</td><td
204
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:50, 13:50,
205
+ 16:50, 19:50, 22:50</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
206
+ valign=\"top\" colspan=\"1\">Nov 11 Wed</td><td class=\"PrintShowTimesSession\"
207
+ valign=\"top\" colspan=\"1\">10:50, 13:50, 16:50, 19:50, 22:50</td>\r\n\t</tr><tr>\r\n\t\t<td
208
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Nov 12 Thu</td><td
209
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">10:50, 13:50,
210
+ 16:50, 19:50, 22:50</td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td
211
+ class=\"PrintShowTimesFilm\" colspan=\"2\">(GC DIG)THE LAST WITCH HUNTER (PG)</td>\r\n\t</tr><tr>\r\n\t\t<td
212
+ class=\"PrintShowTimesDay\" valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td
213
+ class=\"PrintShowTimesSession\" valign=\"top\" colspan=\"1\">13:50, 19:20,
214
+ 21:40, 00:00</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\" valign=\"top\"
215
+ colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\" valign=\"top\"
216
+ colspan=\"1\">11:30, 13:50, 19:20, 21:40, 00:00</td>\r\n\t</tr><tr>\r\n\t\t<td
217
+ colspan=\"2\"></td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesFilm\"
218
+ colspan=\"2\">(GC DIG)THE MARTIAN (P)</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
219
+ valign=\"top\" colspan=\"1\">Oct 28 Wed</td><td class=\"PrintShowTimesSession\"
220
+ valign=\"top\" colspan=\"1\">16:15, 20:20</td>\r\n\t</tr><tr>\r\n\t\t<td class=\"PrintShowTimesDay\"
221
+ valign=\"top\" colspan=\"1\">Oct 29 Thu</td><td class=\"PrintShowTimesSession\"
222
+ valign=\"top\" colspan=\"1\">16:15, 20:20</td>\r\n\t</tr>\r\n</table>\r\n\t\t\t</form>\r\n\t</body>\r\n</HTML>\r\n"
223
+ http_version:
224
+ recorded_at: Wed, 28 Oct 2015 03:57:17 GMT
225
+ recorded_with: VCR 2.9.3