Some refactoring to audio-fetcher.py

This commit is contained in:
2016-02-24 00:27:38 +03:00
parent 7b3d974603
commit bfcc32a3a2

View File

@@ -1,9 +1,17 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import json import json
import sys import sys
import time import time
import vk_api import vk_api
def captcha_handler(captcha):
key = input("Enter Captcha {0}: ".format(captcha.get_url())).strip()
return captcha.try_again(key)
# getting pazans # getting pazans
pazanIds = None pazanIds = None
pazansFileName = sys.argv[1] pazansFileName = sys.argv[1]
@@ -11,27 +19,23 @@ with open(pazansFileName, "r") as file:
jsonData = json.loads(file.read()) jsonData = json.loads(file.read())
pazanIds = [item[0] for item in sorted(jsonData.items(), key=lambda item: len(item[1]), reverse=True)] pazanIds = [item[0] for item in sorted(jsonData.items(), key=lambda item: len(item[1]), reverse=True)]
# getting music
def captcha_handler(captcha):
key = input("Enter Captcha {0}: ".format(captcha.get_url())).strip()
return captcha.try_again(key)
vk = vk_api.VkApi(token=sys.argv[3], app_id=sys.argv[4], captcha_handler=captcha_handler) vk = vk_api.VkApi(token=sys.argv[3], app_id=sys.argv[4], captcha_handler=captcha_handler)
for index, pazanId in enumerate(pazanIds, start=(int(sys.argv[5]) if len(sys.argv) > 5 else 0)): for index, pazanId in enumerate(pazanIds, start=(int(sys.argv[5]) if len(sys.argv) > 5 else 0)):
done = False done = False
while not done: while not done:
try: try:
print(index, pazanId)
pazanSongs = [] pazanSongs = []
# jsonData = vk.method("audio.get", {"owner_id": pazanId, "need_user": 0, "count": 100})
print(index, pazanId)
jsonData = vk.method("execute.getMusic", {"id": pazanId}) jsonData = vk.method("execute.getMusic", {"id": pazanId})
for audio in jsonData["items"]: for audio in jsonData["items"]:
pazanSong = { pazanSong = {
"artist": audio["artist"], "artist" : audio["artist"],
"title": audio["title"], "title" : audio["title"],
"genre_id": audio.get("genre_id", None), "genre_id": audio.get("genre_id", None),
"url": audio["url"], "url" : audio["url"],
} }
pazanSongs.append(pazanSong) pazanSongs.append(pazanSong)
with open(sys.argv[2], "a", encoding="utf-8") as file: with open(sys.argv[2], "a", encoding="utf-8") as file: