Initial commit
This commit is contained in:
commit
d7b18a3095
127 changed files with 16738 additions and 0 deletions
84
app/Http/Controllers/MusicBrainzController.php
Normal file
84
app/Http/Controllers/MusicBrainzController.php
Normal file
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use Illuminate\Http\Request;
|
||||
use MusicBrainz\Filter\PageFilter;
|
||||
use MusicBrainz\Filter\Search\ArtistFilter;
|
||||
use MusicBrainz\Filter\Search\RecordingFilter;
|
||||
use MusicBrainz\Filter\Search\ReleaseFilter;
|
||||
use MusicBrainz\HttpAdapter\GuzzleHttpAdapter;
|
||||
use MusicBrainz\MusicBrainz;
|
||||
use MusicBrainz\Value\Length;
|
||||
use MusicBrainz\Value\Name;
|
||||
use MusicBrainz\Value\Release;
|
||||
|
||||
class MusicBrainzController extends Controller
|
||||
{
|
||||
private $guzzleHttpAdapter;
|
||||
private $musicBrainz;
|
||||
public function __construct()
|
||||
{
|
||||
$this->guzzleHttpAdapter = new GuzzleHttpAdapter(new Client);
|
||||
$this->musicBrainz = new MusicBrainz($this->guzzleHttpAdapter);
|
||||
}
|
||||
|
||||
public function test()
|
||||
{
|
||||
$recordingFilter = new RecordingFilter;
|
||||
$recordingFilter->addArtistNameWithoutAccents(new Name('Ella Fitzgerald'));
|
||||
$recordingFilter->addRecordingNameWithoutAccents(new Name('Summertime'));
|
||||
|
||||
$pageFilter = new PageFilter(0, 10);
|
||||
|
||||
$trackList = $this->musicBrainz->api()->search()->recording($recordingFilter, $pageFilter);
|
||||
|
||||
dd($trackList[0]);
|
||||
}
|
||||
|
||||
public function get_track_metadata(Request $request)
|
||||
{
|
||||
|
||||
$title = $request->title;
|
||||
$album = $request->album;
|
||||
$artist = $request->artist;
|
||||
$length = $request->length;
|
||||
|
||||
$recordingFilter = new RecordingFilter;
|
||||
|
||||
if (!empty($title)) {
|
||||
$recordingFilter->addRecordingNameWithoutAccents(new Name($title));
|
||||
}
|
||||
|
||||
if (!empty($album)) {
|
||||
$recordingFilter->addReleaseName(new Name($album));
|
||||
}
|
||||
|
||||
if (!empty($artist)) {
|
||||
$recordingFilter->addArtistNameWithoutAccents(new Name($artist));
|
||||
}
|
||||
|
||||
if (!empty($length)) {
|
||||
$recordingFilter->addLength(new Length($length));
|
||||
}
|
||||
|
||||
$pageFilter = new PageFilter(0, 10);
|
||||
|
||||
$trackList = $this->musicBrainz->api()->search()->recording($recordingFilter, $pageFilter);
|
||||
|
||||
//return json_encode(serialize($trackList));
|
||||
$response = [];
|
||||
foreach ($trackList as $key => $track) {
|
||||
$recording = $track->getRecording();
|
||||
$response[] = [
|
||||
'title' => (string) $recording->getTitle(),
|
||||
'artist' => (string) $recording->getArtistCredits()[0]->getName(),
|
||||
'release' => (string) $recording->getReleases()[0]->getTitle(),
|
||||
'length' => (string) $recording->getLength()
|
||||
];
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue