Commit graph

154 commits

Author SHA1 Message Date
Fiete Börner
4298774e7f implement simple multi disc support (#687)
* add disc field to songs table via migration

* add disc field to song model

* collect disc information in file sync process

* sort song list by disc and track number in album context

* check the disc field in file test

* remove nullable flag from disc field in add_disc_into_songs migration

* fix php code style issues

* fix js code style

* fix sort usage in song-list

* sort songs by inserting into queue by clicking the album/artist item play button (album_id, disc, track)

* add disc to sync tags in media model
2017-12-03 11:02:31 +01:00
Fiete Börner
28a98089b5 fix pusher auth endpoint path (#674)
convert static string to template string to use the variable
2017-10-27 23:49:08 +01:00
Fiete Börner
c970481f19 add support for non root installations (#673)
* remove all absolute forward slashes to make relative urls

* set global baseUrl in common blade template

use this variable in all api calls

* fix absolute url paths in scss

set a base href in app index files for all relative resource paths

* rename baseUrl to BASE_URL
2017-10-26 15:59:53 +01:00
Phan An
44b95b3490 Merge branch 'master' of github.com:phanan/koel 2017-10-21 17:56:42 +01:00
Phan An
c5b0ba98e8 Use babel-plugin-root-import 2017-10-03 00:01:37 +01:00
Phan An
f8ed3a1ee5 Use global variables for pusher config instead of dotenv-webpack 2017-10-02 19:38:42 +01:00
Phan An
e689dde778 Import process as a workaround for Babel transforms 2017-10-02 18:20:25 +01:00
Phan An
5e0dcf2078 Make tests green 2017-10-02 02:01:39 +01:00
Phan An
4140780f0e Make volume controller work 2017-09-08 23:15:27 +01:00
Phan An
05888b0b62 Fix JS styles 2017-08-28 12:13:00 +01:00
Phan An
dc7c6bec45 Refactor the remote controller into its own page 2017-08-27 16:53:17 +01:00
Phan An
58b4e8dbbf Move socket listeners to playback service 2017-08-26 22:42:36 +01:00
Phan An
75b0200633 Make socket.init() async 2017-08-26 22:42:14 +01:00
Phan An
9c39ef9e80 First Pusher actions 2017-08-25 01:38:02 +01:00
Phan An
cfb3df2bcc Add a remote controller view 2017-08-25 01:37:21 +01:00
Phan An
48c67fff5e Display YouTube title 2017-08-19 17:53:37 +01:00
Phan An
24eeebde06 Only count a song as played after 10s (closes #619) 2017-08-06 10:55:02 +01:00
Phan An
fbeef63255
More refactoring 2017-05-11 09:32:32 +07:00
Phan An
1f110ddff6
Various refactors and cleanups 2017-05-08 00:41:12 +07:00
Phan An
d83ee5e012
Refactoring 2017-05-05 23:20:51 +07:00
An Phan
65400d40ee
Comment fix 2017-03-27 18:05:43 +08:00
An Phan
96e5c62ce0
Add "Play at 128kbps on mobile" setting 2017-03-26 17:02:03 +08:00
An Phan
632c6272fe
Make estlint happy 2017-03-26 16:13:13 +08:00
An Phan
43ef5cad26
Roll back the previous change 2017-03-26 11:53:04 +08:00
An Phan
26e57bd643
Fix play/pause handling bug 2017-03-26 11:46:17 +08:00
An Phan
cc43d5133a
Override playState of mediaSession for Chrome Android
Per Google Developers official doc:

> Note: The browser may consider that the web app is not playing media
> when files are seeking or loading. You can override this behaviour by
> setting navigator.mediaSession.playbackState to "playing" or "paused".
> This comes in handy when you want to make sure your web app UI stays in
> sync with the media notification controls.
2017-03-26 11:31:30 +08:00
An Phan
4618c8744e
Add media notif handlers on Android 2017-03-26 11:25:56 +08:00
An Phan
3fc10e3043
Preload the next song as soon as we can 2017-03-22 15:44:13 +08:00
An Phan
84d523d240
Refactor 2017-01-17 22:09:27 +08:00
An Phan
9537ad26b1
Refactor 2017-01-17 15:32:03 +08:00
An Phan
086f52761a
Implemented virtual scroll for desktop 2017-01-14 21:09:38 +08:00
An Phan
600e937e4e
Fix link 2016-12-21 00:02:58 +08:00
An Phan
9dc0ddebb5
Remove jQuery 2016-12-20 23:48:37 +08:00
An Phan
d43c62a7b9
Keep recently played songs between sessions 2016-12-19 15:34:51 +08:00
An Phan
f22b108bfb
Normalize artist items playorder (closes #374) 2016-12-01 18:32:11 +07:00
An Phan
adfebd0167
Lint everything 2016-11-26 10:25:35 +07:00
An Phan
cab2ab163d
Remove redundant import 2016-10-18 14:53:23 +08:00
An Phan
e3ee03db24
Complete YouTube feature 2016-07-30 23:32:17 +08:00
An Phan
444d07ec8f
Remove obsolete param docs 2016-07-16 11:31:51 +07:00
An Phan
11712932b3
A better router.go 2016-07-11 09:41:35 +08:00
An Phan
032b9bee7c
Enable navigation with a basic router 2016-07-11 01:55:20 +08:00
An Phan
77fa77081d
Fix login URL regex 2016-07-09 13:20:27 +08:00
An Phan
fad1d2f335
Remove redundant method 2016-07-09 12:07:55 +08:00
An Phan
04959d8eb4
Better test for failed login requests 2016-07-09 12:06:49 +08:00
An Phan
9becc85bdd
Replace vue-resource with jQuery and save a lib 2016-07-09 12:06:14 +08:00
An Phan
405923315f
Use promises 2016-06-27 14:11:35 +08:00
An Phan
8657387f0a
A change of heart re:indent size 2016-06-26 00:05:24 +08:00
An Phan
7f4bb0706d
Better organizing services and stores 2016-06-25 18:15:57 +08:00
An Phan
4de0a8456b
Fix the artist loading & info bug 2016-06-25 16:24:56 +08:00
An Phan
2f8a152c98
Switching to Vue2.0 2016-06-25 16:21:39 +08:00
An Phan
0d404d6f29
Rewrite utils and filters, prepare for Vue 2.x 2016-06-24 23:55:44 +08:00
An Phan
fc325e5262 Refactor media info services 2016-06-05 19:29:49 +08:00
An Phan
774ae68efb Finish Album download, starting Artist download 2016-06-04 19:20:11 +08:00
An Phan
5185f3dc6b Finish structure and song download 2016-06-03 01:53:26 +08:00
An Phan
9a302fd111 Album item's Play button should play by order (fixes #314) 2016-05-30 14:31:12 +08:00
An Phan
4dc06719b3 First try 2016-04-17 23:38:06 +08:00
An Phan
0cb5ae265f Export modules from utils 2016-04-10 16:51:06 +07:00
An Phan
1efe92f7b8 Revamp preference store 2016-04-05 17:19:20 +08:00
An Phan
cfdb4034d1 Refactor 2016-04-05 15:49:03 +08:00
An Phan
481d012d6c Use explicit imports for lodash functions 2016-03-31 15:44:36 +08:00
An Phan
be4378d33f Use proper const wherever applicable 2016-03-28 21:38:14 +08:00
An Phan
e0d783f366 Use getters/setters 2016-03-18 12:45:12 +08:00
An Phan
f6d0db1b4f Make let, not var 2016-03-16 11:51:07 +08:00
An Phan
48c06592ab Fix stop() method when there's no current song 2016-03-14 20:47:45 +08:00
An Phan
01480432a8 Massive jslint fix 2016-03-14 01:00:32 +08:00
An Phan
6b2efbf12a Move nprogress logic to main.js 2016-03-11 18:49:54 +08:00
An Phan
03e8dbd6b9 Add a loading progress bar 2016-03-11 17:55:40 +08:00
An Phan
2d08223106 Attempt to preload the next song (resolves #232) 2016-03-06 16:19:37 +08:00
An Phan
70a34401f6 Better lyrics handling 2016-03-06 15:44:38 +08:00
An Phan
29ac291340 Remove obsolete comments 2016-03-01 00:52:49 +08:00
An Phan
a7e5cdcb00 Eliminate Vue.http deprecated warning 2016-03-01 00:50:25 +08:00
An Phan
921b8a66c7 Manually set media src to fix equalizer bug 2016-02-21 15:03:48 +08:00
An Phan
15af325370 Upgrade plyr to fix player bugs 2016-02-21 14:28:22 +08:00
An Phan
b0a7329a57 Fix all kinds of bug after the poor merge at #243 2016-02-20 21:39:17 +08:00
An Phan
e78f498e13 Resolve issues after merge 2016-02-18 22:59:09 +08:00
rundef
bd937f6d07 Remove bower. Fetch plyr from npm instead 2016-02-17 10:53:53 -05:00
An Phan
6a382c51b2 Use configured app name 2016-02-14 15:38:00 +08:00
An Phan
cb23591f70 Use Vue in a modular way 2016-02-09 11:57:08 +07:00
An Phan
3ca0009f73 Add a home (dashboard) view
A home/dashboard view has been added, which contains most
recently-played songs (in the current session), top songs, albums, and
artists. Song playback has also been revised with proper Vue's
reactivity, resulting in a much better and cleaner code base.
2016-02-08 19:25:44 +07:00
An Phan
7e67d5db59 Add title to audio element 2016-01-30 23:38:55 +08:00
An Phan
5b496915a6 Song now properly skips when error 2016-01-30 23:14:15 +08:00
An Phan
20157e489e Fix playback path 2016-01-28 15:58:41 +08:00
An Phan
8476a042e3 Add CDN support 2016-01-25 21:10:10 +08:00
An Phan
bbce9d9adf Fix repeat-one logic 2016-01-25 15:21:00 +08:00
An Phan
c2aef059ce Add a preamp into the equalizer 2016-01-19 19:00:23 +08:00
An Phan
c017a8dab6 Better jsdoc 2016-01-17 22:26:24 +08:00
An Phan
545c5b9ced Disable equalizer on Apple devices 2016-01-13 21:27:42 +08:00
An Phan
47064547f9 Add a (basic) equalizer 2016-01-11 23:25:58 +08:00
An Phan
52b115aabd Better jsdoc 2016-01-07 17:03:38 +08:00
An Phan
96c91d248b Better play control on mobile 2016-01-07 12:22:02 +08:00
An Phan
d17b9d8103 Allow song selection on mobile devices 2016-01-07 00:41:59 +08:00
An Phan
0460d69f65 Bug fixes and enhancements 2016-01-06 15:17:52 +08:00
An Phan
eeeb03b313 Playback now initializes only once 2016-01-03 16:09:34 +08:00
An Phan
12e4bd473f Basically completed jwt 2015-12-30 11:29:35 +07:00
An Phan
950772a701 Bump version 2015-12-30 11:15:21 +07:00
An Phan
a083696289 Add updateNowPlaying for Last.fm 2015-12-23 14:26:16 +08:00
An Phan
f449a1a744 Add Last.fm scrobbling functionality 2015-12-20 20:17:35 +08:00
An Phan
9f6e46371e Merge branch 'master' into lastfm 2015-12-20 10:07:59 +08:00
An Phan
6457528990 Fix notification bug #67 2015-12-20 10:07:39 +08:00
An Phan
cf27ed713d First integration with Last.fm
Koel can now integrate and use the rich information from Last.fm. Now
whenever a song is played, its album and artist information will be
queried from Last.fm and cached for later use. What's better, if an
album has no cover, Koel will try to update its cover if one is found on
Last.fm.

In order to use this feature, users only need to provide valid Last.fm
API credentials (namely LASTFM_API_KEY and LASTFM_API_SECRET) in .env. A
npm and gulp rebuild is also required - just like with every update.
2015-12-20 00:36:44 +08:00