deezer-python-gql 0.15.0__tar.gz → 0.17.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.15.0/deezer_python_gql.egg-info → deezer_python_gql-0.17.0}/PKG-INFO +1 -1
  2. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/__init__.py +24 -0
  3. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/client.py +157 -34
  4. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/fragments.py +13 -0
  5. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_track.py +49 -3
  6. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/search.py +15 -0
  7. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0/deezer_python_gql.egg-info}/PKG-INFO +1 -1
  8. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/pyproject.toml +1 -1
  9. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/LICENSE +0 -0
  10. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/MANIFEST.in +0 -0
  11. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/README.md +0 -0
  12. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/__init__.py +0 -0
  13. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/base_client.py +0 -0
  14. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/add_album_to_favorite.py +0 -0
  15. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/add_artist_to_favorite.py +0 -0
  16. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/add_audiobook_to_favorite.py +0 -0
  17. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/add_playlist_to_favorite.py +0 -0
  18. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/add_podcast_to_favorite.py +0 -0
  19. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/add_track_to_favorite.py +0 -0
  20. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/add_tracks_to_playlist.py +0 -0
  21. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/base_client.py +0 -0
  22. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/base_model.py +0 -0
  23. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/bookmark_podcast_episode.py +0 -0
  24. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/create_playlist.py +0 -0
  25. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/delete_playlist.py +0 -0
  26. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/enums.py +0 -0
  27. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_album.py +0 -0
  28. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_artist.py +0 -0
  29. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_artist_mix.py +0 -0
  30. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_audiobook.py +0 -0
  31. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_audiobook_chapter.py +0 -0
  32. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_charts.py +0 -0
  33. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_favorite_albums.py +0 -0
  34. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_favorite_artists.py +0 -0
  35. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_favorite_audiobooks.py +0 -0
  36. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_favorite_playlists.py +0 -0
  37. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_favorite_podcasts.py +0 -0
  38. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_favorite_tracks.py +0 -0
  39. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_flow.py +0 -0
  40. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_flow_batch.py +0 -0
  41. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_flow_config_tracks.py +0 -0
  42. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_flow_configs.py +0 -0
  43. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_livestream.py +0 -0
  44. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_made_for_me.py +0 -0
  45. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_me.py +0 -0
  46. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_music_together_affinity.py +0 -0
  47. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_music_together_group.py +0 -0
  48. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_music_together_groups.py +0 -0
  49. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_personal_tracks.py +0 -0
  50. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_playlist.py +0 -0
  51. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_podcast.py +0 -0
  52. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_podcast_episode.py +0 -0
  53. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_podcast_episode_bookmarks.py +0 -0
  54. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_podcast_episodes_by_ids.py +0 -0
  55. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_recently_played.py +0 -0
  56. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_recommendations.py +0 -0
  57. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_similar_artists.py +0 -0
  58. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_similar_tracks.py +0 -0
  59. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_smart_tracklist.py +0 -0
  60. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_track_mix.py +0 -0
  61. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_user_charts.py +0 -0
  62. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/get_user_playlists.py +0 -0
  63. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/input_types.py +0 -0
  64. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/mark_as_not_played_podcast_episode.py +0 -0
  65. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/mark_as_played_podcast_episode.py +0 -0
  66. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/music_together_create_group.py +0 -0
  67. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/music_together_generate_group_name.py +0 -0
  68. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/music_together_join_group.py +0 -0
  69. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/music_together_leave_group.py +0 -0
  70. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/music_together_refresh_suggested_tracklist.py +0 -0
  71. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/music_together_update_group_settings.py +0 -0
  72. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/remove_album_from_favorite.py +0 -0
  73. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/remove_artist_from_favorite.py +0 -0
  74. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/remove_audiobook_from_favorite.py +0 -0
  75. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/remove_playlist_from_favorite.py +0 -0
  76. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/remove_podcast_from_favorite.py +0 -0
  77. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/remove_track_from_favorite.py +0 -0
  78. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/remove_tracks_from_playlist.py +0 -0
  79. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/search_flows.py +0 -0
  80. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/unbookmark_podcast_episode.py +0 -0
  81. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/generated/update_playlist.py +0 -0
  82. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql/py.typed +0 -0
  83. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql.egg-info/SOURCES.txt +0 -0
  84. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql.egg-info/dependency_links.txt +0 -0
  85. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql.egg-info/not-zip-safe +0 -0
  86. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql.egg-info/requires.txt +0 -0
  87. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/deezer_python_gql.egg-info/top_level.txt +0 -0
  88. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.0}/setup.cfg +0 -0
  89. {deezer_python_gql-0.15.0 → deezer_python_gql-0.17.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.15.0
3
+ Version: 0.17.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
@@ -94,6 +94,9 @@ from .fragments import (
94
94
  TrackFieldsContributorsEdges,
95
95
  TrackFieldsContributorsEdgesNodeArtist,
96
96
  TrackFieldsDiskInfo,
97
+ TrackFieldsMedia,
98
+ TrackFieldsMediaRights,
99
+ TrackFieldsMediaRightsSub,
97
100
  )
98
101
  from .get_album import (
99
102
  GetAlbum,
@@ -448,6 +451,12 @@ from .get_smart_tracklist import (
448
451
  from .get_track import (
449
452
  GetTrack,
450
453
  GetTrackTrack,
454
+ GetTrackTrackAlbum,
455
+ GetTrackTrackAlbumCover,
456
+ GetTrackTrackContributors,
457
+ GetTrackTrackContributorsEdges,
458
+ GetTrackTrackContributorsEdgesNodeArtist,
459
+ GetTrackTrackDiskInfo,
451
460
  GetTrackTrackLyrics,
452
461
  GetTrackTrackLyricsSynchronizedLines,
453
462
  GetTrackTrackMedia,
@@ -606,6 +615,9 @@ from .search import (
606
615
  SearchSearchResultsTracksEdgesNodeContributors,
607
616
  SearchSearchResultsTracksEdgesNodeContributorsEdges,
608
617
  SearchSearchResultsTracksEdgesNodeContributorsEdgesNodeArtist,
618
+ SearchSearchResultsTracksEdgesNodeMedia,
619
+ SearchSearchResultsTracksEdgesNodeMediaRights,
620
+ SearchSearchResultsTracksEdgesNodeMediaRightsSub,
609
621
  SearchSearchResultsTracksPageInfo,
610
622
  )
611
623
  from .search_flows import (
@@ -975,6 +987,12 @@ __all__ = [
975
987
  "GetTrackMixTrackMixTracks",
976
988
  "GetTrackMixTrackMixTracksTrack",
977
989
  "GetTrackTrack",
990
+ "GetTrackTrackAlbum",
991
+ "GetTrackTrackAlbumCover",
992
+ "GetTrackTrackContributors",
993
+ "GetTrackTrackContributorsEdges",
994
+ "GetTrackTrackContributorsEdgesNodeArtist",
995
+ "GetTrackTrackDiskInfo",
978
996
  "GetTrackTrackLyrics",
979
997
  "GetTrackTrackLyricsSynchronizedLines",
980
998
  "GetTrackTrackMedia",
@@ -1118,6 +1136,9 @@ __all__ = [
1118
1136
  "SearchSearchResultsTracksEdgesNodeContributors",
1119
1137
  "SearchSearchResultsTracksEdgesNodeContributorsEdges",
1120
1138
  "SearchSearchResultsTracksEdgesNodeContributorsEdgesNodeArtist",
1139
+ "SearchSearchResultsTracksEdgesNodeMedia",
1140
+ "SearchSearchResultsTracksEdgesNodeMediaRights",
1141
+ "SearchSearchResultsTracksEdgesNodeMediaRightsSub",
1121
1142
  "SearchSearchResultsTracksPageInfo",
1122
1143
  "TrackContributorRoles",
1123
1144
  "TrackFields",
@@ -1127,6 +1148,9 @@ __all__ = [
1127
1148
  "TrackFieldsContributorsEdges",
1128
1149
  "TrackFieldsContributorsEdgesNodeArtist",
1129
1150
  "TrackFieldsDiskInfo",
1151
+ "TrackFieldsMedia",
1152
+ "TrackFieldsMediaRights",
1153
+ "TrackFieldsMediaRightsSub",
1130
1154
  "UnbookmarkPodcastEpisode",
1131
1155
  "UnbookmarkPodcastEpisodeUnbookmarkPodcastEpisode",
1132
1156
  "UnbookmarkPodcastEpisodeUnbookmarkPodcastEpisodeEpisode",
@@ -657,6 +657,13 @@ class DeezerGQLClient(DeezerBaseClient):
657
657
  }
658
658
  }
659
659
  }
660
+ media {
661
+ rights {
662
+ sub {
663
+ available
664
+ }
665
+ }
666
+ }
660
667
  }
661
668
  """)
662
669
  variables: dict[str, object] = {
@@ -796,6 +803,13 @@ class DeezerGQLClient(DeezerBaseClient):
796
803
  }
797
804
  }
798
805
  }
806
+ media {
807
+ rights {
808
+ sub {
809
+ available
810
+ }
811
+ }
812
+ }
799
813
  }
800
814
  """)
801
815
  variables: dict[str, object] = {
@@ -856,6 +870,13 @@ class DeezerGQLClient(DeezerBaseClient):
856
870
  }
857
871
  }
858
872
  }
873
+ media {
874
+ rights {
875
+ sub {
876
+ available
877
+ }
878
+ }
879
+ }
859
880
  }
860
881
  """)
861
882
  variables: dict[str, object] = {"artistIds": artist_ids, "limit": limit}
@@ -1203,6 +1224,13 @@ class DeezerGQLClient(DeezerBaseClient):
1203
1224
  }
1204
1225
  }
1205
1226
  }
1227
+ media {
1228
+ rights {
1229
+ sub {
1230
+ available
1231
+ }
1232
+ }
1233
+ }
1206
1234
  }
1207
1235
  """)
1208
1236
  variables: dict[str, object] = {
@@ -1539,6 +1567,13 @@ class DeezerGQLClient(DeezerBaseClient):
1539
1567
  }
1540
1568
  }
1541
1569
  }
1570
+ media {
1571
+ rights {
1572
+ sub {
1573
+ available
1574
+ }
1575
+ }
1576
+ }
1542
1577
  }
1543
1578
  """)
1544
1579
  variables: dict[str, object] = {"first": first, "after": after}
@@ -1602,6 +1637,13 @@ class DeezerGQLClient(DeezerBaseClient):
1602
1637
  }
1603
1638
  }
1604
1639
  }
1640
+ media {
1641
+ rights {
1642
+ sub {
1643
+ available
1644
+ }
1645
+ }
1646
+ }
1605
1647
  }
1606
1648
  """)
1607
1649
  variables: dict[str, object] = {}
@@ -1677,6 +1719,13 @@ class DeezerGQLClient(DeezerBaseClient):
1677
1719
  }
1678
1720
  }
1679
1721
  }
1722
+ media {
1723
+ rights {
1724
+ sub {
1725
+ available
1726
+ }
1727
+ }
1728
+ }
1680
1729
  }
1681
1730
  """)
1682
1731
  variables: dict[str, object] = {}
@@ -1739,6 +1788,13 @@ class DeezerGQLClient(DeezerBaseClient):
1739
1788
  }
1740
1789
  }
1741
1790
  }
1791
+ media {
1792
+ rights {
1793
+ sub {
1794
+ available
1795
+ }
1796
+ }
1797
+ }
1742
1798
  }
1743
1799
  """)
1744
1800
  variables: dict[str, object] = {"flowConfigId": flow_config_id}
@@ -2016,6 +2072,13 @@ class DeezerGQLClient(DeezerBaseClient):
2016
2072
  }
2017
2073
  }
2018
2074
  }
2075
+ media {
2076
+ rights {
2077
+ sub {
2078
+ available
2079
+ }
2080
+ }
2081
+ }
2019
2082
  }
2020
2083
  """)
2021
2084
  variables: dict[str, object] = {
@@ -2170,6 +2233,13 @@ class DeezerGQLClient(DeezerBaseClient):
2170
2233
  }
2171
2234
  }
2172
2235
  }
2236
+ media {
2237
+ rights {
2238
+ sub {
2239
+ available
2240
+ }
2241
+ }
2242
+ }
2173
2243
  }
2174
2244
  """)
