cineworld_uk 4.1.0-aarch64-linux-gnu → 4.2.0-aarch64-linux-gnu
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +23 -1
- data/Rakefile +3 -24
- data/cineworld_uk.gemspec +2 -2
- data/lib/cineworld_uk/internal/api_response.rb +7 -30
- data/lib/cineworld_uk/internal/guest_token.rb +9 -52
- data/lib/cineworld_uk/internal/parser/api/film.rb +6 -0
- data/lib/cineworld_uk/internal/parser/api/performance.rb +5 -0
- data/lib/cineworld_uk/internal/title_sanitizer.rb +2 -10
- data/lib/cineworld_uk/performance.rb +4 -1
- data/lib/cineworld_uk/version.rb +2 -2
- data/lib/cineworld_uk.rb +2 -1
- data/test/fixtures/api/showtimes-014.json +67 -0
- data/test/fixtures/api/sites.json +52 -0
- data/test/lib/cineworld_uk/cinema_test.rb +63 -223
- data/test/lib/cineworld_uk/internal/api_response_test.rb +27 -182
- data/test/lib/cineworld_uk/internal/fixture_shape_test.rb +14 -0
- data/test/lib/cineworld_uk/internal/guest_token_test.rb +87 -0
- data/test/lib/cineworld_uk/internal/parser/api/cinema_address_test.rb +44 -85
- data/test/lib/cineworld_uk/internal/parser/api/film_test.rb +53 -131
- data/test/lib/cineworld_uk/internal/parser/api/performance_test.rb +27 -45
- data/test/lib/cineworld_uk/internal/title_sanitizer_test.rb +75 -126
- data/test/lib/cineworld_uk/performance_test.rb +153 -180
- data/test/lib/cineworld_uk/version_test.rb +3 -3
- data/test/live/api_shape_test.rb +22 -0
- data/test/live/integration_test.rb +13 -43
- data/test/live/live_helper.rb +11 -0
- data/test/package_test.rb +14 -7
- data/test/support/api_shapes.rb +48 -0
- data/test/support/vista_fixtures.rb +58 -0
- data/test/test_helper.rb +3 -0
- metadata +33 -28
- data/tasks/package.rake +0 -84
- data/test/fixtures/api/cinema-list.json +0 -1
- data/test/fixtures/api/dates-14.json +0 -1
- data/test/fixtures/api/performances-tomorrow-14.json +0 -1
- data/test/fixtures/api/vista-showtimes-brighton.json +0 -1
- data/test/support/fixture_reader.rb +0 -32
|
@@ -1,51 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
require 'minitest/reporters'
|
|
1
|
+
require_relative 'live_helper'
|
|
3
2
|
|
|
4
|
-
Minitest::
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
class LiveCinemaTest < Minitest::Test
|
|
4
|
+
def test_all_returns_cinemas
|
|
5
|
+
cinemas = CineworldUk::Cinema.all
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
describe CineworldUk::Cinema do
|
|
12
|
-
let(:described_class) { CineworldUk::Cinema }
|
|
13
|
-
|
|
14
|
-
describe '.all' do
|
|
15
|
-
subject { described_class.all }
|
|
16
|
-
|
|
17
|
-
it 'returns an Array of CineworldUK::Cinemas' do
|
|
18
|
-
_(subject).must_be_instance_of(Array)
|
|
19
|
-
subject.each do |value|
|
|
20
|
-
_(value).must_be_instance_of(CineworldUk::Cinema)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
it 'returns the correctly sized array' do
|
|
25
|
-
_(subject.size).must_be :>, 18
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it 'returns the right cinemas' do
|
|
29
|
-
_(subject.detect { |cinema| cinema.id == 14 }.name).must_equal "Brighton"
|
|
30
|
-
end
|
|
7
|
+
assert(cinemas.all? { |cinema| cinema.instance_of?(CineworldUk::Cinema) })
|
|
8
|
+
assert_operator cinemas.size, :>, 18
|
|
9
|
+
assert_equal 'Brighton', cinemas.detect { |cinema| cinema.id == 14 }.name
|
|
31
10
|
end
|
|
32
11
|
end
|
|
33
12
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
subject { described_class.at(14, from: Date.today + 1, to: Date.today + 1) }
|
|
39
|
-
|
|
40
|
-
it 'returns an array of screenings' do
|
|
41
|
-
_(subject).must_be_instance_of(Array)
|
|
42
|
-
subject.each do |performance|
|
|
43
|
-
_(performance).must_be_instance_of(CineworldUk::Performance)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
13
|
+
class LivePerformanceTest < Minitest::Test
|
|
14
|
+
def test_at_returns_performances
|
|
15
|
+
tomorrow = Date.today + 1
|
|
16
|
+
performances = CineworldUk::Performance.at(14, from: tomorrow, to: tomorrow)
|
|
46
17
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
end
|
|
18
|
+
assert(performances.all? { |p| p.instance_of?(CineworldUk::Performance) })
|
|
19
|
+
assert_operator performances.count, :>, 10
|
|
50
20
|
end
|
|
51
21
|
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'minitest/autorun'
|
|
2
|
+
require 'minitest/reporters'
|
|
3
|
+
|
|
4
|
+
Minitest::Reporters.use! [
|
|
5
|
+
Minitest::Reporters::DefaultReporter.new(color: true)
|
|
6
|
+
]
|
|
7
|
+
|
|
8
|
+
require File.expand_path('../../../lib/cineworld_uk.rb', __FILE__)
|
|
9
|
+
require_relative '../support/api_shapes'
|
|
10
|
+
|
|
11
|
+
CineworldUk.token = ENV.fetch('CINEWORLD_TOKEN') { CineworldUk.acquire_token! }
|
data/test/package_test.rb
CHANGED
|
@@ -7,8 +7,8 @@ require "open3"
|
|
|
7
7
|
require "base64"
|
|
8
8
|
require "json"
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
class PlatformPackageTest < Minitest::Test
|
|
11
|
+
def setup
|
|
12
12
|
@directory = Dir.mktmpdir("cineworld-package-test")
|
|
13
13
|
@spec = Gem::Installer.at(
|
|
14
14
|
ENV.fetch("CINEWORLD_PACKAGE"), install_dir: @directory, ignore_dependencies: true
|
|
@@ -17,11 +17,11 @@ describe "Platform package" do
|
|
|
17
17
|
@binary = File.join(@vendor, "bin", "curl-impersonate")
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
def teardown
|
|
21
21
|
FileUtils.remove_entry(@directory)
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
def test_installs_runnable_executable_with_notices_and_provenance
|
|
25
25
|
assert File.executable?(@binary)
|
|
26
26
|
output, status = Open3.capture2(@binary, "--version")
|
|
27
27
|
assert status.success?
|
|
@@ -30,7 +30,7 @@ describe "Platform package" do
|
|
|
30
30
|
assert_includes File.read(File.join(@vendor, "SOURCE")), "2.2.3"
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
def test_acquires_token_with_gem_local_executable_and_no_curl_on_path
|
|
34
34
|
payload = Base64.urlsafe_encode64(JSON.generate("exp" => Time.now.to_i + 3600), padding: false)
|
|
35
35
|
token = "header.#{payload}.signature"
|
|
36
36
|
data = { "props" => { "pageProps" => { "environment" => { "gasToken" => token } } } }
|
|
@@ -40,10 +40,17 @@ describe "Platform package" do
|
|
|
40
40
|
output, error, status = Open3.capture3(
|
|
41
41
|
{ "PATH" => @directory, "RUBYOPT" => nil, "BUNDLER_SETUP" => nil,
|
|
42
42
|
"GEM_PATH" => Gem.path.join(File::PATH_SEPARATOR) }, RbConfig.ruby,
|
|
43
|
-
"-I#{File.join(@spec.full_gem_path, 'lib')}", "-rcineworld_uk",
|
|
43
|
+
"-I#{File.join(@spec.full_gem_path, 'lib')}", *cinebase_load_path, "-rcineworld_uk",
|
|
44
44
|
"-e", "print CineworldUk.acquire_token!"
|
|
45
45
|
)
|
|
46
46
|
assert status.success?, error
|
|
47
|
-
|
|
47
|
+
assert_equal token, output
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
# The package is installed without dependencies, so load the bundle's cinebase.
|
|
53
|
+
def cinebase_load_path
|
|
54
|
+
Gem.loaded_specs.fetch("cinebase").full_require_paths.map { |path| "-I#{path}" }
|
|
48
55
|
end
|
|
49
56
|
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require 'time'
|
|
2
|
+
|
|
3
|
+
# The parts of Vista responses the gem reads. Checked against the hand-written
|
|
4
|
+
# fixtures and, in the live suite, against real responses held only in memory.
|
|
5
|
+
module ApiShapes
|
|
6
|
+
private
|
|
7
|
+
|
|
8
|
+
def assert_sites_shape(data)
|
|
9
|
+
sites = data.fetch('sites')
|
|
10
|
+
refute_empty sites
|
|
11
|
+
sites.each do |site|
|
|
12
|
+
assert_match(/\A\d{3}\z/, site.fetch('id'))
|
|
13
|
+
assert_kind_of String, site.dig('name', 'text')
|
|
14
|
+
address = site.fetch('contactDetails').fetch('addressV2')
|
|
15
|
+
%w(line1 line2 line3 line4).each do |key|
|
|
16
|
+
line = address.fetch(key)
|
|
17
|
+
assert_kind_of String, line.fetch('text'), "site #{site['id']} #{key}" unless line.nil?
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def assert_showtimes_shape(data)
|
|
23
|
+
related = data.fetch('relatedData')
|
|
24
|
+
films = related.fetch('films').to_h { |film| [film.fetch('id'), film] }
|
|
25
|
+
attributes = related.fetch('attributes').to_h do |attribute|
|
|
26
|
+
[attribute.fetch('id'), attribute]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
films.each_value { |film| assert_kind_of String, film.dig('title', 'text') }
|
|
30
|
+
attributes.each_value do |attribute|
|
|
31
|
+
assert_kind_of String, attribute.dig('shortName', 'text')
|
|
32
|
+
assert_kind_of String, attribute.dig('name', 'text')
|
|
33
|
+
end
|
|
34
|
+
related.fetch('sites').each { |site| assert_kind_of String, site.dig('name', 'text') }
|
|
35
|
+
|
|
36
|
+
showtimes = data.fetch('showtimes')
|
|
37
|
+
refute_empty showtimes
|
|
38
|
+
showtimes.each do |showtime|
|
|
39
|
+
assert_kind_of String, showtime.fetch('id')
|
|
40
|
+
assert_includes films.keys, showtime.fetch('filmId')
|
|
41
|
+
assert_kind_of Time, Time.iso8601(showtime.fetch('schedule').fetch('startsAt'))
|
|
42
|
+
assert_includes [true, false], showtime.fetch('requires3dGlasses')
|
|
43
|
+
showtime.fetch('attributeIds').each do |id|
|
|
44
|
+
assert_includes attributes.keys, id
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
|
|
3
|
+
module Support
|
|
4
|
+
# Hand-written Vista responses served over WebMock. They follow the shape in
|
|
5
|
+
# api_shapes.rb; they are never recorded API output.
|
|
6
|
+
module VistaFixtures
|
|
7
|
+
BASE_URL = 'https://digital-api.cineworld.co.uk/ocapi/v1/'.freeze
|
|
8
|
+
HEADERS = {
|
|
9
|
+
'Authorization' => 'Bearer test-guest-token', 'Connect-Region-Code' => 'GB'
|
|
10
|
+
}.freeze
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def setup_vista
|
|
15
|
+
CineworldUk.token = 'test-guest-token'
|
|
16
|
+
reset_caches
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def teardown_vista
|
|
20
|
+
CineworldUk.token = nil
|
|
21
|
+
reset_caches
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def stub_sites
|
|
25
|
+
stub_request(:get, "#{BASE_URL}sites").with(headers: HEADERS)
|
|
26
|
+
.to_return(body: sites_json)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def stub_showtimes(date, body = showtimes_json)
|
|
30
|
+
stub_request(:get, "#{BASE_URL}showtimes/by-business-date/#{date.iso8601}")
|
|
31
|
+
.with(query: { 'siteIds' => '014' }, headers: HEADERS)
|
|
32
|
+
.to_return(body: body)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def sites_json
|
|
36
|
+
read_fixture('sites')
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def showtimes_json
|
|
40
|
+
read_fixture('showtimes-014')
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def empty_showtimes_json
|
|
44
|
+
JSON.generate('showtimes' => [],
|
|
45
|
+
'relatedData' => { 'films' => [], 'attributes' => [], 'sites' => [] })
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def read_fixture(name)
|
|
49
|
+
File.read(File.expand_path("../fixtures/api/#{name}.json", __dir__))
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def reset_caches
|
|
53
|
+
[CineworldUk::Cinema, CineworldUk::Performance].each do |klass|
|
|
54
|
+
klass.instance_variables.each { |name| klass.remove_instance_variable(name) }
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
data/test/test_helper.rb
CHANGED
|
@@ -10,3 +10,6 @@ Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(reporter_opti
|
|
|
10
10
|
require 'webmock/minitest'
|
|
11
11
|
|
|
12
12
|
require File.expand_path('../../lib/cineworld_uk.rb', __FILE__)
|
|
13
|
+
|
|
14
|
+
require_relative 'support/api_shapes'
|
|
15
|
+
require_relative 'support/vista_fixtures'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cineworld_uk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.2.0
|
|
5
5
|
platform: aarch64-linux-gnu
|
|
6
6
|
authors:
|
|
7
7
|
- Andy Croll
|
|
@@ -9,6 +9,20 @@ bindir: bin
|
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: base64
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0'
|
|
19
|
+
type: :development
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0'
|
|
12
26
|
- !ruby/object:Gem::Dependency
|
|
13
27
|
name: bundler
|
|
14
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -93,34 +107,20 @@ dependencies:
|
|
|
93
107
|
- - ">="
|
|
94
108
|
- !ruby/object:Gem::Version
|
|
95
109
|
version: '0'
|
|
96
|
-
- !ruby/object:Gem::Dependency
|
|
97
|
-
name: base64
|
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
|
99
|
-
requirements:
|
|
100
|
-
- - "~>"
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: '0.3'
|
|
103
|
-
type: :runtime
|
|
104
|
-
prerelease: false
|
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
-
requirements:
|
|
107
|
-
- - "~>"
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0.3'
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
name: cinebase
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
|
114
114
|
- - "~>"
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '5.
|
|
116
|
+
version: '5.2'
|
|
117
117
|
type: :runtime
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
121
|
- - "~>"
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '5.
|
|
123
|
+
version: '5.2'
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: nokogiri
|
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -163,22 +163,24 @@ files:
|
|
|
163
163
|
- lib/cineworld_uk/internal/title_sanitizer.rb
|
|
164
164
|
- lib/cineworld_uk/performance.rb
|
|
165
165
|
- lib/cineworld_uk/version.rb
|
|
166
|
-
-
|
|
167
|
-
- test/fixtures/api/
|
|
168
|
-
- test/fixtures/api/dates-14.json
|
|
169
|
-
- test/fixtures/api/performances-tomorrow-14.json
|
|
170
|
-
- test/fixtures/api/vista-showtimes-brighton.json
|
|
166
|
+
- test/fixtures/api/showtimes-014.json
|
|
167
|
+
- test/fixtures/api/sites.json
|
|
171
168
|
- test/lib/cineworld_uk/cinema_test.rb
|
|
172
169
|
- test/lib/cineworld_uk/internal/api_response_test.rb
|
|
170
|
+
- test/lib/cineworld_uk/internal/fixture_shape_test.rb
|
|
171
|
+
- test/lib/cineworld_uk/internal/guest_token_test.rb
|
|
173
172
|
- test/lib/cineworld_uk/internal/parser/api/cinema_address_test.rb
|
|
174
173
|
- test/lib/cineworld_uk/internal/parser/api/film_test.rb
|
|
175
174
|
- test/lib/cineworld_uk/internal/parser/api/performance_test.rb
|
|
176
175
|
- test/lib/cineworld_uk/internal/title_sanitizer_test.rb
|
|
177
176
|
- test/lib/cineworld_uk/performance_test.rb
|
|
178
177
|
- test/lib/cineworld_uk/version_test.rb
|
|
178
|
+
- test/live/api_shape_test.rb
|
|
179
179
|
- test/live/integration_test.rb
|
|
180
|
+
- test/live/live_helper.rb
|
|
180
181
|
- test/package_test.rb
|
|
181
|
-
- test/support/
|
|
182
|
+
- test/support/api_shapes.rb
|
|
183
|
+
- test/support/vista_fixtures.rb
|
|
182
184
|
- test/test_helper.rb
|
|
183
185
|
- vendor/curl-impersonate/SOURCE
|
|
184
186
|
- vendor/curl-impersonate/bin/curl-impersonate
|
|
@@ -219,19 +221,22 @@ rubygems_version: 3.6.9
|
|
|
219
221
|
specification_version: 4
|
|
220
222
|
summary: It's a scraper, but a nice one
|
|
221
223
|
test_files:
|
|
222
|
-
- test/fixtures/api/
|
|
223
|
-
- test/fixtures/api/
|
|
224
|
-
- test/fixtures/api/performances-tomorrow-14.json
|
|
225
|
-
- test/fixtures/api/vista-showtimes-brighton.json
|
|
224
|
+
- test/fixtures/api/showtimes-014.json
|
|
225
|
+
- test/fixtures/api/sites.json
|
|
226
226
|
- test/lib/cineworld_uk/cinema_test.rb
|
|
227
227
|
- test/lib/cineworld_uk/internal/api_response_test.rb
|
|
228
|
+
- test/lib/cineworld_uk/internal/fixture_shape_test.rb
|
|
229
|
+
- test/lib/cineworld_uk/internal/guest_token_test.rb
|
|
228
230
|
- test/lib/cineworld_uk/internal/parser/api/cinema_address_test.rb
|
|
229
231
|
- test/lib/cineworld_uk/internal/parser/api/film_test.rb
|
|
230
232
|
- test/lib/cineworld_uk/internal/parser/api/performance_test.rb
|
|
231
233
|
- test/lib/cineworld_uk/internal/title_sanitizer_test.rb
|
|
232
234
|
- test/lib/cineworld_uk/performance_test.rb
|
|
233
235
|
- test/lib/cineworld_uk/version_test.rb
|
|
236
|
+
- test/live/api_shape_test.rb
|
|
234
237
|
- test/live/integration_test.rb
|
|
238
|
+
- test/live/live_helper.rb
|
|
235
239
|
- test/package_test.rb
|
|
236
|
-
- test/support/
|
|
240
|
+
- test/support/api_shapes.rb
|
|
241
|
+
- test/support/vista_fixtures.rb
|
|
237
242
|
- test/test_helper.rb
|
data/tasks/package.rake
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "digest"
|
|
4
|
-
require "fileutils"
|
|
5
|
-
require "rubygems/package"
|
|
6
|
-
require "tmpdir"
|
|
7
|
-
require "zlib"
|
|
8
|
-
|
|
9
|
-
namespace :package do
|
|
10
|
-
# SHA-256 digests from the upstream v2.2.3 release assets.
|
|
11
|
-
releases = {
|
|
12
|
-
"x86_64-linux-gnu" => ["x86_64-linux-gnu", "ca7c8aae49e33260d3a2400db16c7737aaf04692d606a843502056b42990f989"],
|
|
13
|
-
"aarch64-linux-gnu" => ["aarch64-linux-gnu", "5e71795b971f32be8f3d7785895f4dceb232f04414f5a067db266432a5b08657"],
|
|
14
|
-
"arm64-darwin" => ["arm64-macos", "2569f4139460fcb301484d37938de91b1c220efd15487ee22a9db554262062fe"],
|
|
15
|
-
"x86_64-darwin" => ["x86_64-macos", "4686806d59abea93866a917c3025a049ef3d7a3240de742ad66bd1a4d9890dc7"]
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
desc "Build a gem with bundled curl-impersonate 2.2.3 for the given platform"
|
|
19
|
-
task :native, [:platform] do |_task, args|
|
|
20
|
-
platform = args.fetch(:platform)
|
|
21
|
-
target, digest = releases.fetch(platform)
|
|
22
|
-
root = File.expand_path("..", __dir__)
|
|
23
|
-
asset = "curl-impersonate-v2.2.3.#{target}.tar.gz"
|
|
24
|
-
url = "https://github.com/lexiforest/curl-impersonate/releases/download/v2.2.3/#{asset}"
|
|
25
|
-
archive = File.join(root, "pkg", "downloads", asset)
|
|
26
|
-
FileUtils.mkdir_p(File.dirname(archive))
|
|
27
|
-
unless File.exist?(archive)
|
|
28
|
-
sh "curl", "--fail", "--location", "--retry", "3", "--output", archive, url
|
|
29
|
-
end
|
|
30
|
-
abort "SHA-256 mismatch for #{archive}; delete it and retry" unless Digest::SHA256.file(archive).hexdigest == digest
|
|
31
|
-
|
|
32
|
-
spec = Gem::Specification.load(File.join(root, "cineworld_uk.gemspec")).dup
|
|
33
|
-
Dir.mktmpdir("cineworld-package") do |stage|
|
|
34
|
-
spec.files.each do |file|
|
|
35
|
-
destination = File.join(stage, file)
|
|
36
|
-
FileUtils.mkdir_p(File.dirname(destination))
|
|
37
|
-
FileUtils.cp(File.join(root, file), destination)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
vendor = File.join(stage, "vendor", "curl-impersonate")
|
|
41
|
-
Zlib::GzipReader.open(archive) do |gzip|
|
|
42
|
-
Gem::Package::TarReader.new(gzip) do |tar|
|
|
43
|
-
tar.each do |entry|
|
|
44
|
-
next unless entry.file?
|
|
45
|
-
|
|
46
|
-
name = entry.full_name
|
|
47
|
-
relative = if name == "curl-impersonate"
|
|
48
|
-
"bin/curl-impersonate"
|
|
49
|
-
elsif name.start_with?("LICENSE") && File.basename(name) == name
|
|
50
|
-
"licenses/#{name}"
|
|
51
|
-
end
|
|
52
|
-
next unless relative
|
|
53
|
-
|
|
54
|
-
destination = File.join(vendor, relative)
|
|
55
|
-
FileUtils.mkdir_p(File.dirname(destination))
|
|
56
|
-
File.binwrite(destination, entry.read)
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
File.chmod(0o755, File.join(vendor, "bin", "curl-impersonate"))
|
|
61
|
-
File.write(File.join(vendor, "SOURCE"), <<~SOURCE)
|
|
62
|
-
curl-impersonate 2.2.3
|
|
63
|
-
Binary: #{url}
|
|
64
|
-
SHA-256: #{digest}
|
|
65
|
-
Source and build instructions: https://github.com/lexiforest/curl-impersonate/tree/v2.2.3
|
|
66
|
-
Redistribution notices: licenses/
|
|
67
|
-
SOURCE
|
|
68
|
-
|
|
69
|
-
Dir.chdir(stage) do
|
|
70
|
-
spec.platform = Gem::Platform.new(platform)
|
|
71
|
-
spec.files += Dir.glob("vendor/**/*").select { |file| File.file?(file) }
|
|
72
|
-
Gem::Package.build(spec, false, false, File.join(root, "pkg", spec.file_name))
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
desc "Build all supported platform gems with bundled curl-impersonate"
|
|
78
|
-
task :all do
|
|
79
|
-
releases.each_key do |platform|
|
|
80
|
-
Rake::Task["package:native"].reenable
|
|
81
|
-
Rake::Task["package:native"].invoke(platform)
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"body":{"cinemas":[{"id":"022","groupId":"aberdeen","displayName":"Aberdeen - Queens Links","link":"https://www.cineworld.co.uk/cinemas/aberdeen-queens-links","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"Queens Links Leisure Park, Links Road, AB24 5EN, Aberdeen","addressInfo":{"address1":"Queens Links Leisure Park","address2":"Links Road","address3":null,"address4":null,"city":"Aberdeen","state":null,"postalCode":"AB24 5EN"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":57.15026,"longitude":-2.077969},{"id":"074","groupId":"aberdeen","displayName":"Aberdeen - Union Square","link":"https://www.cineworld.co.uk/cinemas/aberdeen-union-square","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:f0b21728-9c11-4b93-b8cd-5e53b7a60585","address":"Union Square, Guild Square, AB11 5RG, Aberdeen","addressInfo":{"address1":"Union Square","address2":"Guild Square","address3":null,"address4":null,"city":"Aberdeen","state":null,"postalCode":"AB11 5RG"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":57.14292,"longitude":-2.09637},{"id":"080","groupId":"aldershot","displayName":"Aldershot","link":"https://www.cineworld.co.uk/cinemas/aldershot","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"Westgate, GU11 1WG, Aldershot","addressInfo":{"address1":"Westgate","address2":null,"address3":null,"address4":null,"city":"Aldershot","state":null,"postalCode":"GU11 1WG"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.25068,"longitude":-0.768437},{"id":"035","groupId":"ashford","displayName":"Ashford","link":"https://www.cineworld.co.uk/cinemas/ashford","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Eureka Entertainment Centre , Rutherford Road, TN25 4BN, Ashford","addressInfo":{"address1":"Eureka Entertainment Centre ","address2":"Rutherford Road","address3":null,"address4":null,"city":"Ashford","state":null,"postalCode":"TN25 4BN"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.160915,"longitude":0.872751},{"id":"068","groupId":"ashton-under-lyne","displayName":"Ashton-under-Lyne","link":"https://www.cineworld.co.uk/cinemas/ashton-under-lyne","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Ashton Leisure Park , Fold Way, OL7 0PG, Ashton-under-Lyne","addressInfo":{"address1":"Ashton Leisure Park ","address2":"Fold Way","address3":null,"address4":null,"city":"Ashton-under-Lyne","state":null,"postalCode":"OL7 0PG"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.48905,"longitude":-2.111577},{"id":"119","groupId":"barnsley","displayName":"Barnsley","link":"https://www.cineworld.co.uk/cinemas/barnsley","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The Glass Works, S70 1GW, Barnsley","addressInfo":{"address1":"The Glass Works","address2":null,"address3":null,"address4":null,"city":"Barnsley","state":null,"postalCode":"S70 1GW"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.55216,"longitude":-1.478596},{"id":"100","groupId":"basildon","displayName":"Basildon","link":"https://www.cineworld.co.uk/cinemas/basildon","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:02def312-01ab-4948-b2c8-d10d64f16f07","address":"Festival Leisure Park, SS14 3WB, Basildon","addressInfo":{"address1":"Festival Leisure Park","address2":null,"address3":null,"address4":null,"city":"Basildon","state":null,"postalCode":"SS14 3WB"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.585,"longitude":0.462503},{"id":"117","groupId":"belfast","displayName":"Belfast","link":"https://www.cineworld.co.uk/cinemas/belfast","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"2 Queens Quay, Odyssey Pavilion, BT3 9QQ, Belfast","addressInfo":{"address1":"2 Queens Quay","address2":"Odyssey Pavilion","address3":null,"address4":null,"city":"Belfast","state":null,"postalCode":"BT3 9QQ"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":54.60339,"longitude":-5.91655},{"id":"044","groupId":"birmingham","displayName":"Birmingham - Broad Street","link":"https://www.cineworld.co.uk/cinemas/birmingham-broad-street","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"181 Broad Street, B15 1DA, Birmingham","addressInfo":{"address1":"181 Broad Street","address2":null,"address3":null,"address4":null,"city":"Birmingham","state":null,"postalCode":"B15 1DA"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.473816,"longitude":-1.915563},{"id":"090","groupId":"birmingham","displayName":"Birmingham - NEC","link":"https://www.cineworld.co.uk/cinemas/birmingham-nec","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Resorts World, Pendigo Way, B40 1PU, Birmingham","addressInfo":{"address1":"Resorts World","address2":"Pendigo Way","address3":null,"address4":null,"city":"Birmingham","state":null,"postalCode":"B40 1PU"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.4481,"longitude":-1.71768},{"id":"024","groupId":"boldon","displayName":"Boldon Tyne and Wear","link":"https://www.cineworld.co.uk/cinemas/boldon-tyne-and-wear","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Boldon Leisure Park, Bolden Colliery, NE35 9PB, Tyne and Wear","addressInfo":{"address1":"Boldon Leisure Park","address2":"Bolden Colliery","address3":null,"address4":null,"city":"Tyne and Wear","state":null,"postalCode":"NE35 9PB"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":54.946793,"longitude":-1.46633},{"id":"032","groupId":"bolton","displayName":"Bolton","link":"https://www.cineworld.co.uk/cinemas/bolton","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"The Valley, 15 Eagley Brook Way, BL1 8TS, Bolton","addressInfo":{"address1":"The Valley","address2":"15 Eagley Brook Way","address3":null,"address4":null,"city":"Bolton","state":null,"postalCode":"BL1 8TS"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.5972,"longitude":-2.423955},{"id":"107","groupId":"bracknell","displayName":"Bracknell","link":"https://www.cineworld.co.uk/cinemas/bracknell","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Eagle Lane, RG12 1BG, Bracknell","addressInfo":{"address1":"Eagle Lane","address2":null,"address3":null,"address4":null,"city":"Bracknell","state":null,"postalCode":"RG12 1BG"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.41745,"longitude":-0.750222},{"id":"058","groupId":"bradford","displayName":"Bradford","link":"https://www.cineworld.co.uk/cinemas/bradford","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"Bradford Leisure Exchange, Vicar Lane, BD1 5LD, Bradford","addressInfo":{"address1":"Bradford Leisure Exchange","address2":"Vicar Lane","address3":null,"address4":null,"city":"Bradford","state":null,"postalCode":"BD1 5LD"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.791622,"longitude":-1.747758},{"id":"061","groupId":"braintree","displayName":"Braintree","link":"https://www.cineworld.co.uk/cinemas/braintree","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Freeport Leisure, Charter Way, CM77 8YH, Braintree","addressInfo":{"address1":"Freeport Leisure","address2":"Charter Way","address3":null,"address4":null,"city":"Braintree","state":null,"postalCode":"CM77 8YH"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.869987,"longitude":0.570995},{"id":"014","groupId":"brighton","displayName":"Brighton","link":"https://www.cineworld.co.uk/cinemas/brighton","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Brighton Marina Village, BN2 5UF, Brighton","addressInfo":{"address1":"Brighton Marina Village","address2":null,"address3":null,"address4":null,"city":"Brighton","state":null,"postalCode":"BN2 5UF"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":50.81263,"longitude":-0.100665},{"id":"089","groupId":"broughton","displayName":"Broughton","link":"https://www.cineworld.co.uk/cinemas/broughton","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Broughton Shopping Park, Chester Road, Flintshire, CH4 0DE, Broughton","addressInfo":{"address1":"Broughton Shopping Park","address2":"Chester Road","address3":"Flintshire","address4":null,"city":"Broughton","state":null,"postalCode":"CH4 0DE"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.16858,"longitude":-2.9736962},{"id":"047","groupId":"burton-upon-trent","displayName":"Burton upon Trent","link":"https://www.cineworld.co.uk/cinemas/burton-upon-trent","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"Middle Way Park, Guild Street, DE14 1NQ, Burton upon Trent","addressInfo":{"address1":"Middle Way Park","address2":"Guild Street","address3":null,"address4":null,"city":"Burton upon Trent","state":null,"postalCode":"DE14 1NQ"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.80561,"longitude":-1.632458},{"id":"070","groupId":"bury-st-edmunds","displayName":"Bury St Edmunds","link":"https://www.cineworld.co.uk/cinemas/bury-st-edmunds","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Park Way, IP33 3BA, Bury St Edmunds","addressInfo":{"address1":"Park Way","address2":null,"address3":null,"address4":null,"city":"Bury St Edmunds","state":null,"postalCode":"IP33 3BA"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.246216,"longitude":0.706635},{"id":"055","groupId":"cardiff","displayName":"Cardiff","link":"https://www.cineworld.co.uk/cinemas/cardiff","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:63902153-7828-4e71-a9fc-21ad2efc479e","address":"Mary Ann Street, CF10 2EN, Cardiff","addressInfo":{"address1":"Mary Ann Street","address2":null,"address3":null,"address4":null,"city":"Cardiff","state":null,"postalCode":"CF10 2EN"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.478737,"longitude":-3.173405},{"id":"069","groupId":"cheltenham","displayName":"Cheltenham","link":"https://www.cineworld.co.uk/cinemas/cheltenham","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The Brewery Quarter, Henrietta Street, GL50 4FA, Cheltenham","addressInfo":{"address1":"The Brewery Quarter","address2":"Henrietta Street","address3":null,"address4":null,"city":"Cheltenham","state":null,"postalCode":"GL50 4FA"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.90293,"longitude":-2.075018},{"id":"029","groupId":"chesterfield","displayName":"Chesterfield","link":"https://www.cineworld.co.uk/cinemas/chesterfield","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Alma Leisure Park, Derby Road, S40 2ED, Chesterfield","addressInfo":{"address1":"Alma Leisure Park","address2":"Derby Road","address3":null,"address4":null,"city":"Chesterfield","state":null,"postalCode":"S40 2ED"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.22716,"longitude":-1.424189},{"id":"063","groupId":"chichester","displayName":"Chichester","link":"https://www.cineworld.co.uk/cinemas/chichester","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Chichester Gate, PO19 8EL, Chichester","addressInfo":{"address1":"Chichester Gate","address2":null,"address3":null,"address4":null,"city":"Chichester","state":null,"postalCode":"PO19 8EL"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":50.830006,"longitude":-0.785063},{"id":"034","groupId":"crawley","displayName":"Crawley","link":"https://www.cineworld.co.uk/cinemas/crawley","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Crawley Leisure Park, London Road, RH10 8LR, Crawley","addressInfo":{"address1":"Crawley Leisure Park","address2":"London Road","address3":null,"address4":null,"city":"Crawley","state":null,"postalCode":"RH10 8LR"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.120823,"longitude":-0.189681},{"id":"096","groupId":"dalton-park","displayName":"Dalton Park","link":"https://www.cineworld.co.uk/cinemas/dalton-park","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"Dalton Park, County Durham, SR7 9HU, Murton","addressInfo":{"address1":"Dalton Park","address2":"County Durham","address3":null,"address4":null,"city":"Murton","state":null,"postalCode":"SR7 9HU"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":54.815483,"longitude":-1.376749},{"id":"071","groupId":"didcot","displayName":"Didcot","link":"https://www.cineworld.co.uk/cinemas/didcot","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"27 Station Road, OX11 7NE, Didcot","addressInfo":{"address1":"27 Station Road","address2":null,"address3":null,"address4":null,"city":"Didcot","state":null,"postalCode":"OX11 7NE"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.608234,"longitude":-1.239831},{"id":"051","groupId":"didsbury","displayName":"Didsbury","link":"https://www.cineworld.co.uk/cinemas/didsbury","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Parrs Wood Entertainment Centre, Wilmslow Road, M20 5PG, Manchester","addressInfo":{"address1":"Parrs Wood Entertainment Centre","address2":"Wilmslow Road","address3":null,"address4":null,"city":"Manchester","state":null,"postalCode":"M20 5PG"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.407806,"longitude":-2.220271},{"id":"099","groupId":"dover","displayName":"Dover","link":"https://www.cineworld.co.uk/cinemas/dover","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"Unit 1, Dover St James, St James Street, CT16 1QD, Dover","addressInfo":{"address1":"Unit 1, Dover St James","address2":"St James Street","address3":null,"address4":null,"city":"Dover","state":null,"postalCode":"CT16 1QD"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.12565,"longitude":1.317104},{"id":"036","groupId":"dundee","displayName":"Dundee","link":"https://www.cineworld.co.uk/cinemas/dundee","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:63902153-7828-4e71-a9fc-21ad2efc479e","address":"Camperdown Leisure Park, Kingsway West, DD2 4TF, Dundee","addressInfo":{"address1":"Camperdown Leisure Park","address2":"Kingsway West","address3":null,"address4":null,"city":"Dundee","state":null,"postalCode":"DD2 4TF"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":56.484383,"longitude":-3.046191},{"id":"113","groupId":"eastbourne","displayName":"Eastbourne at The Beacon","link":"https://www.cineworld.co.uk/cinemas/eastbourne-at-the-beacon","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The Beacon, Terminus Road, BN21 3NW, Eastbourne","addressInfo":{"address1":"The Beacon","address2":"Terminus Road","address3":null,"address4":null,"city":"Eastbourne","state":null,"postalCode":"BN21 3NW"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":50.769264,"longitude":0.282836},{"id":"037","groupId":"edinburgh","displayName":"Edinburgh","link":"https://www.cineworld.co.uk/cinemas/edinburgh","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Fountain Park, 130/3 Dundee Street, EH11 1AF, Edinburgh","addressInfo":{"address1":"Fountain Park","address2":"130/3 Dundee Street","address3":null,"address4":null,"city":"Edinburgh","state":null,"postalCode":"EH11 1AF"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":55.941936,"longitude":-3.216934},{"id":"097","groupId":"ely","displayName":"Ely","link":"https://www.cineworld.co.uk/cinemas/ely","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Ely Leisure Village, Downham Road, CB6 2WH, Ely","addressInfo":{"address1":"Ely Leisure Village","address2":"Downham Road","address3":null,"address4":null,"city":"Ely","state":null,"postalCode":"CB6 2WH"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.40956,"longitude":0.250741},{"id":"052","groupId":"falkirk","displayName":"Falkirk","link":"https://www.cineworld.co.uk/cinemas/falkirk","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Central Retail Park, Old Bison Works, FK1 1LW, Falkirk","addressInfo":{"address1":"Central Retail Park","address2":"Old Bison Works","address3":null,"address4":null,"city":"Falkirk","state":null,"postalCode":"FK1 1LW"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":56.00377,"longitude":-3.779896},{"id":"088","groupId":"glasgow","displayName":"Glasgow - Silverburn","link":"https://www.cineworld.co.uk/cinemas/glasgow-silverburn","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Silverburn Shopping Centre, 763 Barrhead Road, G53 6AG, Glasgow","addressInfo":{"address1":"Silverburn Shopping Centre","address2":"763 Barrhead Road","address3":null,"address4":null,"city":"Glasgow","state":null,"postalCode":"G53 6AG"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":55.821617,"longitude":-4.34184},{"id":"083","groupId":"gloucester-quays","displayName":"Gloucester Quays","link":"https://www.cineworld.co.uk/cinemas/gloucester-quays","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Gloucester Quays Outlet Centre, Merchants Road, GL1 5SH, Gloucester","addressInfo":{"address1":"Gloucester Quays Outlet Centre","address2":"Merchants Road","address3":null,"address4":null,"city":"Gloucester","state":null,"postalCode":"GL1 5SH"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.86083,"longitude":-2.25256},{"id":"098","groupId":"harlow","displayName":"Harlow - Harvey Centre","link":"https://www.cineworld.co.uk/cinemas/harlow-harvey-centre","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Harvey Shopping Centre, CM20 1XR, Harlow","addressInfo":{"address1":"Harvey Shopping Centre","address2":null,"address3":null,"address4":null,"city":"Harlow","state":null,"postalCode":"CM20 1XR"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.76909,"longitude":0.0899925},{"id":"013","groupId":"harlow","displayName":"Harlow - Queensgate","link":"https://www.cineworld.co.uk/cinemas/harlow-queensgate","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Edinburgh Way, CM20 2DA, Harlow","addressInfo":{"address1":"Edinburgh Way","address2":null,"address3":null,"address4":null,"city":"Harlow","state":null,"postalCode":"CM20 2DA"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.783882,"longitude":0.108092},{"id":"076","groupId":"haverhill","displayName":"Haverhill","link":"https://www.cineworld.co.uk/cinemas/haverhill","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"Ehringshausen Way, CB9 0ER, Haverhill","addressInfo":{"address1":"Ehringshausen Way","address2":null,"address3":null,"address4":null,"city":"Haverhill","state":null,"postalCode":"CB9 0ER"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.08379,"longitude":0.43978},{"id":"102","groupId":"hemel-hempstead","displayName":"Hemel Hempstead","link":"https://www.cineworld.co.uk/cinemas/hemel-hempstead","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Jarman Square, Formerly Leisure World, Jarman Park, HP2 4JW, Hemel Hempstead","addressInfo":{"address1":"Jarman Square","address2":"Formerly Leisure World, Jarman Park","address3":null,"address4":null,"city":"Hemel Hempstead","state":null,"postalCode":"HP2 4JW"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.7481,"longitude":-0.454941},{"id":"073","groupId":"high-wycombe","displayName":"High Wycombe","link":"https://www.cineworld.co.uk/cinemas/high-wycombe","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Denmark Street, Eden, HP11 2DB, High Wycombe","addressInfo":{"address1":"Denmark Street","address2":"Eden","address3":null,"address4":null,"city":"High Wycombe","state":null,"postalCode":"HP11 2DB"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.629055,"longitude":-0.753768},{"id":"092","groupId":"hinckley","displayName":"Hinckley","link":"https://www.cineworld.co.uk/cinemas/hinckley","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"The Crescent, Station Road, LE10 1AW, Hinckley","addressInfo":{"address1":"The Crescent","address2":"Station Road","address3":null,"address4":null,"city":"Hinckley","state":null,"postalCode":"LE10 1AW"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.539345,"longitude":-1.372837},{"id":"040","groupId":"hull","displayName":"Hull","link":"https://www.cineworld.co.uk/cinemas/hull","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"Kingswood Retail Park, Gibraltar Road, HU7 3DB, Hull","addressInfo":{"address1":"Kingswood Retail Park","address2":"Gibraltar Road","address3":null,"address4":null,"city":"Hull","state":null,"postalCode":"HU7 3DB"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.79138,"longitude":-0.353455},{"id":"043","groupId":"huntingdon","displayName":"Huntingdon","link":"https://www.cineworld.co.uk/cinemas/huntingdon","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Tower Field Park, Abbots Ripton Road, PE29 7EG, Huntingdon","addressInfo":{"address1":"Tower Field Park","address2":"Abbots Ripton Road","address3":null,"address4":null,"city":"Huntingdon","state":null,"postalCode":"PE29 7EG"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.351425,"longitude":-0.18068},{"id":"028","groupId":"ipswich","displayName":"Ipswich","link":"https://www.cineworld.co.uk/cinemas/ipswich","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Cardinal Park, 11 Grafton Way, IP1 1AX, Ipswich","addressInfo":{"address1":"Cardinal Park","address2":"11 Grafton Way","address3":null,"address4":null,"city":"Ipswich","state":null,"postalCode":"IP1 1AX"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.053234,"longitude":1.151031},{"id":"045","groupId":"newport-isle-of-wight","displayName":"Isle of Wight","link":"https://www.cineworld.co.uk/cinemas/isle-of-wight","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"Coppins Bridge, PO30 2TA, Newport","addressInfo":{"address1":"Coppins Bridge","address2":null,"address3":null,"address4":null,"city":"Newport","state":"Isle of Wight","postalCode":"PO30 2TA"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":50.69895,"longitude":-1.289221},{"id":"062","groupId":"jersey","displayName":"Jersey","link":"https://www.cineworld.co.uk/cinemas/jersey","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Waterfront Centre, La Rue de L'Etau , JE2 4HE, St Helier","addressInfo":{"address1":"Waterfront Centre","address2":"La Rue de L'Etau ","address3":null,"address4":null,"city":"St Helier","state":null,"postalCode":"JE2 4HE"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":49.18315,"longitude":-2.11444},{"id":"108","groupId":"leeds","displayName":"Leeds - White Rose","link":"https://www.cineworld.co.uk/cinemas/leeds-white-rose","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"White Rose Shopping Centre, Dewsbury Road, LS11 8LU, Leeds","addressInfo":{"address1":"White Rose Shopping Centre","address2":"Dewsbury Road","address3":null,"address4":null,"city":"Leeds","state":null,"postalCode":"LS11 8LU"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.758377,"longitude":-1.5777655},{"id":"053","groupId":"llandudno","displayName":"Llandudno","link":"https://www.cineworld.co.uk/cinemas/llandudno","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Junction Way Leisure Park, LL31 9XX, Llandudno Junction","addressInfo":{"address1":"Junction Way Leisure Park","address2":null,"address3":null,"address4":null,"city":"Llandudno Junction","state":null,"postalCode":"LL31 9XX"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.282288,"longitude":-3.80842},{"id":"027","groupId":"london","displayName":"London - Bexleyheath","link":"https://www.cineworld.co.uk/cinemas/london-bexleyheath","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:63902153-7828-4e71-a9fc-21ad2efc479e","address":"28-70 Broadway, Bexleyheath, DA6 7LL, London","addressInfo":{"address1":"28-70 Broadway","address2":"Bexleyheath","address3":null,"address4":null,"city":"London","state":null,"postalCode":"DA6 7LL"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.456276,"longitude":0.150038},{"id":"048","groupId":"london","displayName":"London - Enfield","link":"https://www.cineworld.co.uk/cinemas/london-enfield","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Southbury Leisure Centre, 208 Southbury Road, Enfield, EN1 1YQ, London","addressInfo":{"address1":"Southbury Leisure Centre","address2":"208 Southbury Road","address3":"Enfield","address4":null,"city":"London","state":null,"postalCode":"EN1 1YQ"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.65255,"longitude":-0.061396},{"id":"023","groupId":"london","displayName":"London - Feltham","link":"https://www.cineworld.co.uk/cinemas/london-feltham","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Leisure West, Air Park Way, Feltham, TW13 7LX, London","addressInfo":{"address1":"Leisure West","address2":"Air Park Way","address3":"Feltham","address4":null,"city":"London","state":null,"postalCode":"TW13 7LX"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.443893,"longitude":-0.404602},{"id":"118","groupId":"london","displayName":"London - Hounslow","link":"https://www.cineworld.co.uk/cinemas/london-hounslow","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Hounslow High Street Quarter, Unity Square, TW3 1EL, London","addressInfo":{"address1":"Hounslow High Street Quarter","address2":"Unity Square","address3":null,"address4":null,"city":"London","state":null,"postalCode":"TW3 1EL"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.471,"longitude":-0.36005},{"id":"060","groupId":"london","displayName":"London - Ilford","link":"https://www.cineworld.co.uk/cinemas/london-ilford","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"I-Scene, Clements Road, Ilford, IG1 1BP, London","addressInfo":{"address1":"I-Scene","address2":"Clements Road","address3":"Ilford","address4":null,"city":"London","state":null,"postalCode":"IG1 1BP"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.557636,"longitude":0.074141},{"id":"103","groupId":"london","displayName":"London - Leicester Square","link":"https://www.cineworld.co.uk/cinemas/london-leicester-square","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:f7594bf2-55af-4aa6-b1e8-8b61829d88f8","address":"5-6 Leicester Square, WC2H 7NA, London","addressInfo":{"address1":"5-6 Leicester Square","address2":null,"address3":null,"address4":null,"city":"London","state":null,"postalCode":"WC2H 7NA"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.510868,"longitude":-0.1325853},{"id":"106","groupId":"london","displayName":"London - South Ruislip","link":"https://www.cineworld.co.uk/cinemas/london-south-ruislip","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The Old Dairy, Victoria Road, HA4 0EU, Ruislip","addressInfo":{"address1":"The Old Dairy","address2":"Victoria Road","address3":null,"address4":null,"city":"Ruislip","state":null,"postalCode":"HA4 0EU"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.560516,"longitude":-0.401414},{"id":"077","groupId":"london","displayName":"London - The O2 Greenwich","link":"https://www.cineworld.co.uk/cinemas/london-the-o2-greenwich","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The O2, Peninsula Square, SE10 0DX, London","addressInfo":{"address1":"The O2","address2":"Peninsula Square","address3":null,"address4":null,"city":"London","state":null,"postalCode":"SE10 0DX"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.50265,"longitude":0.00309},{"id":"066","groupId":"london","displayName":"London - Wandsworth","link":"https://www.cineworld.co.uk/cinemas/london-wandsworth","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Southside Shopping Centre, Wandsworth High Street, SW18 4TF, London","addressInfo":{"address1":"Southside Shopping Centre","address2":"Wandsworth High Street","address3":null,"address4":null,"city":"London","state":null,"postalCode":"SW18 4TF"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.455402,"longitude":-0.194168},{"id":"082","groupId":"london","displayName":"London - Wembley","link":"https://www.cineworld.co.uk/cinemas/london-wembley","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"London Designer Outlet, Wembley Park Boulevard, HA9 0FD, London","addressInfo":{"address1":"London Designer Outlet","address2":"Wembley Park Boulevard","address3":null,"address4":null,"city":"London","state":null,"postalCode":"HA9 0FD"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.556763,"longitude":-0.282136},{"id":"041","groupId":"london","displayName":"London - West India Quay","link":"https://www.cineworld.co.uk/cinemas/london-west-india-quay","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Hertsmere Road, West India Quay, E14 4AL, London","addressInfo":{"address1":"Hertsmere Road","address2":"West India Quay","address3":null,"address4":null,"city":"London","state":null,"postalCode":"E14 4AL"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.507645,"longitude":-0.023818},{"id":"046","groupId":"london","displayName":"London - Wood Green","link":"https://www.cineworld.co.uk/cinemas/london-wood-green","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The Mall Wood Green, High Road, N22 6LU, London","addressInfo":{"address1":"The Mall Wood Green","address2":"High Road","address3":null,"address4":null,"city":"London","state":null,"postalCode":"N22 6LU"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.594543,"longitude":-0.106431},{"id":"030","groupId":"luton","displayName":"Luton","link":"https://www.cineworld.co.uk/cinemas/luton","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The Galaxy, Bridge Street, LU1 2NB, Luton","addressInfo":{"address1":"The Galaxy","address2":"Bridge Street","address3":null,"address4":null,"city":"Luton","state":null,"postalCode":"LU1 2NB"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.881855,"longitude":-0.417634},{"id":"042","groupId":"milton-keynes","displayName":"Milton Keynes","link":"https://www.cineworld.co.uk/cinemas/milton-keynes","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:02def312-01ab-4948-b2c8-d10d64f16f07","address":"Xscape, 602 Marlborough Gate, MK9 3XZ, Milton Keynes","addressInfo":{"address1":"Xscape","address2":"602 Marlborough Gate","address3":null,"address4":null,"city":"Milton Keynes","state":null,"postalCode":"MK9 3XZ"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.041435,"longitude":-0.748677},{"id":"105","groupId":"newcastle-upon-tyne","displayName":"Newcastle upon Tyne","link":"https://www.cineworld.co.uk/cinemas/newcastle-upon-tyne","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The Gate, Newgate Street, NE1 5TG, Newcastle upon Tyne","addressInfo":{"address1":"The Gate","address2":"Newgate Street","address3":null,"address4":null,"city":"Newcastle upon Tyne","state":null,"postalCode":"NE1 5TG"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":54.9724,"longitude":-1.61797},{"id":"026","groupId":"newport-wales","displayName":"Newport Wales - Spytty Park","link":"https://www.cineworld.co.uk/cinemas/newport-spytty-park","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:63902153-7828-4e71-a9fc-21ad2efc479e","address":"Newport Retail Park, Spytty Road, NP19 4QQ, Newport","addressInfo":{"address1":"Newport Retail Park","address2":"Spytty Road","address3":null,"address4":null,"city":"Newport","state":null,"postalCode":"NP19 4QQ"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.57757,"longitude":-2.943588},{"id":"114","groupId":"plymouth","displayName":"Plymouth","link":"https://www.cineworld.co.uk/cinemas/plymouth","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"Unit 17, 11 Bretonside, PL4 0FE, Plymouth","addressInfo":{"address1":"Unit 17","address2":"11 Bretonside","address3":null,"address4":null,"city":"Plymouth","state":null,"postalCode":"PL4 0FE"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":50.370632,"longitude":-4.1368365},{"id":"020","groupId":"rochester","displayName":"Rochester","link":"https://www.cineworld.co.uk/cinemas/rochester","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:63902153-7828-4e71-a9fc-21ad2efc479e","address":"Medway Valley Leisure Park, Chariot Way, ME2 2SS, Rochester","addressInfo":{"address1":"Medway Valley Leisure Park","address2":"Chariot Way","address3":null,"address4":null,"city":"Rochester","state":null,"postalCode":"ME2 2SS"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.38003,"longitude":0.477112},{"id":"049","groupId":"rugby","displayName":"Rugby","link":"https://www.cineworld.co.uk/cinemas/rugby","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"Junction One, Leicester Road, CV21 1RW, Rugby","addressInfo":{"address1":"Junction One","address2":"Leicester Road","address3":null,"address4":null,"city":"Rugby","state":null,"postalCode":"CV21 1RW"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.38524,"longitude":-1.259169},{"id":"112","groupId":"rushden","displayName":"Rushden Lakes","link":"https://www.cineworld.co.uk/cinemas/rushden-lakes","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Unit 16, Northampton Road, West Terrace, Rushden Lakes, NN10 6FA, Rushden","addressInfo":{"address1":"Unit 16","address2":"Northampton Road","address3":"West Terrace","address4":"Rushden Lakes","city":"Rushden","state":null,"postalCode":"NN10 6FA"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.301655,"longitude":-0.6201389},{"id":"031","groupId":"sheffield","displayName":"Sheffield","link":"https://www.cineworld.co.uk/cinemas/sheffield","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Valley Centertainment, Broughton Lane, S9 2EP, Sheffield","addressInfo":{"address1":"Valley Centertainment","address2":"Broughton Lane","address3":null,"address4":null,"city":"Sheffield","state":null,"postalCode":"S9 2EP"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.40154,"longitude":-1.414966},{"id":"033","groupId":"shrewsbury","displayName":"Shrewsbury","link":"https://www.cineworld.co.uk/cinemas/shrewsbury","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Old Potts Way, SY3 7ET, Shrewsbury","addressInfo":{"address1":"Old Potts Way","address2":null,"address3":null,"address4":null,"city":"Shrewsbury","state":null,"postalCode":"SY3 7ET"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.70355,"longitude":-2.74053},{"id":"056","groupId":"solihull","displayName":"Solihull","link":"https://www.cineworld.co.uk/cinemas/solihull","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"47 Upper Jubilee Walk, Touchwood, B91 3QW, Solihull","addressInfo":{"address1":"47 Upper Jubilee Walk","address2":"Touchwood","address3":null,"address4":null,"city":"Solihull","state":null,"postalCode":"B91 3QW"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.412453,"longitude":-1.778998},{"id":"110","groupId":"speke","displayName":"Speke","link":"https://www.cineworld.co.uk/cinemas/speke","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"New Mersey Shopping Park, Speke Road, L24 8QB, Speke, Merseyside","addressInfo":{"address1":"New Mersey Shopping Park","address2":"Speke Road","address3":null,"address4":null,"city":"Speke, Merseyside","state":null,"postalCode":"L24 8QB"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.349277,"longitude":-2.8826747},{"id":"019","groupId":"stevenage","displayName":"Stevenage","link":"https://www.cineworld.co.uk/cinemas/stevenage","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Stevenage Leisure Park, Kings Way, SG1 2UA, Stevenage","addressInfo":{"address1":"Stevenage Leisure Park","address2":"Kings Way","address3":null,"address4":null,"city":"Stevenage","state":null,"postalCode":"SG1 2UA"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.899914,"longitude":-0.20823},{"id":"050","groupId":"st-helens","displayName":"St Helens","link":"https://www.cineworld.co.uk/cinemas/st-helens","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Chalon Way West, WA10 1BF, St Helens","addressInfo":{"address1":"Chalon Way West","address2":null,"address3":null,"address4":null,"city":"St Helens","state":null,"postalCode":"WA10 1BF"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.451378,"longitude":-2.739894},{"id":"084","groupId":"st-neots","displayName":"St Neots","link":"https://www.cineworld.co.uk/cinemas/st-neots","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"The Rowley Arts Centre, Huntingdon Street, PE19 1BH, St Neots","addressInfo":{"address1":"The Rowley Arts Centre","address2":"Huntingdon Street","address3":null,"address4":null,"city":"St Neots","state":null,"postalCode":"PE19 1BH"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.22903,"longitude":-0.265743},{"id":"093","groupId":"stoke-on-trent","displayName":"Stoke-on-Trent","link":"https://www.cineworld.co.uk/cinemas/stoke-on-trent","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"Quadrant Road, City Centre, ST1 1PS, Stoke-on-Trent","addressInfo":{"address1":"Quadrant Road","address2":"City Centre","address3":null,"address4":null,"city":"Stoke-on-Trent","state":null,"postalCode":"ST1 1PS"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.027554,"longitude":-2.1759024},{"id":"012","groupId":"swindon","displayName":"Swindon - Shaw Ridge","link":"https://www.cineworld.co.uk/cinemas/swindon-shaw-ridge","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:63902153-7828-4e71-a9fc-21ad2efc479e","address":"Shaw Ridge Leisure Park, Whitehill Way, SN5 7DN, Swindon","addressInfo":{"address1":"Shaw Ridge Leisure Park","address2":"Whitehill Way","address3":null,"address4":null,"city":"Swindon","state":null,"postalCode":"SN5 7DN"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.560783,"longitude":-1.83149},{"id":"085","groupId":"telford","displayName":"Telford","link":"https://www.cineworld.co.uk/cinemas/telford","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Southwater Square, TF3 4HS, Telford","addressInfo":{"address1":"Southwater Square","address2":null,"address3":null,"address4":null,"city":"Telford","state":null,"postalCode":"TF3 4HS"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.673954,"longitude":-2.446977},{"id":"021","groupId":"wakefield","displayName":"Wakefield","link":"https://www.cineworld.co.uk/cinemas/wakefield","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"Westgate Leisure Park, Colinsway, WF2 9SH, Wakefield","addressInfo":{"address1":"Westgate Leisure Park","address2":"Colinsway","address3":null,"address4":null,"city":"Wakefield","state":null,"postalCode":"WF2 9SH"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.67716,"longitude":-1.505222},{"id":"115","groupId":"warrington","displayName":"Warrington","link":"https://www.cineworld.co.uk/cinemas/warrington","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:2fe34ebb-a510-44c9-8ecf-6ff0eb97e93a","address":"Time Square, WA1 2HN, Warrington","addressInfo":{"address1":"Time Square","address2":null,"address3":null,"address4":null,"city":"Warrington","state":null,"postalCode":"WA1 2HN"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.38796,"longitude":-2.59085},{"id":"111","groupId":"watford","displayName":"Watford","link":"https://www.cineworld.co.uk/cinemas/watford","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"intu Charter Place Shopping Centre, Queens Road, WD17 2UB, Watford","addressInfo":{"address1":"intu Charter Place Shopping Centre","address2":"Queens Road","address3":null,"address4":null,"city":"Watford","state":null,"postalCode":"WD17 2UB"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.65463,"longitude":-0.39272},{"id":"109","groupId":"weston-super-mare","displayName":"Weston-super-Mare","link":"https://www.cineworld.co.uk/cinemas/weston-super-mare","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"7 Central Walk, Dolphin Square, BS23 1FF, Weston-super-Mare","addressInfo":{"address1":"7 Central Walk","address2":"Dolphin Square","address3":null,"address4":null,"city":"Weston-super-Mare","state":null,"postalCode":"BS23 1FF"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.3452,"longitude":-2.978286},{"id":"091","groupId":"whiteley","displayName":"Whiteley","link":"https://www.cineworld.co.uk/cinemas/whiteley","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:840696d4-3fd1-43ce-a394-50630bc4a827","address":"Whiteley Shopping Centre, Whiteley Way, PO15 7PD, Fareham","addressInfo":{"address1":"Whiteley Shopping Centre","address2":"Whiteley Way","address3":null,"address4":null,"city":"Fareham","state":null,"postalCode":"PO15 7PD"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":50.886055,"longitude":-1.248155},{"id":"075","groupId":"witney","displayName":"Witney","link":"https://www.cineworld.co.uk/cinemas/witney","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Marriots Walk, OX28 6GW, Witney","addressInfo":{"address1":"Marriots Walk","address2":null,"address3":null,"address4":null,"city":"Witney","state":null,"postalCode":"OX28 6GW"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":51.788033,"longitude":-1.48606},{"id":"025","groupId":"wolverhampton","displayName":"Wolverhampton","link":"https://www.cineworld.co.uk/cinemas/wolverhampton","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Bentley Bridge Park, Wednesfield Way, WV11 1TZ, Wolverhampton","addressInfo":{"address1":"Bentley Bridge Park","address2":"Wednesfield Way","address3":null,"address4":null,"city":"Wolverhampton","state":null,"postalCode":"WV11 1TZ"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":52.596725,"longitude":-2.0932},{"id":"059","groupId":"yeovil","displayName":"Yeovil","link":"https://www.cineworld.co.uk/cinemas/yeovil","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:6c74aa20-39bb-43f5-ad47-0a738a7491e2","address":"Yeo Leisure Park, Old Station Way, BA20 1NP, Yeovil","addressInfo":{"address1":"Yeo Leisure Park","address2":"Old Station Way","address3":null,"address4":null,"city":"Yeovil","state":null,"postalCode":"BA20 1NP"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":50.94037,"longitude":-2.625528},{"id":"116","groupId":"york","displayName":"York","link":"https://www.cineworld.co.uk/cinemas/york","imageUrl":"https://www.cineworld.co.uk/static/dam/jcr:56f91ac9-6ac9-4b7d-9610-b768a2a1bad6","address":"York Community Stadium, Kathryn Avenue, Huntington, YO32 9AF, York","addressInfo":{"address1":"York Community Stadium","address2":"Kathryn Avenue, Huntington","address3":null,"address4":null,"city":"York","state":null,"postalCode":"YO32 9AF"},"bookingUrl":null,"blockOnlineSales":false,"blockOnlineSalesUntil":null,"latitude":53.98474,"longitude":-1.04983}]}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"body":{"dates":["2025-10-31","2025-11-01","2025-11-02","2025-11-03","2025-11-04","2025-11-05","2025-11-06","2025-11-07","2025-11-08","2025-11-09","2025-11-10","2025-11-11","2025-11-12","2025-11-13","2025-11-14","2025-11-15","2025-11-16","2025-11-17","2025-11-18","2025-11-19","2025-11-20","2025-11-21","2025-11-22","2025-11-23","2025-11-24","2025-11-25","2025-11-26","2025-11-27","2025-11-29","2025-11-30","2025-12-04","2025-12-05","2025-12-06","2025-12-07","2025-12-10","2026-01-14","2026-01-22","2026-01-25","2026-02-09","2026-03-03","2026-03-31","2026-04-21","2026-05-05"]}}
|