deezer-python-gql 0.10.0__tar.gz → 0.12.0__tar.gz

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.
Files changed (89) hide show
  1. {deezer_python_gql-0.10.0/deezer_python_gql.egg-info → deezer_python_gql-0.12.0}/PKG-INFO +5 -5
  2. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/__init__.py +28 -8
  3. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/client.py +90 -168
  4. deezer_python_gql-0.12.0/deezer_python_gql/generated/search.py +263 -0
  5. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0/deezer_python_gql.egg-info}/PKG-INFO +5 -5
  6. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql.egg-info/requires.txt +4 -4
  7. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/pyproject.toml +5 -5
  8. deezer_python_gql-0.10.0/deezer_python_gql/generated/search.py +0 -183
  9. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/LICENSE +0 -0
  10. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/MANIFEST.in +0 -0
  11. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/README.md +0 -0
  12. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/__init__.py +0 -0
  13. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/base_client.py +0 -0
  14. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/add_album_to_favorite.py +0 -0
  15. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/add_artist_to_favorite.py +0 -0
  16. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/add_audiobook_to_favorite.py +0 -0
  17. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/add_playlist_to_favorite.py +0 -0
  18. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/add_podcast_to_favorite.py +0 -0
  19. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/add_track_to_favorite.py +0 -0
  20. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/add_tracks_to_playlist.py +0 -0
  21. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/base_client.py +0 -0
  22. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/base_model.py +0 -0
  23. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/bookmark_podcast_episode.py +0 -0
  24. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/create_playlist.py +0 -0
  25. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/delete_playlist.py +0 -0
  26. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/enums.py +0 -0
  27. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/fragments.py +0 -0
  28. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_album.py +0 -0
  29. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_artist.py +0 -0
  30. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_artist_mix.py +0 -0
  31. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_audiobook.py +0 -0
  32. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_audiobook_chapter.py +0 -0
  33. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_charts.py +0 -0
  34. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_favorite_albums.py +0 -0
  35. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_favorite_artists.py +0 -0
  36. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_favorite_audiobooks.py +0 -0
  37. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_favorite_playlists.py +0 -0
  38. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_favorite_podcasts.py +0 -0
  39. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_favorite_tracks.py +0 -0
  40. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_flow.py +0 -0
  41. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_flow_batch.py +0 -0
  42. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_flow_config_tracks.py +0 -0
  43. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_flow_configs.py +0 -0
  44. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_livestream.py +0 -0
  45. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_made_for_me.py +0 -0
  46. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_me.py +0 -0
  47. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_music_together_affinity.py +0 -0
  48. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_music_together_group.py +0 -0
  49. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_music_together_groups.py +0 -0
  50. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_personal_tracks.py +0 -0
  51. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_playlist.py +0 -0
  52. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_podcast.py +0 -0
  53. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_podcast_episode.py +0 -0
  54. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_podcast_episode_bookmarks.py +0 -0
  55. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_podcast_episodes_by_ids.py +0 -0
  56. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_recently_played.py +0 -0
  57. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_recommendations.py +0 -0
  58. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_similar_tracks.py +0 -0
  59. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_smart_tracklist.py +0 -0
  60. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_track.py +0 -0
  61. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_track_mix.py +0 -0
  62. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_user_charts.py +0 -0
  63. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/get_user_playlists.py +0 -0
  64. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/input_types.py +0 -0
  65. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/mark_as_not_played_podcast_episode.py +0 -0
  66. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/mark_as_played_podcast_episode.py +0 -0
  67. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/music_together_create_group.py +0 -0
  68. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/music_together_generate_group_name.py +0 -0
  69. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/music_together_join_group.py +0 -0
  70. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/music_together_leave_group.py +0 -0
  71. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/music_together_refresh_suggested_tracklist.py +0 -0
  72. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/music_together_update_group_settings.py +0 -0
  73. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/remove_album_from_favorite.py +0 -0
  74. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/remove_artist_from_favorite.py +0 -0
  75. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/remove_audiobook_from_favorite.py +0 -0
  76. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/remove_playlist_from_favorite.py +0 -0
  77. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/remove_podcast_from_favorite.py +0 -0
  78. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/remove_track_from_favorite.py +0 -0
  79. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/remove_tracks_from_playlist.py +0 -0
  80. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/search_flows.py +0 -0
  81. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/unbookmark_podcast_episode.py +0 -0
  82. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/generated/update_playlist.py +0 -0
  83. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql/py.typed +0 -0
  84. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql.egg-info/SOURCES.txt +0 -0
  85. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql.egg-info/dependency_links.txt +0 -0
  86. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql.egg-info/not-zip-safe +0 -0
  87. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/deezer_python_gql.egg-info/top_level.txt +0 -0
  88. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/setup.cfg +0 -0
  89. {deezer_python_gql-0.10.0 → deezer_python_gql-0.12.0}/tests/test_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deezer-python-gql
3
- Version: 0.10.0
3
+ Version: 0.12.0
4
4
  Summary: Async typed Python client for Deezer's Pipe GraphQL API.
5
5
  Author-email: Julian Daberkow <jdaberkow@users.noreply.github.com>
6
6
  License: Apache-2.0
@@ -15,13 +15,13 @@ Requires-Dist: httpx>=0.27.0
15
15
  Requires-Dist: pydantic>=2.0.0
16
16
  Provides-Extra: test
17
17
  Requires-Dist: codespell==2.4.2; extra == "test"
18
- Requires-Dist: mypy==1.20.0; extra == "test"
19
- Requires-Dist: pre-commit==4.5.1; extra == "test"
18
+ Requires-Dist: mypy==2.0.0; extra == "test"
19
+ Requires-Dist: pre-commit==4.6.0; extra == "test"
20
20
  Requires-Dist: pre-commit-hooks==6.0.0; extra == "test"
21
- Requires-Dist: pytest==9.0.2; extra == "test"
21
+ Requires-Dist: pytest==9.0.3; extra == "test"
22
22
  Requires-Dist: pytest-asyncio==1.3.0; extra == "test"
23
23
  Requires-Dist: pytest-cov==7.1.0; extra == "test"
24
- Requires-Dist: ruff==0.15.8; extra == "test"
24
+ Requires-Dist: ruff==0.15.12; extra == "test"
25
25
  Provides-Extra: dev
26
26
  Requires-Dist: ariadne-codegen[subscriptions]; extra == "dev"
27
27
  Dynamic: license-file
@@ -564,30 +564,40 @@ from .search import (
564
564
  SearchSearchResultsAlbums,
565
565
  SearchSearchResultsAlbumsEdges,
566
566
  SearchSearchResultsAlbumsEdgesNode,
567
+ SearchSearchResultsAlbumsEdgesNodeContributors,
568
+ SearchSearchResultsAlbumsEdgesNodeContributorsEdges,
569
+ SearchSearchResultsAlbumsEdgesNodeContributorsEdgesNodeArtist,
570
+ SearchSearchResultsAlbumsEdgesNodeCover,
567
571
  SearchSearchResultsAlbumsPageInfo,
568
572
  SearchSearchResultsArtists,
569
573
  SearchSearchResultsArtistsEdges,
570
574
  SearchSearchResultsArtistsEdgesNode,
575
+ SearchSearchResultsArtistsEdgesNodePicture,
571
576
  SearchSearchResultsArtistsPageInfo,
572
577
  SearchSearchResultsLivestreams,
573
578
  SearchSearchResultsLivestreamsEdges,
574
579
  SearchSearchResultsLivestreamsEdgesNode,
580
+ SearchSearchResultsLivestreamsEdgesNodeCover,
575
581
  SearchSearchResultsLivestreamsPageInfo,
576
582
  SearchSearchResultsPlaylists,
577
583
  SearchSearchResultsPlaylistsEdges,
578
584
  SearchSearchResultsPlaylistsEdgesNode,
585
+ SearchSearchResultsPlaylistsEdgesNodeOwner,
586
+ SearchSearchResultsPlaylistsEdgesNodePicture,
579
587
  SearchSearchResultsPlaylistsPageInfo,
580
- SearchSearchResultsPodcastEpisodes,
581
- SearchSearchResultsPodcastEpisodesEdges,
582
- SearchSearchResultsPodcastEpisodesEdgesNode,
583
- SearchSearchResultsPodcastEpisodesPageInfo,
584
588
  SearchSearchResultsPodcasts,
585
589
  SearchSearchResultsPodcastsEdges,
586
590
  SearchSearchResultsPodcastsEdgesNode,
591
+ SearchSearchResultsPodcastsEdgesNodeCover,
587
592
  SearchSearchResultsPodcastsPageInfo,
588
593
  SearchSearchResultsTracks,
589
594
  SearchSearchResultsTracksEdges,
590
595
  SearchSearchResultsTracksEdgesNode,
596
+ SearchSearchResultsTracksEdgesNodeAlbum,
597
+ SearchSearchResultsTracksEdgesNodeAlbumCover,
598
+ SearchSearchResultsTracksEdgesNodeContributors,
599
+ SearchSearchResultsTracksEdgesNodeContributorsEdges,
600
+ SearchSearchResultsTracksEdgesNodeContributorsEdgesNodeArtist,
591
601
  SearchSearchResultsTracksPageInfo,
592
602
  )
