Tilføj rejsekort og diverse_api. Gør tv2east script lidt sikrere.
This commit is contained in:
parent
1c79066fe7
commit
cf1f9997e5
4
README
4
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
|
||||
|
|
9
diverse_api/README
Normal file
9
diverse_api/README
Normal 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
28
rejsekort.dk/README
Normal 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
29
rejsekort.dk/salgssteder.pl
Executable 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);
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue