From cf1f9997e5c9b225cd8cb2b95af17be5c76ee91d Mon Sep 17 00:00:00 2001 From: smpl Date: Tue, 8 Jun 2021 00:49:30 +0200 Subject: [PATCH] =?UTF-8?q?Tilf=C3=B8j=20rejsekort=20og=20diverse=5Fapi.?= =?UTF-8?q?=20G=C3=B8r=20tv2east=20script=20lidt=20sikrere.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README | 4 ++++ diverse_api/README | 9 +++++++++ rejsekort.dk/README | 28 ++++++++++++++++++++++++++++ rejsekort.dk/salgssteder.pl | 29 +++++++++++++++++++++++++++++ tv2east.dk/getlive.sh | 7 ++++--- 5 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 diverse_api/README create mode 100644 rejsekort.dk/README create mode 100755 rejsekort.dk/salgssteder.pl diff --git a/README b/README index 86a15c5..808b861 100644 --- a/README +++ b/README @@ -4,3 +4,7 @@ tv2east.dk/getlive.sh Udtræk HLS playlist til Livestream af TV2Øst. youtube.com/search.pl Søg på youtube. +rejsekort.dk/salgssteder.pl + Hent JSON data om rejsekortets salgssteder +diverse_api/README + Små APIs til diverse tjenester diff --git a/diverse_api/README b/diverse_api/README new file mode 100644 index 0000000..6f233c2 --- /dev/null +++ b/diverse_api/README @@ -0,0 +1,9 @@ +Rema1000 butikker: +curl 'https://rema1000.dk/wp-content/themes/rema1000/get_stores.php' -o butikker.json + +Youtube Feeds: +https://www.youtube.com/feeds/videos.xml?channel_id=UC7_gcs09iThXybpVgjHZ_7g +https://www.youtube.com/feeds/videos.xml?user=periodicvideos +https://www.youtube.com/feeds/videos.xml?playlist_id=PL8D8D4240EC972114 + + diff --git a/rejsekort.dk/README b/rejsekort.dk/README new file mode 100644 index 0000000..4d5b47d --- /dev/null +++ b/rejsekort.dk/README @@ -0,0 +1,28 @@ +Hent JSON data om Rejsekortets salgssteder. + +JSON filen består af en array/liste af objekter med salgssteder. For +hvert salgsstedsobjekt er der nøgler med navn, adresse, gps koordinater +og rejsekort ydelser salgsstedet tilbyder. Der er også et felt med +åbningstider, men indtil videre at det et uorganiseret rod af html. + +Eksempel: + +{ + "region":null, + "services":[ + "K\u00f8b rejsekort anonymt", + "\u00c6ndre kundetype og serviceniveau", + "Tanke rejsekort op" + ], + "streetName":"Hedemarksvej", + "Longitude":12.353124, + "zipCode":2620, + "inactive":true, + "name":"Albertslund st. - DSB 7-Eleven", + "city":"Albertslund ", + "streetNumber":"1", + "itemId":"21d2d18d-50fc-4c7b-92fb-637270e38aa5", + "Latitude":55.65804, + "openingHours":"...", + "typeId":null +} diff --git a/rejsekort.dk/salgssteder.pl b/rejsekort.dk/salgssteder.pl new file mode 100755 index 0000000..a420f1b --- /dev/null +++ b/rejsekort.dk/salgssteder.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl +# Copyright (c) 2021 smpl +# SPDX-Identifier: Zlib +# https://www.rejsekort.dk/da/Salgssteder + +#binmode STDOUT, ':encoding(UTF-8)'; +use JSON::XS; +use Encode; +use HTML::TreeBuilder 5 -weak; +use LWP; +use LWP::UserAgent; +use strict; + +my $ua = LWP::UserAgent->new; +$ua->agent("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"); +my $response = $ua->get('https://www.rejsekort.dk/da/Salgssteder'); + +my $tree = HTML::TreeBuilder->new(ignore_unknown => 0); +$tree->parse_content($response->content); + +my $body = $tree->find_by_tag_name('body'); +my $data_element = $body->look_down("data-behavior", "map-list"); +my $semi_json = encode("UTF-8", $data_element->attr('data-settings')); + +my $json = JSON::XS->new->utf8->decode($semi_json); + +open(my $fh, ">", "salgssteder.json"); +print $fh JSON::XS->new->ascii->encode($json); +close($fh); diff --git a/tv2east.dk/getlive.sh b/tv2east.dk/getlive.sh index eb99aba..d5e0dfc 100755 --- a/tv2east.dk/getlive.sh +++ b/tv2east.dk/getlive.sh @@ -8,7 +8,7 @@ PLAYLIST="" while read -r line; do if [[ "$line" == *"playlist_url:"* ]]; then - PLAYLIST=$(echo -En $line | sed -n 's/.*playlist_url:"\([^"]*\)".*/\1/p' | sed -n 's/\\u002F/\//gp') + PLAYLIST=$(echo -n $line | sed -n 's/.*playlist_url:"\([^"]*\)".*/\1/p' | sed -n 's/\\u002F/\//gp') while read fline; do :; done @@ -23,13 +23,14 @@ URL="" while read -r line; do if [[ $line == "#EXT-X-STREAM-INF"* ]]; then - RESOLUTION=$(echo -En "$line" | sed -n 's/.*RESOLUTION=\([^,\n]*\)/\1/p') + RESOLUTION=$(echo -n "$line" | sed -n 's/.*RESOLUTION=\([^,\n]*\)/\1/p') elif [[ $line != "#"* ]]; then URL=$line; fi if [[ -n $RESOLUTION && -n $URL ]]; then - echo -e "$RESOLUTION:\n $URL" + echo "$RESOLUTION:" + echo " $URL" RESOLUTION="" URL="" fi