Exemple #1
0
 public function addAlbum(Media $media, $title, $artists = array())
 {
     $title = ucfirst(strtolower($title));
     $album = Album::query()->where('title = :title', ['title' => $title]);
     if ($album->count() > 0) {
         $album = $album->first();
     } else {
         if ($this->lastfm->isEnabled() && !is_null($artists) && count($artists) > 0) {
             $data = $this->lastfm->getAlbumInfo($title, $artists[0]->name);
             $summary = $data['wiki']['summary'];
             $image = $this->downloadImage($data['image']);
             if ($image === false) {
                 $image = '';
             }
         } else {
             $summary = '';
             $image = '';
         }
         $album = Album::create();
         $album->save(['title' => $title, 'summary' => $summary, 'image' => $image]);
     }
     //Dirty hack to create an insert query
     App::db()->createQueryBuilder()->select('1; INSERT INTO @shoutzor_media_album (media_id, album_id) VALUES (' . $media->id . ', ' . $album->id . ') ON DUPLICATE KEY UPDATE media_id=media_id;--')->execute();
     foreach ($artists as $artist) {
         App::db()->createQueryBuilder()->select('1; INSERT INTO @shoutzor_artist_album (artist_id, album_id) VALUES (' . $artist->id . ', ' . $album->id . ') ON DUPLICATE KEY UPDATE artist_id=artist_id;--')->execute();
     }
 }
Exemple #2
0
 public function getAlbums()
 {
     $albums = Album::query()->leftJoin('@shoutzor_artist_album aa', 'aa.artist_id = ' . $this->id)->where('id = aa.album_id')->related('artist')->get();
     return $albums;
 }