Source of file ImportInstagramPostsTask.php
Size: 2,708 Bytes - Last Modified: 2023-03-17T10:00:04+00:00
/var/www/docs.ssmods.com/process/src/src/Tasks/ImportInstagramPostsTask.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | <?php namespace X3dgoo\InstagramScraper\Tasks; use InstagramScraper\Instagram; use InstagramScraper\Model\Media; use Phpfastcache\Helper\Psr16Adapter; use SilverStripe\Core\Environment; use SilverStripe\Dev\BuildTask; use SilverStripe\ORM\DB; use X3dgoo\InstagramScraper\Model\InstagramPost; class ImportInstagramPostsTask extends BuildTask { private static $segment = 'import-instagram-posts'; protected $title = 'Import Instagram feed'; protected $description = ''; public function run($request) { $handle = $request->getVar('handle'); $loginUsername = Environment::getEnv('INSTAGRAM_USERNAME'); $loginPassword = Environment::getEnv('INSTAGRAM_PASSWORD'); if (!$handle) { return; } $instagram = new Instagram(); if ($loginUsername && $loginPassword) { $instagram = Instagram::withCredentials($loginUsername, $loginPassword, new Psr16Adapter('Files')); $instagram->login(); $instagram->saveSession(); } $instagramMedias = $instagram->getMedias($handle); foreach ($instagramMedias as $instagramMedia) { $this->importInstagramPost($instagramMedia); } } /** * @param Media $instagramMedia */ public function importInstagramPost($instagramMedia) { $shortCode = $instagramMedia->getShortCode(); $instagramPost = InstagramPost::get()->filter(['ShortCode' => $shortCode])->first(); if (!$instagramPost || !$instagramPost->exists()) { $instagramPost = InstagramPost::create(); $instagramPost->ShortCode = $shortCode; } $instagramPost->InstagramID = $instagramMedia->getId(); $instagramPost->Caption = $instagramMedia->getCaption(); $instagramPost->Handle = $instagramMedia->getOwner()->getUsername(); $instagramPost->Link = $instagramMedia->getLink(); $instagramPost->Type = $instagramMedia->getType(); $instagramPost->ImageLowResolutionUrl = $instagramMedia->getImageLowResolutionUrl(); $instagramPost->ImageThumbnailURL = $instagramMedia->getImageThumbnailUrl(); $instagramPost->ImageStandardResolutionUrl = $instagramMedia->getImageStandardResolutionUrl(); $instagramPost->ImageHighResolutionUrl = $instagramMedia->getImageHighResolutionUrl(); $instagramPost->Posted = $instagramMedia->getCreatedTime(); $instagramPost->LikesCount = $instagramMedia->getLikesCount(); $instagramPost->CommentsCount = $instagramMedia->getCommentsCount(); $instagramPost->write(); DB::alteration_message('Imported instagram post ' . $shortCode); } } |