fix(berlin/immigration): prevent crashes on due to page.pause()
This commit is contained in:
+16
-6
@@ -38,6 +38,7 @@ def alert(text: str):
|
|||||||
dump_dir = Path('~/Desktop').expanduser() / 'immigration'
|
dump_dir = Path('~/Desktop').expanduser() / 'immigration'
|
||||||
dump_dir.mkdir(parents=True, exist_ok=True)
|
dump_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
|
||||||
async def check_slots(page: Page, retry_count: int = 1) -> list[datetime.datetime]:
|
async def check_slots(page: Page, retry_count: int = 1) -> list[datetime.datetime]:
|
||||||
await page.add_init_script('''Object.defineProperty(navigator, 'webdriver', { get: () => false })''')
|
await page.add_init_script('''Object.defineProperty(navigator, 'webdriver', { get: () => false })''')
|
||||||
window_id = random.randint(1000, 9999)
|
window_id = random.randint(1000, 9999)
|
||||||
@@ -96,13 +97,24 @@ async def check_slots(page: Page, retry_count: int = 1) -> list[datetime.datetim
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
if 'st=3' in page.url:
|
if 'st=3' in page.url:
|
||||||
alert('empty slot found')
|
dates = []
|
||||||
|
for el in await page.query_selector_all('.ui-datepicker-calendar td:not(.ui-datepicker-unselectable)'):
|
||||||
|
dates.append(
|
||||||
|
datetime.date(
|
||||||
|
year=int(await el.get_attribute('data-year')),
|
||||||
|
month=int(await el.get_attribute('data-month')),
|
||||||
|
day=int(await el.inner_text()),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
alert("\n".join(['empty slots found', *[it.isoformat() for it in dates]]))
|
||||||
|
|
||||||
now = int(datetime.datetime.now().timestamp())
|
now = int(datetime.datetime.now().timestamp())
|
||||||
html_path = dump_dir / f'immigration_{now}.html'
|
html_path = dump_dir / f'immigration_{now}.html'
|
||||||
html_path.write_text(await page.content())
|
html_path.write_text(await page.content())
|
||||||
await page.screenshot(path=dump_dir / f'immigration_{now}.png')
|
await page.screenshot(path=dump_dir / f'immigration_{now}.png')
|
||||||
|
|
||||||
await page.pause()
|
input()
|
||||||
|
|
||||||
input()
|
input()
|
||||||
|
|
||||||
@@ -112,9 +124,7 @@ def parse_args():
|
|||||||
arger.add_argument(
|
arger.add_argument(
|
||||||
'--headless', '--silent', '--quiet', action='store_true', dest='headless', help='Run in headless mode'
|
'--headless', '--silent', '--quiet', action='store_true', dest='headless', help='Run in headless mode'
|
||||||
)
|
)
|
||||||
arger.add_argument(
|
arger.add_argument('--retry-count', '--retry', type=int, default=1, help='Run in headless mode')
|
||||||
'--retry-count', '--retry', type=int, default=1, help='Run in headless mode'
|
|
||||||
)
|
|
||||||
|
|
||||||
args, _ = arger.parse_known_args()
|
args, _ = arger.parse_known_args()
|
||||||
return args
|
return args
|
||||||
@@ -130,7 +140,7 @@ async def main():
|
|||||||
return
|
return
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.exception('got an error')
|
logging.exception('got an error')
|
||||||
await page.pause()
|
input()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
Reference in New Issue
Block a user