Skip to content

Commit

Permalink
Add VkAudio.search_iter; Update VkAudio.search
Browse files Browse the repository at this point in the history
  • Loading branch information
python273 committed Aug 8, 2018
1 parent 5c92183 commit c6b6737
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 12 deletions.
39 changes: 29 additions & 10 deletions vk_api/audio.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"""

import re
from itertools import islice

from bs4 import BeautifulSoup

Expand Down Expand Up @@ -165,23 +166,41 @@ def search_user(self, owner_id=None, q=''):
if i['owner_id'] == owner_id
]

def search(self, q='', offset=0):
def search(self, q, count=50):
""" Искать аудиозаписи
:param q: запрос
:param count: количество
"""

return islice(self.search_iter(q), count)

def search_iter(self, q, offset=0):
""" Искать аудиозаписи (генератор)
:param q: запрос
:param offset: смещение
"""

response = self._vk.http.get(
'https://m.vk.com/audio',
params={
'act': 'search',
'q': q,
'offset': offset
}
)
while True:
response = self._vk.http.get(
'https://m.vk.com/audio',
params={
'act': 'search',
'q': q,
'offset': offset
}
)

tracks = scrap_data(response.text, self.user_id)

if not tracks:
break

for track in tracks:
yield track

return scrap_data(response.text, self.user_id)
offset += 50


def scrap_data(html, user_id):
Expand Down
4 changes: 2 additions & 2 deletions vk_api/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def get_all_iter(self, method, max_count, values=None, key='items',
:param key: ключ элементов, которые нужно получить
:type key: str
:param limit: ограничение на кол-во получаемых элементов,
:param limit: ограничение на количество получаемых элементов,
но может прийти больше
:type limit: int
Expand Down Expand Up @@ -127,7 +127,7 @@ def get_all_slow_iter(self, method, max_count, values=None, key='items',
:param key: ключ элементов, которые нужно получить
:type key: str
:param limit: ограничение на кол-во получаемых элементов,
:param limit: ограничение на количество получаемых элементов,
но может прийти больше
:type limit: int
Expand Down

0 comments on commit c6b6737

Please sign in to comment.