diff --git a/servers/streamsb.json b/servers/streamsb.json index d2a6e265..efa87696 100644 --- a/servers/streamsb.json +++ b/servers/streamsb.json @@ -26,5 +26,11 @@ "label": "@70708", "type": "bool", "visible": true + },{ + "default": 16, + "enabled": true, + "id": "number", + "type": "int", + "visible": false }] } \ No newline at end of file diff --git a/servers/streamsb.py b/servers/streamsb.py index bf68d658..29adc0e2 100644 --- a/servers/streamsb.py +++ b/servers/streamsb.py @@ -1,5 +1,5 @@ from core import httptools -from platformcode import config, logger +from platformcode import config, logger, platformtools import random, string import codecs @@ -9,9 +9,25 @@ def get_sources(page_url): rand1 = "".join([random.choice(string.ascii_letters) for y in range(12)]) rand2 = "".join([random.choice(string.ascii_letters) for y in range(12)]) _0x470d0b = '{}||{}||{}||streamsb'.format(rand1, code, rand2) - sources = 'https://streamas.cloud/sources15/' + codecs.getencoder('hex')(_0x470d0b.encode())[0].decode() + + prefix = 'https://streamas.cloud/sources' + suffix = '/' + codecs.getencoder('hex')(_0x470d0b.encode())[0].decode() + number = config.get_setting('number', server='streamsb') + sources = prefix + str(number) + suffix # does not lite other headers different than watchsb and useragent ret = httptools.downloadpage(sources, headers={'watchsb': 'sbstream', 'User-Agent': httptools.get_user_agent()}, replace_headers=True).json + if not ret: # probably number changed + wait = platformtools.dialog_progress('StreamSB', config.get_localized_string(60293)) + for number in range(100): + if httptools.downloadpage(prefix + str(number) + '/').code == 200: + config.set_setting('number', server='streamsb', value=number) + sources = prefix + str(number) + suffix + # does not lite other headers different than watchsb and useragent + ret = httptools.downloadpage(sources, + headers={'watchsb': 'sbstream', 'User-Agent': httptools.get_user_agent()}, + replace_headers=True).json + break + wait.close() logger.debug(ret) return ret