Exemplo n.º 1
0
 public function addArtist(Media $media, $name)
 {
     $name = ucfirst(strtolower($name));
     $artist = Artist::query()->where('name = :name', ['name' => $name]);
     if ($artist->count() > 0) {
         $artist = $artist->first();
     } else {
         $info = true;
         //Check if the LastFM integration is enabled
         if ($this->lastfm->isEnabled()) {
             $data = $this->lastfm->getArtistInfo($name);
             if ($data === false) {
                 $info = false;
             } else {
                 $summary = $data['bio']['summary'];
                 $image = $this->downloadImage($data['image']);
                 if ($image === false) {
                     $image = '';
                 }
             }
         } else {
             $info = false;
         }
         if ($info === false) {
             $summary = '';
             $image = '';
         }
         $artist = Artist::create();
         $artist->save(['name' => $name, 'summary' => $summary, 'image' => $image]);
     }
     //Dirty hack to create an insert query
     App::db()->createQueryBuilder()->select('1; INSERT INTO @shoutzor_media_artist (media_id, artist_id) VALUES (' . $media->id . ', ' . $artist->id . ') ON DUPLICATE KEY UPDATE media_id=media_id;--')->execute();
     return $artist;
 }