Added better og support

This commit is contained in:
Pablo Ferreiro 2022-11-26 23:28:59 +01:00
parent ce5c9e016b
commit fa3f1e0a7c
No known key found for this signature in database
GPG key ID: 41FBCE65B779FA24
15 changed files with 84 additions and 47 deletions

View file

@ -6,10 +6,26 @@
<link rel="icon" type="image/png" sizes="32x32" href="{path('/favicon-32x32.png')}">
<link rel="icon" type="image/png" sizes="16x16" href="{path('/favicon-16x16.png')}">
<link rel="manifest" href="{path('/site.webmanifest')}">
{if isset($og, $og_content, $og_url)}
<!-- Using TikTok's meta config -->
<meta property="og:title" content="{$og->title}" />
<meta property="og:description" content="{$og->description}" />
<meta property="og:url" content="{$og_url}" />
<meta property="og:image" content="{url_stream($og_content)}" />
<meta property="twitter:title" content="{$og->title}" />
<meta property="twitter:description" content="{$og->description}" />
<meta property="twitter:image" content="{url_stream($og_content)}" />
{else}
<!-- Using predifined ProxiTok config -->
<meta property="og:title" content="{$title}" />
<meta property="og:description" content="Alternative frontend for TikTok" />
<meta property="twitter:title" content="{$title}" />
<meta property="twitter:description" content="Alternative frontend for TikTok" />
{/if}
<meta property="og:site_name" content="ProxiTok" />
<meta property="og:title" content="{$title}" />
<meta property="og:description" content="Alternative frontend for TikTok" />
<meta property="og:type" content="website" />
<meta property="twitter:card" content="summary" />
<meta property="twitter:site" content="ProxiTok" />
{if isset($has_rss)}
<link rel="alternate" type="application/rss+xml" title="{$title}" href="{$_SERVER['REQUEST_URI'] . '/rss'}" />
{/if}

View file

@ -2,7 +2,7 @@
<noscript>JavaScript is required for this section to work!</noscript>
<section class="section">
<div class="columns is-multiline is-vcentered">
{foreach $data->feed->items as $item}
{foreach $feed->items as $item}
{do $share_url = url_video_external($item->author->uniqueId, $item->id)}
<div class="column is-one-quarter clickable-img" id="{$item->id}" onclick="openVideo(this.id)"
data-video_url="{url_stream($item->video->playAddr)}"
@ -17,7 +17,7 @@
<img class="hidden" loading="lazy" data-src="{url_stream($item->video->dynamicCover)}" />
</div>
{/foreach}
{if empty($data->feed->items)}
{if empty($feed->items)}
<p class="title">No items sent by TikTok!</p>
{/if}
</div>

View file

@ -1,5 +1,5 @@
<div class="container">
{foreach $data->feed->items as $item}
{foreach $feed->items as $item}
<article class="media">
<figure class="media-left">
<p class="image is-64x64">
@ -31,7 +31,7 @@
</div>
</article>
{/foreach}
{if empty($data->feed->items)}
{if empty($feed->items)}
<p class="title">No items sent by TikTok!</p>
{/if}
</div>

View file

@ -2,15 +2,19 @@
{var $has_rss = true}
{var $og = $info->meta->og}
{var $og_content = $info->detail->profileLarger}
{var $og_url = url_tag($info->detail->title)}
{block header}
{if $data->info->detail->profileLarger !== ''}
{if $info->detail->profileLarger !== ''}
<figure class="image is-inline-block is-128x128">
<img class="is-rounded" src="{url_stream($data->info->detail->profileLarger)}" />
<img class="is-rounded" src="{url_stream($info->detail->profileLarger)}" />
</figure>
{/if}
<p class="title">{$data->info->detail->title}</p>
<p class="title">{$info->detail->title}</p>
<p class="subtitle">{include '../components/rss.latte'}</p>
<p>Videos: {number($data->info->stats->videoCount)} / Views: {number($data->info->stats->viewCount)}</p>
<p>Videos: {number($info->stats->videoCount)} / Views: {number($info->stats->viewCount)}</p>
{/block}
{block content}

View file

@ -2,15 +2,19 @@
{var $has_rss = true}
{var $og = $info->meta->og}
{var $og_content = $info->detail->avatarLarger}
{var $og_url = url_user($info->detail->uniqueId)}
{block header}
<figure class="image is-inline-block is-128x128">
<img class="is-rounded" src="{url_stream($data->info->detail->avatarLarger)}" />
<img class="is-rounded" src="{url_stream($info->detail->avatarLarger)}" />
</figure>
<p class="title">{$data->info->detail->uniqueId}</p>
<p class="title">{$info->detail->uniqueId}</p>
<p class="subtitle">{include '../components/rss.latte'}</p>
<p>{$data->info->detail->signature}</p>
<p>Following: {number($data->info->stats->followingCount)} / Followers: {number($data->info->stats->followerCount)}</p>
<p>Hearts: {number($data->info->stats->heartCount)} / Videos: {$data->info->stats->videoCount}</p>
<p>{$info->detail->signature}</p>
<p>Following: {number($info->stats->followingCount)} / Followers: {number($info->stats->followerCount)}</p>
<p>Hearts: {number($info->stats->heartCount)} / Videos: {$info->stats->videoCount}</p>
{/block}
{block content}

View file

@ -1,5 +1,9 @@
{layout "../layouts/{$layout}.latte"}
{var $og = $info->meta->og}
{var $og_content = $item->video->originCover}
{var $og_url = url_video_internal($info->detail->uniqueId, $item->id)}
{block content}
<div class="columns is-centered is-vcentered is-gapless">
<div class="column has-text-centered">
@ -12,14 +16,14 @@
<article class="media">
<figure class="media-left">
<p class="image is-64x64">
<img src="{url_stream($detail->avatarThumb)}" />
<img src="{url_stream($info->detail->avatarThumb)}" />
</p>
</figure>
<div class="media-content">
<p>
<strong>{$detail->nickname}</strong>
<strong>{$info->detail->nickname}</strong>
<small>
<a href="{url_user($detail->uniqueId)}">@{$detail->uniqueId}</a>
<a href="{url_user($info->detail->uniqueId)}">@{$info->detail->uniqueId}</a>
</small>
<small title="{date('M d, Y H:i:s e', $item->createTime)}">{date('M d, Y', $item->createTime)}</small>
</p>
@ -30,8 +34,8 @@
<p n:ifcontent>{$item->desc}</p>
{include '../components/themes/common/stats.latte', playCount: $item->stats->playCount, diggCount: $item->stats->diggCount, commentCount: $item->stats->commentCount, shareCount: $item->stats->shareCount}
<div class="has-text-centered">
{include '../components/themes/common/share.latte', uniqueId: $detail->uniqueId, id: $item->id}
{include '../components/themes/common/download.latte', playAddr: $item->video->playAddr, id: $item->id, uniqueId: $detail->uniqueId}
{include '../components/themes/common/share.latte', uniqueId: $info->detail->uniqueId, id: $item->id}
{include '../components/themes/common/download.latte', playAddr: $item->video->playAddr, id: $item->id, uniqueId: $info->detail->uniqueId}
</div>
</div>
</div>