From f1de8e979b053326ea233922d5e75c25e4841207 Mon Sep 17 00:00:00 2001 From: Pablo Ferreiro Date: Fri, 11 Mar 2022 22:46:12 +0100 Subject: [PATCH] Fixed trending, added explanation on VERIFY_CODE --- app/Controllers/TrendingController.php | 10 +++++-- composer.lock | 12 ++++---- routes.php | 5 ++++ views/about.latte | 6 +++- views/error.latte | 3 ++ views/verify.latte | 38 ++++++++++++++++++++++++++ 6 files changed, 65 insertions(+), 9 deletions(-) create mode 100644 views/verify.latte diff --git a/app/Controllers/TrendingController.php b/app/Controllers/TrendingController.php index 0558488..f9c77cc 100644 --- a/app/Controllers/TrendingController.php +++ b/app/Controllers/TrendingController.php @@ -9,9 +9,15 @@ use App\Helpers\RSS; class TrendingController { static public function get() { $cursor = Misc::getTtwid(); - $page = $_GET['page'] ?? 0; $api = Misc::api(); - $feed = $api->getTrending($cursor, $page); + + // Ttwid if normal, cursor if legacy + if ($api::class === 'TikScraper\Api') { + $cursor = Misc::getTtwid(); + } else { + $cursor = Misc::getCursor(); + } + $feed = $api->getTrending($cursor); if ($feed->meta->success) { $latte = Misc::latte(); $latte->render(Misc::getView('trending'), new FeedTemplate('Trending', $feed)); diff --git a/composer.lock b/composer.lock index a6cb939..dfd97d6 100644 --- a/composer.lock +++ b/composer.lock @@ -306,16 +306,16 @@ }, { "name": "pablouser1/tikscraper", - "version": "v1.2.7.3", + "version": "v1.2.7.4", "source": { "type": "git", "url": "https://github.com/pablouser1/TikScraperPHP.git", - "reference": "64385d72ab47d14f883b24a40268ea4e7542133c" + "reference": "f42df2e947cfe9afc31a46737a48e720f161ef1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pablouser1/TikScraperPHP/zipball/64385d72ab47d14f883b24a40268ea4e7542133c", - "reference": "64385d72ab47d14f883b24a40268ea4e7542133c", + "url": "https://api.github.com/repos/pablouser1/TikScraperPHP/zipball/f42df2e947cfe9afc31a46737a48e720f161ef1c", + "reference": "f42df2e947cfe9afc31a46737a48e720f161ef1c", "shasum": "" }, "require": { @@ -339,9 +339,9 @@ "description": "Get data from TikTok API", "support": { "issues": "https://github.com/pablouser1/TikScraperPHP/issues", - "source": "https://github.com/pablouser1/TikScraperPHP/tree/v1.2.7.3" + "source": "https://github.com/pablouser1/TikScraperPHP/tree/v1.2.7.4" }, - "time": "2022-03-11T20:01:55+00:00" + "time": "2022-03-11T21:42:09+00:00" }, { "name": "phpoption/phpoption", diff --git a/routes.php b/routes.php index 35abcfd..0ee6bd3 100644 --- a/routes.php +++ b/routes.php @@ -14,6 +14,11 @@ $router->get('/about', function () { $latte->render(Misc::getView('about'), new BaseTemplate('About')); }); +$router->get('/verify', function () { + $latte = Misc::latte(); + $latte->render(Misc::getView('verify'), new BaseTemplate('Verify')); +}); + $router->get('/stream', 'ProxyController@stream'); $router->get('/download', 'ProxyController@download'); $router->get('/redirect', 'RedirectController@redirect'); diff --git a/views/about.latte b/views/about.latte index 46e3a56..d81f9dd 100644 --- a/views/about.latte +++ b/views/about.latte @@ -6,7 +6,11 @@ {/block} {block content} -

Why?

+

About this instance

+

Forcing Legacy mode: {isset($_ENV['FORCE_LEGACY']) ? 'yes' : 'no'}

+

Instance-level Proxy: {isset($_ENV['PROXY_HOST']) ? 'yes' : 'no'}

+
+

Why would I want to use ProxiTok?

There are already multiple diff --git a/views/error.latte b/views/error.latte index 071a00d..f98411a 100644 --- a/views/error.latte +++ b/views/error.latte @@ -5,5 +5,8 @@

HTTP Code: {$error->http_code}

{if $error->tiktok_code}

API error code {$error->tiktok_code} ({$error->tiktok_msg})

+ {if $error->tiktok_code === 10000} + What does this mean? + {/if} {/if} {/block} diff --git a/views/verify.latte b/views/verify.latte new file mode 100644 index 0000000..34cd43a --- /dev/null +++ b/views/verify.latte @@ -0,0 +1,38 @@ +{layout '../layouts/default.latte'} + +{block header} +

VERIFY_CODE

+

What can I do?

+{/block} + +{block content} +

TL;DR You probably have to search for another instance or wait some hours (or even better, have your own self-hosted instance)

+

TikTok has some mecanisms in order to stop scraping on their latest api (/api/...):

+
+
+

Rate limits

+

+ This is pretty standard stuff, + it blocks ips temporarly if you send too many requests to an endpoint and unbans you after some hours. +

+
+
+

IP Blacklist

+

+ It is a list with IPs from popular Hosters (AWS, Heroku...). This IPs are banned (I think) permanently and + can barely make requests. +

+

+ This makes hosting a public instance really hard. Even if you use a hosting platform that is not banned by TikTok, it is only a matter of time + that it inevitably gets banned. +

+

(For webmasters) How can I know if my server is not blacklisted?

+

Run this command on your instance:

+ + curl \ + --url 'https://www.tiktok.com/@tiktok/?lang=en' \ + --header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36' + +

If you don't get an empty response or a captcha, you are good to go

+
+{/block}