aboutsummaryrefslogtreecommitdiff
path: root/bridges/TikTokBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/TikTokBridge.php')
-rw-r--r--bridges/TikTokBridge.php170
1 files changed, 89 insertions, 81 deletions
diff --git a/bridges/TikTokBridge.php b/bridges/TikTokBridge.php
index c58363e3..41da917f 100644
--- a/bridges/TikTokBridge.php
+++ b/bridges/TikTokBridge.php
@@ -1,87 +1,95 @@
<?php
-class TikTokBridge extends BridgeAbstract {
- const NAME = 'TikTok Bridge';
- const URI = 'https://www.tiktok.com';
- const DESCRIPTION = 'Returns posts';
- const MAINTAINER = 'VerifiedJoseph';
- const PARAMETERS = array(
- 'By user' => array(
- 'username' => array(
- 'name' => 'Username',
- 'type' => 'text',
- 'required' => true,
- 'exampleValue' => '@tiktok',
- )
- ));
-
- const TEST_DETECT_PARAMETERS = array(
- 'https://www.tiktok.com/@tiktok' => array(
- 'context' => 'By user', 'username' => '@tiktok'
- )
- );
-
- const CACHE_TIMEOUT = 900; // 15 minutes
-
- private $feedName = '';
-
- public function detectParameters($url) {
-
- if(preg_match('/tiktok\.com\/(@[\w]+)/', $url, $matches) > 0) {
- return array(
- 'context' => 'By user',
- 'username' => $matches[1]
- );
- }
-
- return null;
- }
-
- public function collectData() {
- $html = getSimpleHTMLDOM($this->getURI());
-
- $this->feedName = htmlspecialchars_decode($html->find('h1', 0)->plaintext);
-
- foreach ($html->find('div.tiktok-x6y88p-DivItemContainerV2') as $div) {
- $item = [];
-
- $link = $div->find('a', 0)->href;
- $image = $div->find('img', 0)->src;
- $views = $div->find('strong.video-count', 0)->plaintext;
-
- $item['uri'] = $link;
- $item['title'] = $div->find('a', 1)->plaintext;
- $item['enclosures'][] = $image;
-
- $item['content'] = <<<EOD
+
+class TikTokBridge extends BridgeAbstract
+{
+ const NAME = 'TikTok Bridge';
+ const URI = 'https://www.tiktok.com';
+ const DESCRIPTION = 'Returns posts';
+ const MAINTAINER = 'VerifiedJoseph';
+ const PARAMETERS = [
+ 'By user' => [
+ 'username' => [
+ 'name' => 'Username',
+ 'type' => 'text',
+ 'required' => true,
+ 'exampleValue' => '@tiktok',
+ ]
+ ]];
+
+ const TEST_DETECT_PARAMETERS = [
+ 'https://www.tiktok.com/@tiktok' => [
+ 'context' => 'By user', 'username' => '@tiktok'
+ ]
+ ];
+
+ const CACHE_TIMEOUT = 900; // 15 minutes
+
+ private $feedName = '';
+
+ public function detectParameters($url)
+ {
+ if (preg_match('/tiktok\.com\/(@[\w]+)/', $url, $matches) > 0) {
+ return [
+ 'context' => 'By user',
+ 'username' => $matches[1]
+ ];
+ }
+
+ return null;
+ }
+
+ public function collectData()
+ {
+ $html = getSimpleHTMLDOM($this->getURI());
+
+ $this->feedName = htmlspecialchars_decode($html->find('h1', 0)->plaintext);
+
+ foreach ($html->find('div.tiktok-x6y88p-DivItemContainerV2') as $div) {
+ $item = [];
+
+ $link = $div->find('a', 0)->href;
+ $image = $div->find('img', 0)->src;
+ $views = $div->find('strong.video-count', 0)->plaintext;
+
+ $item['uri'] = $link;
+ $item['title'] = $div->find('a', 1)->plaintext;
+ $item['enclosures'][] = $image;
+
+ $item['content'] = <<<EOD
<a href="{$link}"><img src="{$image}"/></a>
<p>{$views} views<p>
EOD;
- $this->items[] = $item;
- }
- }
-
- public function getURI() {
- switch($this->queriedContext) {
- case 'By user':
- return self::URI . '/' . $this->processUsername();
- default: return parent::getURI();
- }
- }
-
- public function getName() {
- switch($this->queriedContext) {
- case 'By user':
- return $this->feedName . ' (' . $this->processUsername() . ') - TikTok';
- default: return parent::getName();
- }
- }
-
- private function processUsername() {
- if (substr($this->getInput('username'), 0, 1) !== '@') {
- return '@' . $this->getInput('username');
- }
-
- return $this->getInput('username');
- }
+ $this->items[] = $item;
+ }
+ }
+
+ public function getURI()
+ {
+ switch ($this->queriedContext) {
+ case 'By user':
+ return self::URI . '/' . $this->processUsername();
+ default:
+ return parent::getURI();
+ }
+ }
+
+ public function getName()
+ {
+ switch ($this->queriedContext) {
+ case 'By user':
+ return $this->feedName . ' (' . $this->processUsername() . ') - TikTok';
+ default:
+ return parent::getName();
+ }
+ }
+
+ private function processUsername()
+ {
+ if (substr($this->getInput('username'), 0, 1) !== '@') {
+ return '@' . $this->getInput('username');
+ }
+
+ return $this->getInput('username');
+ }
}