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/cookies.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/csrf.py
songhive/api/middleware/media_cors.py
songhive/api/middleware/proxy.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/activities.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/history.py
songhive/api/routes/instance.py
songhive/api/routes/libraries.py
songhive/api/routes/notifications.py
songhive/api/routes/playlists.py
songhive/api/routes/profile_pages.py
songhive/api/routes/pwa.py
songhive/api/routes/radios.py
songhive/api/routes/reports.py
songhive/api/routes/search.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/tags.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/notifications.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/321e6beef670_rename_hashtags_to_tags.py
songhive/migrations/versions/3a8c9d2e1f45_add_image_enriched_at.py
songhive/migrations/versions/4adb5fbea9d6_add_activities.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/8dcaed7b2490_normalize_share_grant_user_ids.py
songhive/migrations/versions/c1d4e7f29a3b_add_track_description.py
songhive/migrations/versions/d49ed7492551_base.py
songhive/migrations/versions/e4307588dfd3_add_genres.py
songhive/migrations/versions/f124667bab8a_add_activity_tags.py
songhive/migrations/versions/f854f113ac09_make_track_musicbrainz_id_non_unique.py
songhive/migrations/versions/fa56625fc487_add_genre_track_inheritance.py
songhive/migrations/versions/fe65ee78bd44_add_notifications.py
songhive/models/__init__.py
songhive/models/_enums.py
songhive/models/activity.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/history.py
songhive/models/invite.py
songhive/models/library.py
songhive/models/library_track.py
songhive/models/notification.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/tag.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/_common.py
songhive/services/acl.py
songhive/services/activities.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/import_.py
songhive/services/mentions.py
songhive/services/metadata.py
songhive/services/music.py
songhive/services/musicbrainz.py
songhive/services/notifications.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/services/tags.py
songhive/static/favicon.ico
songhive/static/index.html
songhive/static/logo.png
songhive/static/sw.js
songhive/static/assets/AboutView-BQpKFU5a.css
songhive/static/assets/AboutView-DFHOEgui.js
songhive/static/assets/ActivityCard-BtzxZrLD.css
songhive/static/assets/ActivityCard-DM8nqpRw.js
songhive/static/assets/AlbumCard-2tn6-Lvm.js
songhive/static/assets/AlbumCard-Ci1SlTJF.css
songhive/static/assets/AlbumEditView-62d5WU1P.js
songhive/static/assets/AlbumEditView-BKFY57LA.css
songhive/static/assets/AlbumView-BELVDyqb.js
songhive/static/assets/AlbumView-BZ8IbuGx.css
songhive/static/assets/AlbumsView-BMTc8M4V.js
songhive/static/assets/AlbumsView-CWLTC1Gh.css
songhive/static/assets/AppBanner-CmPNWvR5.js
songhive/static/assets/AppBanner-CxA0q68j.css
songhive/static/assets/AppCheckbox-BJxsIlN3.js
songhive/static/assets/AppCheckbox-BmE_CDvF.css
songhive/static/assets/AppIcon-1H9ClYAQ.css
songhive/static/assets/AppIcon-Bu6_mGJw.js
songhive/static/assets/AppInput-BOWg8-QT.css
songhive/static/assets/AppInput-D-Ppfmwd.js
songhive/static/assets/AppPagination-0homezlJ.css
songhive/static/assets/AppPagination-DJrV9f_p.js
songhive/static/assets/AppSelect-BHIXSgKn.css
songhive/static/assets/AppSelect-lJodLNM4.js
songhive/static/assets/AppTable-BSHoMJyU.css
songhive/static/assets/AppTable-b3lfNLai.js
songhive/static/assets/AppTabs-BTPsijdU.js
songhive/static/assets/AppTabs-DVqpYQP1.css
songhive/static/assets/ArtistCard-BPfKm3rr.js
songhive/static/assets/ArtistCard-CGj3JXq0.css
songhive/static/assets/ArtistEditView-BRcmW91k.css
songhive/static/assets/ArtistEditView-sLyouR1O.js
songhive/static/assets/ArtistView-FP7j_1VF.js
songhive/static/assets/ArtistView-h3YokPzw.css
songhive/static/assets/ArtistsView-5JsEJCCZ.js
songhive/static/assets/ArtistsView-COLp4905.css
songhive/static/assets/AuditView-BXWFtTzU.css
songhive/static/assets/AuditView-BwoIizcA.js
songhive/static/assets/BulkEditableGrid-BBlh20cd.js
songhive/static/assets/BulkEditableGrid-F0XBZX-Q.css
songhive/static/assets/CeleryView-Cy8Wyzg1.css
songhive/static/assets/CeleryView-DQMZ_TsW.js
songhive/static/assets/DashboardView-DGqUM8V4.css
songhive/static/assets/DashboardView-veNgHuFf.js
songhive/static/assets/DeleteModal-DC7_Fg5v.js
songhive/static/assets/DeleteModal-DmBbv5Ee.css
songhive/static/assets/EntityActions-BZuSAl9v.js
songhive/static/assets/EntityActions-BoO7hsJ6.css
songhive/static/assets/EntityActivitiesView-BBOYa3EV.css
songhive/static/assets/EntityActivitiesView-CD_TK6HE.js
songhive/static/assets/ExternalLibrariesView-BZJY8QFa.js
songhive/static/assets/ExternalLibrariesView-Er7uqhBr.css
songhive/static/assets/ExternalLibraryEditView-BDSd-LZU.js
songhive/static/assets/ExternalLibraryEditView-xTYv7DhL.css
songhive/static/assets/ExternalTrackBadge-2eLiywjz.css
songhive/static/assets/ExternalTrackBadge-BpaOeeVb.js
songhive/static/assets/FavoritesView-BiXN7i6W.css
songhive/static/assets/FavoritesView-CfnGvldO.js
songhive/static/assets/FileDetailView-D0uC2OEF.css
songhive/static/assets/FileDetailView-aSNdgcy_.js
songhive/static/assets/FilesView-CGvk-3Fo.css
songhive/static/assets/FilesView-CYnumI0V.js
songhive/static/assets/ForbiddenView-BoRPB5VM.css
songhive/static/assets/ForbiddenView-DsPW2-0I.js
songhive/static/assets/GenreInput-B-4JVgPi.css
songhive/static/assets/GenreInput-B4-Vmo39.js
songhive/static/assets/GenreList-Bwzpjp4X.js
songhive/static/assets/GenreList-C9SHc6xV.css
songhive/static/assets/GenreView-CPJ5IBgi.js
songhive/static/assets/GenresView-B1O8noc7.css
songhive/static/assets/GenresView-Dqip6Nk8.js
songhive/static/assets/HistoryView-BfGyumut.js
songhive/static/assets/HistoryView-HtVLtr22.css
songhive/static/assets/HomeView-DzpyRHOZ.js
songhive/static/assets/ImageUploadField-BYLO4nef.js
songhive/static/assets/ImageUploadField-DG5wcin3.css
songhive/static/assets/InvitesView-CwdHwBjs.js
songhive/static/assets/InvitesView-M5GL8F-y.css
songhive/static/assets/LibraryCard-By-Tbpde.css
songhive/static/assets/LibraryCard-CdYM6i0s.js
songhive/static/assets/LibraryDetailView-B3fn_PBM.js
songhive/static/assets/LibraryDetailView-BfmT9ccw.css
songhive/static/assets/LibraryEditView-D2l3UEFJ.js
songhive/static/assets/LibraryEditView-DbSyDVpi.css
songhive/static/assets/LibraryView-CIfo0Y6A.js
songhive/static/assets/LibraryView-D7YGTSf6.css
songhive/static/assets/LoginView-Boqr1fi7.css
songhive/static/assets/LoginView-KpWdSqne.js
songhive/static/assets/NotFoundView-BY2d9utW.js
songhive/static/assets/NotFoundView-B_nnC_7_.css
songhive/static/assets/NotificationActorCard-BCUfR7Xx.js
songhive/static/assets/NotificationActorCard-BJig519H.css
songhive/static/assets/NotificationsView-Bkk0zxBE.css
songhive/static/assets/NotificationsView-DJk1oruB.js
songhive/static/assets/PasswordResetConfirmView-BNBhAlyF.css
songhive/static/assets/PasswordResetConfirmView-YQA479zo.js
songhive/static/assets/PasswordResetView-DJ9pll1Q.js
songhive/static/assets/PasswordResetView-JAYid-Nz.css
songhive/static/assets/PlaylistCard-BN1MVWta.css
songhive/static/assets/PlaylistCard-CJJ7d6w-.js
songhive/static/assets/PlaylistEditView--zcG-DuP.css
songhive/static/assets/PlaylistEditView-CE7mXz-H.js
songhive/static/assets/PlaylistView-DNlrOh4B.js
songhive/static/assets/PlaylistView-DP1495Bm.css
songhive/static/assets/PlaylistsView-BeMT4Wf6.css
songhive/static/assets/PlaylistsView-WLT_hXkh.js
songhive/static/assets/ProfileView-Cxa4qpTF.js
songhive/static/assets/ProfileView-DwMfrljs.css
songhive/static/assets/RadioView-B2yaMbkW.css
songhive/static/assets/RadioView-BQRbL_24.js
songhive/static/assets/RegisterView-ChcgJY_t.js
songhive/static/assets/RegisterView-idvbjf9d.css
songhive/static/assets/ReportsView-BhJsR3hA.css
songhive/static/assets/ReportsView-DalVz4wD.js
songhive/static/assets/SearchBar-2qu6N0rJ.css
songhive/static/assets/SearchBar-Pnk0rNcO.js
songhive/static/assets/SearchView-B30nUzec.css
songhive/static/assets/SearchView-mwEG3zdH.js
songhive/static/assets/SettingsView-BvAeB1tT.js
songhive/static/assets/SettingsView-K2unkJjV.css
songhive/static/assets/ShareDialog-C1QniM1r.js
songhive/static/assets/ShareDialog-Dfd1zG5T.css
songhive/static/assets/ShareView-C0BXmDdj.js
songhive/static/assets/ShareView-CZzHQm_s.css
songhive/static/assets/SkeletonLoader-437kqOac.css
songhive/static/assets/SkeletonLoader-Db9WFFAJ.js
songhive/static/assets/SortControl-CdHpiZM_.css
songhive/static/assets/SortControl-DofK2u2j.js
songhive/static/assets/TagDetailView-DI2JAC11.css
songhive/static/assets/TagDetailView-Da7L1D3O.js
songhive/static/assets/TagInput-D10Gk7ca.js
songhive/static/assets/TagInput-DOHN4U3q.css
songhive/static/assets/TagList-DK5-xHq5.js
songhive/static/assets/TagList-DpKRYkB-.css
songhive/static/assets/TagView-ptpIbC3N.js
songhive/static/assets/TagsView-BbiaspDs.css
songhive/static/assets/TagsView-CdE6o5C3.js
songhive/static/assets/TasksView-3gkorPxu.js
songhive/static/assets/TasksView-s09AVE3U.css
songhive/static/assets/TrackEditView-BLvRrHjt.css
songhive/static/assets/TrackEditView-DL923opH.js
songhive/static/assets/TrackList-1mZu72N4.css
songhive/static/assets/TrackList-CQS1ZnGM.js
songhive/static/assets/TrackMetadataForm-DAafOX4h.css
songhive/static/assets/TrackMetadataForm-DSfcg4VX.js
songhive/static/assets/TrackView-BCMV2oEQ.js
songhive/static/assets/TrackView-ChwXR6R3.css
songhive/static/assets/TracksView-Bwjl0LMd.js
songhive/static/assets/TracksView-CIR3Nt3y.css
songhive/static/assets/UserFollowersView-CzYKJcFo.js
songhive/static/assets/UserFollowersView-DsDzQK5T.css
songhive/static/assets/UserLink-iodDYOau.css
songhive/static/assets/UserLink-nkinWpZQ.js
songhive/static/assets/UserProfileTabView-BbHEb3vs.css
songhive/static/assets/UserProfileTabView-BrobMZMh.js
songhive/static/assets/UserProfileView-CJE69gAc.css
songhive/static/assets/UserProfileView-f4-Ha4-R.js
songhive/static/assets/UsersDirectoryView-B-hf0AEy.css
songhive/static/assets/UsersDirectoryView-wZ30p2YM.js
songhive/static/assets/UsersView-BpqW6qDO.css
songhive/static/assets/UsersView-lHmx28wj.js
songhive/static/assets/VerifyEmailView-C2Xtklmt.js
songhive/static/assets/VerifyEmailView-CihfjjJ_.css
songhive/static/assets/actorRef-Cb4Jr3Rm.js
songhive/static/assets/admin-DZPscCdg.js
songhive/static/assets/albums-CAGmMd1W.js
songhive/static/assets/artists-xRAoHhGD.js
songhive/static/assets/client-DUyrGpXO.js
songhive/static/assets/enrich-nxu3YzKu.js
songhive/static/assets/entity-BuXet7sa.js
songhive/static/assets/externalLibraries-BQtfMu7C.js
songhive/static/assets/fa-brands-400-Bs6tcqqs.woff2
songhive/static/assets/fa-regular-400-DRN8N0d1.woff2
songhive/static/assets/fa-solid-900-IAB4Droh.woff2
songhive/static/assets/fa-v4compatibility-CErXDOsT.woff2
songhive/static/assets/files-CbAcUtGI.js
songhive/static/assets/genres-D5RdWu0z.js
songhive/static/assets/index-CPGS1NOP.css
songhive/static/assets/index-TXVrxjzc.js
songhive/static/assets/libraries-BWPFyz85.js
songhive/static/assets/playlists-DbfiL0r_.js
songhive/static/assets/radios-Dc6YEdw3.js
songhive/static/assets/richText-ktFnRI6z.js
songhive/static/assets/share-DQmtAtUU.js
songhive/static/assets/tags-71gKvJZX.js
songhive/static/assets/tracks-lEwTq71u.js
songhive/static/assets/useCanManage-DbT703Yt.js
songhive/static/assets/useChunkList-gK9ytRQN.js
songhive/static/assets/useConfirm-Cb0RB1ou.js
songhive/static/assets/useDebounce-C0TZaM1q.js
songhive/static/assets/useEntityDelete-w2aBJ6De.js
songhive/static/assets/useEntityGenres-C5w4Go0m.js
songhive/static/assets/useEntityList-YX8Z5yb4.js
songhive/static/assets/useEntityMeta-DkZ7qE-d.js
songhive/static/assets/useMediaQuery-JbK4w7TN.js
songhive/static/assets/useOnClickOutside-Z9VPMvye.js
songhive/static/assets/useSearchSections-C7GBL8CB.js
songhive/static/pwa/apple-touch-icon.png
songhive/static/pwa/favicon-16x16.png
songhive/static/pwa/favicon-32x32.png
songhive/static/pwa/maskable-192x192.png
songhive/static/pwa/maskable-512x512.png
songhive/static/pwa/pwa-128x128.png
songhive/static/pwa/pwa-144x144.png
songhive/static/pwa/pwa-152x152.png
songhive/static/pwa/pwa-16x16.png
songhive/static/pwa/pwa-192x192.png
songhive/static/pwa/pwa-32x32.png
songhive/static/pwa/pwa-384x384.png
songhive/static/pwa/pwa-512x512.png
songhive/static/pwa/pwa-72x72.png
songhive/static/pwa/pwa-96x96.png
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/notifications.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_activities_api.py
tests/test_activities_service.py
tests/test_activity_audit.py
tests/test_activity_fanout.py
tests/test_activity_interactions.py
tests/test_activity_models.py
tests/test_activity_updates.py
tests/test_activity_visibility.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_auth_cookies.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_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_media_cors.py
tests/test_mentions_service.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_notification_models.py
tests/test_notification_tasks.py
tests/test_notifications_api.py
tests/test_notifications_service.py
tests/test_oauth.py
tests/test_playlists_api.py
tests/test_proxy_middleware.py
tests/test_pwa.py
tests/test_radios_api.py
tests/test_rate_limit.py
tests/test_redis.py
tests/test_reports_service.py
tests/test_search_api.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_tags_api.py
tests/test_tags_service.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_user_followers.py
tests/test_users.py
tests/test_ws_events.py