Commit da9d297e authored by nextime's avatar nextime

Re-add script

parent 3c431578
Pipeline #163 canceled with stages
import asyncio
from playwright.async_api import async_playwright
import argparse
import os
from datetime import datetime
async def monitor_streamate(log_path):
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp("http://localhost:9222")
while True:
contexts = browser.contexts
for context in contexts:
for page in context.pages:
if "performerclient.streamatemodels.com" in page.url:
print(f"Found Streamate tab")
await monitor_requests(page, log_path)
await asyncio.sleep(5) # Check every 5 seconds
async def monitor_requests(page, log_path):
async def log_request(request):
if request.resource_type not in ['document', 'image', 'font', 'stylesheet']:
log_entry = f"[{datetime.now()}] Request: {request.method} {request.url}\n"
with open(log_path, 'a') as f:
f.write(log_entry)
async def log_response(response):
#print(await response.body())
#print(response.request.resource_type)
#if response.request.resource_type not in ['document', 'image', 'font', 'stylesheet']:
if response.request.resource_type in ['xhr'] and not response.url.endswith(".mp3"):
log_entry = f"[{datetime.now()}] Response: {response.status} {response.url} -> BODY: "
log_body = await response.body()
with open(log_path, 'a') as f:
f.write(log_entry)
print(log_body)
f.write(str(log_body))
f.write("\n\n")
page.on("request", log_request)
page.on("response", log_response)
while True:
await asyncio.sleep(1)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Monitor Streamate requests")
parser.add_argument("--log_path", type=str, default="streamate_requests.log",
help="Path to the log file")
args = parser.parse_args()
log_dir = os.path.dirname(args.log_path)
if log_dir and not os.path.exists(log_dir):
os.makedirs(log_dir)
asyncio.run(monitor_streamate(args.log_path))
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