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(); } }