Skip to content

Commit

Permalink
避免短时间内重复获取直播源地址。
Browse files Browse the repository at this point in the history
  • Loading branch information
RAiN committed Oct 24, 2022
1 parent 57fd8b0 commit 2d18bf3
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion real-url-proxy-server.py
Expand Up @@ -20,6 +20,7 @@
from threading import Timer, Lock
import argparse
from datetime import datetime
from time import sleep
from douyu import DouYu
from huya import huya
from bilibili import BiliBili
Expand Down Expand Up @@ -62,6 +63,7 @@ def __init__(self, room, auto_refresh_interval):
self.room = room
self.real_url = None
self.last_valid_real_url = None
self._extracting_real_url = False
self.auto_refresh_interval = auto_refresh_interval
self.last_refresh_time = datetime.min
if self.auto_refresh_interval > 0:
Expand Down Expand Up @@ -107,7 +109,18 @@ def _is_url_valid(self, url):

def get_real_url(self, bit_rate):
if self.real_url is None or bit_rate == 'refresh':
self._extract_real_url()
if not self._extracting_real_url:
RealUrlExtractor.lock.acquire()
self._extracting_real_url = True
try:
self._extract_real_url()
except:
pass
self._extracting_real_url = False
RealUrlExtractor.lock.release()
else:
while self._extracting_real_url:
sleep(100)

class HuYaRealUrlExtractor(RealUrlExtractor):
def __init__(self, room, auto_refresh_interval):
Expand Down

0 comments on commit 2d18bf3

Please sign in to comment.