1
0
Fork 0

Tilføj rejsekort og diverse_api. Gør tv2east script lidt sikrere.

This commit is contained in:
smpl 2021-06-08 00:49:30 +02:00
parent 1c79066fe7
commit cf1f9997e5
5 changed files with 74 additions and 3 deletions

4
README
View file

@ -4,3 +4,7 @@ tv2east.dk/getlive.sh
Udtræk HLS playlist til Livestream af TV2Øst. Udtræk HLS playlist til Livestream af TV2Øst.
youtube.com/search.pl youtube.com/search.pl
Søg på youtube. Søg på youtube.
rejsekort.dk/salgssteder.pl
Hent JSON data om rejsekortets salgssteder
diverse_api/README
Små APIs til diverse tjenester

9
diverse_api/README Normal file
View file

@ -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

28
rejsekort.dk/README Normal file
View file

@ -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
}

29
rejsekort.dk/salgssteder.pl Executable file
View file

@ -0,0 +1,29 @@
#!/usr/bin/perl
# Copyright (c) 2021 smpl <smpl@slamkode.ml>
# 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);

View file

@ -8,7 +8,7 @@ PLAYLIST=""
while read -r line; do while read -r line; do
if [[ "$line" == *"playlist_url:"* ]]; then 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 while read fline; do
:; :;
done done
@ -23,13 +23,14 @@ URL=""
while read -r line; do while read -r line; do
if [[ $line == "#EXT-X-STREAM-INF"* ]]; then 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 elif [[ $line != "#"* ]]; then
URL=$line; URL=$line;
fi fi
if [[ -n $RESOLUTION && -n $URL ]]; then if [[ -n $RESOLUTION && -n $URL ]]; then
echo -e "$RESOLUTION:\n $URL" echo "$RESOLUTION:"
echo " $URL"
RESOLUTION="" RESOLUTION=""
URL="" URL=""
fi fi