|
|
|
@ -63,6 +63,33 @@ class Browser(models.Model): |
|
|
|
super().delete() |
|
|
|
|
|
|
|
|
|
|
|
def get_tab(proxy, use_adblock=True): |
|
|
|
try: |
|
|
|
|
|
|
|
browser_connection = Browser.objects.get( |
|
|
|
proxy=proxy, use_adblock=use_adblock |
|
|
|
).connect() |
|
|
|
except Browser.DoesNotExist: |
|
|
|
browser_connection = start_browser(proxy=proxy, use_adblock=use_adblock) |
|
|
|
created_browser = Browser( |
|
|
|
address=browser_connection.address, proxy=proxy, use_adblock=use_adblock |
|
|
|
) |
|
|
|
created_browser.save() |
|
|
|
return browser_connection.create_tab() |
|
|
|
|
|
|
|
|
|
|
|
def cleanup_browsers(max_browsers=5): |
|
|
|
alive = 0 |
|
|
|
for browser in Browser.objects.all(): |
|
|
|
if alive < max_browsers: |
|
|
|
try: |
|
|
|
browser.connect() |
|
|
|
alive += 1 |
|
|
|
except Exception: |
|
|
|
browser.delete() |
|
|
|
else: |
|
|
|
if len(browser.connect().tabs) == 1: |
|
|
|
browser.delete() |
|
|
|
class PageRequestTask(models.Model): |
|
|
|
task_id = models.UUIDField(primary_key=True) |
|
|
|
_result = None |
|
|
|
|