peetereczek / ztm

Home Assistant (hass.io) custom component for Warsaw public transport
MIT License
13 stars 2 forks source link

Taki prosty extractor z linka #1

Open pkrolkgp opened 4 years ago

pkrolkgp commented 4 years ago

Napisałem w php prosty extractor przystanków, może jakoś da sie to zintegrować

<form method="post" action="/">
    Link: <input type="text" name="link"><br>
    <input type="submit" value="Parsuj">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $parts = parse_url($_POST['link']);
    parse_str($parts['query'], $query);
    echo "number: " . $query['wtp_ln']. "<br>";
    echo "stop_id: " . $query['wtp_st']. "<br>";
    echo "stop_number: \"" .$query['wtp_pt'] . "\"";
}
peetereczek commented 4 years ago

Masz pomysł jak to zaimplementować, żeby pomogło w konfiguracji? Wydaje mi się, że w samym HA by wymagało większego zachodu, niż to warte

pkrolkgp commented 4 years ago

Można by zrobić to od razu w pythonie, żeby nie dodawać ręcznie w pliku configuration.yaml tylko żeby skrypt stworzył dołączany plik w configuration.yaml coś jak !include ztm.yaml sam tworzył wpisy w tym pliku po dodaniu linka, nie wiem tylko jak pobrać link od użytkownika, ale kod mogłby wyglądać mniej więcej tak:

import urllib.parse as urlparse
from urllib.parse import parse_qs
url = 'https://www.wtp.waw.pl/rozklady-jazdy/?wtp_dt=2020-02-03&wtp_md=5&wtp_ln=167&wtp_st=5100&wtp_pt=52&wtp_dr=A&wtp_vr=0&wtp_lm=1&wtp_dy=1'
parsed = urlparse.urlparse(url)
print("number: " + ''.join(parse_qs(parsed.query)['wtp_ln']))
print("stop_id: " + ''.join(parse_qs(parsed.query)['wtp_st']))
print("stop_number: \"" + ''.join(parse_qs(parsed.query)['wtp_pt']) + "\"")

Tylko zamiast print wpis do ztm.yaml