Commit Graph

1072 Commits

Author SHA1 Message Date
Eliot Berriot 1ca7f62aab
Small performance enhancements 2019-10-22 11:44:38 +02:00
Eliot Berriot 5623b6d88b
Added profiling middleware (enable locally by adding ?prof param to url) 2019-10-22 10:58:37 +02:00
Eliot Berriot 6b5cb9759a
Improved SQL generated by ORM 2019-10-22 00:13:27 +02: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 afc8f22516 Fix tag exclusion in custom radios (#950) 2019-10-21 09:25:36 +02:00
Eliot Berriot c58c74d653
Merge branch 'master' into develop 2019-10-17 15:22:32 +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 57750e39ed
Merge branch 'master' into develop 2019-10-16 11:33:35 +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 6d84a814d9 Revert "Apply suggestion to api/funkwhale_api/common/filters.py"
This reverts commit 4972d760e2809122af54060252be14a638cc87cc.
2019-10-15 15:46:48 +02:00
Eliot Berriot b1e8d4cabd
Fix #936: Support byYear filtering in Subsonic API (#936) 2019-10-15 11:38:21 +02:00
Eliot Berriot 34ffab2707
Version bump and changelog for 0.20 2019-10-04 10:42:33 +02:00
Eliot Berriot 28a091335c
Fix #624: enforce consistentcy in getUser and getMusicFolders endpoint in Subsonic 2019-10-03 11:38:56 +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 d02559f35d
Version bump for 0.20.0-rc1 2019-09-24 15:28:11 +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 884b4d8e81 Merge branch 'unkwown-typo' into 'develop'
Fixed unkwown typo :D

See merge request funkwhale/funkwhale!903
2019-09-23 11:36:33 +02:00
Eliot Berriot 94ee3c4360
Fixed unkwown typo :D 2019-09-23 11:30:37 +02:00
Eliot Berriot 01223afa80 Resolve "Add optional donation/contribution link in-app" 2019-09-23 11:30:25 +02:00
Eliot Berriot 9f3182caf7 See #852: improved routing logic for federation messages (support multiple objects types for one route) 2019-09-21 16:20:49 +02:00
Eliot Berriot f44abfecfb Fix #883: Prevent usage of too weak passwords 2019-09-21 16:11:08 +02:00
Eliot Berriot def555bd50 Merge branch '890-assign-admin' into 'develop'
See #890: assign report to moderator on resolution

See merge request funkwhale/funkwhale!881
2019-09-20 09:28:21 +02:00
Eliot Berriot 921317a217 Implemented missing getSongsByGenre subsonic endpoint 2019-09-19 21:09:18 +02:00
Eliot Berriot dc731532b9
Expose default upload quota in nodeinfo 2019-09-19 11:31:39 +02:00
Eliot Berriot dce7a74f7e See #872: rules and contact email settings 2019-09-19 11:14:21 +02:00
Eliot Berriot d28bf65d00 See #261: Added a rate-limiting (throttling system) to limit the number of requests handled per user/IP 2019-09-17 11:23:59 +02:00
Eliot Berriot 9d0e593bcb Merge branch '898-folder-jpg' into 'develop'
Fix #898: Pickup folder.png and folder.jpg files for cover art when importing from CLI

Closes #898

See merge request funkwhale/funkwhale!895
2019-09-17 11:11:27 +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 ff566b79dc See #872: banner setting 2019-09-17 11:03:32 +02:00
Eliot Berriot 5ca3055713
See #872: added a new terms of service setting 2019-09-16 11:34:17 +02:00
Eliot Berriot 01d2206001
Reduce number of cache calls by retrieving multiple preferences at once in nodeinfo 2019-09-16 11:32:38 +02:00
Eliot Berriot fcf223ad03 Resolve "Broken 'Less listened' Radio in develop version" 2019-09-15 20:22:10 +02:00
Eliot Berriot c3dc4e2ab4
Review fixes for report notifications not included in !880 2019-09-13 06:13:53 +02:00
Eliot Berriot c9a9615be8 See #890: web UI and email notifications on new reports 2019-09-13 06:09:48 +02:00
Eliot Berriot 9552b49a46 See #890: expose number of reports linked to tracks, albums, libraries, accounts and artists via the /stats route 2019-09-13 05:53:40 +02:00
Eliot Berriot daad6a5dc4
See #890: assign report to moderator on resolution 2019-09-12 11:07:42 +02:00
Eliot Berriot e133130176 Playlist embed 2019-09-12 09:48:28 +02:00
Eliot Berriot 33d1f879cf Report UI (end-user) 2019-09-09 11:10:25 +02:00
Eliot Berriot bc39b18173 Merge branch '890-mods-workflow' into 'develop'
moderator interface for reports (#890)

See merge request funkwhale/funkwhale!866
2019-09-06 10:14:09 +02:00
Eliot Berriot 0600819b38
See #890: review tweaks 2019-09-06 10:10:32 +02:00
Ciaran Ainsworth 4b4daf507c Updated wording in dynamic preferences file 2019-09-04 10:01:37 +01:00
Eliot Berriot d5b89f01d7
See #890: added shortcuts for setting moderation policies directly when handling reports 2019-09-02 15:21:26 +02:00
Eliot Berriot 5e39a85ebe
See #890: disable report deletion 2019-09-02 11:06:25 +02:00
Ciarán Ainsworth 53f1f1ce47 Resolve "Setting upload limit in Django" 2019-08-30 15:39:01 +02:00
Eliot Berriot 2ad5b9e9f3
See #890: freeze more data in reports, fixed some failing tests 2019-08-29 14:53:20 +02:00
Eliot Berriot eb5b63c008
See #890: include notes in reports API representations 2019-08-29 14:12:26 +02:00
Eliot Berriot 7a7cc55143
See #890: tweaks / perf improvements 2019-08-29 14:00:10 +02:00
Eliot Berriot b363d1117c
Added GenericRelationFilter 2019-08-29 12:25:41 +02:00
Eliot Berriot ab3bc96783
See #890: added moderation note model, serializers and views 2019-08-29 11:45:41 +02:00
Eliot Berriot 80c8610632
Fixed wrong ID representation in generic relation 2019-08-29 11:45:14 +02:00
Eliot Berriot f48f74dcb3
See #890: store domain name and local status of reported objects 2019-08-28 17:12:54 +02:00
Eliot Berriot fbb814bca8
See #890: added django admin module for reports 2019-08-28 11:32:08 +02:00
Eliot Berriot 9488094ff9
See #890: Added is_local attribute on admin account API representations 2019-08-28 10:22:38 +02:00
Eliot Berriot d7705593a9
See #890: added table to list reports 2019-08-28 10:22:38 +02:00
Eliot Berriot 00efe7e854
Fix unrelated broken actor filtering 2019-08-28 10:22:37 +02:00
Eliot Berriot 8f7ab82117
See #890: initial API endpoint to handle management of reports 2019-08-28 10:22:37 +02:00
Eliot Berriot 815d9c02f8
See #890: Added Oauth scope for managing instance reports 2019-08-28 10:22:37 +02:00
Eliot Berriot 177f06cf2a
See #890: Ensure report handled_date is populated automatically when handling the report 2019-08-28 10:22:37 +02:00
Eliot Berriot b659eec4df
See #890: initial admin serializer for reports 2019-08-28 10:22:36 +02:00
Eliot Berriot 8b13c07625
Fixed #893: empty contentType causing client crash in some Subsonic payloads 2019-08-27 14:15:26 +02:00
Keunes 3842e7ae66 Correct English language mistake dynamic_preferences_registry.py (overrided > overridden; cf https://english.stackexchange.com/questions/75786/overrode-vs-overridden) 2019-08-27 08:21:21 +02:00
Eliot Berriot 1a1878445c
Fixed album art not being retrieved from Ogg/Opus files 2019-08-26 14:08:00 +02:00
Eliot Berriot a6cf2ce019 "[EPIC] Report option on everything - reports models 2019-08-22 11:30:30 +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 4d5e47466c
Updated Django Rest Framework to v3.10 2019-07-30 14:08:01 +02:00
Eliot Berriot bb1a895a9b
Merge branch 'master' into develop 2019-07-29 14:22:31 +02:00
Eliot Berriot eed411de7c Merge branch '548-library-visibility-admin' into 'develop'
Resolve "Admin tools to manage users libraries"

Closes #548

See merge request funkwhale/funkwhale!841
2019-07-29 10:50:32 +02:00
Eliot Berriot be0b120cea
Ensure we can transcode from video/ogg files too 2019-07-25 15:43:46 +02:00
Eliot Berriot 4d0fedab1f
Fix #548: Mods can now change a library visibility through the admin UI 2019-07-25 14:15:47 +02:00
Eliot Berriot 84f830829f
See #432: include tags in admin API representation of tracks, albums and artists 2019-07-25 10:50:49 +02:00
Eliot Berriot a48a32c7e9
See #432: can now filter with tags in Track/album/artist admin 2019-07-25 10:43:34 +02:00
Eliot Berriot aaced60ec1
See #432: added /action endpoint to manage tags in batch 2019-07-25 10:22:42 +02:00
Eliot Berriot 13f36beec3
See #432: added admin API endpoints to retrieve and delete tags 2019-07-24 10:24:30 +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 692e175a6c
See #432: genre listing/filtering in Subsonic 2019-07-19 08:21:36 +02:00
Eliot Berriot 904a482698
Ensure we render tag text properly in Subsonic XML 2019-07-19 07:53:37 +02:00
Eliot Berriot 9376f808e9 Merge branch '432-tags-radio' into 'develop'
See #432: tags radio and search

See merge request funkwhale/funkwhale!834
2019-07-19 06:58:25 +02:00
Eliot Berriot f6329af215 Merge branch 'attributed-to-suggestions' into 'develop'
Ensure owner of tracks/albums/artists can approve suggestions

See merge request funkwhale/funkwhale!833
2019-07-19 06:57:56 +02:00
Eliot Berriot 34d600d9df
See #432: can now build custom radios using tags 2019-07-18 15:34:23 +02:00
Eliot Berriot e21e0e50d1
See #432: added tag search in sidebar 2019-07-18 15:26:30 +02:00
Eliot Berriot d808a1f1ac
Fixed a bug with in-place imported files not playing 2019-07-18 15:13:34 +02:00
Eliot Berriot 918e7beb7e
See #432: can now start a radio from a tag 2019-07-18 15:13:09 +02:00
Eliot Berriot 22bd1512c7
Ensure owner of tracks/albums/artists can approve suggestions 2019-07-18 14:24:18 +02:00
Eliot Berriot be91b56fc8
Fixed broken tag generation in load_test_data command 2019-07-18 14:08:38 +02:00
Eliot Berriot 9336fec430
See #432: added some filters in tags API 2019-07-18 14:08:36 +02:00
Eliot Berriot 995be49402
See #432: fixed an ordering issue on tag length 2019-07-18 14:08:36 +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 1b34ae2335
See #432: enforce a maximum number of tags per entity 2019-07-15 11:53:58 +02:00
Eliot Berriot bd271c8ead
See #432: Moved tag validation in the tags app 2019-07-15 11:32:14 +02:00
Eliot Berriot c8135d38b1
See #432: added model tagging logic on artists and albums 2019-07-15 10:53:33 +02:00
Eliot Berriot 426f6f0d45
Fixed failing test 2019-07-13 11:15:31 +02:00
Eliot Berriot 7bc8109732 See #432: tags acquisition (from audio files) 2019-07-12 15:06:39 +02:00
Eliot Berriot 8ee5578693 Merge branch '432-tags-api' into 'develop'
See #432: API endpoints to query tags

See merge request funkwhale/funkwhale!824
2019-07-12 14:53:38 +02:00
Eliot Berriot 57e0eea181 See #432: expose and reuse tags over federation 2019-07-10 19:41:00 +02:00
Eliot Berriot 9f3076f4db
See #432: API endpoint to query tags 2019-07-09 16:03:41 +02:00
Eliot Berriot e11c1dfe29
Fix broken object creation in load_test_data command 2019-07-09 15:37:24 +02:00
Eliot Berriot 6dde4b73cd Implement tag models 2019-07-08 15:26:14 +02:00
Eliot Berriot b95710bb3a
Merge branch 'master' into develop 2019-07-05 16:04:39 +02:00
Eliot Berriot 0989df4795 Merge branch 'custom-css' into 'master'
Custom css

See merge request funkwhale/funkwhale!818
2019-07-04 10:36:07 +02:00
Eliot Berriot 38ab05195b
Fix #867: Fixed remaining transcoding issue with Subsonic API 2019-07-03 11:38:06 +02:00
Eliot Berriot 7897c8ac7f
Fix #879: Admins can now add custom CSS from their pod settings 2019-07-03 11:23:45 +02:00
Eliot Berriot 53b826c81a
Fix #877: Ensure API urls answer with and without a trailing slash 2019-07-02 14:31:47 +02:00
Eliot Berriot 0e652103a4
Merge branch 'master' into develop 2019-07-01 14:02:28 +02:00
Eliot Berriot 76956868fa Broken pytest 2019-07-01 14:00:32 +02:00
Eliot Berriot 8f261f96e9
Merge branch 'master' into develop 2019-06-28 10:38:52 +02:00
Eliot Berriot 8f3a8243ea
Version bump and changelog for 0.19.1 2019-06-28 10:24:59 +02:00
Eliot Berriot bfff79301d Fix #867: Added a SUBSONIC_DEFAULT_TRANSCODING_FORMAT env var to support clients that don't provide the format parameter 2019-06-28 09:59:57 +02:00
Eliot Berriot 17996ca936
Merge branch 'master' into develop 2019-06-28 09:38:55 +02:00
Eliot Berriot dc5db3a0c1
Fix #869: broken user admin for users with non-digit or letters in their username 2019-06-27 14:50:56 +02:00
Eliot Berriot 95cd64582c
Fix #868: Added opus to the list of supported mimetypes and extensions 2019-06-27 06:07:05 +02:00
Eliot Berriot cdcba85f29 Resolve "Importing tracks without album fails" 2019-06-26 10:38:29 +02:00
Eliot Berriot 22e9851ad8 UI for allow-list 2019-06-26 10:22:53 +02:00
Eliot Berriot 45acf7ca3f See #853: force authenticated ActivityPub checks when allow-list is enabled 2019-06-26 10:22:29 +02:00
Reg a1d01105a1
Fixed typo refrence => reference 2019-06-25 11:03:45 +02:00
Eliot Berriot c55a926d33
Linting 2019-06-24 16:23:44 +02:00
Eliot Berriot d39edae061
Fixed crashing nodeinfo fetching when remote answers with invalid JSON 2019-06-24 16:21:06 +02:00
Eliot Berriot cbf9f74e49
Fixed 500 error when adding domain without nodeinfo 2019-06-24 16:07:53 +02:00
Eliot Berriot b43bf42efc
Revert "Fixed broken logging"
This reverts commit 68b21d706c.
2019-06-24 15:31:11 +02:00
Eliot Berriot 68b21d706c
Fixed broken logging 2019-06-24 15:30:17 +02:00
Eliot Berriot 581e890ad9
See #853: advertise allow-list configuration in nodeinfo 2019-06-21 15:57:04 +02:00
Eliot Berriot 08262529ec MRF / Dropping of incoming/outgoing messages based on allow-list 2019-06-20 10:27:07 +02:00
Eliot Berriot 371dc01205
Merge branch 'master' into develop 2019-06-19 11:24:49 +02:00
Reg 2301982374 Fixed typo refrence => reference 2019-06-18 22:52:57 +02:00
Eliot Berriot 2b2b64f0a7 Model / settings for allow-listing 2019-06-17 08:48:05 +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 2523108b6a
Fix #847: Use ASCII filename before upload to S3 to avoid playback issues 2019-06-11 09:56:46 +02:00
Eliot Berriot ce4a6b0412
Fix #851: wrong og:image url when using S3 storage 2019-06-10 12:06:29 +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 024addfb4b
Added username and domain filter on /history/listenings endpoint 2019-06-10 09:51:29 +02:00
Eliot Berriot e99b7703b9
Version bump and changelog for 0.19.0 2019-05-16 10:58:00 +02:00
Eliot Berriot 4a412d36a9
Fix #830: Better handling of follow/accept messages to avoid and recover from desync between instances 2019-05-14 10:59:49 +02:00
Eliot Berriot 818d78344f
Version bump for 0.19.0-rc2 2019-05-10 10:05:26 +02:00
Eliot Berriot 1f3f790f63
Fix #819: Fixed invalid required fields in Upload django's admin 2019-05-09 12:13:00 +02:00
Eliot Berriot 86269c1b07
Can now serve audio content directly from S3 2019-05-09 11:43:35 +02:00
Eliot Berriot aad2a50536
Fixed issue when transcoding from federation 2019-05-07 12:36:29 +02:00
Eliot Berriot 3b06cd25ee
Include uuid in filterable fields for music models 2019-05-07 11:29:25 +02:00
Eliot Berriot c8fcf1b0d9
Support oauth token in URL 2019-05-03 12:30:57 +02:00
Eliot Berriot e3b0efb25f
Bump to 0.19.0-rc1 2019-05-02 14:26:46 +02:00
Eliot Berriot 1345ba183c
Fixed follow autoapproval not working with "instance" visibility level 2019-05-02 13:57:42 +02:00
Eliot Berriot 119df01335
Fix #808: Advertise the list of supported upload extensions in the Nodeinfo endpoint 2019-05-02 13:15:33 +02:00
Eliot Berriot 8c04acd8e7
Fix #812: Ensure correct track duration and playable status when browsing radios 2019-05-02 10:17:55 +02:00
Eliot Berriot 0be93ec05b
Fix #563: unplayable radios for anonymous users 2019-05-02 10:05:20 +02:00
Eliot Berriot 048339c7a2
Fix #809: Added admin options to disable login for users, ensure related content is deleted when deleting a user account 2019-04-30 14:46:05 +02:00
Eliot Berriot 430af5560c Merge branch '565-failing-tests' into 'develop'
See #565: fixed path issues with external storage

Closes #565

See merge request funkwhale/funkwhale!736
2019-04-24 15:29:57 +02:00
Eliot Berriot a2c52abb4f
See #565: fixed path issues with external storage 2019-04-24 15:27:07 +02:00
Eliot Berriot 993783190a
Fix #619: Use attributedTo instead of actor in library ActivityPub payload 2019-04-24 14:40:58 +02:00
Eliot Berriot f9a9899ef9 Merge branch '565-external-storages' into 'develop'
Fix #565: store media files in S3 bucket

Closes #565

See merge request funkwhale/funkwhale!735
2019-04-24 12:59:45 +02:00
Eliot Berriot 6135d427e7
Fixed some issues 2019-04-24 12:56:15 +02:00
Qasim Ali 22f0235045 refactor playlist duplicate error structure
- use non_field_errors struct when writing duplicate track errors
- generalize frontend error handler and update frontend error parsing
2019-04-24 11:31:46 +02:00
Eliot Berriot 101ae27885
Fix #565: store media files in S3 bucket 2019-04-23 18:01:42 +02:00
Eliot Berriot 51d94a13fa Merge branch '798-more-flexible-user-url' into 'develop'
Fix #798: Allow users with dots in their usernames to request a subsonic password

Closes #798

See merge request funkwhale/funkwhale!733
2019-04-23 11:38:42 +02:00
Eliot Berriot b23e87e102
Fix #798: Allow users with dots in their usernames to request a subsonic password 2019-04-23 11:35:59 +02:00
Eliot Berriot 39485c8e02
Fix #806: Use proper site name/domain in emails 2019-04-23 11:14:58 +02:00
Eliot Berriot 0b94227782
Fix #799: Removed broken/instable lyrics feature 2019-04-23 10:32:51 +02:00
Eliot Berriot d595d168e3 See #689: Fixed some performance issues with filtering on library/upload/track pages 2019-04-19 14:16:23 +02:00
Eliot Berriot 960c9ffbbe
Fixed wrong action serializer for uploads 2019-04-19 12:38:06 +02:00
Eliot Berriot a605bcbe76 Admin UI for libraries and uploads 2019-04-19 12:05:13 +02:00
Eliot Berriot cdc617be27 Logic to refetch remote entities 2019-04-18 14:37:17 +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 5e3cc99f20
See #689: fetch nodeinfo when seing a domain for the first time 2019-04-11 11:25:55 +02:00
Eliot Berriot 84e2f0af9f
See #689: added a task to refresh nodeinfo data on known domain periodically 2019-04-11 11:14:27 +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 b36b03383e
Fixed broken metadata update on track without license 2019-04-09 09:34:59 +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 f5a6a40d7f
Fix #787: federation issue due to missing error handling 2019-04-05 16:22:32 +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 8a5c85a823 Merge branch 'discard-unhandled-activities' into 'develop'
Fix #776: Don't store unhandled ActivityPub messages in database

Closes #776

See merge request funkwhale/funkwhale!696
2019-03-27 13:46:08 +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 46f1d96206
Fix #776: Don't store unhandled ActivityPub messages in database 2019-03-27 12:53:35 +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 4c13d47387 Resolve "Implement a Oauth provider in Funkwhale" 2019-03-25 17:02:51 +01:00
Eliot Berriot e587e5aebc
Merge branch 'master' into develop 2019-03-21 10:46:28 +01:00
Eliot Berriot c196016035
Version bump and changelog for 0.18.3 2019-03-21 10:41:14 +01:00
Eliot Berriot cc71d2bb20
Fix #570: Exclude in-place imported files from quota computation 2019-03-21 10:32:12 +01:00
Eliot Berriot 9a162c57ca
Merge branch 'master' into develop 2019-03-20 20:45:06 +01:00
Eliot Berriot 124a7c3dcf
Fix #767: broken Activity and Actor modules in django admin 2019-03-20 20:18:19 +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 5715773fa7
Fix #765: Include disc number in Subsonic responses 2019-03-20 17:13:40 +01:00
Eliot Berriot 33190613a2
Fix #737: delivering of local activities causing unintended side effects, such as rollbacking changes 2019-03-20 16:21:03 +01:00
Eliot Berriot b70636c2d8
Fixed a small federation issue when empty library summary 2019-03-19 17:53:17 +01:00
Eliot Berriot b9f0c6aecd
Revert "Merge branch '629-cookie-auth' into 'develop'"
This reverts commit 8b47af8b81, reversing
changes made to c0055b3b20.
2019-03-15 15:52:30 +01:00
Eliot Berriot da3710ff08 Fix #758: Ensure all our ActivityPub fetches are authenticated 2019-03-15 12:08:45 +01:00
Eliot Berriot c395076fce Resolve "Use cookies instead of local storage for auth in Web UI" 2019-03-13 16:50:49 +01:00
gordon 1a3e7a5e0d Fix Factories for dev data 2019-03-12 14:15:58 +01:00
Eliot Berriot 8ae00b0698
Fix #747: Support embedding full artist discographies 2019-03-08 10:34:50 +01:00
Eliot Berriot 1d787904f4
Merge branch 'master' into develop 2019-03-08 09:40:55 +01:00
Eliot Berriot f73c7714c6
Fixed a crash when federating a track with unspecified position 2019-03-08 09:29:43 +01:00
Eliot Berriot 491c79efa0
Merge branch 'master' into develop 2019-03-07 13:44:33 +01:00
Eliot Berriot 3d94eddcfc
Fix #743: Do not send notification when rejecting a follow on a local library 2019-03-07 12:09:45 +01:00
Eliot Berriot 0afa4f2e27 Fix #737: delivering of local activities causing unintended side effects, such as rollbacking changes 2019-03-06 15:33:39 +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 d23d69e11d
Fixed an issue with excluded artists 2019-02-25 10:36:02 +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
Eliot Berriot 8b1801ce6d
Merge branch 'master' into develop 2019-02-13 09:28:50 +01:00
Eliot Berriot e73e6db8ef
Version bump and changelog for 0.18.2 2019-02-13 09:28:14 +01:00
Eliot Berriot 7e1bd1ad07
Merge branch 'master' into develop 2019-02-13 09:09:31 +01:00
jake 7a34c297ed Resolve "add a view to list albums" 2019-02-13 08:46:38 +01:00
Eliot Berriot 00846ca3e9
Fix #706: Added a 'fix_federation_ids' management command to deal with protocol/domain issues in federation
IDs after deployments
2019-02-11 11:59:32 +01:00
Eliot Berriot 98f4edeeb3
Merge branch 'master' into develop 2019-02-11 09:44:42 +01:00
Eliot Berriot d99757658c
Fix #705: Can now use a local file with FUNKWHALE_SPA_HTML_ROOT to avoid sending an HTTP request 2019-02-08 17:36:10 +01:00
Eliot Berriot c16258ed14
Removed popularity weight in similar radio, to avoid filter bubbles 2019-01-31 14:55:05 +01:00
Eliot Berriot 5ce4cc8379
[Experimental] Added a new "Similar" radio based on users history (suggested by @gordon) 2019-01-30 16:54:35 +01:00
Eliot Berriot 253f026dc0 System actor 2019-01-30 11:54:43 +01:00
Eliot Berriot 4a197e5475
Version bump and changelog for 0.18.1 2019-01-29 14:25:19 +01:00
Eliot Berriot 7df97263e5
Merge branch 'develop' 2019-01-29 10:06:04 +01:00
Vierkantor 0efdb6d980 Resolve "In-place imports cannot be transcoded" 2019-01-29 09:32:35 +01:00
Eliot Berriot 78546232d0
Fix #685: Disable makemigrations in production and misleading message when running migrate 2019-01-26 22:01:47 +01:00
Eliot Berriot 37ca06c370
Fixed celery worker defaulting to development settings instead of production 2019-01-25 15:39:48 +01:00
Eliot Berriot cd36128769
Fix #684: Include shared/public playlists in Subsonic API responses 2019-01-25 12:12:00 +01:00
Eliot Berriot 3b87580a69
Reduced number of SQL queries when loading /api/admin/music/tracks/ 2019-01-24 11:06:37 +01:00
Eliot Berriot f44d2b0694
Version bump and changelog 2019-01-22 12:04:30 +01:00
Eliot Berriot 079c66625e
Fix #663: Do not try to create unaccent extension if it's already present 2019-01-22 09:58:35 +01:00
Eliot Berriot 0b66737181
Include user activity stats in nodeinfo endpoints 2019-01-21 10:16:50 +01:00
Eliot Berriot e8c81d734f
Fixed wrong value for anonymousCanListen in nodeInfo 2019-01-21 09:52:41 +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 6aaa51e8e7
Fix #564: Added a script to prune pre 0.17 federated tracks 2019-01-14 17:11:24 +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 5fe30cf59b
Fix #658: Support blind key rotation in HTTP Signatures 2019-01-11 15:39:33 +01:00
Eliot Berriot fe03d08a8e
Removed unused acoustid dependency / logic 2019-01-11 14:10:02 +01:00
Eliot Berriot 14392ebb0c
Updated rest framework to 3.9 2019-01-11 14:10:02 +01:00
Eliot Berriot 4a6df06360
Upgraded django to 2.1 and django-filters to 2.0 2019-01-11 12:03:06 +01:00
Eliot Berriot 97aaffaeda
Removed youtube-dl / and another unused dependency 2019-01-11 11:26:41 +01:00
Eliot Berriot ee4e5c244f
Bumbed version number to 0.18-dev 2019-01-10 14:48:16 +01:00
Eliot Berriot 53ade20722 Merge branch 'more-performant-favorites' into 'develop'
More performant favorites

See merge request funkwhale/funkwhale!522
2019-01-10 12:00:35 +01:00
Eliot Berriot 3916986fb8
Performance improvement when fetching favorites, down to a single, small http request 2019-01-10 11:58:18 +01:00
Eliot Berriot 81e7b900fe
Fixed https url-reversing issue in development 2019-01-10 11:55:48 +01:00
Eliot Berriot 4811f35eb5
Linting 2019-01-10 11:11:32 +01:00
Eliot Berriot d63f8f2e33
Added django admin module to manage instance policies 2019-01-10 11:11:32 +01:00
Eliot Berriot 377f237fdb
Rejecting media files on an instance or account now purge existing media 2019-01-10 11:11:31 +01:00
Eliot Berriot 1c55f2c9a6
Use our instance policies to discard fetched and inbox objects 2019-01-10 11:11:30 +01:00
Eliot Berriot 24fdfd345c
Display policy data in account/domain tables 2019-01-10 11:11:29 +01:00
Eliot Berriot 233ac870be
Added actions and tasks to purge domains and actors 2019-01-09 14:20:22 +01:00
Eliot Berriot 0bc9bb65b0
Model, view and serializer for instance-level policies 2019-01-07 09:45:53 +01:00
Eliot Berriot ddffbeadfa
Can now add domains via manage API / UI 2019-01-05 18:21:35 +01:00
Eliot Berriot 031d96a0a6
Return shorter search results on Subsonic API 2019-01-05 16:07:58 +01:00
Eliot Berriot d4eff5aa32
Less DB queries in test factories 2019-01-04 14:36:08 +01:00
Eliot Berriot 67de32ccc2
Removed 2 DB queries per request when user is authenticated 2019-01-04 13:52:36 +01:00
Eliot Berriot 7657db4212
Fix #648: Improved test suite speed by reducing / disabling expensive operations 2019-01-04 11:47:23 +01:00
Eliot Berriot 2da3a3842e
Improved performance when listing playable tracks, albums and artists 2019-01-03 22:57:29 +01:00
Eliot Berriot 89f6e3656b
Show short entries first in search results to improve UX 2019-01-03 17:34:14 +01:00
Eliot Berriot e186c6bb06
Admin UI to list and manage remote and local accounts 2019-01-03 17:10:02 +01:00
Eliot Berriot 47209ee5ae
Added API to list and detail actors 2019-01-03 11:47:29 +01:00
Eliot Berriot a7d7756545
Fix #374: Strip EXIF metadata from uploaded avatars to avoid leaking private data 2019-01-02 12:39:00 +01:00
Eliot Berriot 9d55320b56
Fixed slow query on domain list / stats 2018-12-27 22:45:43 +01:00
Eliot Berriot 942e9a15cb
Linting 2018-12-27 20:39:03 +01:00
Eliot Berriot 032197da3f
Added stats endpoint for domain 2018-12-27 20:33:12 +01:00
Eliot Berriot be388870a3
Can now fetch domain nodeinfo 2018-12-27 20:33:12 +01:00
Eliot Berriot e4117043cb
Added API endpoint and UI to list known domains 2018-12-27 20:33:11 +01:00
Eliot Berriot 34ec869ca1
Removed obsolete permissions, added a new moderation permission 2018-12-27 20:33:11 +01:00
Eliot Berriot af53ee7c7d
Ensure all our AP types are present 2018-12-27 20:33:11 +01:00
Eliot Berriot 7ac3bb98da
Moved actor domain to a dedicated table 2018-12-27 20:33:11 +01:00
Eliot Berriot 060543f62c
Fixed logging issues 2018-12-26 20:24:42 +01:00
Eliot Berriot 24b8ca7227
Removed dead code 2018-12-26 20:23:48 +01:00
Eliot Berriot 95e087b342
Removed raven on front-end 2018-12-20 11:07:30 +01:00
Eliot Berriot e8b2b94df4
Fixed url escaping for good ;) 2018-12-19 16:45:40 +01:00
Eliot Berriot d7ea78d2bf
Linting 2018-12-19 16:16:10 +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 dd23dfa07c
Point to new gitlab URL 2018-12-10 16:00: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 22de4a98c5
Fix #616: Fixed inconsistencies in subsonic error responses 2018-11-18 23:17:31 +01:00
Eliot Berriot 4976981926
Broadcast library updates (name, description, visibility) over federation 2018-11-09 19:57:14 +01:00
Eliot Berriot 51457aa889
Fix #553: Advertise public libraries properly in ActivityPub representations 2018-11-09 19:57:14 +01:00
Eliot Berriot bcd22eb38c
See #272: linting and changelog 2018-10-26 16:09:00 +02:00
Eliot Berriot ac4bba816d
See #272: added transcoding settings in UI 2018-10-26 16:09:00 +02:00
Eliot Berriot daf2e4b863
See #272: subsonic support for transcoding 2018-10-26 16:09:00 +02: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 baf5a350b3
See #272: added admin and model for transcoding 2018-10-24 19:11:57 +02:00
Eliot Berriot aaaa2479dc
Missing changelog and getLicense endpoint for #581 2018-10-21 20:45:24 +02:00
Eliot Berriot 77973ba6f9
See #574: linting 2018-10-21 20:33:41 +02:00
Eliot Berriot bf3b3854dc
See #573: Added missing type / version in getLicense endpoint 2018-10-21 20:30:19 +02:00
Eliot Berriot ccd600ecca
See #574: Implemented getRandomSongs endpoint 2018-10-21 20:30:16 +02:00
Eliot Berriot 8c5924d6e3
Ensure distinct is applied on all playable_by querysets 2018-10-21 20:30:16 +02:00
Eliot Berriot 439d4fd6b3
See #574: Implemented getUser view 2018-10-21 20:30:12 +02:00
Eliot Berriot d3e411fa97
See #574: Implemented getAvatar view 2018-10-21 20:30:08 +02:00
Eliot Berriot 6c7ee54dbc Merge branch '573-subsonic-type' into 'develop'
Fix #573: Added "type: funkwhale" and "funkwhale-version" in Subsonic responses

Closes #573

See merge request funkwhale/funkwhale!456
2018-10-21 15:48:57 +00:00
Eliot Berriot 941f2f6677
Fix #573: Added "type: funkwhale" and "funkwhale-version" in Subsonic responses 2018-10-21 17:43:22 +02:00
Eliot Berriot 2b70f3ba42
Fix #581: missing track count on various library cards 2018-10-21 17:38:29 +02:00
Eliot Berriot dc1e4fb0c7
Version bump and release for 0.17 2018-10-07 11:53:09 +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 d7b6e54621 Merge branch 'admin-raw-id-fields' into 'develop'
Ensure we always use raw_ids for related fields in django's admin

See merge request funkwhale/funkwhale!431
2018-10-01 20:03:08 +00:00
Eliot Berriot 3895034089
Ensure we always use raw_ids for related fields in django's admin 2018-10-01 21:56:52 +02:00
Eliot Berriot 314765de7c
Fix #546: Ensure from_activity field is not required in django's admin 2018-10-01 21:43:33 +02:00
Eliot Berriot 1aa9b557d1 Merge branch 'subsonic-user-libraries' into 'develop'
Subsonic user libraries

See merge request funkwhale/funkwhale!428
2018-10-01 19:22:14 +00:00
Eliot Berriot 47aa209df2
See !368: ensure we filter playable entities in subsonic API 2018-10-01 21:16:11 +02:00
Eliot Berriot 02006270cd
See #542: fixed issue with empty actor during upgrade script 2018-10-01 19:16:48 +02:00
Eliot Berriot 62c98b2386
See #542: Removed import requests code 2018-10-01 19:16:47 +02:00
Eliot Berriot 42933fa138 Merge branch 'cleanup-017' into 'develop'
Cleanup  unused code

See merge request funkwhale/funkwhale!426
2018-09-28 20:55:37 +00:00
Eliot Berriot f5373a9dbf
Cleanup unused code 2018-09-28 22:49:59 +02:00
Eliot Berriot ec3fcefabf
Ensure radio tracks only return playable tracks 2018-09-28 22:19:43 +02:00
Eliot Berriot 4d425e92ee Merge branch 'federation-cache-cleaning' into 'develop'
Ensure cache_cleaning only targets remote files

See merge request funkwhale/funkwhale!424
2018-09-28 19:36:38 +00:00
Eliot Berriot 428de17817
Ensure cache_cleaning only targets remote files 2018-09-28 21:30:45 +02:00
Eliot Berriot 762b9f73ad Merge branch 'disable-federation' into 'develop'
Do not deliver anything to remote instances when federation is disabled

See merge request funkwhale/funkwhale!423
2018-09-28 19:25:11 +00:00
Eliot Berriot b028f3f817
Do not deliver anything to remote instances when federation is disabled 2018-09-28 21:19:37 +02:00
Eliot Berriot 508873dffb
Lining 2018-09-28 20:50:28 +02:00
Eliot Berriot 54972e489b
Fixed unplayable playlists (bis repetita) 2018-09-28 20:46:18 +02:00
Eliot Berriot d000a1329f
Can now update user quota in UI 2018-09-28 20:45:31 +02:00
Eliot Berriot c641b8f500
Linting 2018-09-28 16:48:26 +02:00
Eliot Berriot 34373d020c
Fixed unplayable playlists 2018-09-28 16:45:28 +02:00
Eliot Berriot 59337fb5d8
Fixed import issue with empty album artist 2018-09-26 19:58:08 +02:00
Eliot Berriot 0d96e75eeb
Do not silent import errors 2018-09-26 19:23:15 +02:00
Eliot Berriot 527edc1e1e
Minor fixes 2018-09-25 22:52:09 +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
Eliot Berriot 14d8224db4 Merge branch 'develop' into 'develop'
Add support for setting the musicbrainz hostname

Closes #471

See merge request funkwhale/funkwhale!394
2018-08-31 20:46:04 +00:00
Toke Høiland-Jørgensen cb5b3be844 Add support for setting the musicbrainz hostname
Useful for using a local musicbrainz mirror.

Fixes #471.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2018-08-31 22:36:12 +02:00
Eliot Berriot 330d8c21b4 Merge branch 'develop' into 'develop'
Add support for Opus files

Closes #244

See merge request funkwhale/funkwhale!390
2018-08-31 18:58:24 +00:00
Toke Høiland-Jørgensen 7d9220ed49 subsonic: Implement getSong API endpoint
The getSong API endpoint is used by, e.g., the subsonic plugin to mopidy.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2018-08-30 14:21:11 +02:00
Toke Høiland-Jørgensen 8193782f68 subsonic: Don't crash when serialising artist with no name
If the name of an artist is not set, the serialiser will crash. Instead,
just skip such an artist when serialising a list of artists.

Also add test for serialising an artist with an empty name.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2018-08-30 14:18:17 +02:00
Toke Høiland-Jørgensen 2f46d83834 subsonic: Catch ValueError when casting input parameters
A failed cast to int will raise ValueError, which is not currently caught
by the error checking code, leading to a crash. Fix this so a proper error
message can be returned.

Also add test for getting artist with non-numeric ID.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2018-08-30 14:18:02 +02:00
Toke Høiland-Jørgensen 0d128d40d5 Add support for Opus files
This adds support for reading metadata from Opus files. The metadata config
is copied from OggVorbis with just the 'track' field name changed.

Also make sure get_audio_file_data() in music/utils.py doesn't crash if no
bitrate information is set, since mutagen doesn't add a bitrate to Opus
info objects.

Fixes #244.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2018-08-29 21:23:50 +02:00
Joshua M. Boniface 4ce46ff2a0 Implement LDAP authentication 2018-08-22 18:10:39 +00:00
Eliot Berriot 9875e81c76
Version bump and changelog for 0.16.3 2018-08-21 20:34:06 +02:00
Eliot Berriot 658de6fe84
Version bump and changelog for 0.16.2 2018-08-21 19:03:00 +02:00
Eliot Berriot 19ace8dd40
Fixed #494: CLI importer syntax error because of async reserved keyword usage 2018-08-21 18:30:31 +02:00
Eliot Berriot 123569b90b
Version bump and changelog for 0.16.1 2018-08-19 19:04:48 +02:00
Eliot Berriot 71c70cee39
Fixed #478: Removed release date error in case of empty date 2018-08-19 17:52:04 +02:00