Commit graph

182 commits

Author SHA1 Message Date
Adam Lavin
14211f4ea4 Initial Alexa integration 2016-09-30 22:21:17 +01:00
Adam Lavin
d0a6022ed8 Added basic hardcoded alexa endpoints 2016-09-30 02:36:44 +01:00
Laravel Shift
c420d3955b Laravel 5.3 Update (#107)
* Shift core files

* Shift app folder structure

Laravel 5.3 no longer includes the `Events`, `Jobs`, `Listeners`, and
`Policies` folders by default. Instead, they are created when you make
them using `artisan`.

* Shift Middleware

* Shift Providers

* Shift configuration

* Shift Routes

Laravel 5.3 now stores Routes in a top-level `routes` folder and
separates them into API, console, and web files.

* Shift deprecations

The `Str::randomBytes` and `Str::equals` methods were deprecated in
Laravel 5.2 and removed in Laravel 5.3 in favor of the native
`random_bytes` and `hash_equals` PHP functions.

In addition, the Collection method `lists()` was replaced with
`pluck()`.

* Shift Laravel dependencies

* Shift cleanup

* Updated composer.json

* Updated providers to 5.3 style

* Removed events folder and extend correct exceptions handler

* Updated configuration

* Shift back our method names from ending in "pluck" to "list"

* Temporarily add back in old mcrypt encrypter
2016-09-30 00:56:25 +01:00
Laravel Shift
00f24a5c12 Laravel 5.2 Update (#106)
* Adopt PSR-2 coding style

The Laravel framework adopts the PSR-2 coding style in version 5.1.
Laravel apps *should* adopt this coding style as well. Read the
[PSR-2 coding style guide][1] for more details and check out [PHPCS][2]
to use as a code formatting tool.

[1]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
[2]: https://github.com/squizlabs/PHP_CodeSniffer

* Adopt PHP short array syntax

Laravel 5 adopted the short array syntax which became available in
PHP 5.4.

* Remove SelfHandling from Jobs

Jobs are self handling by default in Laravel 5.2.

* Add new exceptions to `$dontReport` property

* Shift core files

* Shift Middleware

Laravel 5.2 adjusts the `Guard` object used within middleware. In
addition, new `can` and `throttles` middleware were added.

* Shift Input to Request facade

Laravel 5.2 no longer registers the `Input` facade by default. Laravel
now prefers using the `Request` facade or the `$request` object within
*Controllers* instead. Review the [HTTP Requests][1] documentation for
more details.

[1]: https://laravel.com/docs/5.2/requests

* Shift configuration

Laravel 5.2 introduces the `env` app configuration option and removes
the `pretend` mail configuration option. In addition, a few of the
default `providers` and `aliases` bindings were removed.

* Shift Laravel dependencies

* Shift cleanup

* Updated composer.lock

* Updated Middleware to 5.2

* Config update for Laravel 5.2

* [Laravel 5.2] Updated validation strings

* Updated auth config

* Updated to use middleware groups

* Added laravel 5.2 sessions migration
2016-09-29 23:26:31 +01:00
Joe Citrine
abdfe2f698 Merge pull request #105 from Poniverse/feature/replace_master_track_file
Feature/replace master track file
2016-09-22 22:45:40 +01:00
Josef Citrine
d6a80cd684 Updated contact email 2016-09-21 01:32:47 +01:00
Peter Deltchev
78c2f4f6d1 Show archived tracks by default in the track browser.
Reverts part of 995cc40a5f.
2016-09-11 16:52:57 -07:00
Josef Citrine
995cc40a5f Hidden archived artists' tracks from recent tracks 2016-09-09 21:37:07 +01:00
Kelvin Zhang
775de16bfe [#9] Add functionality to add/change versions of tracks 2016-08-30 21:17:34 -07:00
Josef Citrine
726097bc7b Only show unclassified tracks if they are part of MLPMA 2016-08-29 01:03:26 +01:00
Josef Citrine
9de1d53cd7 Track classification queue and directified track list 2016-08-28 02:59:10 +01:00
Josef Citrine
d0b356be2c Notification API correctly handles invalid resources 2016-08-28 01:01:37 +01:00
Josef Citrine
52cdf621b3 Merge pull request #96 from Poniverse/postgres
The switch to PostgreSQL
2016-07-18 00:59:40 +01:00
Josef Citrine
4c6aeb1a6e #86: Updated stats API to work with Postgres 2016-07-11 21:12:02 +01:00
Kelvin
63d4063ccc #7: Implement back-end handling of mixed losslessness track collections 2016-07-11 12:43:10 +01:00
Kelvin
2c3ef557af #7: Implement CR changes 2016-07-11 11:25:45 +01:00
Kelvin
05c66ca5dd [#7] Prevent completely lossy albums/playlists from being downloaded as lossless 2016-07-10 15:20:22 +01:00
Peter Deltchev
6e8a9b34c6 #86: Modified a bunch of queries to work in PostgreSQL. 2016-06-26 19:20:10 -07:00
Peter Deltchev
64a44fff4f Made avatars optional. Useful for archived profiles!
Also took the opportunity to refactor SaveAccountSettingsCommand somewhat.
2016-06-19 13:13:47 -07:00
Josef Citrine
60f55e6223 Ignore requests with no subscription data 2016-06-15 13:44:54 +01:00
Josef Citrine
61520815de #25: Basic service worker notifications 2016-06-15 13:44:28 +01:00
Josef Citrine
2b72b4dcdb #25: Service worker subscription 2016-06-15 13:44:28 +01:00
Peter Deltchev
a482a183dc #2: Admins can now manage other users' content. 2016-06-14 01:27:56 -07:00
Peter Deltchev
185ead4ed0 Improved a bunch of use statements. 2016-06-12 04:49:24 -07:00
Peter Deltchev
09effb6955 #2: Implemented the user creation tool. 2016-06-12 04:16:03 -07:00
Josef Citrine
4714f04a80 Added follower count 2016-06-07 19:31:32 +01:00
Josef Citrine
bd330a1089 Mark as read and notification count 2016-06-07 17:49:00 +01:00
Scrutinizer Auto-Fixer
3b1b03e12b Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2016-06-06 06:29:37 +00:00
Peter Deltchev
9a9ac7e5a1 Lots of minor code cleanup. 2016-06-05 23:15:56 -07:00
Peter Deltchev
b46ba956d0 Fixes #51: Slugs are now unique and user-changeable. 2016-06-05 20:05:57 -07:00
Josef Citrine
59b0ebd64e Admins can modify show songs 2016-06-06 00:12:10 +01:00
Peter Deltchev
73de10cff4 Don't list albums and playlists with only one track. 2016-06-05 12:27:04 -07:00
Maximilian Walter
b73d1753b3 update: added playlist sort logic to laravel controller
update: implemented basic filter functions to angular
2016-06-01 19:40:49 +02:00
Maximilian Walter
2d458c3d80 Merge branch 'master' of https://github.com/Poniverse/Pony.fm into feature-playlist-sort 2016-05-31 15:03:26 +02:00
Peter Deltchev
27f19f9dc7 Added a bunch of eager-loading. 2016-05-28 12:29:06 -07:00
Josef Citrine
ef598a72ef Test UI for notifications 2016-05-27 20:38:59 +01:00
Peter Deltchev
0109244115 Feature/notifications (#87)
* #25: Implemented enough of the notification system to start writing drivers.

* #25: Implemented most of the Pony.fm notification driver's backend.

* #25: Abstracted the logic for building lists of notification recipients.

* #25: Implemented notification API endpoints for the SPA.

* Front end setup for notifications

* #25: Implemented notification API endpoints for the SPA.
2016-05-27 20:12:40 +01:00
Josef Citrine
7786950990 Icon for admins 2016-05-25 23:57:46 +01:00
Maximilian Walter
950ef3b585 added: playlist sort by favourite_count on initial request
update: added composer lock file to gitignore
2016-05-25 22:58:41 +02:00
Peter Deltchev
060b8e7121 Fixes #83: Album shortlinks work again. 2016-05-21 00:22:47 -07:00
Josef Citrine
44bcf87ddb New profiles, works better on mobile 2016-05-19 22:31:04 +01:00
Josef Citrine
87d25bb8b8 Admin album editing 2016-05-18 01:27:59 +01:00
Josef Citrine
fb7f291f31 Switch admin check to Gate 2016-05-17 13:00:57 +01:00
Josef Citrine
40122a9446 Admins can edit users 2016-05-17 00:30:05 +01:00
Josef Citrine
481a0a6b9f Admins can view all tracks 2016-05-11 17:41:49 +01:00
Josef Citrine
a6c9393e3d Cleaned up code, added caching for stats 2016-05-04 17:07:00 +01:00
Josef Citrine
7b4cf4adff Fixed error for unpublished tracks 2016-05-04 01:26:52 +01:00
Josef Citrine
2832ba5bd2 Fixed syntax error
I'm tired
2016-05-04 01:12:12 +01:00
Josef Citrine
563578c622 Code style fixes 2016-05-04 01:08:59 +01:00
Josef Citrine
88bee8c7ab Laravel-ised queries 2016-05-04 00:50:59 +01:00
Josef Citrine
473d1d7b38 Fixing data to accurately represent plays 2016-05-03 23:20:38 +01:00
Josef Citrine
7a73e20929 Added cumulative graph 2016-05-03 20:30:57 +01:00
Josef Citrine
97b4bb1b8b 'Functional' play charts
Needs styling
2016-05-03 13:01:50 +01:00
Josef Citrine
4ca904667b Hourly stats should only display a 24 hour period 2016-05-02 23:25:26 +01:00
Josef Citrine
3e874da868 Start of a stats API 2016-05-02 13:23:22 +01:00
Mihail-K
e63c18f6be Merge branch 'master' into feature/track-removals 2016-03-20 15:10:17 -04:00
Peter Deltchev
61ca938877 #2: Fixed up the album editor in its new home. 2016-03-19 01:10:33 -07:00
Peter Deltchev
d8933374ab #2: Rearranged various routes for account management + other cleanup.
The "Favourites" area within account management was removed as it duplicates
the functionality of the favourites area on public profiles.
2016-03-18 20:01:00 -07:00
Peter Deltchev
61e762dc13 #2: Nested all things account management under profile pages. 2016-03-18 20:00:30 -07:00
Peter Deltchev
b715422c24 #2: Properly handle editing tracks and albums that you don't own. 2016-03-12 17:27:49 -08:00
Peter Deltchev
9e753ec26e #2: Implemented track moderation. 2016-02-26 19:23:14 -08:00
Peter Deltchev
5451294dfc Replaced Pony.fm's profiler with @barryvdh's Laravel Debugbar. 2016-02-16 02:53:28 -08:00
Peter Deltchev
7176fb2bca #2: Implemented the inline track editor on track pages.
Also includes a fix for lyrics on track pages.
2016-02-15 23:50:36 -08:00
Peter Deltchev
20ef64988a Fixes #56: no more duplicate tracks when browsing! 2016-02-15 08:02:44 -08:00
Peter Deltchev
5314f5accb Fixed an n+1 query. 2016-02-15 07:51:26 -08:00
Peter Deltchev
72cdef8dae Fixed two regressions. 2016-02-08 05:29:58 -08:00
Peter Deltchev
09de55d14d Handle slug collisions with disabled accounts properly. 2016-01-24 22:05:08 -08:00
Peter Deltchev
a2b35ba8a3 #56: Fixed duplicate tracks in playlists. 2016-01-23 04:27:43 -08:00
Peter Deltchev
4585eb712e #1: SEARCH IS ALIVE. LET'S GO, YES! 2016-01-20 19:18:18 -08:00
Peter Deltchev
7a005bcf6b Silently enabled lossy uploads for users. 2016-01-18 02:16:56 -08:00
Scrutinizer Auto-Fixer
d655d0a151 Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2016-01-18 01:21:39 +00:00
Peter Deltchev
845449c8cc #1: Reindexing now runs on its own queue + lots of code cleanup. 2016-01-17 07:16:16 -08:00
Peter Deltchev
33befbe3d0 #1: Darklaunched search to site staff. 2016-01-17 05:43:28 -08:00
Peter Deltchev
7a7f4ee02a #1: Moved the artists list into its own directive + visual cleanup of search. 2016-01-16 23:35:43 -08:00
Peter Deltchev
990916171c #1: Progress commit - some semblance of this is working now. 2016-01-16 01:13:53 -08:00
Peter Deltchev
e0faefee23 #1: Progress commit. 2016-01-16 01:13:53 -08:00
Peter Deltchev
bf831d839a #20: Added the genre creation tool. 2016-01-06 04:50:44 -08:00
Adam Lavin
3399f3e223 Added support for authorising oauth2 endpoints with the bearer header 2016-01-01 21:11:28 +00:00
Adam Lavin
6b026e8551 Remove reliance on facades/helpers, and added in a typehint, in AuthenticateOAuth middleware. 2016-01-01 20:58:52 +00:00
Adam Lavin
991f8df661 Security: Fix auth.outh2 generating a user session
If you are logged out of Pony.fm, made a request to an endpoint using this middleware in the browser with an access token with the appropriate scope, then went back to Pony.fm, you'd be logged in as the owner of the access token.
2016-01-01 20:55:00 +00:00
Peter Deltchev
e85b79a9e4 Fixed error on artist pages and an issue with profile URL generation. 2015-12-31 21:12:16 -08:00
Peter Deltchev
8ac590819f Fixed incorrect class references. 2015-12-31 18:27:21 -08:00
Peter Deltchev
5ff04ff08d Moved all database models into their own namespace. 2015-12-31 16:24:33 -08:00
Peter Deltchev
3b1fa792cf #29: This works because the only disabled accounts right now are merged ones. 2015-12-29 13:32:14 -08:00
Peter Deltchev
622dc2d577 #29: Implemented the auth:merge-duplicates CLI script to reconcile duplicate accounts. 2015-12-29 08:54:08 -08:00
Zeusking19
dfefb2ad81 Implement server-side track removal from playlist 2015-12-28 14:31:28 +00:00
Peter Deltchev
93b76d1954 Added support for JPEG cover art. 2015-12-27 01:43:43 -08:00
Zeusking19
8282e5752d Quickfix to some date issues 2015-12-26 21:01:46 +00:00
Peter Deltchev
ac6ce4bbb4 #8: Implemented auto-publishing and lots of optional fields for the upload endpoint. 2015-12-26 03:40:47 -08:00
Peter Deltchev
de88fe6fff #8: Updated the name of the track upload scope. 2015-12-25 01:25:22 -08:00
Peter Deltchev
4d119ff758 #8: Implemented the track upload API. 2015-12-24 04:14:55 -08:00
Peter Deltchev
e6c31a1500 Updated URL generation to use Laravel 5's helpers. 2015-12-20 07:07:36 -08:00
Peter Deltchev
851dfff921 #39: Implemented asynchronous encoding in uploads. 2015-12-18 05:11:29 -08:00
Peter Deltchev
e3fc8ee6d6 Added the new advertising program page, updated the FAQ, and revamped all the static pages. 2015-12-06 00:22:00 -08:00
Peter Deltchev
07bb5e2c3a #20: Implemented the genre merging tool. 2015-12-05 18:43:05 -08:00
Adam Lavin
3ba8467870 Return error message in profile exception handler response 2015-11-30 01:00:20 +00:00
Adam Lavin
3c0e922b28 Fixed mobile api endpoints 2015-11-30 00:59:59 +00:00
Peter Deltchev
be23475ae5 Include a link to the genre's content in the genre editor. 2015-11-24 03:37:33 -08:00
Peter Deltchev
2bd6a0b258 #2, #20: Added revision tracking to genres, tracks, albums, users, and playlists.
Also ordered genres alphabetically in the genre editor.
2015-11-24 03:15:50 -08:00
Peter Deltchev
4c660fcb71 #20: Implemented the genre renaming tool. 2015-11-24 02:49:47 -08:00