Форум сайта python.su
import requests import subprocess import json import sys import threading import time from Queue import Queue numberOfViewers = int(sys.argv[1]) builderThreads = int(sys.argv[2]) startTime = time.time() numberOfSockets = 0 concurrent = 25 urls = [] urlsUsed = [] def getURL(): # Get tokens output = subprocess.Popen(["livestreamer", "twitch.tv/moba_rus", "-j"], stdout=subprocess.PIPE).communicate()[0] return json.loads(output)['streams']['worst']['url'] # Parse json and return the URL parameter def build(): # Builds a set of tokens, aka viewers global numberOfSockets global numberOfViewers while True: if numberOfSockets < numberOfViewers: numberOfSockets += 1 print "Building viewers " + str(numberOfSockets) + "/" + str(numberOfViewers) urls.append(getURL()) def view(): # Opens connections to send views global numberOfSockets while True: url=q.get() requests.head(url) if (url in urlsUsed): urls.remove(url) urlsUsed.remove(url) numberOfSockets -= 1 else: urlsUsed.append(url) q.task_done() if __name__ == '__main__': for i in range(0, builderThreads): threading.Thread(target = build).start() while True: while (numberOfViewers != numberOfSockets): # Wait until sockets are built time.sleep(1) q=Queue(concurrent*2) for i in range(concurrent): try: t=threading.Thread(target=view) t.daemon=True t.start() except: print 'thread error' try: for url in urls: print url q.put(url.strip()) q.join() except KeyboardInterrupt: sys.exit(1)
Отредактировано romzes96 (Июль 27, 2016 10:14:11)
Офлайн
print-ы без скобок?
print("Building viewers " + str(numberOfSockets) + "/" + str(numberOfViewers))
Офлайн
Stepan_MСпасибо большое за помощь. Вы мне помогли. Я исправил эту строку, после чего в коде оказалось ещё 2 подобные строки. Я всё исправил, спасибо Вам!
print-ы без скобок?
Офлайн
С этим разобрался. Это модуль который устанавливается отдельно.
Вот ссылка на ВИДЕО где все подробно описано.
Теперь у меня другая ошибка.
В 7 строке.
from Queue import Queue
ImportError: No module named ‘Queue’
Решаю дальше, у кого есть желание помогайте не стесняйтесь!)
Отредактировано romzes96 (Июль 27, 2016 20:03:24)
Офлайн
romzes96Вероятно, тоже нет этого модуля в системе и его нужно установить.
ImportError: No module named ‘Queue’
Офлайн
Stepan_MЯ загрузил эту библиотеку.
Офлайн
romzes96Этот модуль часть стандартной библиотеки. У вас питон третей версии, в нем этот модуль с маленькой буквы называется.
Я загрузил эту библиотеку.
Отредактировано PooH (Июль 28, 2016 19:02:54)
Офлайн