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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b497375ced74ea56a85b85027ff086e690432d8296a2b43e4d2d59103579a593
4
- data.tar.gz: 1b277120417de80d13097b49ac8d5203f9a54bb8214a3842ea25120b2eb71c6a
3
+ metadata.gz: 9cf2b85c2edc9824535b2304c6a138c9fcb1f741514729c68f997bd11691b3cf
4
+ data.tar.gz: 617e4142d0f55a1fa36b0c01accf4c4c620ac9816f6dc0f2ddde3e247fb6c16e
5
5
  SHA512:
6
- metadata.gz: 3b6c03efd197eba1cfc566839c09b05c7f22c64a05cdade0806417507d4a014befeef4ab0451cbdc360f0df28a810ec7a7843e08be6fcc9c3b413007ed2440c2
7
- data.tar.gz: da91b411310832dc36e999024a094f87321a4597033ad97a38627e10a4d2be44a6656bda1c392bb8ec2696db22755008d05da0f18859a6fe909b5a14b1e6f6de
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
@@ -10,6 +10,7 @@ module Cinebase
10
10
  /\A(Cine-Excess) (20\d{2}): /,
11
11
  /\A(Cinemagic) (\d{4}) -/,
12
12
  /\A(UKJFF) -/,
13
+ /\A(CFF): /,
13
14
  /\A(Horror Season) (20\d{2}) /
14
15
  ].freeze
15
16
 
@@ -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*(In-Person )?Q&A\z/i, # Q&A add-on
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}: (.*)/ => 'Met Opera: ',
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
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Cinebase version
4
4
  module Cinebase
5
- VERSION = '5.3.0'
5
+ VERSION = '5.4.0'
6
6
  end
@@ -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' or 'GB'
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)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cinebase
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.0
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Croll