LICENSE
README.md
pyproject.toml
requirements.txt
setup.cfg
songhive/__init__.py
songhive/__main__.py
songhive/app.py
songhive/version.py
songhive.egg-info/PKG-INFO
songhive.egg-info/SOURCES.txt
songhive.egg-info/dependency_links.txt
songhive.egg-info/entry_points.txt
songhive.egg-info/requires.txt
songhive.egg-info/top_level.txt
songhive/api/__init__.py
songhive/api/_common.py
songhive/api/_include.py
songhive/api/_sorting.py
songhive/api/app.py
songhive/api/deps.py
songhive/api/errors.py
songhive/api/responses.py
songhive/api/share_page.py
songhive/api/middleware/__init__.py
songhive/api/middleware/auth.py
songhive/api/middleware/rate_limit.py
songhive/api/routes/__init__.py
songhive/api/routes/_common.py
songhive/api/routes/_images.py
songhive/api/routes/admin.py
songhive/api/routes/admin_external_libraries.py
songhive/api/routes/albums.py
songhive/api/routes/api_tokens.py
songhive/api/routes/artists.py
songhive/api/routes/auth.py
songhive/api/routes/external_libraries.py
songhive/api/routes/favorites.py
songhive/api/routes/federation.py
songhive/api/routes/files.py
songhive/api/routes/genres.py
songhive/api/routes/hashtags.py
songhive/api/routes/history.py
songhive/api/routes/instance.py
songhive/api/routes/libraries.py
songhive/api/routes/playlists.py
songhive/api/routes/radios.py
songhive/api/routes/reports.py
songhive/api/routes/sessions.py
songhive/api/routes/share.py
songhive/api/routes/share_urls.py
songhive/api/routes/shares.py
songhive/api/routes/tracks.py
songhive/api/routes/users.py
songhive/cli/__init__.py
songhive/cli/admin.py
songhive/cli/watch.py
songhive/config/__init__.py
songhive/config/constants.py
songhive/config/loader.py
songhive/config/schema.py
songhive/external/__init__.py
songhive/external/_fake.py
songhive/external/_local.py
songhive/external/base.py
songhive/external/errors.py
songhive/external/registry.py
songhive/external/sync.py
songhive/external/types.py
songhive/external/watchdog.py
songhive/federation/__init__.py
songhive/federation/_common.py
songhive/federation/activities.py
songhive/federation/actors.py
songhive/federation/serializers.py
songhive/federation/storage.py
songhive/migrations/__init__.py
songhive/migrations/env.py
songhive/migrations/script.py.mako
songhive/migrations/utils.py
songhive/migrations/versions/10f8d202505a_add_track_musicbrainz_enriched_at.py
songhive/migrations/versions/194ec56009fe_add_api_tokens_table.py
songhive/migrations/versions/3a8c9d2e1f45_add_image_enriched_at.py
songhive/migrations/versions/55e5cbed94e8_add_hashtags.py
songhive/migrations/versions/69bc219bdb87_add_metadata_edit_columns.py
songhive/migrations/versions/8018c26e341a_add_external_libraries.py
songhive/migrations/versions/8ad99ccdcef2_make_library_playlist_radio_owner_.py
songhive/migrations/versions/d49ed7492551_base.py
songhive/migrations/versions/e4307588dfd3_add_genres.py
songhive/migrations/versions/f854f113ac09_make_track_musicbrainz_id_non_unique.py
songhive/migrations/versions/fa56625fc487_add_genre_track_inheritance.py
songhive/models/__init__.py
songhive/models/_enums.py
songhive/models/album.py
songhive/models/api_token.py
songhive/models/artist.py
songhive/models/audit_log.py
songhive/models/base.py
songhive/models/external_library.py
songhive/models/external_sync_run.py
songhive/models/external_track.py
songhive/models/favorite.py
songhive/models/genre.py
songhive/models/hashtag.py
songhive/models/history.py
songhive/models/invite.py
songhive/models/library.py
songhive/models/library_track.py
songhive/models/oauth_client.py
songhive/models/playlist.py
songhive/models/radio.py
songhive/models/report.py
songhive/models/setting.py
songhive/models/share_grant.py
songhive/models/share_token.py
songhive/models/stored_file.py
songhive/models/track.py
songhive/models/transcoded_file.py
songhive/models/upload.py
songhive/models/user.py
songhive/models/user_link.py
songhive/music/__init__.py
songhive/music/importer.py
songhive/music/metadata.py
songhive/services/__init__.py
songhive/services/acl.py
songhive/services/admin_tasks.py
songhive/services/api_token_tracker.py
songhive/services/audit.py
songhive/services/auth.py
songhive/services/celery_admin.py
songhive/services/deletion.py
songhive/services/email.py
songhive/services/federation.py
songhive/services/genres.py
songhive/services/hashtags.py
songhive/services/import_.py
songhive/services/metadata.py
songhive/services/music.py
songhive/services/musicbrainz.py
songhive/services/redis.py
songhive/services/reports.py
songhive/services/secrets.py
songhive/services/settings.py
songhive/services/sharing.py
songhive/services/stats.py
songhive/services/storage.py
songhive/services/streaming.py
songhive/static/favicon.ico
songhive/static/index.html
songhive/static/logo.png
songhive/static/assets/AboutView-Cwo3dYfk.js
songhive/static/assets/AboutView-DKieBlea.css
songhive/static/assets/AlbumCard-BNKCsgwg.css
songhive/static/assets/AlbumCard-QOg375ht.js
songhive/static/assets/AlbumEditView-CfNZ0NLJ.js
songhive/static/assets/AlbumEditView-DyfNh1Ex.css
songhive/static/assets/AlbumView-CM9TQa_C.css
songhive/static/assets/AlbumView-VcSLLBK0.js
songhive/static/assets/AlbumsView-CFo1-4ck.css
songhive/static/assets/AlbumsView-CtG9_ILa.js
songhive/static/assets/AppBanner-C_x_USYY.js
songhive/static/assets/AppBanner-ClY_Bj8y.css
songhive/static/assets/AppCheckbox-BMjl3o0T.css
songhive/static/assets/AppCheckbox-Cp1PB5Bo.js
songhive/static/assets/AppInput-BZyBxEBg.js
songhive/static/assets/AppInput-ClnqNHKd.css
songhive/static/assets/AppPagination-CQNdaKUc.js
songhive/static/assets/AppPagination-Cg1SqJ7z.css
songhive/static/assets/AppSelect-Byqq-diP.css
songhive/static/assets/AppSelect-SxxSPw-6.js
songhive/static/assets/AppTable-CANcd2lD.css
songhive/static/assets/AppTable-CZP2aLWw.js
songhive/static/assets/AppTabs-C3GQ5sZF.css
songhive/static/assets/AppTabs-ZjtKIyxx.js
songhive/static/assets/ArtistEditView-BpNC_Rvn.js
songhive/static/assets/ArtistEditView-Cvv5wVUE.css
songhive/static/assets/ArtistView-37sQJjkG.css
songhive/static/assets/ArtistView-Df2gJVG2.js
songhive/static/assets/ArtistsView-tEgZT0eo.js
songhive/static/assets/ArtistsView-tSuYFfAR.css
songhive/static/assets/AuditView-BW0-yzmS.js
songhive/static/assets/AuditView-N1uoMt56.css
songhive/static/assets/BulkEditableGrid-CfWX9jz3.css
songhive/static/assets/BulkEditableGrid-DRBSfcmX.js
songhive/static/assets/CeleryView-DLWCTPOX.js
songhive/static/assets/CeleryView-LjpkKFnh.css
songhive/static/assets/DashboardView-7VBEirky.css
songhive/static/assets/DashboardView-B8Dnyf36.js
songhive/static/assets/DeleteModal-CdgDkujp.js
songhive/static/assets/DeleteModal-DmBbv5Ee.css
songhive/static/assets/EntityActions-BMuKl6d4.js
songhive/static/assets/EntityActions-CzbwCPJd.css
songhive/static/assets/ExternalLibrariesView-BH5IQQgg.js
songhive/static/assets/ExternalLibrariesView-BubsDdz5.css
songhive/static/assets/ExternalLibraryEditView-C6MlU8Su.js
songhive/static/assets/ExternalLibraryEditView-C8I7dMR4.css
songhive/static/assets/ExternalTrackBadge-CE5BRQul.js
songhive/static/assets/ExternalTrackBadge-DZpuQLLl.css
songhive/static/assets/FavoritesView-BQA191z2.css
songhive/static/assets/FavoritesView-DXNsB6vF.js
songhive/static/assets/FileDetailView-B_tSQMqP.css
songhive/static/assets/FileDetailView-BvsukCKN.js
songhive/static/assets/FilesView-9ojvlGho.css
songhive/static/assets/FilesView-BucQDBwo.js
songhive/static/assets/ForbiddenView-Bh5y_-j8.js
songhive/static/assets/ForbiddenView-CJFaq6jv.css
songhive/static/assets/GenreInput-BZ7SRQfM.css
songhive/static/assets/GenreInput-DYHGjLn1.js
songhive/static/assets/GenreList-CrXMp8ef.js
songhive/static/assets/GenreList-kGIUP0Li.css
songhive/static/assets/GenreView-CsxaEuIf.js
songhive/static/assets/GenresView-B2qnDkLu.js
songhive/static/assets/GenresView-DIbuPjTi.css
songhive/static/assets/HashtagList-Bw9HIEti.css
songhive/static/assets/HashtagList-CIeSbNUv.js
songhive/static/assets/HashtagView-Btsx8q1E.js
songhive/static/assets/HashtagsView-BpAaUHIB.css
songhive/static/assets/HashtagsView-By1KSTsr.js
songhive/static/assets/HistoryView-BnW3JYq8.js
songhive/static/assets/HistoryView-DTz83IWR.css
songhive/static/assets/HomeView-D34KSpdo.js
songhive/static/assets/ImageUploadField-B0uOhhhS.js
songhive/static/assets/ImageUploadField-DSaVBUYi.css
songhive/static/assets/InvitesView-CA2UFAyo.js
songhive/static/assets/InvitesView-hmfKk-K5.css
songhive/static/assets/LibraryDetailView-CaTB47ll.css
songhive/static/assets/LibraryDetailView-DdtriYla.js
songhive/static/assets/LibraryEditView-Cs4u9ynh.css
songhive/static/assets/LibraryEditView-hDGZkL2c.js
songhive/static/assets/LibraryView-TgwqxIND.css
songhive/static/assets/LibraryView-oUUt7NRB.js
songhive/static/assets/LoginView-A2HLq23j.css
songhive/static/assets/LoginView-DWfY0b-6.js
songhive/static/assets/NotFoundView-BxFXOWN-.css
songhive/static/assets/NotFoundView-Diooel6i.js
songhive/static/assets/PasswordResetConfirmView-CC_XZybH.css
songhive/static/assets/PasswordResetConfirmView-CdGfYeSy.js
songhive/static/assets/PasswordResetView-B2uexNh4.css
songhive/static/assets/PasswordResetView-Cw0TF0e8.js
songhive/static/assets/PlaylistEditView-DZawW2Gj.css
songhive/static/assets/PlaylistEditView-GCj_AEW7.js
songhive/static/assets/PlaylistView-B62ZQGcU.js
songhive/static/assets/PlaylistView-BmTzB8Ep.css
songhive/static/assets/PlaylistsView-Bb2ak7c7.css
songhive/static/assets/PlaylistsView-CZXqExQ-.js
songhive/static/assets/ProfileView-DD0XQR8-.css
songhive/static/assets/ProfileView-OInlZ83-.js
songhive/static/assets/RadioView-BVNpS4uf.js
songhive/static/assets/RadioView-CCydWzZ8.css
songhive/static/assets/RegisterView-CCji7WIi.css
songhive/static/assets/RegisterView-D9xw_-tQ.js
songhive/static/assets/ReportsView-CxDGqRWH.css
songhive/static/assets/ReportsView-Q6M-DtUN.js
songhive/static/assets/SearchBar-Afl53BxT.js
songhive/static/assets/SearchBar-D6YONt3S.css
songhive/static/assets/SettingsView-BrhH6aQx.css
songhive/static/assets/SettingsView-DoXylBK4.js
songhive/static/assets/ShareDialog-DiWyF6_f.js
songhive/static/assets/ShareDialog-e0bm_N6h.css
songhive/static/assets/ShareView-CuyxGGRN.js
songhive/static/assets/ShareView-Mo5eAbx-.css
songhive/static/assets/SkeletonLoader-CDLOQWxb.css
songhive/static/assets/SkeletonLoader-DntHqyBe.js
songhive/static/assets/SortControl-CbD3dQe9.js
songhive/static/assets/SortControl-DK9rwXgC.css
songhive/static/assets/TagDetailView-BSO7oKPQ.js
songhive/static/assets/TagDetailView-BnYlSjwW.css
songhive/static/assets/TasksView-C9oY-4QJ.js
songhive/static/assets/TasksView-Cbnf9_sp.css
songhive/static/assets/TrackEditView-Bca4JFgA.js
songhive/static/assets/TrackEditView-CODFCQVW.css
songhive/static/assets/TrackList-Dm_t8MzJ.js
songhive/static/assets/TrackList-x694yA4S.css
songhive/static/assets/TrackView-BOdFqsCB.css
songhive/static/assets/TrackView-DcfnSlXc.js
songhive/static/assets/TracksView-CtuNWo-2.css
songhive/static/assets/TracksView-Di5SkHOC.js
songhive/static/assets/UsersView-BkxZ-4-9.js
songhive/static/assets/UsersView-BrY7DJ9P.css
songhive/static/assets/VerifyEmailView-3M3VKik1.js
songhive/static/assets/VerifyEmailView-CNDB5h5C.css
songhive/static/assets/admin-BdQNGs5E.js
songhive/static/assets/albums-CxcBsvXd.js
songhive/static/assets/artists-BVvgr8D6.js
songhive/static/assets/enrich-Bxwh0z_4.js
songhive/static/assets/entity-DZkxwe3U.js
songhive/static/assets/externalLibraries-DkSjdE1N.js
songhive/static/assets/fa-brands-400-D1LuMI3I.ttf
songhive/static/assets/fa-brands-400-D_cYUPeE.woff2
songhive/static/assets/fa-regular-400-BjRzuEpd.woff2
songhive/static/assets/fa-regular-400-DZaxPHgR.ttf
songhive/static/assets/fa-solid-900-CTAAxXor.woff2
songhive/static/assets/fa-solid-900-D0aA9rwL.ttf
songhive/static/assets/fa-v4compatibility-C9RhG_FT.woff2
songhive/static/assets/fa-v4compatibility-CCth-dXg.ttf
songhive/static/assets/files-BbcwjnNs.js
songhive/static/assets/genres-C3KqRVJ2.js
songhive/static/assets/hashtags-BY0-VyYD.js
songhive/static/assets/index-B7F5C-EM.css
songhive/static/assets/index-Cm_4EN5I.js
songhive/static/assets/libraries-BG-CjyPr.js
songhive/static/assets/playlists-BXIixmia.js
songhive/static/assets/share-wMAM6q__.js
songhive/static/assets/tracks-B7qzGTcX.js
songhive/static/assets/useCanManage-fWNNcY-t.js
songhive/static/assets/useChunkList-CPoPMg2M.js
songhive/static/assets/useConfirm-Olc0Cn80.js
songhive/static/assets/useDebounce-CJIsE33m.js
songhive/static/assets/useEntityDelete-DIlMJR0-.js
songhive/static/assets/useEntityList-C_OpgzYv.js
songhive/static/assets/useEntityMeta-CqeO4mw2.js
songhive/static/assets/useMediaQuery-BaMLeh-o.js
songhive/storage/__init__.py
songhive/storage/base.py
songhive/storage/exc.py
songhive/storage/local.py
songhive/storage/s3.py
songhive/streaming/__init__.py
songhive/streaming/handler.py
songhive/streaming/transcoder.py
songhive/tasks/__init__.py
songhive/tasks/api_tokens.py
songhive/tasks/celery.py
songhive/tasks/email.py
songhive/tasks/external_libraries.py
songhive/tasks/federation.py
songhive/tasks/images.py
songhive/tasks/import_.py
songhive/tasks/musicbrainz.py
songhive/tasks/storage.py
songhive/tasks/tags.py
songhive/tasks/transcoding.py
songhive/users/__init__.py
songhive/users/api_tokens.py
songhive/users/invites.py
songhive/users/manager.py
songhive/users/oauth.py
songhive/users/tokens.py
songhive/ws/__init__.py
songhive/ws/events.py
tests/test_acl_service.py
tests/test_admin.py
tests/test_admin_external_libraries_api.py
tests/test_admin_features.py
tests/test_albums_api.py
tests/test_api.py
tests/test_api_deps.py
tests/test_api_errors.py
tests/test_api_libraries.py
tests/test_api_playlists.py
tests/test_api_tokens.py
tests/test_app.py
tests/test_artists_api.py
tests/test_audio_hash.py
tests/test_auth.py
tests/test_celery_admin.py
tests/test_cli_admin.py
tests/test_cli_secret_fallback.py
tests/test_config.py
tests/test_deletion.py
tests/test_email.py
tests/test_external_config.py
tests/test_external_fake_adapter.py
tests/test_external_libraries_api.py
tests/test_external_local_adapter.py
tests/test_external_local_sync.py
tests/test_external_local_watchdog.py
tests/test_external_models.py
tests/test_external_registry.py
tests/test_external_streaming.py
tests/test_external_sync.py
tests/test_external_tasks.py
tests/test_external_track_delete.py
tests/test_external_track_response.py
tests/test_external_upload_duplicate.py
tests/test_favorites_api.py
tests/test_federation.py
tests/test_federation_block.py
tests/test_federation_delivery.py
tests/test_federation_incoming.py
tests/test_federation_routes.py
tests/test_federation_service.py
tests/test_federation_unpublish.py
tests/test_federation_visibility.py
tests/test_files_api.py
tests/test_genres_api.py
tests/test_genres_service.py
tests/test_hashtags_api.py
tests/test_hashtags_service.py
tests/test_history_api.py
tests/test_images.py
tests/test_import_tasks_extra.py
tests/test_importer.py
tests/test_instance.py
tests/test_invites.py
tests/test_libraries_api.py
tests/test_mastodon_api.py
tests/test_metadata.py
tests/test_metadata_write.py
tests/test_migrations_utils.py
tests/test_models.py
tests/test_music_service.py
tests/test_musicbrainz.py
tests/test_oauth.py
tests/test_playlists_api.py
tests/test_radios_api.py
tests/test_rate_limit.py
tests/test_redis.py
tests/test_reports_service.py
tests/test_secrets_service.py
tests/test_sessions.py
tests/test_settings_service.py
tests/test_share_urls_api.py
tests/test_shares_api.py
tests/test_sharing_service.py
tests/test_stats_service.py
tests/test_storage.py
tests/test_storage_service.py
tests/test_storage_tasks.py
tests/test_streaming.py
tests/test_streaming_service.py
tests/test_tags.py
tests/test_tokens.py
tests/test_track_download.py
tests/test_tracks_api.py
tests/test_transcoder.py
tests/test_transcoding_tasks.py
tests/test_users.py
tests/test_ws_events.py