Commit b8a231ca authored by nextime's avatar nextime

Playwright...

parent a5d8432d
......@@ -11,12 +11,21 @@ logging.getLogger(__name__)
async def monitor_stream(log_path, domain):
async with async_playwright() as p:
browser_is_pw = False
try:
browser = await p.chromium.connect_over_cdp("http://localhost:9222")
except:
user_data_dir = './user-data'
cont = await p.chromium.launch_persistent_context(user_data_dir, headless=False, args=["--disable-infobars", "--disable-features=Antaniu"], ignore_default_args=["--enable-automation", "--no-sandbox"],)
cont = await p.chromium.launch_persistent_context(user_data_dir,
#viewport=None,
headless=False,
args=[
"--disable-infobars",
#"--disable-features=Antaniu"
],
ignore_default_args=["--enable-automation", "--no-sandbox"],)
pages = cont.pages
browser_is_pw = True
if pages:
page = pages[0]
else:
......@@ -26,6 +35,10 @@ async def monitor_stream(log_path, domain):
logger.info("Browser session retained")
#await browser.close()
browser = cont.browser
bw = 0
dw = 0
bh = 0
bw = 0
while True:
browser = cont.browser
if browser:
......@@ -33,12 +46,41 @@ async def monitor_stream(log_path, domain):
else:
contexts = [cont]
for context in contexts:
logger.debug("@@@@@@@@@@@ NEW CONTEXT @@@@@@@@")
if browser_is_pw:
sizedone=False
for page in context.pages:
logger.info("newpagess----------------")
if browser_is_pw and not sizedone:
w = await page.evaluate('window.outerWidth')
h = await page.evaluate('window.outerHeight')
if bw==0 and bh==0:
tw = page.viewport_size["width"]
th = page.viewport_size["height"]
dw = w-tw
dh = h-th
logger.info("ViewPort difference: %d %d", dw, dh)
elif bw!=w or bh!=h:
logger.info("outerWindow detected: %d %d", w, h)
logger.info("ViewPort difference: %d %d", dw, dh)
logger.info("Change ViewPort Size: %d %d", w-dw, h-dh)
await page.set_viewport_size({"width": w-dw, "height": h-dh})
# XXX I NEED TO CHANGE THE VIEWPORT OF ALL PAGES OR IT
# GET CONFUSED. EASY: TODO: USE A FUCKING TATE MACHINE
sizedone=True
bw = w
bh = h
#logger.info("Size: %d %d", w, h)
if domain in page.url:
print(f"Found Streamate tab")
logger.info(f"Found Streamate tab")
# XXX THIS IS FUCKONG BLOCKING, TODO: RAKE IT OUT AND PUT THE
# WHOLE THING IN A STATE MACHINE
await monitor_requests(page, log_path)
await asyncio.sleep(5) # Check every 5 seconds
# XXX TODO: I ALREADY SAID MAKE A FUCKING STATE MACHINE?
logger.info("PORCDIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\b\b")
await asyncio.sleep(3) # Check every 0.1 seconds
async def monitor_requests(page, log_path):
async def log_request(request):
if request.resource_type not in ['document', 'image', 'font', 'stylesheet']:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment