diff --git a/app/controllers/Api/Web/AlbumsController.php b/app/controllers/Api/Web/AlbumsController.php index c57499bf..6545323f 100644 --- a/app/controllers/Api/Web/AlbumsController.php +++ b/app/controllers/Api/Web/AlbumsController.php @@ -28,7 +28,17 @@ } public function getShow($id) { - $album = Album::with(['tracks' => function($query) { $query->details(); }, 'tracks.cover', 'tracks.genre', 'tracks.user', 'user', 'comments' => function($query) { $query->with('user'); }])->details()->find($id); + $album = Album::with([ + 'tracks' => function($query) { $query->userDetails(); }, + 'tracks.cover', + 'tracks.genre', + 'tracks.user', + 'user', + 'comments', + 'comments.user']) + ->userDetails() + ->find($id); + if (!$album) App::abort(404); @@ -49,12 +59,12 @@ $query = Album::summary() ->with('user', 'user.avatar', 'cover') - ->details() + ->userDetails() ->orderBy('created_at', 'desc') ->where('track_count', '>', 0); $count = $query->count(); - $perPage = 18; + $perPage = 40; $query->skip(($page - 1) * $perPage)->take($perPage); $albums = []; diff --git a/app/controllers/Api/Web/ArtistsController.php b/app/controllers/Api/Web/ArtistsController.php index e4cbc773..dd3e0017 100644 --- a/app/controllers/Api/Web/ArtistsController.php +++ b/app/controllers/Api/Web/ArtistsController.php @@ -30,8 +30,8 @@ 'track.user', 'album.cover', 'album.user', - 'track' => function($query) { $query->details(); }, - 'album' => function($query) { $query->details(); }])->get(); + 'track' => function($query) { $query->userDetails(); }, + 'album' => function($query) { $query->userDetails(); }])->get(); $tracks = []; $albums = []; @@ -56,7 +56,7 @@ if (!$user) App::abort(404); - $query = Track::summary()->with('genre', 'cover', 'user')->details()->whereUserId($user->id)->whereNotNull('published_at'); + $query = Track::summary()->with('genre', 'cover', 'user')->userDetails()->whereUserId($user->id)->whereNotNull('published_at'); $tracks = []; $singles = []; @@ -83,11 +83,11 @@ } public function getShow($slug) { - $user = User::whereSlug($slug)->with(['comments' => function ($query) { $query->with('user'); }])->first(); + $user = User::whereSlug($slug)->userDetails()->with(['comments' => function ($query) { $query->with('user'); }])->first(); if (!$user) App::abort(404); - $trackQuery = Track::summary()->with('genre', 'cover', 'user')->details()->whereUserId($user->id)->whereNotNull('published_at')->orderBy('created_at', 'desc')->take(20); + $trackQuery = Track::summary()->with('genre', 'cover', 'user')->userDetails()->whereUserId($user->id)->whereNotNull('published_at')->orderBy('created_at', 'desc')->take(20); $latestTracks = []; foreach ($trackQuery->get() as $track) { @@ -99,6 +99,17 @@ $comments[] = Comment::mapPublic($comment); } + $userData = [ + 'is_following' => false + ]; + + if ($user->users->count()) { + $userRow = $user->users[0]; + $userData = [ + 'is_following' => $userRow->is_followed + ]; + } + return Response::json([ 'artist' => [ 'id' => $user->id, @@ -112,9 +123,11 @@ 'followers' => [], 'following' => [], 'latest_tracks' => $latestTracks, - 'comments' => ['count' => count($comments), 'list' => $comments], + 'comments' => $comments, 'bio' => $user->bio, - 'mlpforums_username' => $user->mlpforums_name + 'mlpforums_username' => $user->mlpforums_name, + 'message_url' => $user->message_url, + 'user_data' => $userData ] ], 200); } @@ -128,7 +141,7 @@ ->where('track_count', '>', 0); $count = $query->count(); - $perPage = 18; + $perPage = 40; $query->skip(($page - 1) * $perPage)->take($perPage); $users = []; diff --git a/app/controllers/Api/Web/DashboardController.php b/app/controllers/Api/Web/DashboardController.php index 4a687794..4a9936e4 100644 --- a/app/controllers/Api/Web/DashboardController.php +++ b/app/controllers/Api/Web/DashboardController.php @@ -14,18 +14,22 @@ class DashboardController extends \ApiControllerBase { public function getIndex() { - $query = Track::summary()->with(['genre', 'user', 'cover'])->details()->whereNotNull('published_at')->orderBy('published_at', 'desc')->take(30); - if (!Auth::check() || !Auth::user()->can_see_explicit_content) - $query->whereIsExplicit(false); + $recentQuery = Track::summary() + ->with(['genre', 'user', 'cover', 'user.avatar']) + ->userDetails() + ->explicitFilter() + ->published() + ->orderBy('published_at', 'desc') + ->take(30); - $tracks = []; + $recentTracks = []; - foreach ($query->get() as $track) { - $tracks[] = Track::mapPublicTrackSummary($track); + foreach ($recentQuery->get() as $track) { + $recentTracks[] = Track::mapPublicTrackSummary($track); } return Response::json([ - 'recent_tracks' => $tracks, - 'popular_tracks' => $tracks], 200); + 'recent_tracks' => $recentTracks, + 'popular_tracks' => Track::popular(30, Auth::check() && Auth::user()->can_see_explicit_content)], 200); } } \ No newline at end of file diff --git a/app/controllers/Api/Web/FollowController.php b/app/controllers/Api/Web/FollowController.php new file mode 100644 index 00000000..3f859f72 --- /dev/null +++ b/app/controllers/Api/Web/FollowController.php @@ -0,0 +1,13 @@ +execute(new ToggleFollowingCommand(Input::get('type'), Input::get('id'))); + } + } \ No newline at end of file diff --git a/app/controllers/Api/Web/PlaylistsController.php b/app/controllers/Api/Web/PlaylistsController.php index dd951f69..99c24034 100644 --- a/app/controllers/Api/Web/PlaylistsController.php +++ b/app/controllers/Api/Web/PlaylistsController.php @@ -40,13 +40,13 @@ $query = Playlist::summary() ->with('user', 'user.avatar', 'tracks', 'tracks.cover') - ->details() + ->userDetails() ->orderBy('created_at', 'desc') ->where('track_count', '>', 0) ->whereIsPublic(true); $count = $query->count(); - $perPage = 18; + $perPage = 40; $query->skip(($page - 1) * $perPage)->take($perPage); $playlists = []; @@ -59,7 +59,7 @@ } public function getShow($id) { - $playlist = Playlist::with(['tracks.user', 'tracks.genre', 'tracks.cover', 'tracks.album', 'tracks' => function($query) { $query->details(); }, 'comments', 'comments.user'])->details()->find($id); + $playlist = Playlist::with(['tracks.user', 'tracks.genre', 'tracks.cover', 'tracks.album', 'tracks' => function($query) { $query->userDetails(); }, 'comments', 'comments.user'])->userDetails()->find($id); if (!$playlist || !$playlist->canView(Auth::user())) App::abort('404'); @@ -73,7 +73,7 @@ public function getPinned() { $query = Playlist - ::details() + ::userDetails() ->with('tracks', 'tracks.cover', 'tracks.user', 'user') ->join('pinned_playlists', function($join) { $join->on('playlist_id', '=', 'playlists.id'); diff --git a/app/controllers/Api/Web/TracksController.php b/app/controllers/Api/Web/TracksController.php index 68e03084..d1c09f34 100644 --- a/app/controllers/Api/Web/TracksController.php +++ b/app/controllers/Api/Web/TracksController.php @@ -31,7 +31,7 @@ } public function getShow($id) { - $track = Track::details()->withComments()->find($id); + $track = Track::userDetails()->withComments()->find($id); if (!$track || !$track->canView(Auth::user())) return $this->notFound('Track not found!'); @@ -43,20 +43,6 @@ return Response::json(['track' => Track::mapPublicTrackShow($track)], 200); } - public function getRecent() { - $query = Track::summary()->details()->with(['genre', 'user', 'cover'])->whereNotNull('published_at')->orderBy('published_at', 'desc')->take(30); - if (!Auth::check() || !Auth::user()->can_see_explicit_content) - $query->whereIsExplicit(false); - - $tracks = []; - - foreach ($query->get() as $track) { - $tracks[] = Track::mapPublicTrackSummary($track); - } - - return Response::json($tracks, 200); - } - public function getIndex() { $page = 1; $perPage = 45; @@ -65,8 +51,9 @@ $page = Input::get('page'); $query = Track::summary() - ->details() - ->whereNotNull('published_at') + ->userDetails() + ->explicitFilter() + ->published() ->with('user', 'genre', 'cover', 'album', 'album.user'); $this->applyFilters($query); diff --git a/app/database/migrations/2013_08_18_041928_create_user_tables.php b/app/database/migrations/2013_08_18_041928_create_user_tables.php index e258497e..c6c1d9c9 100644 --- a/app/database/migrations/2013_08_18_041928_create_user_tables.php +++ b/app/database/migrations/2013_08_18_041928_create_user_tables.php @@ -11,6 +11,7 @@ class CreateUserTables extends Migration { $table->integer('track_id')->unsigned()->nullable()->index(); $table->integer('album_id')->unsigned()->nullable()->index(); $table->integer('playlist_id')->unsigned()->nullable()->index(); + $table->integer('artist_id')->unsigned()->nullable()->index(); $table->boolean('is_followed'); $table->boolean('is_favourited'); @@ -20,12 +21,13 @@ class CreateUserTables extends Migration { $table->integer('play_count'); $table->integer('download_count'); + $table->foreign('artist_id')->references('id')->on('users')->on_delete('cascade'); $table->foreign('user_id')->references('id')->on('users')->on_delete('cascade'); - $table->foreign('track_id')->references('id')->on('tracks'); - $table->foreign('album_id')->references('id')->on('albums'); - $table->foreign('playlist_id')->references('id')->on('playlists'); + $table->foreign('track_id')->references('id')->on('tracks')->on_delete('cascade');; + $table->foreign('album_id')->references('id')->on('albums')->on_delete('cascade');; + $table->foreign('playlist_id')->references('id')->on('playlists')->on_delete('cascade');; - $table->unique(['user_id', 'track_id', 'album_id', 'playlist_id']); + $table->unique(['user_id', 'track_id', 'album_id', 'playlist_id', 'artist_id']); }); Schema::create('resource_log_items', function($table){ diff --git a/app/database/migrations/2013_08_29_025516_create_followers.php b/app/database/migrations/2013_08_29_025516_create_followers.php new file mode 100644 index 00000000..d9604534 --- /dev/null +++ b/app/database/migrations/2013_08_29_025516_create_followers.php @@ -0,0 +1,25 @@ +increments('id'); + $table->integer('user_id')->unsigned()->index(); + + $table->integer('artist_id')->unsigned()->nullable()->index(); + $table->integer('playlist_id')->unsigned()->nullable()->index(); + + $table->timestamp('created_at'); + + $table->foreign('user_id')->references('id')->on('users')->on_delete('cascade'); + $table->foreign('artist_id')->references('id')->on('users')->on_delete('cascade'); + $table->foreign('playlist_id')->references('id')->on('playlists'); + }); + } + + public function down() { + Schema::drop('followers'); + } +} \ No newline at end of file diff --git a/app/models/Commands/ToggleFollowingCommand.php b/app/models/Commands/ToggleFollowingCommand.php new file mode 100644 index 00000000..b8273e90 --- /dev/null +++ b/app/models/Commands/ToggleFollowingCommand.php @@ -0,0 +1,57 @@ +_resourceId = $resourceId; + $this->_resourceType = $resourceType; + } + + /** + * @return bool + */ + public function authorize() { + $user = Auth::user(); + return $user != null; + } + + /** + * @throws \Exception + * @return CommandResponse + */ + public function execute() { + $typeId = $this->_resourceType . '_id'; + $existing = Follower::where($typeId, '=', $this->_resourceId)->whereUserId(Auth::user()->id)->first(); + $isFollowed = false; + + if ($existing) { + $existing->delete(); + } else { + $follow = new Follower(); + $follow->$typeId = $this->_resourceId; + $follow->user_id = Auth::user()->id; + $follow->created_at = time(); + $follow->save(); + $isFollowed = true; + } + + $resourceUser = ResourceUser::get(Auth::user()->id, $this->_resourceType, $this->_resourceId); + $resourceUser->is_followed = $isFollowed; + $resourceUser->save(); + + return CommandResponse::succeed(['is_followed' => $isFollowed]); + } + } \ No newline at end of file diff --git a/app/models/Entities/Album.php b/app/models/Entities/Album.php index 367ba119..0bc03100 100644 --- a/app/models/Entities/Album.php +++ b/app/models/Entities/Album.php @@ -19,7 +19,7 @@ return self::select('id', 'title', 'user_id', 'slug', 'created_at', 'cover_id', 'comment_count', 'download_count', 'view_count', 'favourite_count'); } - public function scopeDetails($query) { + public function scopeUserDetails($query) { if (Auth::check()) { $query->with(['users' => function($query) { $query->whereUserId(Auth::user()->id); @@ -52,7 +52,7 @@ } public function comments(){ - return $this->hasMany('Entities\Comment'); + return $this->hasMany('Entities\Comment')->orderBy('created_at', 'desc'); } public static function mapPublicAlbumShow($album) { @@ -81,6 +81,11 @@ $data['comments'] = $comments; $data['formats'] = $formats; $data['description'] = $album->description; + $data['share'] = [ + 'url' => URL::to('/a' . $album->id), + 'tumblrUrl' => 'http://www.tumblr.com/share/link?url=' . urlencode($album->url) . '&name=' . urlencode($album->title) . '&description=' . urlencode($album->description), + 'twitterUrl' => 'https://platform.twitter.com/widgets/tweet_button.html?text=' . $album->title . ' by ' . $album->user->display_name . ' on Pony.fm' + ]; return $data; } diff --git a/app/models/Entities/Follower.php b/app/models/Entities/Follower.php new file mode 100644 index 00000000..0d95e8c4 --- /dev/null +++ b/app/models/Entities/Follower.php @@ -0,0 +1,9 @@ +with(['users' => function($query) { $query->whereUserId(Auth::user()->id); @@ -53,6 +53,11 @@ $data['tracks'] = $tracks; $data['comments'] = $comments; $data['formats'] = $formats; + $data['share'] = [ + 'url' => URL::to('/p' . $playlist->id), + 'tumblrUrl' => 'http://www.tumblr.com/share/link?url=' . urlencode($playlist->url) . '&name=' . urlencode($playlist->title) . '&description=' . urlencode($playlist->description), + 'twitterUrl' => 'https://platform.twitter.com/widgets/tweet_button.html?text=' . $playlist->title . ' by ' . $playlist->user->display_name . ' on Pony.fm' + ]; return $data; } @@ -117,7 +122,7 @@ } public function comments(){ - return $this->hasMany('Entities\Comment'); + return $this->hasMany('Entities\Comment')->orderBy('created_at', 'desc'); } public function pins() { diff --git a/app/models/Entities/Track.php b/app/models/Entities/Track.php index 5aaa593c..ebb1d8e7 100644 --- a/app/models/Entities/Track.php +++ b/app/models/Entities/Track.php @@ -8,6 +8,7 @@ use Helpers; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cache; + use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\URL; use Illuminate\Support\Str; @@ -31,7 +32,7 @@ return self::select('id', 'title', 'user_id', 'slug', 'is_vocal', 'is_explicit', 'created_at', 'published_at', 'duration', 'is_downloadable', 'genre_id', 'track_type_id', 'cover_id', 'album_id', 'comment_count', 'download_count', 'view_count', 'play_count', 'favourite_count'); } - public function scopeDetails($query) { + public function scopeUserDetails($query) { if (Auth::check()) { $query->with(['users' => function($query) { $query->whereUserId(Auth::user()->id); @@ -41,10 +42,52 @@ return !$query; } + public function scopePublished($query) { + $query->whereNotNull('published_at'); + } + + public function scopeExplicitFilter($query) { + if (!Auth::check() || !Auth::user()->can_see_explicit_content) + $query->whereIsExplicit(false); + } + public function scopeWithComments($query) { $query->with(['comments' => function($query) { $query->with('user'); }]); } + public static function popular($count, $allowExplicit = false) { + $tracks = Cache::remember('popular_tracks-' . ($allowExplicit ? 'explicit' : 'safe'), 5, function() use ($allowExplicit) { + $query = static + ::with(['user', 'genre', 'cover', 'user.avatar']) + ->published() + ->whereIsExplicit($allowExplicit) + ->join(DB::raw(' + ( SELECT `track_id`, `created_at` + FROM `resource_log_items` + WHERE `created_at` > now() - INTERVAL 1 DAY + ) AS ranged_plays'), + 'tracks.id', '=', 'ranged_plays.track_id') + ->groupBy('id') + ->orderBy('plays', 'desc') + ->take(20); + return $query->get(['*', DB::raw('count(*) as plays')]); + }); + + $results = []; + $i = 0; + + foreach($tracks as $track) { + if ($i < $count) { + $results[] = self::mapPublicTrackSummary($track); + $i++; + } else { + break; + } + } + + return $results; + } + public static function mapPublicTrackShow($track) { $returnValue = self::mapPublicTrackSummary($track); $returnValue['description'] = $track->description; @@ -76,6 +119,15 @@ ]; } + $returnValue['share'] = [ + 'url' => URL::to('/t' . $track->id), + 'html' => '', + 'bbcode' => '[url=' . $track->url . '][img]' . $track->getCoverUrl() . '[/img][/url]', + 'twitterUrl' => 'https://platform.twitter.com/widgets/tweet_button.html?text=' . $track->title . ' by ' . $track->user->display_name . ' on Pony.fm' + ]; + + $returnValue['share']['tumblrUrl'] = 'http://www.tumblr.com/share/video?embed=' . urlencode($returnValue['share']['html']) . '&caption=' . urlencode($track->title); + $returnValue['formats'] = $formats; return $returnValue; @@ -191,7 +243,7 @@ } public function comments(){ - return $this->hasMany('Entities\Comment'); + return $this->hasMany('Entities\Comment')->orderBy('created_at', 'desc'); } public function favourites() { diff --git a/app/models/Entities/User.php b/app/models/Entities/User.php index 47570850..7cdfcb75 100644 --- a/app/models/Entities/User.php +++ b/app/models/Entities/User.php @@ -6,6 +6,7 @@ use Gravatar; use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableInterface; + use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\URL; use Illuminate\Support\Str; use Ratchet\Wamp\Exception; @@ -14,18 +15,36 @@ protected $table = 'users'; protected $hidden = ['password_hash', 'password_salt', 'bio']; + public function scopeUserDetails($query) { + if (Auth::check()) { + $query->with(['users' => function($query) { + $query->whereUserId(Auth::user()->id); + }]); + } + + return !$query; + } + public function avatar() { return $this->belongsTo('Entities\Image'); } - public function comments(){ - return $this->hasMany('Entities\Comment', 'profile_id'); + public function users() { + return $this->hasMany('Entities\ResourceUser', 'artist_id'); + } + + public function comments() { + return $this->hasMany('Entities\Comment', 'profile_id')->orderBy('created_at', 'desc'); } public function getUrlAttribute() { return URL::to('/' . $this->slug); } + public function getMessageUrlAttribute() { + return 'http://mlpforums.com/index.php?app=members&module=messaging§ion=send&do=form&fromMemberID='.$this->id; + } + public function getAuthIdentifier() { return $this->getKey(); } diff --git a/app/routes.php b/app/routes.php index 4de756e1..cca99e9f 100644 --- a/app/routes.php +++ b/app/routes.php @@ -52,7 +52,6 @@ Route::get('/playlists/show/{id}', 'Api\Web\PlaylistsController@getShow'); - Route::get('/tracks/recent', 'Api\Web\TracksController@getRecent'); Route::get('/tracks', 'Api\Web\TracksController@getIndex'); Route::get('/tracks/{id}', 'Api\Web\TracksController@getShow')->where('id', '\d+'); @@ -90,6 +89,8 @@ Route::post('/account/settings/save', 'Api\Web\AccountController@postSave'); Route::post('/favourites/toggle', 'Api\Web\FavouritesController@postToggle'); + + Route::post('/follow/toggle', 'Api\Web\FollowController@postToggle'); }); Route::group(['before' => 'auth'], function() { diff --git a/app/views/shared/_app_layout.blade.php b/app/views/shared/_app_layout.blade.php index 2cebb864..87879362 100644 --- a/app/views/shared/_app_layout.blade.php +++ b/app/views/shared/_app_layout.blade.php @@ -1,6 +1,28 @@ @extends('shared._layout') @section('content') + +
+ + +
All Comments ({{resource.comments.length}})
-+
+-
+ There are no comments yet!
+
-
diff --git a/public/templates/directives/playlists-list.html b/public/templates/directives/playlists-list.html
index e6768c6f..695afcb9 100644
--- a/public/templates/directives/playlists-list.html
+++ b/public/templates/directives/playlists-list.html
@@ -1,10 +1,17 @@
- Share or Embed
+ - Share
@@ -19,13 +19,18 @@
-
+
+
+
+
+
+
- Share or Embed
+ - Share
@@ -42,8 +42,14 @@
+
+
+
+
+
+
--
+
-
-
- {{playlist.title}}
-
- by {{playlist.user.name}}
+
+
+ {{playlist.title}}
+
+ by {{playlist.user.name}}
+
+
+
+
+
+
diff --git a/public/templates/partials/album-share-dialog.html b/public/templates/partials/album-share-dialog.html
new file mode 100644
index 00000000..09ba06b2
--- /dev/null
+++ b/public/templates/partials/album-share-dialog.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Close
+
diff --git a/public/templates/partials/playlist-share-dialog.html b/public/templates/partials/playlist-share-dialog.html
new file mode 100644
index 00000000..08135445
--- /dev/null
+++ b/public/templates/partials/playlist-share-dialog.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Close
+
diff --git a/public/templates/partials/track-share-dialog.html b/public/templates/partials/track-share-dialog.html
new file mode 100644
index 00000000..f256b16d
--- /dev/null
+++ b/public/templates/partials/track-share-dialog.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+ Close
+
diff --git a/public/templates/playlists/show.html b/public/templates/playlists/show.html
index f9167c95..8b09123b 100644
--- a/public/templates/playlists/show.html
+++ b/public/templates/playlists/show.html
@@ -8,7 +8,7 @@
-
-+ + {{album.title}} +
+Shortlink
+ ++ + {{playlist.title}} +
+Shortlink
+ ++ + {{track.title}} +
+Shortlink
+ + +HTML Embed (websites, blogs)
+ + +BBCode Embed (forums)
+ +-- Created:
+ - Created:
- Views:
- Downloads:
- Favourites:
diff --git a/public/templates/tracks/show.html b/public/templates/tracks/show.html
index 3746cf3f..ef62b001 100644
--- a/public/templates/tracks/show.html
+++ b/public/templates/tracks/show.html
@@ -22,7 +22,7 @@
- Add to New Playlist
--- Published:
+ - Published:
- Views:
- Plays:
- Downloads:
diff --git a/vendor/autoload.php b/vendor/autoload.php
index f49fc5ec..5e1b54cb 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer' . '/autoload_real.php';
-return ComposerAutoloaderInit265a5d8a5cc5c33c736711894c7e0223::getLoader();
+return ComposerAutoloaderInitf5e8b08f8d3ef98cfbf31c8bbf4b6225::getLoader();
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 9e796bb4..079b2c6f 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -8,6 +8,7 @@ $baseDir = dirname($vendorDir);
return array(
'AbstractOutputProvider' => $vendorDir . '/codescale/ffmpeg-php/provider/AbstractOutputProvider.php',
'AccountController' => $baseDir . '/app/controllers/AccountController.php',
+ 'AlbumDownloader' => $baseDir . '/app/models/AlbumDownloader.php',
'AlbumsController' => $baseDir . '/app/controllers/AlbumsController.php',
'ApiControllerBase' => $baseDir . '/app/controllers/ApiControllerBase.php',
'Api\\Web\\AccountController' => $baseDir . '/app/controllers/Api/Web/AccountController.php',
@@ -19,6 +20,7 @@ return array(
'Api\\Web\\FavouritesController' => $baseDir . '/app/controllers/Api/Web/FavouritesController.php',
'Api\\Web\\ImagesController' => $baseDir . '/app/controllers/Api/Web/ImagesController.php',
'Api\\Web\\PlaylistsController' => $baseDir . '/app/controllers/Api/Web/PlaylistsController.php',
+ 'Api\\Web\\ProfilerController' => $baseDir . '/app/controllers/Api/Web/ProfilerController.php',
'Api\\Web\\TaxonomiesController' => $baseDir . '/app/controllers/Api/Web/TaxonomiesController.php',
'Api\\Web\\TracksController' => $baseDir . '/app/controllers/Api/Web/TracksController.php',
'ArtistsController' => $baseDir . '/app/controllers/ArtistsController.php',
@@ -150,6 +152,7 @@ return array(
'CreateAlbums' => $baseDir . '/app/database/migrations/2013_07_28_060804_create_albums.php',
'CreateComments' => $baseDir . '/app/database/migrations/2013_08_01_051337_create_comments.php',
'CreateFavourites' => $baseDir . '/app/database/migrations/2013_08_18_045248_create_favourites.php',
+ 'CreateFollowers' => $baseDir . '/app/database/migrations/2013_08_29_025516_create_followers.php',
'CreateImagesTable' => $baseDir . '/app/database/migrations/2013_07_26_230827_create_images_table.php',
'CreatePlaylists' => $baseDir . '/app/database/migrations/2013_07_28_135136_create_playlists.php',
'CreateSongsTable' => $baseDir . '/app/database/migrations/2013_07_28_034328_create_songs_table.php',
@@ -430,7 +433,9 @@ return array(
'Entities\\License' => $baseDir . '/app/models/Entities/License.php',
'Entities\\PinnedPlaylist' => $baseDir . '/app/models/Entities/PinnedPlaylist.php',
'Entities\\Playlist' => $baseDir . '/app/models/Entities/Playlist.php',
+ 'Entities\\ProfileRequest' => $baseDir . '/app/models/Entities/ProfileRequest.php',
'Entities\\ResourceLogItem' => $baseDir . '/app/models/Entities/ResourceLogItem.php',
+ 'Entities\\ResourceUser' => $baseDir . '/app/models/Entities/ResourceUser.php',
'Entities\\ShowSong' => $baseDir . '/app/models/Entities/ShowSong.php',
'Entities\\Track' => $baseDir . '/app/models/Entities/Track.php',
'Entities\\TrackType' => $baseDir . '/app/models/Entities/TrackType.php',
@@ -1058,6 +1063,7 @@ return array(
'Patchwork\\PHP\\Shim\\Xml' => $vendorDir . '/patchwork/utf8/class/Patchwork/PHP/Shim/Xml.php',
'Patchwork\\Utf8' => $vendorDir . '/patchwork/utf8/class/Patchwork/Utf8.php',
'Patchwork\\Utf8\\Bootup' => $vendorDir . '/patchwork/utf8/class/Patchwork/Utf8/Bootup.php',
+ 'PlaylistDownloader' => $baseDir . '/app/models/PlaylistDownloader.php',
'PlaylistsController' => $baseDir . '/app/controllers/PlaylistsController.php',
'Predis\\Autoloader' => $vendorDir . '/predis/predis/lib/Predis/Autoloader.php',
'Predis\\BasicClientInterface' => $vendorDir . '/predis/predis/lib/Predis/BasicClientInterface.php',
@@ -1393,6 +1399,7 @@ return array(
'React\\Stream\\Util' => $vendorDir . '/react/stream/React/Stream/Util.php',
'React\\Stream\\WritableStream' => $vendorDir . '/react/stream/React/Stream/WritableStream.php',
'React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/React/Stream/WritableStreamInterface.php',
+ 'RefreshCache' => $baseDir . '/app/commands/RefreshCache.php',
'SessionHandlerInterface' => $vendorDir . '/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php',
'StringOutputProvider' => $vendorDir . '/codescale/ffmpeg-php/provider/StringOutputProvider.php',
'Symfony\\Component\\BrowserKit\\Client' => $vendorDir . '/symfony/browser-kit/Symfony/Component/BrowserKit/Client.php',
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 20157584..2284954b 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php generated by Composer
-class ComposerAutoloaderInit265a5d8a5cc5c33c736711894c7e0223
+class ComposerAutoloaderInitf5e8b08f8d3ef98cfbf31c8bbf4b6225
{
private static $loader;
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit265a5d8a5cc5c33c736711894c7e0223
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInit265a5d8a5cc5c33c736711894c7e0223', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInitf5e8b08f8d3ef98cfbf31c8bbf4b6225', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
- spl_autoload_unregister(array('ComposerAutoloaderInit265a5d8a5cc5c33c736711894c7e0223', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInitf5e8b08f8d3ef98cfbf31c8bbf4b6225', 'loadClassLoader'));
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);