| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/3951574/root/tmp/ |
Upload File : |
import subprocess
from playwright.sync_api import sync_playwright
TOK=open('/tmp/ztok.txt').read().strip(); FIX=open('/tmp/zfix.txt').read().strip()
url="https://seaside.pacim.de/day-list.php?t="+TOK
def db(sql): subprocess.run(["php","-r",'require_once("/var/www/seaside.pacim.de/web/includes/config.inc.php");$d=new MysqliDb(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB);$d->rawQuery(\''+sql+'\');'],check=True,capture_output=True)
def vis(pg): return pg.eval_on_selector_all('#dl-body tr[data-out="0"]','rs=>rs.filter(r=>r.style.display!=="none").length')
with sync_playwright() as p:
b=p.chromium.launch(); pg=b.new_context(viewport={"width":440,"height":820}).new_page()
pg.goto(url, wait_until="networkidle"); pg.wait_for_timeout(500)
total=pg.eval_on_selector_all('#dl-body tr[data-out="0"]','rs=>rs.length')
arrived=pg.eval_on_selector_all('#dl-body tr.st-in','rs=>rs.length')
print("total inside:",total,"arrived:",arrived)
# filter angereist
pg.click('#filt-arr'); pg.wait_for_timeout(300)
print("after 'angereist': visible=",vis(pg)," active=",pg.eval_on_selector('#filt-arr','e=>e.classList.contains("active")'))
# switch to offen (mutual exclusion)
pg.click('#filt-open'); pg.wait_for_timeout(300)
print("after 'offen': visible=",vis(pg)," arr-active=",pg.eval_on_selector('#filt-arr','e=>e.classList.contains("active")')," open-active=",pg.eval_on_selector('#filt-open','e=>e.classList.contains("active")'))
# re-click offen deactivates
pg.click('#filt-open'); pg.wait_for_timeout(300)
print("after re-click 'offen': visible=",vis(pg)," (=total ->",vis(pg)==total,")")
# LIVE: external check-in of an open booking -> time + color update via poll
oid=pg.eval_on_selector('#dl-body tr:not(.st-in)','e=>e.getAttribute("data-id")')
before=pg.eval_on_selector('#dl-body tr[data-id="%s"] .tcell'%oid,'e=>e?e.textContent:null')
db("UPDATE pacim_booking SET booking_checkin='2026-06-27 09:30:00' WHERE booking_id="+oid)
pg.evaluate("document.dispatchEvent(new Event('visibilitychange'))"); pg.wait_for_timeout(2000)
after_cls=pg.eval_on_selector('#dl-body tr[data-id="%s"]'%oid,'e=>e.className')
after_t=pg.eval_on_selector('#dl-body tr[data-id="%s"] .tcell'%oid,'e=>e?e.textContent:null')
print("live external check-in id=%s: time %r -> %r | class=%s"%(oid,before,after_t,after_cls))
db("UPDATE pacim_booking SET booking_checkin=NULL WHERE booking_id="+oid)
b.close()