More details of user or tag
This commit is contained in:
parent
31e3aafbd7
commit
493f56a052
|
@ -15,41 +15,6 @@ function isValidDomain(string $url): bool {
|
|||
return count($host_split) === 3 && in_array($host_split[1] . '.' . $host_split[2], $valid_domains);
|
||||
}
|
||||
|
||||
Route::add('/images', function () {
|
||||
if (!isset($_GET['url'])) {
|
||||
die('You need to send a url!');
|
||||
}
|
||||
$url = $_GET['url'];
|
||||
if (!filter_var($url, FILTER_VALIDATE_URL) || !isValidDomain($url)) {
|
||||
die('Not a valid URL');
|
||||
}
|
||||
$img = file_get_contents($url, false, stream_context_create(['http' => ['ignore_errors' => true]]));
|
||||
if ($img) {
|
||||
header('Content-Type: image/jpeg');
|
||||
return $img;
|
||||
} else {
|
||||
return 'Error while getting image!';
|
||||
}
|
||||
});
|
||||
|
||||
Route::add('/audios', function () {
|
||||
if (!isset($_GET['url'])) {
|
||||
die('You need to send a url!');
|
||||
}
|
||||
$url = $_GET['url'];
|
||||
|
||||
if (!filter_var($url, FILTER_VALIDATE_URL) || !isValidDomain($url)) {
|
||||
die('Not a valid URL');
|
||||
}
|
||||
$audio = file_get_contents($url, false, stream_context_create(['http' => ['ignore_errors' => true]]));
|
||||
if ($audio) {
|
||||
header('Content-Type: audio/mp3');
|
||||
return $audio;
|
||||
} else {
|
||||
return 'Error while getting audio!';
|
||||
}
|
||||
});
|
||||
|
||||
Route::add('/stream', function () {
|
||||
if (!isset($_GET['url'])) {
|
||||
die('You need to send a url!');
|
||||
|
@ -61,7 +26,7 @@ Route::add('/stream', function () {
|
|||
}
|
||||
|
||||
if (isset($_GET['download'])) {
|
||||
// Download
|
||||
// Download (video only)
|
||||
$downloader = new \Sovit\TikTok\Download();
|
||||
$downloader->url($url, "tiktok-video", 'mp4');
|
||||
} else {
|
||||
|
|
|
@ -29,6 +29,20 @@ function getLatte(): \Latte\Engine {
|
|||
$path = "{$subdir}/{$name}";
|
||||
return $path;
|
||||
});
|
||||
// https://stackoverflow.com/a/36365553
|
||||
$latte->addFunction('number', function (int $x) {
|
||||
if($x > 1000) {
|
||||
$x_number_format = number_format($x);
|
||||
$x_array = explode(',', $x_number_format);
|
||||
$x_parts = array('K', 'M', 'B', 'T');
|
||||
$x_count_parts = count($x_array) - 1;
|
||||
$x_display = $x;
|
||||
$x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
|
||||
$x_display .= $x_parts[$x_count_parts - 1];
|
||||
return $x_display;
|
||||
}
|
||||
return $x;
|
||||
});
|
||||
return $latte;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,15 +10,15 @@
|
|||
data-video_width="{$item->video->width}"
|
||||
data-video_height="{$item->video->height}"
|
||||
data-music_title="{$item->music->title}"
|
||||
data-music_url="{path('audios?url=' . urlencode($item->music->playUrl))}">
|
||||
<img loading="lazy" src="{path('images?url=' . urlencode($item->video->originCover))}"/>
|
||||
data-music_url="{path('stream?url=' . urlencode($item->music->playUrl))}">
|
||||
<img loading="lazy" src="{path('stream?url=' . urlencode($item->video->originCover))}"/>
|
||||
</a>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<a n:ifset="$_GET['cursor']" class="button is-danger" href="?cursor=0">First</a>
|
||||
<a class="button is-danger" href="javascript:history.back()">Back</a>
|
||||
<a class="button is-danger" href="?cursor={$feed->minCursor}">Back</a>
|
||||
{if $feed->hasMore}
|
||||
<a n-if="$feed->hasMore" class="button is-success" href="?cursor={$feed->maxCursor}">Next</a>
|
||||
{else}
|
||||
|
@ -26,6 +26,8 @@
|
|||
{/if}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- MODAL -->
|
||||
<div id="modal" class="modal">
|
||||
<div id="modal-background" class="modal-background"></div>
|
||||
<div class="modal-card">
|
||||
|
@ -38,7 +40,7 @@
|
|||
</section>
|
||||
<footer class="modal-card-foot has-text-centered">
|
||||
<div class="container">
|
||||
<a id="download_button" target="_blank" class="button is-info" href="" download>Download</a>
|
||||
<a id="download_button" target="_blank" class="button is-info" download>Download</a>
|
||||
<p id="audio_title"></p>
|
||||
<audio id="audio" controls preload="none"></audio>
|
||||
<div class="buttons is-centered">
|
||||
|
|
|
@ -7,9 +7,10 @@
|
|||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div class="container has-text-centered">
|
||||
<p class="title">{$feed->info->detail->challenge->title}</p>
|
||||
<p class="subtitle">{$feed->info->detail->challenge->desc}</p>
|
||||
<p>Videos: {number($feed->info->detail->stats->videoCount)} / Views: {number($feed->info->detail->stats->viewCount)}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div class="container has-text-centered">
|
||||
<p class="title">Trending page</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -7,9 +7,14 @@
|
|||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div class="container has-text-centered">
|
||||
<figure class="figure is-96x96">
|
||||
<img src="{path('stream?url=' . urlencode($feed->info->detail->user->avatarThumb))}" />
|
||||
</figure>
|
||||
<p class="title">{$feed->info->detail->user->uniqueId}'s profile</p>
|
||||
<p class="subtitle">{$feed->info->detail->user->signature}</p>
|
||||
<p>Following: {number($feed->info->detail->stats->followingCount)} / Followers: {number($feed->info->detail->stats->followerCount)}</p>
|
||||
<p>Hearts: {number($feed->info->detail->stats->heartCount)} / Videos: {$feed->info->detail->stats->videoCount}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
Loading…
Reference in a new issue