593
603
  from .search_flows import (
@@ -1060,30 +1070,40 @@ __all__ = [
1060
1070
  "SearchSearchResultsAlbums",
1061
1071
  "SearchSearchResultsAlbumsEdges",
1062
1072
  "SearchSearchResultsAlbumsEdgesNode",
1073
+ "SearchSearchResultsAlbumsEdgesNodeContributors",
1074
+ "SearchSearchResultsAlbumsEdgesNodeContributorsEdges",
1075
+ "SearchSearchResultsAlbumsEdgesNodeContributorsEdgesNodeArtist",
1076
+ "SearchSearchResultsAlbumsEdgesNodeCover",
1063
1077
  "SearchSearchResultsAlbumsPageInfo",
1064
1078
  "SearchSearchResultsArtists",
1065
1079
  "SearchSearchResultsArtistsEdges",
1066
1080
  "SearchSearchResultsArtistsEdgesNode",
1081
+ "SearchSearchResultsArtistsEdgesNodePicture",
1067
1082
  "SearchSearchResultsArtistsPageInfo",
1068
1083
  "SearchSearchResultsLivestreams",
1069
1084
  "SearchSearchResultsLivestreamsEdges",
1070
1085
  "SearchSearchResultsLivestreamsEdgesNode",
1086
+ "SearchSearchResultsLivestreamsEdgesNodeCover",
1071
1087
  "SearchSearchResultsLivestreamsPageInfo",
1072
1088
  "SearchSearchResultsPlaylists",
1073
1089
  "SearchSearchResultsPlaylistsEdges",
1074
1090
  "SearchSearchResultsPlaylistsEdgesNode",
1091
+ "SearchSearchResultsPlaylistsEdgesNodeOwner",
1092
+ "SearchSearchResultsPlaylistsEdgesNodePicture",
1075
1093
  "SearchSearchResultsPlaylistsPageInfo",
1076
- "SearchSearchResultsPodcastEpisodes",
1077
- "SearchSearchResultsPodcastEpisodesEdges",
1078
- "SearchSearchResultsPodcastEpisodesEdgesNode",
1079
- "SearchSearchResultsPodcastEpisodesPageInfo",
1080
1094
  "SearchSearchResultsPodcasts",
1081
1095
  "SearchSearchResultsPodcastsEdges",
1082
1096
  "SearchSearchResultsPodcastsEdgesNode",
1097
+ "SearchSearchResultsPodcastsEdgesNodeCover",
1083
1098
  "SearchSearchResultsPodcastsPageInfo",
1084
1099
  "SearchSearchResultsTracks",
1085
1100
  "SearchSearchResultsTracksEdges",
1086
1101
  "SearchSearchResultsTracksEdgesNode",
1102
+ "SearchSearchResultsTracksEdgesNodeAlbum",
1103
+ "SearchSearchResultsTracksEdgesNodeAlbumCover",
1104
+ "SearchSearchResultsTracksEdgesNodeContributors",
1105
+ "SearchSearchResultsTracksEdgesNodeContributorsEdges",
1106
+ "SearchSearchResultsTracksEdgesNodeContributorsEdgesNodeArtist",
1087
1107
  "SearchSearchResultsTracksPageInfo",
1088
1108
  "TrackContributorRoles",
1089
1109
  "TrackFields",
@@ -1756,14 +1756,16 @@ class DeezerGQLClient(DeezerBaseClient):
1756
1756
  async def get_flow_configs(
1757
1757
  self,
1758
1758
  moods_first: Union[Optional[int], UnsetType] = UNSET,
1759
+ moods_after: Union[Optional[str], UnsetType] = UNSET,
1759
1760
  genres_first: Union[Optional[int], UnsetType] = UNSET,
1761
+ genres_after: Union[Optional[str], UnsetType] = UNSET,
1760
1762
  **kwargs: Any,
1761
1763
  ) -> Optional[GetFlowConfigsMe]:
1762
1764
  query = gql("""
1763
- query GetFlowConfigs($moodsFirst: Int = 12, $genresFirst: Int = 12) {
1765
+ query GetFlowConfigs($moodsFirst: Int = 12, $moodsAfter: String, $genresFirst: Int = 12, $genresAfter: String) {
1764
1766
  me {
1765
1767
  flowConfigs {
1766
- moods(first: $moodsFirst) {
1768
+ moods(first: $moodsFirst, after: $moodsAfter) {
1767
1769
  edges {
1768
1770
  cursor
1769
1771
  node {
@@ -1781,7 +1783,7 @@ class DeezerGQLClient(DeezerBaseClient):
1781
1783
  ...PageInfoFields
1782
1784
  }
1783
1785
  }
1784
- genres(first: $genresFirst) {
1786
+ genres(first: $genresFirst, after: $genresAfter) {
1785
1787
  edges {
1786
1788
  cursor
1787
1789
  node {
@@ -1810,7 +1812,9 @@ class DeezerGQLClient(DeezerBaseClient):
1810
1812
  """)
1811
1813
  variables: dict[str, object] = {
1812
1814
  "moodsFirst": moods_first,
1815
+ "moodsAfter": moods_after,
1813
1816
  "genresFirst": genres_first,
1817
+ "genresAfter": genres_after,
1814
1818
  }
1815
1819
  response = await self.execute(
1816
1820
  query=query, operation_name="GetFlowConfigs", variables=variables, **kwargs
@@ -3041,10 +3045,11 @@ class DeezerGQLClient(DeezerBaseClient):
3041
3045
  self,
3042
3046
  smart_tracklist_id: str,
3043
3047
  first: Union[Optional[int], UnsetType] = UNSET,
3048
+ after: Union[Optional[str], UnsetType] = UNSET,
3044
3049
  **kwargs: Any,
3045
3050
  ) -> Optional[GetSmartTracklistSmartTracklist]:
3046
3051
  query = gql("""
3047
- query GetSmartTracklist($smartTracklistId: String!, $first: Int = 50) {
3052
+ query GetSmartTracklist($smartTracklistId: String!, $first: Int = 50, $after: String) {
3048
3053
  smartTracklist(smartTracklistId: $smartTracklistId) {
3049
3054
  id
3050
3055
  title
@@ -3053,7 +3058,7 @@ class DeezerGQLClient(DeezerBaseClient):
3053
3058
  id
3054
3059
  urls(pictureRequest: {width: 264, height: 264})
3055
3060
  }
3056
- tracks(first: $first) {
3061
+ tracks(first: $first, after: $after) {
3057
3062
  edges {
3058
3063
  cursor
3059
3064
  node {
@@ -3108,6 +3113,7 @@ class DeezerGQLClient(DeezerBaseClient):
3108
3113
  variables: dict[str, object] = {
3109
3114
  "smartTracklistId": smart_tracklist_id,
3110
3115
  "first": first,
3116
+ "after": after,
3111
3117
  }
3112
3118
  response = await self.execute(
3113
3119
  query=query,
@@ -3815,18 +3821,41 @@ class DeezerGQLClient(DeezerBaseClient):
3815
3821
  playlists_first: Union[Optional[int], UnsetType] = UNSET,
3816
3822
  livestreams_first: Union[Optional[int], UnsetType] = UNSET,
3817
3823
  podcasts_first: Union[Optional[int], UnsetType] = UNSET,
3818
- podcast_episodes_first: Union[Optional[int], UnsetType] = UNSET,
3819
3824
  **kwargs: Any,
3820
3825
  ) -> Optional[SearchSearch]:
3821
3826
  _query = gql("""
3822
- query Search($query: String!, $tracksFirst: Int = 20, $albumsFirst: Int = 20, $artistsFirst: Int = 20, $playlistsFirst: Int = 10, $livestreamsFirst: Int = 0, $podcastsFirst: Int = 0, $podcastEpisodesFirst: Int = 0) {
3827
+ query Search($query: String!, $tracksFirst: Int = 20, $albumsFirst: Int = 20, $artistsFirst: Int = 20, $playlistsFirst: Int = 10, $livestreamsFirst: Int = 0, $podcastsFirst: Int = 0) {
3823
3828
  search(query: $query) {
3824
3829
  results {
3825
3830
  tracks(first: $tracksFirst) {
3826
3831
  edges {
3827
3832
  cursor
3828
3833
  node {
3829
- ...TrackFields
3834
+ id
3835
+ title
3836
+ duration
3837
+ isExplicit
3838
+ isFavorite
3839
+ album {
3840
+ id
3841
+ displayTitle
3842
+ cover {
3843
+ id
3844
+ urls(pictureRequest: {width: 264, height: 264})
3845
+ }
3846
+ }
3847
+ contributors(first: 3, roles: [MAIN, FEATURED]) {
3848
+ edges {
3849
+ roles
3850
+ node {
3851
+ __typename
3852
+ ... on Artist {
3853
+ id
3854
+ name
3855
+ }
3856
+ }
3857
+ }
3858
+ }
3830
3859
  }
3831
3860
  }
3832
3861
  pageInfo {
@@ -3837,7 +3866,27 @@ class DeezerGQLClient(DeezerBaseClient):
3837
3866
  edges {
3838
3867
  cursor
3839
3868
  node {
3840
- ...AlbumFields
3869
+ id
3870
+ displayTitle
3871
+ type
3872
+ cover {
3873
+ id
3874
+ urls(pictureRequest: {width: 264, height: 264})
3875
+ }
3876
+ contributors(first: 3, roles: [MAIN]) {
3877
+ edges {
3878
+ node {
3879
+ __typename
3880
+ ... on Artist {
3881
+ id
3882
+ name
3883
+ }
3884
+ }
3885
+ }
3886
+ }
3887
+ releaseDate
3888
+ isExplicit
3889
+ isFavorite
3841
3890
  }
3842
3891
  }
3843
3892
  pageInfo {
@@ -3848,7 +3897,13 @@ class DeezerGQLClient(DeezerBaseClient):
3848
3897
  edges {
3849
3898
  cursor
3850
3899
  node {
3851
- ...ArtistFields
3900
+ id
3901
+ name
3902
+ isFavorite
3903
+ picture {
3904
+ id
3905
+ urls(pictureRequest: {width: 264, height: 264})
3906
+ }
3852
3907
  }
3853
3908
  }
3854
3909
  pageInfo {
@@ -3859,7 +3914,18 @@ class DeezerGQLClient(DeezerBaseClient):
3859
3914
  edges {
3860
3915
  cursor
3861
3916
  node {
3862
- ...PlaylistFields
3917
+ id
3918
+ title
3919
+ picture {
3920
+ id
3921
+ urls(pictureRequest: {width: 264, height: 264})
3922
+ }
3923
+ estimatedTracksCount
3924
+ isFavorite
3925
+ owner {
3926
+ id
3927
+ name
3928
+ }
3863
3929
  }
3864
3930
  }
3865
3931
  pageInfo {
@@ -3870,7 +3936,12 @@ class DeezerGQLClient(DeezerBaseClient):
3870
3936
  edges {
3871
3937
  cursor
3872
3938
  node {
3873
- ...LivestreamFields
3939
+ id
3940
+ name
3941
+ cover {
3942
+ id
3943
+ urls(pictureRequest: {width: 264, height: 264})
3944
+ }
3874
3945
  }
3875
3946
  }
3876
3947
  pageInfo {
@@ -3881,18 +3952,13 @@ class DeezerGQLClient(DeezerBaseClient):
3881
3952
  edges {
3882
3953
  cursor
3883
3954
  node {
3884
- ...PodcastFields
3885
- }
3886
- }
3887
- pageInfo {
3888
- ...PageInfoFields
3889
- }
3890
- }
3891
- podcastEpisodes(first: $podcastEpisodesFirst) {
3892
- edges {
3893
- cursor
3894
- node {
3895
- ...PodcastEpisodeFields
3955
+ id
3956
+ displayTitle
3957
+ cover {
3958
+ id
3959
+ urls(pictureRequest: {width: 264, height: 264})
3960
+ }
3961
+ isFavorite
3896
3962
  }
3897
3963
  }
3898
3964
  pageInfo {
@@ -3903,153 +3969,10 @@ class DeezerGQLClient(DeezerBaseClient):
3903
3969
  }
3904
3970
  }
3905
3971
 
3906
- fragment AlbumFields on Album {
3907
- id
3908
- displayTitle
3909
- type
3910
- cover {
3911
- id
3912
- urls(pictureRequest: {width: 264, height: 264})
3913
- }
3914
- contributors(first: 5, roles: [MAIN]) {
3915
- edges {
3916
- node {
3917
- ... on Artist {
3918
- id
3919
- name
3920
- }
3921
- }
3922
- }
3923
- }
3924
- releaseDate
3925
- isExplicit
3926
- isFavorite
3927
- fansCount
3928
- label
3929
- copyright
3930
- }
3931
-
3932
- fragment ArtistFields on Artist {
3933
- id
3934
- name
3935
- picture {
3936
- id
3937
- urls(pictureRequest: {width: 264, height: 264})
3938
- }
3939
- fansCount
3940
- isFavorite
3941
- bio {
3942
- summary
3943
- full
3944
- }
3945
- }
3946
-
3947
- fragment LivestreamFields on Livestream {
3948
- id
3949
- name
3950
- language
3951
- description
3952
- isOnStream
3953
- country
3954
- cover {
3955
- id
3956
- urls(pictureRequest: {width: 264, height: 264})
3957
- }
3958
- media {
3959
- url
3960
- codec {
3961
- type
3962
- bitrate
3963
- }
3964
- }
3965
- }
3966
-
3967
3972
  fragment PageInfoFields on PageInfo {
3968
3973
  hasNextPage
3969
3974
  endCursor
3970
3975
  }
3971
-
3972
- fragment PlaylistFields on Playlist {
3973
- id
3974
- title
3975
- picture {
3976
- id
3977
- urls(pictureRequest: {width: 264, height: 264})
3978
- }
3979
- estimatedTracksCount
3980
- fansCount
3981
- isFavorite
3982
- description
3983
- owner {
3984
- id
3985
- name
3986
- }
3987
- }
3988
-
3989
- fragment PodcastEpisodeFields on PodcastEpisode {
3990
- id
3991
- title
3992
- description
3993
- duration
3994
- cover {
3995
- id
3996
- urls(pictureRequest: {width: 264, height: 264})
3997
- }
3998
- publicationDate
3999
- media {
4000
- url
4001
- codec {
4002
- type
4003
- bitrate
4004
- }
4005
- }
4006
- }
4007
-
4008
- fragment PodcastFields on Podcast {
4009
- id
4010
- displayTitle
4011
- cover {
4012
- id
4013
- urls(pictureRequest: {width: 264, height: 264})
4014
- }
4015
- description
4016
- isExplicit
4017
- isFavorite
4018
- type
4019
- }
4020
-
4021
- fragment TrackFields on Track {
4022
- id
4023
- title
4024
- ISRC
4025
- diskInfo {
4026
- diskNumber
4027
- trackNumber
4028
- }
4029
- duration
4030
- isExplicit
4031
- isFavorite
4032
- popularity
4033
- album {
4034
- id
4035
- displayTitle
4036
- cover {
4037
- id
4038
- urls(pictureRequest: {width: 264, height: 264})
4039
- }
4040
- }
4041
- contributors(first: 10, roles: [MAIN, FEATURED]) {
4042
- edges {
4043
- roles
4044
- node {
4045
- ... on Artist {
4046
- id
4047
- name
4048
- }
4049
- }
4050
- }
4051
- }
4052
- }
4053
3976
  """)
4054
3977
  variables: dict[str, object] = {
4055
3978
  "query": query,
@@ -4059,7 +3982,6 @@ class DeezerGQLClient(DeezerBaseClient):
4059
3982
  "playlistsFirst": playlists_first,
4060
3983
  "livestreamsFirst": livestreams_first,
4061
3984
  "podcastsFirst": podcasts_first,
4062
- "podcastEpisodesFirst": podcast_episodes_first,
4063
3985
  }
4064
3986
  response = await self.execute(
4065
3987
  query=_query, operation_name="Search", variables=variables, **kwargs