Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import asyncio
- from pyppeteer import launch
- def read_dat(*args):
- for name in args:
- with open(name, 'r') as f:
- yield f.read().strip()
- config_data = read_dat('username', 'password', 'url')
- USERNAME = next(config_data)
- PASSWORD = next(config_data)
- TTYD_URL = next(config_data) # Web Terminal URL below. Should be https://community.cloud.databricks.com/driver-proxy/o/...
- # ==========================
- async def signIn(page):
- email_selector = 'input[id=login-email]'
- pass_selector = 'input[id=login-password]'
- await page.waitForSelector(email_selector)
- await page.type(email_selector, USERNAME)
- await page.type(pass_selector, PASSWORD)
- await page.click('button.signin')
- await page.waitForNavigation()
- async def main():
- print('[1/6] Launching browser...')
- browser = await launch()
- page = (await browser.pages())[0]
- print('[2/6] Logging in...')
- await page.goto('https://community.cloud.databricks.com/login.html')
- await signIn(page) # sign in
- print('[3/6] Opening ttyd web terminal session...')
- page2 = await browser.newPage()
- await page2.goto(TTYD_URL, {'waitUntil': 'domcontentloaded'})
- await page2.waitForSelector('.xterm-screen')
- print('[4/6] Waiting 10 seconds...')
- await asyncio.sleep(10) # wait for ttyd to load
- print('[5/6] Running keep alive command...')
- await page2.keyboard.type("python\nprint('Running');__import__('multiprocessing').Queue().get()\n")
- print('[6/6] Complete. Terminal is kept alive.')
- await asyncio.Future() # keep alive
- asyncio.get_event_loop().run_until_complete(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement