@@ -16,15 +16,27 @@ class VkAudio:
1616 def __init__ (self , vk ):
1717 self ._vk = vk
1818
19- def get (self , owner_id , offset = 0 ):
19+ def get (self , owner_id = None , album_id = None , offset = 0 ):
2020 """ Получить список аудиозаписей пользователя
2121
2222 :param owner_id: ID владельца (отрицательные значения для групп)
23+ :param album_id: ID альбома (отрицательные значения для групп)
2324 :param offset: смещение
2425 """
2526
27+ if owner_id is None and album_id is None :
28+ raise TypeError ("get() missing 1 required argument: 'album_id' or 'owner_id'" )
29+ elif owner_id is not None and album_id is not None :
30+ raise TypeError ("get() too many arguments" )
31+
32+ id = owner_id
33+ url = "https://m.vk.com/audios{}"
34+ if album_id is not None :
35+ id = album_id
36+ url = "https://m.vk.com/audio?act=audio_playlist{}"
37+
2638 response = self ._vk .http .get (
27- 'https://m.vk.com/audios{}' . format (owner_id ),
39+ url . format (id ),
2840 params = {
2941 'offset' : offset
3042 },
@@ -34,7 +46,7 @@ def get(self, owner_id, offset=0):
3446 if not response .text :
3547 raise AccessDenied (
3648 'You don\' t have permissions to browse {}\' s audio' .format (
37- owner_id
49+ id
3850 )
3951 )
4052
@@ -92,8 +104,7 @@ def scrap_data(html):
92104
93105 soup = BeautifulSoup (html , 'html.parser' )
94106 tracks = []
95-
96- for audio in soup .find_all ('div' , {'class' : 'audio_item ai_has_btn' }):
107+ for audio in soup .find_all ('div' , {'class' : 'audio_item' }):
97108 ai_artist = audio .select ('.ai_artist' )
98109 artist = ai_artist [0 ].text
99110 link = audio .select ('.ai_body' )[0 ].input ['value' ]
0 commit comments