Initial version
This commit is contained in:
commit
100a973f47
5 changed files with 106 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
config.json
|
0
assets/main.css
Normal file
0
assets/main.css
Normal file
65
assets/main.js
Normal file
65
assets/main.js
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
async function getConfig(window) {
|
||||||
|
await $.getJSON("config.json", function (data) {
|
||||||
|
window.config = data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function authenticate(window) {
|
||||||
|
var oauth_settings;
|
||||||
|
|
||||||
|
await $.ajax({
|
||||||
|
url: window.config.peertube_api + "/oauth-clients/local",
|
||||||
|
}).done(function (data) {
|
||||||
|
oauth_settings = data;
|
||||||
|
});
|
||||||
|
|
||||||
|
await $.ajax({
|
||||||
|
url: window.config.peertube_api + "/users/token",
|
||||||
|
type: "POST",
|
||||||
|
data: {
|
||||||
|
client_id: oauth_settings.client_id,
|
||||||
|
client_secret: oauth_settings.client_secret,
|
||||||
|
grant_type: "password",
|
||||||
|
response_type: "code",
|
||||||
|
username: window.config.peertube_user,
|
||||||
|
password: window.config.peertube_password,
|
||||||
|
},
|
||||||
|
}).done(function (data) {
|
||||||
|
window.config.access_token = data.access_token;
|
||||||
|
window.config.refresh_token = data.refresh_token;
|
||||||
|
console.log(data.access_token);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getVideos(window) {
|
||||||
|
await getConfig(window);
|
||||||
|
await authenticate(window);
|
||||||
|
|
||||||
|
await $.ajax({
|
||||||
|
url:
|
||||||
|
window.config.peertube_api +
|
||||||
|
"/users/me/videos?sort=-createdAt",
|
||||||
|
type: "GET",
|
||||||
|
// Add bearer token to header
|
||||||
|
beforeSend: function (xhr) {
|
||||||
|
xhr.setRequestHeader(
|
||||||
|
"Authorization",
|
||||||
|
"Bearer " + window.config.access_token
|
||||||
|
);
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.fail(function (data) {
|
||||||
|
console.log(data);
|
||||||
|
})
|
||||||
|
.done(function (data) {
|
||||||
|
data.data.forEach(function (video) {
|
||||||
|
$(".table").append(
|
||||||
|
"<tr><td>" +
|
||||||
|
"<a href='" + window.config.peertube_api + "/../.." + video.embedPath + "'><img src='" + window.config.peertube_api + "/../.." + video.thumbnailPath + "'></a>" +
|
||||||
|
"</td><td>" +
|
||||||
|
"<a href='" + window.config.peertube_api + "/../.." + video.embedPath + "'>" + video.name + "</a>" +
|
||||||
|
"</td></tr>"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
6
config.dist.json
Normal file
6
config.dist.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"peertube_api": "https://kumi.tube/api/v1",
|
||||||
|
"peertube_user": "peertube_user",
|
||||||
|
"peertube_password": "peertube_password",
|
||||||
|
"peertube_channel": "peertube_channel"
|
||||||
|
}
|
34
index.html
Normal file
34
index.html
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<!-- Bootstrap page for displaying a list of videos retrieved using Javascript requests -->
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<title>Video List</title>
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
|
||||||
|
/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Displaying the list of videos -->
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h1>Video List</h1>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Video Thumbnail</th>
|
||||||
|
<th>Video Title</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="video-list"></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Javascript code for retrieving the list of videos -->
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
||||||
|
<script src="assets/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in a new issue