142142}
143143"""
144144
145+ _GRAPHQL_PROVIDERS_QUERY = """
146+ query GetProviders(
147+ $country: Country!,
148+ $formatOfferIcon: ImageFormat
149+ ) {
150+ packages(
151+ country: $country
152+ platform: WEB
153+ includeAddons: true
154+ ) {
155+ ... PackageDetails
156+ }
157+ __typename
158+ }
159+ """
160+
145161_GRAPHQL_OFFERS_BY_COUNTRY_QUERY = """
146162query GetTitleOffers(
147163 $nodeId: ID!,
267283 lastChangeRetailPriceValue
268284 type
269285 package {
270- id
271- packageId
272- clearName
273- technicalName
274- icon(profile: S100, format: $formatOfferIcon)
275- __typename
286+ ... PackageDetails
276287 }
277288 standardWebURL
278289 elementCount
286297}
287298"""
288299
300+ _GRAPHQL_PACKAGE_FRAGMENT = """
301+ fragment PackageDetails on Package {
302+ id
303+ packageId
304+ clearName
305+ technicalName
306+ shortName
307+ slug
308+ icon(profile: S100, format: $formatOfferIcon)
309+ __typename
310+ }
311+ """
312+
289313_GRAPHQL_COUNTRY_OFFERS_ENTRY = """
290314 {country_code}: offers(country: {country_code}, platform: WEB, filter: $filter) {{
291315 ...TitleOffer
@@ -304,11 +328,25 @@ def graphql_search_query() -> str:
304328 str: Full GraphQL "search" query.
305329
306330 """
307- return _GRAPHQL_SEARCH_QUERY + _GRAPHQL_DETAILS_FRAGMENT + _GRAPHQL_OFFER_FRAGMENT
331+ return (
332+ _GRAPHQL_SEARCH_QUERY
333+ + _GRAPHQL_DETAILS_FRAGMENT
334+ + _GRAPHQL_OFFER_FRAGMENT
335+ + _GRAPHQL_PACKAGE_FRAGMENT
336+ )
308337
309338
310339def graphql_popular_query () -> str :
311- return _GRAPHQL_POPULAR_QUERY + _GRAPHQL_DETAILS_FRAGMENT + _GRAPHQL_OFFER_FRAGMENT
340+ return (
341+ _GRAPHQL_POPULAR_QUERY
342+ + _GRAPHQL_DETAILS_FRAGMENT
343+ + _GRAPHQL_OFFER_FRAGMENT
344+ + _GRAPHQL_PACKAGE_FRAGMENT
345+ )
346+
347+
348+ def graphql_providers_query () -> str :
349+ return _GRAPHQL_PROVIDERS_QUERY + _GRAPHQL_PACKAGE_FRAGMENT
312350
313351
314352def graphql_details_query () -> str :
@@ -323,7 +361,12 @@ def graphql_details_query() -> str:
323361 str: Full GraphQL "get details" query.
324362
325363 """
326- return _GRAPHQL_DETAILS_QUERY + _GRAPHQL_DETAILS_FRAGMENT + _GRAPHQL_OFFER_FRAGMENT
364+ return (
365+ _GRAPHQL_DETAILS_QUERY
366+ + _GRAPHQL_DETAILS_FRAGMENT
367+ + _GRAPHQL_OFFER_FRAGMENT
368+ + _GRAPHQL_PACKAGE_FRAGMENT
369+ )
327370
328371
329372def graphql_seasons_query () -> str :
@@ -339,7 +382,12 @@ def graphql_seasons_query() -> str:
339382 str: Full GraphQL "get seasons" query.
340383
341384 """
342- return _GRAPHQL_SEASONS_QUERY + _GRAPHQL_DETAILS_FRAGMENT + _GRAPHQL_OFFER_FRAGMENT
385+ return (
386+ _GRAPHQL_SEASONS_QUERY
387+ + _GRAPHQL_DETAILS_FRAGMENT
388+ + _GRAPHQL_OFFER_FRAGMENT
389+ + _GRAPHQL_PACKAGE_FRAGMENT
390+ )
343391
344392
345393def graphql_episodes_query () -> str :
@@ -355,7 +403,12 @@ def graphql_episodes_query() -> str:
355403 str: Full GraphQL "get episodes" query.
356404
357405 """
358- return _GRAPHQL_EPISODES_QUERY + _GRAPHQL_DETAILS_FRAGMENT + _GRAPHQL_OFFER_FRAGMENT
406+ return (
407+ _GRAPHQL_EPISODES_QUERY
408+ + _GRAPHQL_DETAILS_FRAGMENT
409+ + _GRAPHQL_OFFER_FRAGMENT
410+ + _GRAPHQL_PACKAGE_FRAGMENT
411+ )
359412
360413
361414def graphql_offers_for_countries_query (countries : set [str ]) -> str :
@@ -381,4 +434,4 @@ def graphql_offers_for_countries_query(countries: set[str]) -> str:
381434 for country_code in countries
382435 ]
383436 main_query = _GRAPHQL_OFFERS_BY_COUNTRY_QUERY .format (country_entries = "\n " .join (offer_requests ))
384- return main_query + _GRAPHQL_OFFER_FRAGMENT
437+ return main_query + _GRAPHQL_OFFER_FRAGMENT + _GRAPHQL_PACKAGE_FRAGMENT
0 commit comments