implemented following (AKA discover) & fyp using new endpoints
Docker / build (push) Has been cancelled
Create Tag / build (push) Has been cancelled

This commit is contained in:
Pablo Ferreiro
2024-08-28 14:34:02 +02:00
parent 96aa2803b2
commit ec611478e3
7 changed files with 132 additions and 7 deletions
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Controllers;
use App\Helpers\ErrorHandler;
use App\Helpers\Misc;
use App\Helpers\Wrappers;
use App\Models\FeedTemplate;
class FollowingController {
public static function get() {
$cursor = Misc::getCursor();
$api = Wrappers::api();
$following = $api->following();
$following->feed($cursor);
if ($following->ok()) {
$feed = $following->getFeed();
Wrappers::latte('following', new FeedTemplate('Following / Discover', $feed));
} else {
ErrorHandler::showMeta($following->error());
}
}
}
+33
View File
@@ -0,0 +1,33 @@
<?php
namespace App\Controllers;
use App\Helpers\ErrorHandler;
use App\Helpers\Misc;
use App\Helpers\Wrappers;
use App\Models\FeedTemplate;
use App\Models\RSSTemplate;
class ForYouController {
public static function get() {
$api = Wrappers::api();
$fyp = $api->foryou();
$fyp->feed();
if ($fyp->ok()) {
$feed = $fyp->getFeed();
Wrappers::latte('foryou', new FeedTemplate('For you', $feed));
} else {
ErrorHandler::showMeta($fyp->error());
}
}
public static function rss() {
$api = Wrappers::api();
$fyp = $api->foryou();
$fyp->feed();
if ($fyp->ok()) {
$feed = $fyp->getFeed();
Misc::rss('For you');
Wrappers::latte('rss', new RSSTemplate('For you', 'For you Page', '', Misc::url('/foryou'), $feed->items));
}
}
}
Generated
+7 -7
View File
@@ -589,20 +589,20 @@
}, },
{ {
"name": "pablouser1/tikscraper", "name": "pablouser1/tikscraper",
"version": "v2.6.1.2", "version": "v2.6.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/pablouser1/TikScraperPHP.git", "url": "https://github.com/pablouser1/TikScraperPHP.git",
"reference": "2322cb8ffa4d7e6a0ae295048448469f48dbe58e" "reference": "051f3b4dd5debc05b1d49ab21e6ab831ed04ed9a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/pablouser1/TikScraperPHP/zipball/2322cb8ffa4d7e6a0ae295048448469f48dbe58e", "url": "https://api.github.com/repos/pablouser1/TikScraperPHP/zipball/051f3b4dd5debc05b1d49ab21e6ab831ed04ed9a",
"reference": "2322cb8ffa4d7e6a0ae295048448469f48dbe58e", "reference": "051f3b4dd5debc05b1d49ab21e6ab831ed04ed9a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"guzzlehttp/guzzle": "^7.8", "guzzlehttp/guzzle": "^7.9",
"php": "^8.1", "php": "^8.1",
"php-webdriver/webdriver": "^1.12" "php-webdriver/webdriver": "^1.12"
}, },
@@ -628,9 +628,9 @@
"description": "Get data from TikTok API", "description": "Get data from TikTok API",
"support": { "support": {
"issues": "https://github.com/pablouser1/TikScraperPHP/issues", "issues": "https://github.com/pablouser1/TikScraperPHP/issues",
"source": "https://github.com/pablouser1/TikScraperPHP/tree/v2.6.1.2" "source": "https://github.com/pablouser1/TikScraperPHP/tree/v2.6.2.0"
}, },
"time": "2024-08-21T17:09:53+00:00" "time": "2024-08-28T12:27:55+00:00"
}, },
{ {
"name": "php-webdriver/webdriver", "name": "php-webdriver/webdriver",
+8
View File
@@ -72,6 +72,14 @@ $router->mount('/tag/([^/]+)', function () use ($router) {
$router->get('/music/([^/]+)', 'MusicController@get'); $router->get('/music/([^/]+)', 'MusicController@get');
// For you
$router->mount('/foryou', function () use ($router) {
$router->get('/', 'ForYouController@get');
$router->get('/rss', 'ForYouController@rss');
});
$router->get('/following', 'FollowingController@get');
// -- Settings -- // // -- Settings -- //
$router->mount('/settings', function () use ($router) { $router->mount('/settings', function () use ($router) {
$router->get('/', 'SettingsController@index'); $router->get('/', 'SettingsController@index');
+39
View File
@@ -0,0 +1,39 @@
{layout '../layouts/default.latte'}
{block header}
<p class="title">Discover</p>
{/block}
{block content}
<div class="columns is-multiline is-vcentered">
{foreach $feed->items as $item}
<div class="column is-one-quarter">
{embed '../components/card.latte'}
{block content}
<div class="media">
<!-- Show image if exists -->
{if !empty($item->info->detail->avatarLarger)}
<div class="media-left">
<figure class="image is-96x96">
<img loading="lazy" width="96" height="96" src="{url_stream($item->info->detail->avatarLarger)}" />
</figure>
</div>
{/if}
<div class="media-content">
<p class="title">{$item->info->detail->nickname}</p>
<p class="subtitle">{$item->info->detail->uniqueId}</p>
</div>
</div>
<div class="content">
<p>{$item->info->detail->signature}</p>
</div>
{/block}
{block footer}
<a href="{url_user($item->info->detail->uniqueId)}" class="card-footer-item">Go</a>
{/block}
{/embed}
</div>
{/foreach}
</div>
{include '../components/themes/common/controls.latte', feed: $feed}
{/block}
+12
View File
@@ -0,0 +1,12 @@
{layout '../layouts/default.latte'}
{var $has_rss = true}
{block header}
<p class="title">For you</p>
<p class="subtitle">{include '../components/rss.latte'}</p>
{/block}
{block content}
{include '../components/feed.latte'}
{/block}
+10
View File
@@ -28,4 +28,14 @@
</div> </div>
{/block} {/block}
{/embed} {/embed}
<div class="columns is-centered is-mobile mt-2">
<div class="column is-narrow">
<p>For you</p>
<a class="button is-success" href="{path('/foryou')}">Go</a>
</div>
<div class="column is-narrow">
<p>Following</p>
<a class="button is-success" href="{path('/following')}">Go</a>
</div>
</div>
{/block} {/block}