Commit Graph

399 Commits

Author SHA1 Message Date
Eliot Berriot 7425a8ea4d
See #195: added bitrate and size fields on track file 2018-05-15 22:01:52 +02:00
Eliot Berriot 3415d02028
Fixed wrong mimetype for flac files 2018-05-15 22:01:52 +02:00
Eliot Berriot 5abac103c4 Merge branch '204-missing-dot' into 'develop'
Resolve "Missing dot in file name when downloading file"

Closes #204

See merge request funkwhale/funkwhale!194
2018-05-15 17:04:35 +00:00
Eliot Berriot 6e168a54ec
Fix #204: missing dot when downloading file 2018-05-15 19:01:49 +02:00
Eliot Berriot 8a321d4abe
Fix #201: escaping issue of track name in playlist modal 2018-05-15 18:37:44 +02:00
Eliot Berriot ce92747d89
Fix #157: Can now import and play flac files
If you ever need an empty flac file with metadata again:

1. Get a flac file (like https://archive.org/download/NineInchNailsTheSlip24bit96khz/01999999.flac)
2. Tag it with Musicbrainz Picard
3. Truncate it, keeping only tags with `ffmpeg -i in.flac -ss 0 -to 0.001 out.flac`

Thanks @HgO for the trick!
2018-05-15 18:20:24 +02:00
Eliot Berriot 2f44dd0eb7 Merge branch '199-disabled-play' into 'develop'
Resolve "Unplayable tracks are not disabled in the interface"

Closes #199

See merge request funkwhale/funkwhale!191
2018-05-13 11:38:11 +00:00
Eliot Berriot 2f5a13a339
Fix #199: unplayable tracks are now properly disabled in the interface 2018-05-12 10:52:58 +02:00
Eliot Berriot 1937b81699
Fix #196: In-place imported tracks non-ascii characters don't break reverse-proxy serving 2018-05-10 18:52:00 +02:00
David Magnus Henriques 023c6f6f5e Encode the Filepath utf-8
The filepath of a track gets broken when it contains special
UTF-8-characters. Encoding it UTF-8 fixes this behaviour.
2018-05-10 13:24:26 +02:00
Eliot Berriot 805f9c6bbc Merge branch '75-subsonic-api' into 'develop'
Resolve "Implement the subsonic API"

Closes #75

See merge request funkwhale/funkwhale!188
2018-05-09 21:27:57 +00:00
Eliot Berriot 40cde0cd92
Queryset methods on artist/albums 2018-05-08 21:21:52 +02:00
Eliot Berriot bbd273404a
See #75: initial subsonic implementation that works with http://p.subfireplayer.net 2018-05-08 16:32:07 +02:00
Eliot Berriot 23d21b0fdb
Fix #193: broken federated import 2018-05-07 19:22:09 +02:00
Eliot Berriot f343159856
Added an accessed_date field on TrackFile for easier cache deletion (#189) 2018-05-06 15:36:18 +02:00
Eliot Berriot a3b2125d2a
See #186: moved api authentication required setting to preference 2018-04-28 06:11:50 +02:00
Eliot Berriot 6100b106c0
See #186: moved federation settings to preferences 2018-04-28 05:55:21 +02:00
Eliot Berriot f4899c5387
Fix #176: Can now relaunch erored jobs and batches 2018-04-28 04:59:47 +02:00
Eliot Berriot 7d3da3d757
Added a fix_track_files command to run checks and fixes against library (#183) 2018-04-27 21:11:20 +02:00
Eliot Berriot 3d6f0b8b2c
Fix #183: ensure in place imported files get a proper mimetype 2018-04-27 21:10:35 +02:00
Eliot Berriot 99ff8169fc Merge branch '178-api-documentation' into 'develop'
Resolve "Document important API features"

Closes #178

See merge request funkwhale/funkwhale!166
2018-04-26 16:29:44 +00:00
Eliot Berriot 472e9f7605
Added q filter on artists 2018-04-26 14:26:01 +02:00
Eliot Berriot a49d3b4251
Fixed #182: X-sendfile not working with in-place imports 2018-04-25 18:50:06 +02:00
Eliot Berriot 300e24dbde
Ensure we return correct paths when using Apache as a reverse proxy 2018-04-22 16:34:07 +02:00
Eliot Berriot ad43d160bd Merge branch '171-import-jobs' into 'develop'
Resolve "Dedicated API endpoint for import jobs"

Closes #171

See merge request funkwhale/funkwhale!156
2018-04-22 13:20:07 +00:00
Eliot Berriot 6a67bc6fac
Fix #171: dedicated endpoint to list import jobs, updated front-end 2018-04-22 15:17:06 +02:00
banana 0f7de68f0d Update common.py to add USE_APACHE_HEADERS set to false
Update views.py to modify headers depending on Nginx or Apache
Update common.py with future proof REVERSE_PROXY_TYPE setting
Update views.py to adapt headers based on REVERSE_PROXY_TYPE
Update views.py, typo on apache
2018-04-22 15:11:04 +02:00
Eliot Berriot 93c57f08f9
Fixed broken youtube-dl import 2018-04-22 12:10:32 +02:00
Eliot Berriot f4ac0b2d3f
Serve view can now serve in-place imported files 2018-04-21 18:21:15 +02:00
Eliot Berriot 58fced2640
updated import_task to support in place import 2018-04-21 18:20:56 +02:00
Eliot Berriot 1672230f39
More verbose/robust import_files command, also skips existing files 2018-04-21 16:16:43 +02:00
Eliot Berriot d98c33e5ed
More efficient SQL query to compute import batch status 2018-04-21 16:02:11 +02:00
Eliot Berriot e29cfb7301
Smarted UUID validation on metadata 2018-04-21 16:01:42 +02:00
Eliot Berriot 2be46b3320
Fix #142: Increased max_length on TrackFile.source 2018-04-19 22:25:58 +02:00
Eliot Berriot ced851891d
Fix #163: Avoid downloading audio files multiple times from remote libraries 2018-04-19 21:19:40 +02:00
Eliot Berriot f31874edf5
Implemented followers notification on import and autoimport 2018-04-17 19:35:57 +02:00
Eliot Berriot ca02aca327
Ensure follower is approved for listening 2018-04-15 11:25:35 +02:00
Eliot Berriot 6a04779125
Will now fetch and cache federated tracks 2018-04-15 11:25:34 +02:00
Eliot Berriot 3a31248a3d
Can now import library tracks from front-end 2018-04-15 11:25:34 +02:00
Eliot Berriot 238d849298
Can now disable SSL cerification for external requests 2018-04-15 11:25:31 +02:00
Eliot Berriot 206ae296b6
Ensure timeout in requests 2018-04-15 11:24:47 +02:00
Eliot Berriot 33972f1f40
Fixed broken uuid migration 2018-04-15 11:24:46 +02:00
Eliot Berriot b5ff339efa
We now use a proper user agent including instance version and url during outgoing requests 2018-04-07 16:20:34 +02:00
Eliot Berriot 9612b1bace
Can now serve track from remote library 2018-04-07 15:34:35 +02:00
Eliot Berriot b29ca44797
Now store remote library tracks in a dedicated model, this is much simpler 2018-04-07 11:29:40 +02:00
Eliot Berriot f273faf9de
Added Library model to have more granular federation management 2018-04-06 18:49:29 +02:00
Eliot Berriot 8db832f03b
Now store source AP track file on track_file 2018-04-06 15:20:53 +02:00
Eliot Berriot 80206761a3
Easy and resusable Audio and AudioCollection serializer 2018-04-06 14:33:13 +02:00
Eliot Berriot 679adfe156
See #126: Added uuid field to all music models 2018-04-06 13:17:26 +02:00
Eliot Berriot 87daa81762
More factories 2018-04-05 23:27:19 +02:00
Eliot Berriot 363acca53d
AudioCollection to import job and track file creation 2018-04-05 23:26:41 +02:00
Eliot Berriot 4d6e894b62
AudioCollection to import job and track file creation 2018-04-05 23:22:28 +02:00
Eliot Berriot 5e901dc5a4
Fixed a bunch of failing tests 2018-03-28 23:54:08 +02:00
Eliot Berriot e99d757b57
Fix #120: Better error handling during file import 2018-03-25 15:44:48 +02:00
Eliot Berriot 4298c4236e
Fixed #119: forced redirection to login even with API_AUTHENTICATION_REQUIRED=False 2018-03-15 22:34:20 +01:00
Eliot Berriot bfeb86865d
Fix #114: can now filter artists and albums with no listenable tracks 2018-03-07 23:08:28 +01:00
Eliot Berriot 17bda77efb
Fix #111: allow skipping of acoustid matching 2018-03-06 20:29:32 +01:00
Eliot Berriot 2354721cd9
Fixed import crashing when no acoustid found 2018-03-04 18:14:37 +01:00
Eliot Berriot a6da10be41
API refinements for activity stream 2018-03-01 23:41:51 +01:00
Eliot Berriot d509c090d3
Basic working poc with favorites send over websocket 2018-03-01 21:51:20 +01:00
Eliot Berriot 691665e3cf
Activity stream representations for user and favorites 2018-03-01 18:38:32 +01:00
Eliot Berriot e13ac32370
Fixed #80: Added admin interface for radios, track files, favorites... 2018-02-27 23:01:55 +01:00
Eliot Berriot 62d0381f91
Fixed #81: Search now unaccent letters for queries 2018-02-27 19:56:02 +01:00
Eliot Berriot b5226367a5
Fixed broken import because of missing transaction 2018-02-27 18:12:23 +01:00
Eliot Berriot 8c7e943013
Fixed #73: broken file upload 2018-02-26 18:27:41 +01:00
Eliot Berriot dcb1915a7b
Can now bind batch to request via API 2018-02-22 23:33:44 +01:00
Eliot Berriot f3d77ef7d9
Update request status based on batch status 2018-02-21 00:09:15 +01:00
Eliot Berriot b492e133c6
Job signal to update batch status 2018-02-21 00:08:46 +01:00
Eliot Berriot 24e2555793
Added status field to import batch, it's synced based on jobs 2018-02-21 00:02:09 +01:00
Eliot Berriot 1cfdf31e00
Can now stream transcoded version of audio tracks \o/ 2018-02-18 23:49:42 +01:00
Eliot Berriot ddea5f1825
Now store track file mimetype in database 2018-02-18 23:46:15 +01:00
Eliot Berriot 50af04345b
Use webpack dev proxy to serve api/media 2018-02-18 14:42:17 +01:00
Eliot Berriot e4edf55c47
Replaced vue-resource by axios 2018-01-11 21:35:51 +01:00
Eliot Berriot e7f0c1b88b
Views and logic for custom radios 2018-01-07 22:21:01 +01:00
Eliot Berriot 1c8f055490
Brand new file importer 2017-12-27 23:32:02 +01:00
Eliot Berriot 2e616282fd
Now use import job everywhere, even for direct file imports 2017-12-27 20:30:50 +01:00
Eliot Berriot 5d2dbbc828
Upgraded celery to 4.1, added endpoint logic for fingerprinting audio files 2017-12-27 17:30:09 +01:00
Eliot Berriot 099cdfa99c
Fixed #54: Now use pytest everywhere \o/ 2017-12-24 19:15:21 +01:00
Eliot Berriot 6ad8b212cf
Fixed #50: ordering for favorites 2017-12-17 20:07:18 +01:00
Eliot Berriot 04c70116c3
See #50: pagination, search and ordering on artist browsing 2017-12-17 19:42:58 +01:00
Eliot Berriot 3396329c19
Fixed reverse import in django.urls 2017-12-16 15:19:33 +01:00
Eliot Berriot 4d09e75262
Update models with on_cascade 2017-12-16 00:36:06 +01:00
Eliot Berriot 0559b1b1ab
Switched to is_authenticated (no parenthesis) 2017-12-15 23:42:20 +01:00
Eliot Berriot e9c3eb59a3
Replaced model_mummy with factory_boy 2017-12-15 23:41:04 +01:00
Eliot Berriot e90e9dc7aa
Fixed #44: now bind track file to import job 2017-12-14 23:06:21 +01:00
Eliot Berriot dcb66690bb
Fixed #7: store release-group id on Album 2017-12-13 23:36:10 +01:00
Eliot Berriot c6d408924b
Added artist filtering on API 2017-12-12 23:27:17 +01:00
Eliot Berriot 4515210162
better pagination on favorites 2017-12-12 22:58:17 +01:00
Eliot Berriot ee1449bdd0
added real file in track factory 2017-12-11 19:32:56 +01:00
Eliot Berriot da4c76ace8 Now return media files with absolute URL 2017-07-11 09:14:54 +02:00
Eliot Berriot e8eaf6db94 Now display CLI instructions to download a set of tracks 2017-07-11 08:40:54 +02:00
Eliot Berriot 0786c58d3d Fixed #33: sort by track position in album in API vy default, also reuse that information on frontend side 2017-07-10 23:24:04 +02:00
Eliot Berriot aa80bd15fa Fixed #4: can now import artists and releases with a clean interface :party: 2017-07-09 11:33:33 +02:00
Eliot Berriot 3ccb70d0a8 Fixed #15 again, now check authorization also using query param 2017-06-29 02:27:35 +02:00
Eliot Berriot bab3981d25 Fixed #15: Ensure we check for authorization for serving audio files, meaning we don't leak the absolute URL anymore 2017-06-28 23:31:43 +02:00
Eliot Berriot 6e7d0ae243 Fixed #21: can now import MP3 files via command line, also improved musicbrainz ID handling in import process 2017-06-26 21:56:24 +02:00
Eliot Berriot 70634048c6 Fixed #18: added v1 namespace under API 2017-06-26 20:19:09 +02:00
Eliot Berriot 4cb2f53db3 Fixed #11: Upgraded to django 1.11 2017-06-26 18:31:22 +02:00
Eliot Berriot 76f98b74dd Initial commit that merge both the front end and the API in the same repository 2017-06-23 23:00:42 +02:00