Commit Graph

271 Commits

Author SHA1 Message Date
Eliot Berriot 2bc71eecfd See #170: add a description field on tracks, albums, tracks 2020-01-14 14:00:08 +01:00
Eliot Berriot 20311344d7 Resolve "Switch to proper full-text-search system" 2019-12-18 15:08:58 +01:00
Eliot Berriot 57949c02c1 Revert "Revert "Fix #994: use PostgreSQL full-text-search""
This reverts commit 7b0db234e2.
2019-12-18 11:26:59 +01:00
Eliot Berriot aea8e4fc59 Resolve "Tagging artists/albums genres when importing music files" 2019-12-18 07:52:09 +01:00
Eliot Berriot dd9cca432d
Disable download by default on track urls exposed over federation 2019-12-09 16:37:04 +01:00
Eliot Berriot 5a37d9771e See #170: federation for channels 2019-12-09 13:59:54 +01:00
Eliot Berriot c94d9214ec See #170: updates to upload API to support channels publishing 2019-12-04 09:55:07 +01:00
Eliot Berriot a89eb8db6e Merge branch 'media-root' into 'develop'
Make media and static files serving more reliable when reverse proxy...

Closes #947

See merge request funkwhale/funkwhale!959
2019-11-27 15:10:23 +01:00
Eliot Berriot 8a9f7845d4
Fix #947: Make media and static files serving more reliable when reverse proxy X_FORWARDED_* headers are incorrect 2019-11-27 15:05:50 +01:00
Eliot Berriot 11a533fa92 Resolve "Adding cover art to my albums" 2019-11-27 12:26:12 +01:00
Eliot Berriot 6bbe48598e See #170: exclude by default all channels-related entities from /artists, /albums and /tracks endpoints results, for backward compatibility 2019-11-25 09:49:49 +01:00
Eliot Berriot c84396e669 Attachments 2019-11-25 09:49:06 +01:00
Eliot Berriot 4dcdc93958
Fix #966: More robust importer against malformed dates 2019-11-14 15:47:18 +01:00
Eliot Berriot 4e7f1e63d2
Denormalized audio permission logic in a separate table to enhance performance 2019-10-22 00:13:25 +02:00
Eliot Berriot 109c490639 Merge branch 's3-proxy-fails-on-nginx' into 'master'
S3 proxy fails on nginx

See merge request funkwhale/funkwhale!935
2019-10-17 10:21:59 +02:00
Eliot Berriot 4a5484c7eb
Fix audio serving issues under S3/nginx when signatures are enabled 2019-10-17 10:14:08 +02:00
Eliot Berriot 66ef7a7332
Fix #946: Fix import crash when importing M4A file with no embedded cover 2019-10-16 10:21:53 +02:00
Eliot Berriot 27b248df6e Fix #661: Support for M4A/AAC files 2019-10-03 09:09:00 +02:00
Eliot Berriot f0bea39d6a
Fix #924: in-place imported files not playing under nginx when filename contains ? or % 2019-10-01 10:57:14 +02:00
Eliot Berriot 618c6d8bb0
Truncate too long long values when importing instead of crashing 2019-09-27 12:49:16 +02:00
Eliot Berriot 93b9e14f8c
Fixed broken cover import when cover file is empty 2019-09-27 12:49:16 +02:00
Eliot Berriot 81349e2b57 Fix #865: Performance optimization on /artists, /albums and /tracks endpoints 2019-09-24 09:48:04 +02:00
Eliot Berriot 94ee3c4360
Fixed unkwown typo :D 2019-09-23 11:30:37 +02:00
Eliot Berriot 3204dfd342
Fix #898: Pickup folder.png and folder.jpg files for cover art when importing from CLI 2019-09-17 11:06:39 +02:00
Eliot Berriot e133130176 Playlist embed 2019-09-12 09:48:28 +02:00
Eliot Berriot 1a1878445c
Fixed album art not being retrieved from Ogg/Opus files 2019-08-26 14:08:00 +02:00
Ciarán Ainsworth 2e0883d44c Fix #895: "Display tracks count instead of albums count for artists with no albums" 2019-08-20 12:12:41 +02:00
Eliot Berriot 32445c5113
Moved test date check into a dedicated function 2019-07-29 10:44:01 +02:00
Eliot Berriot c885c10be1 Merge branch 'refetch-remote-entities' into 'develop'
Added "refresh=true" API param to artist, track and album detail to retrieve up-to-date data if needed

See merge request funkwhale/funkwhale!837
2019-07-24 09:36:15 +02:00
Eliot Berriot 4a277c17bb
Added "refresh=true" API param to artist, track and album detail to retrieve up-to-date data if needed 2019-07-22 12:16:47 +02:00
Eliot Berriot 27f0826195
See #432: expose and federate tags on artists and albums 2019-07-22 09:41:33 +02:00
Eliot Berriot 22bd1512c7
Ensure owner of tracks/albums/artists can approve suggestions 2019-07-18 14:24:18 +02:00
Eliot Berriot 07f8bcf215
See #432: added tag filtering for albums and artists (API) 2019-07-15 14:20:29 +02:00
Eliot Berriot aa6bece8df
See #432: expose artists, album and track tags in API 2019-07-15 14:20:29 +02:00
Eliot Berriot 2bbb2f3239
See #432: can now suggest tags on tracks/albums/artists (API) 2019-07-15 14:20:28 +02:00
Eliot Berriot 7bc8109732 See #432: tags acquisition (from audio files) 2019-07-12 15:06:39 +02:00
Eliot Berriot 6dde4b73cd Implement tag models 2019-07-08 15:26:14 +02:00
Eliot Berriot cdcba85f29 Resolve "Importing tracks without album fails" 2019-06-26 10:38:29 +02:00
Eliot Berriot 0a25243e25
Fix #857: Fix broken upload for specific files when using S3 storage 2019-06-13 11:10:48 +02:00
Eliot Berriot bb5e5460c4
Fix #848: Fixed invalid file extension for transcoded tracks 2019-06-10 11:56:10 +02:00
Eliot Berriot c8ee67e754
Fix #850: Ensure empty but optional fields in file metadata don't error during import 2019-06-10 11:05:07 +02:00
Eliot Berriot 86269c1b07
Can now serve audio content directly from S3 2019-05-09 11:43:35 +02:00
Eliot Berriot a2c52abb4f
See #565: fixed path issues with external storage 2019-04-24 15:27:07 +02:00
Eliot Berriot 0b94227782
Fix #799: Removed broken/instable lyrics feature 2019-04-23 10:32:51 +02:00
Eliot Berriot 55d0e52c55 Edits for artists and albums 2019-04-17 16:11:24 +02:00
Eliot Berriot b4731928fc UI To manage artists, albums, tracks 2019-04-17 14:17:59 +02:00
Eliot Berriot 0e8a5a10e5
Fix #802: Now honor maxBitrate parameter in Subsonic API 2019-04-16 11:35:12 +02:00
Eliot Berriot 8cfd604e51
Fix #782: Better handling of featuring/multi-artist tracks tagged with MusicBrainz 2019-04-12 12:04:25 +02:00
Eliot Berriot 4e44e4e4b6 Attribute artist 2019-04-11 10:17:10 +02:00
Eliot Berriot 0ce51d25d4
Can now edit track copyright information 2019-04-09 11:15:43 +02:00
Eliot Berriot 45142bf24b
Added better dropdown for choosing licenses 2019-04-09 11:15:43 +02:00
Eliot Berriot a3ad476c88
More configurable pagination 2019-04-09 11:15:43 +02:00
Eliot Berriot 6649d0720d
Fix #781: Added a `check_inplace_files` management command to remove purge the database from references to in-place imported files that don't exist on disk anymore 2019-04-05 18:55:00 +02:00
Eliot Berriot 2a82367667
Fix #788: fixed crashing import with empty album artist 2019-04-05 15:41:28 +02:00
Eliot Berriot 05f0129025 Better error handling on display for import errors (#718, #583, #501, #252, #544) 2019-04-04 16:07:43 +02:00
Eliot Berriot 5916a1ba99
Fix #777: Added a prune_library management command to remove obsolete metadata 2019-03-27 17:04:10 +01:00
Eliot Berriot ca7b39c692
Fix #740: Do not consider tracks as duplicates during import if they have different positions 2019-03-27 12:54:29 +01:00
Eliot Berriot 31227b8641
Fix #772: Prevent skipping on file import if album_mbid is different 2019-03-27 12:13:25 +01:00
Eliot Berriot 9a162c57ca
Merge branch 'master' into develop 2019-03-20 20:45:06 +01:00
Eliot Berriot 429ffbf461 Fix #757: Ensure cover art from uploaded files is picked up properly on existing albums 2019-03-20 19:38:41 +01:00
Eliot Berriot 8ae00b0698
Fix #747: Support embedding full artist discographies 2019-03-08 10:34:50 +01:00
Eliot Berriot 12c9db3960 Ensures federation urls can answer to application/ld+json, application/activity+json and application/json requests 2019-03-05 15:15:37 +01:00
Eliot Berriot d243d6a2f5 See #689: now serve AP representations for uploads, tracks, albums and artists 2019-02-28 12:32:09 +01:00
Eliot Berriot e0c5ffcb16 [EPIC] Audio metadata update - UI / API 2019-02-28 09:31:04 +01:00
Eliot Berriot f726b5e105
See #578: Added twitter:* meta tags to detect tracks and albums players automatically on more sites 2019-02-21 14:27:14 +01:00
Eliot Berriot bdf83bd8ff Resolve "Hide an artist in the UI" 2019-02-14 10:49:06 +01:00
jake 7a34c297ed Resolve "add a view to list albums" 2019-02-13 08:46:38 +01:00
Vierkantor 0efdb6d980 Resolve "In-place imports cannot be transcoded" 2019-01-29 09:32:35 +01:00
Eliot Berriot 4a3c21a094
Importer will now pick embedded images in files with OTHER type if no COVER_FRONT is present 2019-01-15 17:14:11 +01:00
Eliot Berriot 08ce00e3cd
Fixed #469: parsing of embedded file cover for ogg files tagged with MusicBrainz Picard 2019-01-14 14:51:35 +01:00
Eliot Berriot 49e1bec7b9
Faster transcoding tests thanks to smaller audio files (see #648) 2019-01-04 12:23:53 +01:00
Eliot Berriot e8b2b94df4
Fixed url escaping for good ;) 2018-12-19 16:45:40 +01:00
Eliot Berriot 94703ff296
Added missing attributes in oembed data 2018-12-19 16:13:01 +01:00
Eliot Berriot 03a7b80d03
Use cropped images for og:image 2018-12-19 16:05:45 +01:00
Eliot Berriot a56531e111
Added missing format in oembed discovery link 2018-12-19 15:53:54 +01:00
Eliot Berriot 9220b2f0f1
See #578: added opengraph and oembed data on artist / album / track urls 2018-12-19 15:04:33 +01:00
Eliot Berriot a493d34b8f Resolve "Track position don't take care about disc number" 2018-12-06 08:53:31 +00:00
Eliot Berriot 5a2cf9112b
Fixed #621: None extension when downloading an in-place imported file 2018-12-04 15:40:14 +01:00
Eliot Berriot e5b46402f8 Fix #308: Licenses 2018-12-04 14:13:37 +00:00
Eliot Berriot 8e84e2bf39
Fix #622: More resilient date parsing during audio import, will not crash anymore on
invalid dates
2018-11-26 17:07:55 +01:00
Eliot Berriot 837d6ad0e1
Fix #473: ".None" extension when downloading Flac file 2018-11-19 23:49:43 +01:00
Eliot Berriot 4976981926
Broadcast library updates (name, description, visibility) over federation 2018-11-09 19:57:14 +01:00
Eliot Berriot d3f8fb6cb0
See #272: updated API to return upload data on tracks 2018-10-26 14:26:52 +02:00
Eliot Berriot 8489c79c89
See #272: clean transcoding files task 2018-10-24 19:44:31 +02:00
Eliot Berriot 2fe1e7c950
See #272: added preference and base logic for transcoding 2018-10-24 19:17:02 +02:00
Eliot Berriot 2b70f3ba42
Fix #581: missing track count on various library cards 2018-10-21 17:38:29 +02:00
Eliot Berriot a865fcdcf1
Fix #551: Added a library widget to display libraries associated with a track, album and artist 2018-10-02 19:30:13 +02:00
Eliot Berriot f5373a9dbf
Cleanup unused code 2018-09-28 22:49:59 +02:00
Eliot Berriot b6e376ed0a 0.17 release documentation initial draft and migration script 2018-09-25 20:18:02 +00:00
Eliot Berriot 125d0eed5e Federation scanning 2018-09-24 18:44:22 +00:00
Eliot Berriot 1bee3a4675 Import trust source 2018-09-23 12:38:42 +00:00
Eliot Berriot 3e49b2057a CLI for importing files with user libraries 2018-09-22 15:47:17 +00:00
Eliot Berriot e49a460203 Audio federation 2018-09-22 12:29:30 +00:00
Eliot Berriot ecd395d6b0 Library follows and user notifications 2018-09-13 15:18:23 +00:00
Eliot Berriot 2ea21994ee Resolve "Per-user libraries" (use !368 instead) 2018-09-06 18:35:02 +00:00
Toke Høiland-Jørgensen 3ce3451d35 tests: Add metadata test with opus file
This adds a metadata test case for extracting data from an opus test
file. The added file is just converted from test.ogg and the same
metadata fields are used.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2018-08-29 21:23:50 +02:00
Eliot Berriot 4781e7821e
Fix #376: Smarter date parsing during import by replacing arrow with pendulum 2018-07-24 23:07:51 +02:00
Eliot Berriot 979c554b4a
Use cropped covers/avatars to reduce bandwidth use 2018-07-20 19:17:39 +02:00
Eliot Berriot 1458c084a7 Resolve "Funkwhale unable to import Albums with multiple Artists" 2018-07-09 20:47:55 +00:00
Eliot Berriot 93cd72ff09
Fix #351: Ensure we do not import artists with empty names 2018-07-09 22:35:32 +02:00
RenonDis 61eb8e4d61 Test for _do_import with replace 2018-06-22 23:50:46 +02:00
Eliot Berriot 77c0b2b1a2
See #297: added black as a local dependency, more verbose check in CI 2018-06-10 12:13:02 +02:00
Eliot Berriot d17ceec1f0
See #297: linting of various, uncommon errors 2018-06-10 12:06:46 +02:00
Eliot Berriot 799386c2b6
See #297: removed a lot of unused variables 2018-06-10 11:27:38 +02:00
Eliot Berriot 9bea804f14
See #297: sorted imports 2018-06-10 10:55:16 +02:00
Eliot Berriot 9427f8b56e
See #297: removed unused imports 2018-06-10 10:39:47 +02:00
Eliot Berriot 639882bd34
See #297: removed unused variables 2018-06-09 17:41:59 +02:00
Eliot Berriot 62ca3bd736
Blacked the code 2018-06-09 15:36:16 +02:00
Eliot Berriot bbae4e323b
Fix #288: Huge performance boost during CLI import that queries MusicBrainz 2018-06-06 21:45:38 +02:00
Eliot Berriot 7c47348855
Fix #267: Do not crash when tag contains multiple uuids with a / separator 2018-06-05 19:44:00 +02:00
Eliot Berriot 18ad6cfa78
Fix #273: fix_track_files will now update files with bad mimetype 2018-06-03 18:57:35 +02:00
Eliot Berriot 5afc3e4637
Fix #266: Ensure we do not store bad mimetypes 2018-06-03 18:07:59 +02:00
Eliot Berriot 290cae9a8f
Fix #231 and #219: ensure we import covers regarless of the import method
Can now import covers from track metadata and track directory as well
2018-06-02 17:34:46 +02:00
David Magnus Henriques e478bb923e Improved Unit test
The tracknumber and the compilation number are now not identical
anymore
2018-05-26 13:16:20 +02:00
Eliot Berriot c6cd3abf9d Merge branch '229-anonymous-access' into 'develop'
Resolve "Ensure anonymous users can listen to music if instance is configured accordingly"

Closes #229

See merge request funkwhale/funkwhale!211
2018-05-24 20:52:40 +00:00
Eliot Berriot 8d55040e9e
See #230: users with upload permission can now launch import and manage their own imports 2018-05-24 22:39:43 +02:00
Eliot Berriot 2586444db2
Fix #229: removed last hardcoded settings to protect audio files 2018-05-24 21:34:59 +02:00
Eliot Berriot 9c02954e46 Merge branch 'action-tables' into 'develop'
Action table component / implementation on federation library tracks

Closes #164 and #228

See merge request funkwhale/funkwhale!210
2018-05-24 19:11:33 +00:00
Eliot Berriot eded32c2e8
See #228: more performante federation import launch via API 2018-05-24 18:53:12 +02:00
David Magnus Henriques 7ae90305e3 Added test for OggTheora Import 2018-05-23 23:33:19 +02:00
Eliot Berriot ba4b6f6ba6
See #228: now use our new action logic for library track import 2018-05-23 21:50:23 +02:00
Eliot Berriot 01ea6562a6
Fix #214: Do not crash on flac import if musicbrainz tags are missing 2018-05-22 23:53:45 +02:00
Eliot Berriot 54008aa37c Merge branch '224-music-api' into 'develop'
Resolve "Better API for artists/album/tracks"

Closes #224 and #226

See merge request funkwhale/funkwhale!205
2018-05-22 21:04:09 +00:00
Eliot Berriot 857fab526d
See #224: less clutered music API, better serializers 2018-05-22 21:10:48 +02:00
Eliot Berriot 7b71463ef8
Removed acoustid support, as the integration was buggy and error-prone (#106) 2018-05-21 20:55:44 +02:00
Eliot Berriot 6fc4275b68
See #152: use new user permissions on relevant viewsets 2018-05-18 18:48:46 +02:00
Eliot Berriot 4b21128e46
See #195: fix_track_files command can now recompute size, bitrate and duration 2018-05-15 22:01:53 +02:00
Eliot Berriot 1bc4ceab9e
See #195: set bitrate, duration and size when importing file 2018-05-15 22:01:52 +02:00
Eliot Berriot 6e168a54ec
Fix #204: missing dot when downloading file 2018-05-15 19:01:49 +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 1937b81699
Fix #196: In-place imported tracks non-ascii characters don't break reverse-proxy serving 2018-05-10 18:52:00 +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 9ec47f1ec9
Added dosctrings to fixtures 2018-04-28 18:39:48 +02:00
Eliot Berriot 7ad21b7d25
Fix #186: moved high-level settings to database preferences 2018-04-28 12:28:13 +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 3d6f0b8b2c
Fix #183: ensure in place imported files get a proper mimetype 2018-04-27 21:10:35 +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 6a67bc6fac
Fix #171: dedicated endpoint to list import jobs, updated front-end 2018-04-22 15:17:06 +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 0d3eb96bec
Fixed failing tests 2018-04-21 16:33:15 +02:00
Eliot Berriot f31874edf5
Implemented followers notification on import and autoimport 2018-04-17 19:35:57 +02:00
Eliot Berriot 5ee1f18089
Fixed failing api test 2018-04-15 11:25:35 +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