cinebase 5.3.0 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/cinebase/festival.rb +1 -0
- data/lib/cinebase/title_sanitizer.rb +5 -2
- data/lib/cinebase/version.rb +1 -1
- data/lib/cinebase/vista/client.rb +3 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9cf2b85c2edc9824535b2304c6a138c9fcb1f741514729c68f997bd11691b3cf
|
|
4
|
+
data.tar.gz: 617e4142d0f55a1fa36b0c01accf4c4c620ac9816f6dc0f2ddde3e247fb6c16e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8d2317b3bbf779296fde7e95e2982304cf6a23a2710e271539c1bfa2c2f107b5c77b5c07187c31ff85a59bce37b3cb2efcac1f60b8a276ad0c9009de1e9d1e19
|
|
7
|
+
data.tar.gz: b8f2b58778e8dafab5c9811fabd6cba08f24b6b9f5f9c20814d9bc2252e44fc6c502a8fb6901a029ac36066cb392d610f1d6938da6db0a73b10d99a9d059707a
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [5.4.0] - 2026-10-22
|
|
6
|
+
### Added
|
|
7
|
+
- `Vista::Client` accepts `region_code: nil` and then sends no `Connect-Region-Code` header, for chains such as Picturehouse whose API rejects every region code
|
|
8
|
+
- `COMMON_REMOVE` strips any `+ ... Q&A` or `+ ... Q+A` add-on, `+ Discussion`, `(35mm)`, `(70mm)` and a `4K` marker
|
|
9
|
+
- `Met Opera Encore 2026-27:` titles standardise like other Met Opera seasons
|
|
10
|
+
- `CFF:` (Cambridge Film Festival) title prefixes are festivals
|
|
11
|
+
|
|
5
12
|
## [5.3.0] - 2026-10-22
|
|
6
13
|
### Added
|
|
7
14
|
- `Performance#film_year` with an optional `film_year:` option, and `TitleSanitizer.film_year` reading a trailing `(1996)` from a title
|
data/lib/cinebase/festival.rb
CHANGED
|
@@ -47,7 +47,10 @@ module Cinebase
|
|
|
47
47
|
/\(\d+(st|nd|rd|th) Anniversary\)/i, # anniversary re-release
|
|
48
48
|
/\(Re-release\)/i, # re-release
|
|
49
49
|
FILM_YEAR, # film year, see .film_year
|
|
50
|
-
/\s*\+\s*(
|
|
50
|
+
/\s*\+\s*(?:[\w-]+\s+)*Q(?:&|\+)A\z/i, # Q&A add-on
|
|
51
|
+
/\s*\+\s*Discussion\z/i, # discussion add-on
|
|
52
|
+
/\s*\((35|70)mm\)/i, # film gauge
|
|
53
|
+
/\s+4K\b/, # 4K restoration
|
|
51
54
|
/:\s*Encore\z/i, # encore
|
|
52
55
|
/\bsing-?a-?long\z/i, # singalong
|
|
53
56
|
'amp;' # html ampersands
|
|
@@ -60,7 +63,7 @@ module Cinebase
|
|
|
60
63
|
end
|
|
61
64
|
|
|
62
65
|
COMMON_REPLACE = {
|
|
63
|
-
/Met Opera 20\d{2}-\d{2}: (.*)/
|
|
66
|
+
/Met Opera (?:Encore )?20\d{2}-\d{2}: (.*)/ => 'Met Opera: ',
|
|
64
67
|
/RBO (?:Cinema Season )?20\d{2}-\d{2}: (.*)/ => 'Royal Ballet and Opera: ',
|
|
65
68
|
/WORLD TOUR(.*)/ => 'World Tour'
|
|
66
69
|
}.freeze
|
data/lib/cinebase/version.rb
CHANGED
|
@@ -8,7 +8,8 @@ module Cinebase
|
|
|
8
8
|
# Makes guest-token GET requests to a chain's OCAPI
|
|
9
9
|
class Client
|
|
10
10
|
# @param [String] base_url e.g. 'https://vwc.odeon.co.uk/WSVistaWebClient/ocapi/v1/'
|
|
11
|
-
# @param [String] region_code Connect-Region-Code header, e.g. 'UK'
|
|
11
|
+
# @param [String, nil] region_code Connect-Region-Code header, e.g. 'UK'
|
|
12
|
+
# or 'GB'; nil for chains whose API rejects every region code
|
|
12
13
|
# @param [String, nil] token raw guest JWT, without the "Bearer " prefix
|
|
13
14
|
def initialize(base_url:, region_code:, token:)
|
|
14
15
|
@base_url = base_url
|
|
@@ -44,7 +45,7 @@ module Cinebase
|
|
|
44
45
|
uri.query = URI.encode_www_form(query) unless query.empty?
|
|
45
46
|
request = Net::HTTP::Get.new(uri)
|
|
46
47
|
request['Authorization'] = "Bearer #{@token}"
|
|
47
|
-
request['Connect-Region-Code'] = @region_code
|
|
48
|
+
request['Connect-Region-Code'] = @region_code if @region_code
|
|
48
49
|
request['Accept'] = 'application/json'
|
|
49
50
|
Net::HTTP.start(uri.host, uri.port, use_ssl: true, open_timeout: 10, read_timeout: 30) do |http|
|
|
50
51
|
http.request(request)
|