Last active
October 29, 2023 10:20
-
-
Save bagbag/a2888478d27de0e989cf777f81fb33de to your computer and use it in GitHub Desktop.
MediathekViewWeb API Samplecode
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>MediathekViewWeb API</title> | |
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> | |
</head> | |
<script> | |
const query = { | |
queries: [ | |
{ | |
fields: ['title', 'topic'], | |
query: 'sturm der liebe' | |
}, | |
{ | |
fields: ['channel'], | |
query: 'ard' | |
} | |
], | |
sortBy: 'timestamp', | |
sortOrder: 'desc', | |
future: false, | |
offset: 0, | |
size: 10, | |
duration_min: 20, | |
duration_max: 100 | |
}; | |
const queryString = JSON.stringify(query); | |
const request = new XMLHttpRequest(); | |
const requestURL = 'https://mediathekviewweb.de/api/query'; | |
request.open("POST", requestURL); | |
request.addEventListener('load', function (event) { | |
let response; | |
try { | |
response = JSON.parse(request.responseText); | |
} catch (e) { } | |
if (request.status == 200 && typeof response != 'undefined') { | |
for (let i = 0; i < response.result.results.length; i++) { | |
let entry = response.result.results[i]; | |
let row = $('<tr>'); | |
row.append($('<td>').text(entry.channel)); | |
row.append($('<td>').text(entry.topic)); | |
row.append($('<td>').text(entry.title)); | |
row.append($('<td>').text(entry.description)); | |
row.append($('<td>').text(entry.url_video)); | |
$('#mediathek > tbody').append(row); | |
} | |
$('#responseText').text(JSON.stringify(response, null, 2)); | |
} else { | |
if (response) { | |
console.log(response.err); | |
$('#errorText').html(response.err.join('</br>')); | |
} | |
else { | |
$('#errorText').html(request.statusText + '</br>' + request.responseText); | |
} | |
} | |
}); | |
request.send(queryString); | |
</script> | |
<style> | |
table, | |
th, | |
td { | |
border: 1px solid black; | |
border-collapse: collapse; | |
} | |
th, | |
td { | |
padding: 5px; | |
} | |
th { | |
text-align: left; | |
} | |
</style> | |
<body> | |
<table id="mediathek" class="table table-striped table-hover"> | |
<thead> | |
<tr> | |
<th>Sender</th> | |
<th>Thema</th> | |
<th>Titel</th> | |
<th>Beschreibung</th> | |
<th>URL</th> | |
</tr> | |
</thead> | |
<tbody> | |
</tbody> | |
</table> | |
<p id="errorText"></p> | |
</br> | |
<p id="responseText" style="white-space:pre-wrap;"></p> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hey there @Wongraven 👋
Using the above mentioned JavaScript/HTML and the following query:
I get 100 entries in response. Could you post your code here, so we can take a look at the problem?