2175
2245
  variables: dict[str, object] = {
@@ -2308,6 +2378,13 @@ class DeezerGQLClient(DeezerBaseClient):
2308
2378
  }
2309
2379
  }
2310
2380
  }
2381
+ media {
2382
+ rights {
2383
+ sub {
2384
+ available
2385
+ }
2386
+ }
2387
+ }
2311
2388
  }
2312
2389
  """)
2313
2390
  variables: dict[str, object] = {"first": first, "after": after}
@@ -2401,6 +2478,13 @@ class DeezerGQLClient(DeezerBaseClient):
2401
2478
  }
2402
2479
  }
2403
2480
  }
2481
+ media {
2482
+ rights {
2483
+ sub {
2484
+ available
2485
+ }
2486
+ }
2487
+ }
2404
2488
  }
2405
2489
  """)
2406
2490
  variables: dict[str, object] = {
@@ -2963,6 +3047,13 @@ class DeezerGQLClient(DeezerBaseClient):
2963
3047
  }
2964
3048
  }
2965
3049
  }
3050
+ media {
3051
+ rights {
3052
+ sub {
3053
+ available
3054
+ }
3055
+ }
3056
+ }
2966
3057
  }
2967
3058
  """)
2968
3059
  variables: dict[str, object] = {
@@ -3075,6 +3166,13 @@ class DeezerGQLClient(DeezerBaseClient):
3075
3166
  }
3076
3167
  }
3077
3168
  }
3169
+ media {
3170
+ rights {
3171
+ sub {
3172
+ available
3173
+ }
3174
+ }
3175
+ }
3078
3176
  }
3079
3177
  """)
3080
3178
  variables: dict[str, object] = {"trackId": track_id, "nb": nb}
@@ -3154,6 +3252,13 @@ class DeezerGQLClient(DeezerBaseClient):
3154
3252
  }
3155
3253
  }
3156
3254
  }
3255
+ media {
3256
+ rights {
3257
+ sub {
3258
+ available
3259
+ }
3260
+ }
3261
+ }
3157
3262
  }
3158
3263
  """)
3159
3264
  variables: dict[str, object] = {
@@ -3174,7 +3279,37 @@ class DeezerGQLClient(DeezerBaseClient):
3174
3279
  query = gql("""
3175
3280
  query GetTrack($trackId: String!) {
3176
3281
  track(trackId: $trackId) {
3177
- ...TrackFields
3282
+ id
3283
+ title
3284
+ ISRC
3285
+ diskInfo {
3286
+ diskNumber
3287
+ trackNumber
3288
+ }
3289
+ duration
3290
+ isExplicit
3291
+ isFavorite
3292
+ popularity
3293
+ album {
3294
+ id
3295
+ displayTitle
3296
+ cover {
3297
+ id
3298
+ urls(pictureRequest: {width: 264, height: 264})
3299
+ }
3300
+ }
3301
+ contributors(first: 10, roles: [MAIN, FEATURED]) {
3302
+ edges {
3303
+ roles
3304
+ node {
3305
+ __typename
3306
+ ... on Artist {
3307
+ id
3308
+ name
3309
+ }
3310
+ }
3311
+ }
3312
+ }
3178
3313
  isAtmos
3179
3314
  releaseDate
3180
3315
  media {
@@ -3212,39 +3347,6 @@ class DeezerGQLClient(DeezerBaseClient):
3212
3347
  }
3213
3348
  }
3214
3349
  }
3215
-
3216
- fragment TrackFields on Track {
3217
- id
3218
- title
3219
- ISRC
3220
- diskInfo {
3221
- diskNumber
3222
- trackNumber
3223
- }
3224
- duration
3225
- isExplicit
3226
- isFavorite
3227
- popularity
3228
- album {
3229
- id
3230
- displayTitle
3231
- cover {
3232
- id
3233
- urls(pictureRequest: {width: 264, height: 264})
3234
- }
3235
- }
3236
- contributors(first: 10, roles: [MAIN, FEATURED]) {
3237
- edges {
3238
- roles
3239
- node {
3240
- ... on Artist {
3241
- id
3242
- name
3243
- }
3244
- }
3245
- }
3246
- }
3247
- }
3248
3350
  """)
3249
3351
  variables: dict[str, object] = {"trackId": track_id}
3250
3352
  response = await self.execute(
@@ -3306,6 +3408,13 @@ class DeezerGQLClient(DeezerBaseClient):
3306
3408
  }
3307
3409
  }
3308
3410
  }
3411
+ media {
3412
+ rights {
3413
+ sub {
3414
+ available
3415
+ }
3416
+ }
3417
+ }
3309
3418
  }
3310
3419
  """)
3311
3420
  variables: dict[str, object] = {
@@ -3443,6 +3552,13 @@ class DeezerGQLClient(DeezerBaseClient):
3443
3552
  }
3444
3553
  }
3445
3554
  }
3555
+ media {
3556
+ rights {
3557
+ sub {
3558
+ available
3559
+ }
3560
+ }
3561
+ }
3446
3562
  }
3447
3563
  """)
3448
3564
  variables: dict[str, object] = {
@@ -3901,6 +4017,13 @@ class DeezerGQLClient(DeezerBaseClient):
3901
4017
  }
3902
4018
  }
3903
4019
  }
4020
+ media {
4021
+ rights {
4022
+ sub {
4023
+ available
4024
+ }
4025
+ }
4026
+ }
3904
4027
  }
3905
4028
  }
3906
4029
  pageInfo {
@@ -224,6 +224,7 @@ class TrackFields(BaseModel):
224
224
  popularity: Optional[float]
225
225
  album: Optional["TrackFieldsAlbum"]
226
226
  contributors: "TrackFieldsContributors"
227
+ media: Optional["TrackFieldsMedia"]
227
228
 
228
229
 
229
230
  class TrackFieldsDiskInfo(BaseModel):
@@ -259,6 +260,18 @@ class TrackFieldsContributorsEdgesNodeArtist(BaseModel):
259
260
  name: str
260
261
 
261
262
 
263
+ class TrackFieldsMedia(BaseModel):
264
+ rights: "TrackFieldsMediaRights"
265
+
266
+
267
+ class TrackFieldsMediaRights(BaseModel):
268
+ sub: Optional["TrackFieldsMediaRightsSub"]
269
+
270
+
271
+ class TrackFieldsMediaRightsSub(BaseModel):
272
+ available: bool
273
+
274
+
262
275
  AlbumFields.model_rebuild()
263
276
  ArtistFields.model_rebuild()
264
277
  AudiobookChapterFields.model_rebuild()
@@ -1,25 +1,68 @@
1
1
  # Generated by ariadne-codegen
2
2
  # Source: queries
3
3
 
4
- from typing import Any, Optional
4
+ from typing import Any, Literal, Optional, Union
5
5
 
6
6
  from pydantic import Field
7
7
 
8
8
  from .base_model import BaseModel
9
- from .fragments import TrackFields
9
+ from .enums import TrackContributorRoles
10
10
 
11
11
 
12
12
  class GetTrack(BaseModel):
13
13
  track: Optional["GetTrackTrack"]
14
14
 
15
15
 
16
- class GetTrackTrack(TrackFields):
16
+ class GetTrackTrack(BaseModel):
17
+ id: str
18
+ title: str
19
+ isrc: Optional[str] = Field(alias="ISRC")
20
+ disk_info: Optional["GetTrackTrackDiskInfo"] = Field(alias="diskInfo")
21
+ duration: int
22
+ is_explicit: bool = Field(alias="isExplicit")
23
+ is_favorite: Optional[bool] = Field(alias="isFavorite")
24
+ popularity: Optional[float]
25
+ album: Optional["GetTrackTrackAlbum"]
26
+ contributors: "GetTrackTrackContributors"
17
27
  is_atmos: bool = Field(alias="isAtmos")
18
28
  release_date: Optional[Any] = Field(alias="releaseDate")
19
29
  media: Optional["GetTrackTrackMedia"]
20
30
  lyrics: Optional["GetTrackTrackLyrics"]
21
31
 
22
32
 
33
+ class GetTrackTrackDiskInfo(BaseModel):
34
+ disk_number: Optional[int] = Field(alias="diskNumber")
35
+ track_number: Optional[int] = Field(alias="trackNumber")
36
+
37
+
38
+ class GetTrackTrackAlbum(BaseModel):
39
+ id: str
40
+ display_title: str = Field(alias="displayTitle")
41
+ cover: Optional["GetTrackTrackAlbumCover"]
42
+
43
+
44
+ class GetTrackTrackAlbumCover(BaseModel):
45
+ id: str
46
+ urls: list[str]
47
+
48
+
49
+ class GetTrackTrackContributors(BaseModel):
50
+ edges: list["GetTrackTrackContributorsEdges"]
51
+
52
+
53
+ class GetTrackTrackContributorsEdges(BaseModel):
54
+ roles: list[TrackContributorRoles]
55
+ node: Union["GetTrackTrackContributorsEdgesNodeArtist",] = Field(
56
+ discriminator="typename__"
57
+ )
58
+
59
+
60
+ class GetTrackTrackContributorsEdgesNodeArtist(BaseModel):
61
+ typename__: Literal["Artist"] = Field(alias="__typename")
62
+ id: str
63
+ name: str
64
+
65
+
23
66
  class GetTrackTrackMedia(BaseModel):
24
67
  id: str
25
68
  version: str
@@ -71,6 +114,9 @@ class GetTrackTrackLyricsSynchronizedLines(BaseModel):
71
114
 
72
115
  GetTrack.model_rebuild()
73
116
  GetTrackTrack.model_rebuild()
117
+ GetTrackTrackAlbum.model_rebuild()
118
+ GetTrackTrackContributors.model_rebuild()
119
+ GetTrackTrackContributorsEdges.model_rebuild()
74
120
  GetTrackTrackMedia.model_rebuild()
75
121
  GetTrackTrackMediaRights.model_rebuild()
76
122
  GetTrackTrackLyrics.model_rebuild()
@@ -45,6 +45,7 @@ class SearchSearchResultsTracksEdgesNode(BaseModel):
45
45
  is_favorite: Optional[bool] = Field(alias="isFavorite")
46
46
  album: Optional["SearchSearchResultsTracksEdgesNodeAlbum"]
47
47
  contributors: "SearchSearchResultsTracksEdgesNodeContributors"
48
+ media: Optional["SearchSearchResultsTracksEdgesNodeMedia"]
48
49
 
49
50
 
50
51
  class SearchSearchResultsTracksEdgesNodeAlbum(BaseModel):
@@ -75,6 +76,18 @@ class SearchSearchResultsTracksEdgesNodeContributorsEdgesNodeArtist(BaseModel):
75
76
  name: str
76
77
 
77
78
 
79
+ class SearchSearchResultsTracksEdgesNodeMedia(BaseModel):
80
+ rights: "SearchSearchResultsTracksEdgesNodeMediaRights"
81
+
82
+
83
+ class SearchSearchResultsTracksEdgesNodeMediaRights(BaseModel):
84
+ sub: Optional["SearchSearchResultsTracksEdgesNodeMediaRightsSub"]
85
+
86
+
87
+ class SearchSearchResultsTracksEdgesNodeMediaRightsSub(BaseModel):
88
+ available: bool
89
+
90
+
78
91
  class SearchSearchResultsTracksPageInfo(PageInfoFields):
79
92
  pass
80
93
 
@@ -244,6 +257,8 @@ SearchSearchResultsTracksEdgesNode.model_rebuild()
244
257
  SearchSearchResultsTracksEdgesNodeAlbum.model_rebuild()
245
258
  SearchSearchResultsTracksEdgesNodeContributors.model_rebuild()
246
259
  SearchSearchResultsTracksEdgesNodeContributorsEdges.model_rebuild()
260
+ SearchSearchResultsTracksEdgesNodeMedia.model_rebuild()
261
+ SearchSearchResultsTracksEdgesNodeMediaRights.model_rebuild()
247
262
  SearchSearchResultsAlbums.model_rebuild()
248
263
  SearchSearchResultsAlbumsEdges.model_rebuild()
249
264
  SearchSearchResultsAlbumsEdgesNode.model_rebuild()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deezer-python-gql
3
- Version: 0.15.0
3
+ Version: 0.17.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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "deezer-python-gql"
3
- version = "0.15.0"
3
+ version = "0.17.0"
4
4
  description = "Async typed Python client for Deezer's Pipe GraphQL API."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"