Icons, themes, removed instance proxy and more

This commit is contained in:
Pablo Ferreiro 2022-03-29 19:30:31 +02:00
parent 9a35c61023
commit 44ee065ec6
No known key found for this signature in database
GPG key ID: 41FBCE65B779FA24
52 changed files with 476 additions and 511 deletions

View file

@ -8,7 +8,6 @@
{block content}
<p class="title">About this instance</p>
<p>Forcing Legacy mode: {isset($_ENV['API_FORCE_LEGACY']) ? 'yes' : 'no'}</p>
<p>Instance-level Proxy: {isset($_ENV['PROXY_HOST']) ? 'yes' : 'no'}</p>
<hr />
<p class="title">Why would I want to use ProxiTok?</p>
<p>
@ -29,7 +28,6 @@
<li><a rel="nofollow" href="https://github.com/bramus/router">bramus/router</a></li>
<li><a rel="nofollow" href="https://github.com/vlucas/phpdotenv">PHP dotenv</a></li>
<li><a rel="nofollow" href="https://github.com/jgthms/bulma">Bulma</a> and <a href="https://github.com/jenil/bulmaswatch">Bulmaswatch</a></li>
<li><a rel="nofollow" href="https://github.com/mibe/FeedWriter">FeedWriter</a></li>
</ul>
</p>
{/block}

View file

@ -17,7 +17,7 @@
{if !empty($item->cardItem->cover)}
<div class="media-left">
<figure class="image is-96x96">
<img width="96" height="96" src="{path('/stream?url=' . urlencode($item->cardItem->cover))}" />
<img loading="lazy" width="96" height="96" src="{path('/stream?url=' . urlencode($item->cardItem->cover))}" />
</figure>
</div>
{/if}

View file

@ -3,28 +3,30 @@
{block content}
<p class="title">Welcome to ProxiTok!</p>
<p class="subtitle">An alternative open source frontend for TikTok</p>
<!-- Create forms from App\Models\HomeTemplate -->
<div class="columns is-centered is-vcentered is-multiline">
{foreach $forms as $form}
<div class="column is-narrow">
{embed '../components/card.latte'}
{block title}{$form['title']}{/block}
{block content}
<form action="{path('/redirect')}">
<div class="field has-addons has-addons-centered">
<div class="control">
<input name="{$form['input']}" class="input" type="text" placeholder="{$form['placeholder']}" required />
</div>
<div class="control">
<button class="button is-success" type="submit">Search</button>
</div>
</div>
</form>
{/block}
{/embed}
{embed '../components/form.latte', path: '/redirect', method: 'GET'}
{block fields}
<div class="field has-addons has-addons-centered">
<div class="control">
<input class="input" name="term" placeholder="Search" required>
</div>
<div class="control">
<div class="select">
<select name="type">
<option value="user">Username</option>
<option value="tag">Tag</option>
<option value="music">Music ID</option>
<option value="video">Video ID</option>
</select>
</div>
</div>
<div class="control">
<button type="submit" class="button is-success">
{include '../components/icon.latte', icon: 'search', text: 'Search'}
</a>
</div>
</div>
{/foreach}
</div>
{/block}
{/embed}
<div class="columns is-centered is-mobile">
<div class="column is-narrow">
<p>Discover</p>

23
views/rss.latte Normal file
View file

@ -0,0 +1,23 @@
{contentType application/rss+xml}
{do header('Content-Disposition: attachment; filename="' . $title . '.rss' . '"')}
{do $full_link = path($link)}
{var $download = new \TikScraper\Download}
<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{$title}</title>
<description><![CDATA[{$desc}]]></description>
<link>{$full_link}</link>
<atom:link href="{$full_link . '/rss'}" rel="self" type="application/rss+xml"></atom:link>
{foreach $items as $item}
<item>
<title>{$item->desc}</title>
<description><![CDATA[{$item->desc}]]></description>
<link>{path('/@' . $item->author->uniqueId . '/video/' . $item->id)}</link>
<pubDate>{(int) $item->createTime}</pubDate>
<guid isPermaLink="false">{$item->id}</guid>
<enclosure length="{$download->file_size($item->video->playAddr)}" type="video/mp4" url="{path('/stream?url=' . urlencode($item->video->playAddr))}"></enclosure>
</item>
{/foreach}
</channel>
</rss>

View file

@ -5,10 +5,9 @@
{/block}
{block content}
<!-- Proxy settings -->
<p class="title">General</p>
{include '../components/settings/general.latte'}
<hr />
<p class="title">Api</p>
{include '../components/settings/api.latte'}
<hr />
<p class="title">Proxy</p>
{include '../components/settings/proxy.latte'}
{/block}

View file

@ -4,7 +4,7 @@
{do $item = $feed->items[0]}
<div class="columns is-centered is-vcentered">
<div class="column">
<video controls poster="{path('/stream?url=' . urlencode($item->video->originCover))}">
<video width="{$item->video->width}" height="{$item->video->height}" controls poster="{path('/stream?url=' . urlencode($item->video->originCover))}">
<source src="{path('/stream?url=' . urlencode($item->video->playAddr))}" type="video/mp4" />
</video>
</div>
@ -12,20 +12,10 @@
<div class="box">
<p class="title">Video by <a href="{path('/@'.$feed->info->detail->uniqueId)}">{$feed->info->detail->uniqueId}</a></p>
<p class="subtitle">{$item->desc}</p>
<p>Played {number($feed->info->stats->playCount)} times</p>
<p>Shared {number($feed->info->stats->shareCount)} times / {number($feed->info->stats->commentCount)} comments</p>
{include '../components/themes/common/stats.latte', playCount: $item->stats->playCount, diggCount: $item->stats->diggCount, commentCount: $item->stats->commentCount, shareCount: $item->stats->shareCount}
<hr />
<div class="dropdown is-hoverable">
<div class="dropdown-trigger">
<button class="button" aria-haspopup="true" aria-controls="dropdown-menu">Download</button>
</div>
<div class="dropdown-menu" role="menu">
<div class="dropdown-content">
<a href="{path('/download?url=' . urlencode($item->video->playAddr) . '&id=' . $item->id . '&user=' . $feed->info->detail->uniqueId) . '&watermark='}" class="dropdown-item">Watermark</a>
<a href="{path('/download?id=' . $item->id . '&user=' . $feed->info->detail->uniqueId)}" class="dropdown-item">No watermark</a>
</div>
</div>
</div>
{include '../components/themes/common/share.latte', uniqueId: $feed->info->detail->uniqueId, id: $item->id}
{include '../components/themes/common/download.latte', playAddr: $item->video->playAddr, id: $item->id, uniqueId: $feed->info->detail->uniqueId}
<p>{$item->music->title}</p>
<audio src="{path('/stream?url=' . urlencode($item->music->playUrl))}" controls preload="none"></audio>
</div>