diff --git a/vk_api/audio.py b/vk_api/audio.py index e7330fd..3e08c2f 100644 --- a/vk_api/audio.py +++ b/vk_api/audio.py @@ -6,6 +6,8 @@ :copyright: (c) 2019 python273 """ +from pprint import pprint + import re import json import time @@ -31,7 +33,6 @@ class VkAudio(object): """ Модуль для получения аудиозаписей без использования официального API. - :param vk: Объект :class:`VkApi` """ @@ -88,7 +89,6 @@ def __init__(self, vk, convert_m3u8_links=True): def get_iter(self, owner_id=None, album_id=None, access_hash=None): """ Получить список аудиозаписей пользователя (по частям) - :param owner_id: ID владельца (отрицательные значения для групп) :param album_id: ID альбома :param access_hash: ACCESS_HASH альбома @@ -128,6 +128,8 @@ def get_iter(self, owner_id=None, album_id=None, access_hash=None): ids = scrap_ids( response['data'][0]['list'] ) + if not ids: + break tracks = scrap_tracks( ids, @@ -136,9 +138,6 @@ def get_iter(self, owner_id=None, album_id=None, access_hash=None): convert_m3u8_links=self.convert_m3u8_links ) - if not tracks: - break - for i in tracks: yield i @@ -149,7 +148,6 @@ def get_iter(self, owner_id=None, album_id=None, access_hash=None): def get(self, owner_id=None, album_id=None, access_hash=None): """ Получить список аудиозаписей пользователя - :param owner_id: ID владельца (отрицательные значения для групп) :param album_id: ID альбома :param access_hash: ACCESS_HASH альбома @@ -159,7 +157,6 @@ def get(self, owner_id=None, album_id=None, access_hash=None): def get_albums_iter(self, owner_id=None): """ Получить список альбомов пользователя (по частям) - :param owner_id: ID владельца (отрицательные значения для групп) """ @@ -198,7 +195,6 @@ def get_albums_iter(self, owner_id=None): def get_albums(self, owner_id=None): """ Получить список альбомов пользователя - :param owner_id: ID владельца (отрицательные значения для групп) """ @@ -206,7 +202,6 @@ def get_albums(self, owner_id=None): def search_user(self, owner_id=None, q=''): """ Искать по аудиозаписям пользователя - :param owner_id: ID владельца (отрицательные значения для групп) :param q: запрос """ @@ -254,7 +249,6 @@ def search_user(self, owner_id=None, q=''): def search(self, q, count=100, offset=0): """ Искать аудиозаписи - :param q: запрос :param count: количество :param offset: смещение @@ -264,9 +258,7 @@ def search(self, q, count=100, offset=0): def search_iter(self, q, offset=0): """ Искать аудиозаписи (генератор) - :param q: запрос - :param offset: смещение """ offset_left = 0 @@ -290,7 +282,10 @@ def search_iter(self, q, offset=0): ids = scrap_ids( json_response['payload'][1][1]['playlist']['list'] ) + if not ids: + break + #len(tracks) <= 10 if offset_left + len(ids) >= offset: if offset_left < offset: ids = ids[offset - offset_left:] @@ -302,12 +297,10 @@ def search_iter(self, q, offset=0): http=self._vk.http ) - if not tracks: - break - for track in tracks: yield track + offset_left += len(ids) response = self._vk.http.post( @@ -321,6 +314,7 @@ def search_iter(self, q, offset=0): ) json_response = json.loads(response.text.replace('