karaoke-gen 0.101.0__py3-none-any.whl → 0.105.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- backend/Dockerfile.base +1 -0
- backend/api/routes/admin.py +226 -3
- backend/api/routes/audio_search.py +4 -32
- backend/api/routes/file_upload.py +18 -83
- backend/api/routes/jobs.py +2 -2
- backend/api/routes/push.py +238 -0
- backend/api/routes/rate_limits.py +428 -0
- backend/api/routes/users.py +79 -19
- backend/config.py +25 -1
- backend/exceptions.py +66 -0
- backend/main.py +26 -1
- backend/models/job.py +4 -0
- backend/models/user.py +20 -2
- backend/services/email_validation_service.py +646 -0
- backend/services/firestore_service.py +21 -0
- backend/services/gce_encoding/main.py +22 -8
- backend/services/job_defaults_service.py +113 -0
- backend/services/job_manager.py +109 -13
- backend/services/push_notification_service.py +409 -0
- backend/services/rate_limit_service.py +641 -0
- backend/services/stripe_service.py +2 -2
- backend/tests/conftest.py +8 -1
- backend/tests/test_admin_delete_outputs.py +352 -0
- backend/tests/test_audio_search.py +12 -8
- backend/tests/test_email_validation_service.py +298 -0
- backend/tests/test_file_upload.py +8 -6
- backend/tests/test_gce_encoding_worker.py +229 -0
- backend/tests/test_impersonation.py +18 -3
- backend/tests/test_made_for_you.py +6 -4
- backend/tests/test_push_notification_service.py +460 -0
- backend/tests/test_push_routes.py +357 -0
- backend/tests/test_rate_limit_service.py +396 -0
- backend/tests/test_rate_limits_api.py +392 -0
- backend/tests/test_stripe_service.py +205 -0
- backend/workers/video_worker_orchestrator.py +42 -0
- karaoke_gen/instrumental_review/static/index.html +35 -9
- {karaoke_gen-0.101.0.dist-info → karaoke_gen-0.105.4.dist-info}/METADATA +2 -1
- {karaoke_gen-0.101.0.dist-info → karaoke_gen-0.105.4.dist-info}/RECORD +41 -26
- {karaoke_gen-0.101.0.dist-info → karaoke_gen-0.105.4.dist-info}/WHEEL +0 -0
- {karaoke_gen-0.101.0.dist-info → karaoke_gen-0.105.4.dist-info}/entry_points.txt +0 -0
- {karaoke_gen-0.101.0.dist-info → karaoke_gen-0.105.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -750,18 +750,44 @@
|
|
|
750
750
|
const urlParams = new URLSearchParams(window.location.search);
|
|
751
751
|
const encodedBaseApiUrl = urlParams.get('baseApiUrl');
|
|
752
752
|
const instrumentalToken = urlParams.get('instrumentalToken');
|
|
753
|
-
|
|
753
|
+
|
|
754
|
+
// Check localStorage for full auth token (logged-in users)
|
|
755
|
+
// This takes priority over instrumentalToken which can expire
|
|
756
|
+
const fullAuthToken = localStorage.getItem('karaoke_access_token');
|
|
757
|
+
|
|
754
758
|
// Determine API base URL - cloud mode uses provided URL, local mode uses default
|
|
755
|
-
const API_BASE = encodedBaseApiUrl
|
|
759
|
+
const API_BASE = encodedBaseApiUrl
|
|
756
760
|
? decodeURIComponent(encodedBaseApiUrl)
|
|
757
761
|
: '/api/jobs/local';
|
|
758
|
-
|
|
759
|
-
// Helper to add token to URL
|
|
762
|
+
|
|
763
|
+
// Helper to add auth token to URL
|
|
764
|
+
// Priority: fullAuthToken (doesn't expire) > instrumentalToken (expires after 48h)
|
|
765
|
+
// This is essential for audio elements which can't use Bearer headers
|
|
760
766
|
function addTokenToUrl(url) {
|
|
767
|
+
// Prefer full auth token - it doesn't have the short expiry that magic link tokens have
|
|
768
|
+
if (fullAuthToken) {
|
|
769
|
+
const separator = url.includes('?') ? '&' : '?';
|
|
770
|
+
return `${url}${separator}token=${encodeURIComponent(fullAuthToken)}`;
|
|
771
|
+
}
|
|
772
|
+
// Fall back to instrumental token for non-logged-in users
|
|
761
773
|
if (!instrumentalToken) return url;
|
|
762
774
|
const separator = url.includes('?') ? '&' : '?';
|
|
763
775
|
return `${url}${separator}instrumental_token=${encodeURIComponent(instrumentalToken)}`;
|
|
764
776
|
}
|
|
777
|
+
|
|
778
|
+
// Auth-aware fetch helper
|
|
779
|
+
// Priority: fullAuthToken (Bearer header) > instrumentalToken (query param)
|
|
780
|
+
function authFetch(url, options = {}) {
|
|
781
|
+
if (fullAuthToken) {
|
|
782
|
+
// Use Bearer auth for logged-in users
|
|
783
|
+
const headers = new Headers(options.headers || {});
|
|
784
|
+
headers.set('Authorization', `Bearer ${fullAuthToken}`);
|
|
785
|
+
return fetch(url, { ...options, headers });
|
|
786
|
+
} else {
|
|
787
|
+
// Fall back to instrumental token in URL
|
|
788
|
+
return fetch(addTokenToUrl(url), options);
|
|
789
|
+
}
|
|
790
|
+
}
|
|
765
791
|
|
|
766
792
|
// HTML escape helper to prevent XSS
|
|
767
793
|
function escapeHtml(str) {
|
|
@@ -780,8 +806,8 @@
|
|
|
780
806
|
async function init() {
|
|
781
807
|
try {
|
|
782
808
|
const [analysisRes, waveformRes] = await Promise.all([
|
|
783
|
-
|
|
784
|
-
|
|
809
|
+
authFetch(`${API_BASE}/instrumental-analysis`),
|
|
810
|
+
authFetch(`${API_BASE}/waveform-data?num_points=1000`)
|
|
785
811
|
]);
|
|
786
812
|
|
|
787
813
|
if (!analysisRes.ok) throw new Error('Failed to load analysis');
|
|
@@ -1484,7 +1510,7 @@
|
|
|
1484
1510
|
const formData = new FormData();
|
|
1485
1511
|
formData.append('file', file);
|
|
1486
1512
|
|
|
1487
|
-
const response = await
|
|
1513
|
+
const response = await authFetch(`${API_BASE}/upload-instrumental`, {
|
|
1488
1514
|
method: 'POST',
|
|
1489
1515
|
body: formData
|
|
1490
1516
|
});
|
|
@@ -1543,7 +1569,7 @@
|
|
|
1543
1569
|
}
|
|
1544
1570
|
|
|
1545
1571
|
try {
|
|
1546
|
-
const response = await
|
|
1572
|
+
const response = await authFetch(`${API_BASE}/create-custom-instrumental`, {
|
|
1547
1573
|
method: 'POST',
|
|
1548
1574
|
headers: { 'Content-Type': 'application/json' },
|
|
1549
1575
|
body: JSON.stringify({ mute_regions: muteRegions })
|
|
@@ -1593,7 +1619,7 @@
|
|
|
1593
1619
|
}
|
|
1594
1620
|
|
|
1595
1621
|
try {
|
|
1596
|
-
const response = await
|
|
1622
|
+
const response = await authFetch(`${API_BASE}/select-instrumental`, {
|
|
1597
1623
|
method: 'POST',
|
|
1598
1624
|
headers: { 'Content-Type': 'application/json' },
|
|
1599
1625
|
body: JSON.stringify({ selection: selectedOption })
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: karaoke-gen
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.105.4
|
|
4
4
|
Summary: Generate karaoke videos with synchronized lyrics. Handles the entire process from downloading audio and lyrics to creating the final video with title screens.
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -77,6 +77,7 @@ Requires-Dist: python-dotenv (>=1.0.0)
|
|
|
77
77
|
Requires-Dist: python-levenshtein (>=0.26)
|
|
78
78
|
Requires-Dist: python-multipart (>=0.0.20,<0.0.21)
|
|
79
79
|
Requires-Dist: python-slugify (>=8)
|
|
80
|
+
Requires-Dist: pywebpush (>=2.0.0)
|
|
80
81
|
Requires-Dist: requests (>=2)
|
|
81
82
|
Requires-Dist: sendgrid (>=6.10.0)
|
|
82
83
|
Requires-Dist: shortuuid (>=1.0.13)
|
|
@@ -1,34 +1,37 @@
|
|
|
1
1
|
backend/.coveragerc,sha256=6K16Sgg_YVmFSfMfMqr16cMxBz0fyIl8aFRXNu6y8zc,407
|
|
2
2
|
backend/.gitignore,sha256=b0BmxHV4P22b_ougWcfPWJzHJDLyEqAxPTgHelmzd2U,318
|
|
3
3
|
backend/Dockerfile,sha256=5RgRTTL_pbD5N7qswSpZwKSlr7ndvllc582Yyulkv0g,1774
|
|
4
|
-
backend/Dockerfile.base,sha256=
|
|
4
|
+
backend/Dockerfile.base,sha256=tGX3rjtpCMpMJ5SkYpLBzHUta-xQ1ctfrQN7GlEi4Wc,3002
|
|
5
5
|
backend/README.md,sha256=JdmvGRDX85qaDa4TLAn_7VF1O3_VOw62gUuQfYhkBd0,4771
|
|
6
6
|
backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
backend/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
backend/api/dependencies.py,sha256=-61nHBhiihUDSVMQd3VuHLP7uvKrUbm1y-j9RmV6_zc,16871
|
|
9
9
|
backend/api/routes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
backend/api/routes/admin.py,sha256=
|
|
11
|
-
backend/api/routes/audio_search.py,sha256=
|
|
10
|
+
backend/api/routes/admin.py,sha256=7UHOHw7P1pVJyrRxoXs58gI4hzaumQhJQ1nhoCqvufw,55149
|
|
11
|
+
backend/api/routes/audio_search.py,sha256=QxV3kIm_QYGFzrEdv0nrDIsC-X8ms-3ldOyvMwJ93RM,39267
|
|
12
12
|
backend/api/routes/auth.py,sha256=G1U2KwS3uqBJpgvg2PIe_mZOWCJKPFhhewrmKbW3Z_s,11531
|
|
13
|
-
backend/api/routes/file_upload.py,sha256=
|
|
13
|
+
backend/api/routes/file_upload.py,sha256=dGLWC7n3g9bUxwZ1UNxhW4gCEF-sogcIxYP0vByI-e4,93539
|
|
14
14
|
backend/api/routes/health.py,sha256=iZlhJpmz4vminUy_qrzkyk_1tgG1gmITz4jEWaCWJnM,14010
|
|
15
15
|
backend/api/routes/internal.py,sha256=yqzd5V8xGJQ_vTZL85vKIMwmBXf1MIp1nhder-kQEuA,15683
|
|
16
|
-
backend/api/routes/jobs.py,sha256=
|
|
16
|
+
backend/api/routes/jobs.py,sha256=FBf5_YojNMFamd51lOd3MDdevfOZefGTyMrtZ9Q8BSU,61241
|
|
17
|
+
backend/api/routes/push.py,sha256=I0LgEis6y6jx-ukiZGS1MUdG3yqUMWjyxffEQI5N95g,7151
|
|
18
|
+
backend/api/routes/rate_limits.py,sha256=lda7gwQdT9-U80XKsRiXkdYtB1HfpSfH5EskbB1kCQI,13806
|
|
17
19
|
backend/api/routes/review.py,sha256=BiaXZs-NXl7AVzGiwBzIhzm60fUslcQagSw4XuUByhU,28842
|
|
18
20
|
backend/api/routes/tenant.py,sha256=sM0WVXWGKJeyBNMbPDnAKOD9-SkJBmH4RkMXVWz4dlM,4038
|
|
19
21
|
backend/api/routes/themes.py,sha256=_fPZg9N2KN-yyr1YR2vAy8FIm8PqVowboQ4WEpFTYiQ,4721
|
|
20
|
-
backend/api/routes/users.py,sha256=
|
|
21
|
-
backend/config.py,sha256
|
|
22
|
-
backend/
|
|
22
|
+
backend/api/routes/users.py,sha256=9RSZyQPBF2Zx8rYMp6cJZoZ4zQ2vskcW90lFx4FSegA,55339
|
|
23
|
+
backend/config.py,sha256=UixlMx0SA1U1-HIo5JFdOI0L565ga0yw9GlRrzcK48A,9859
|
|
24
|
+
backend/exceptions.py,sha256=tKu1YeAj0fmZsmGU_ZebHol-JqaGrGfauom8_DCrVys,1944
|
|
25
|
+
backend/main.py,sha256=ub6B4OAo1hwfC9oQPJ7_jd3ZSLBYpvdpdieqrUH8WM8,6880
|
|
23
26
|
backend/middleware/__init__.py,sha256=usnVRHqfGW56bWJFqaIXz49pSW91uyciBfwO7ANCpIk,369
|
|
24
27
|
backend/middleware/audit_logging.py,sha256=oGdgbfH_M_3hIMAGrS5HpRvri2jjLxGFnFuA6IiU9BU,4170
|
|
25
28
|
backend/middleware/tenant.py,sha256=a-HEAhyvMUC4uFF6VptaNOO9O6YP64-ZoUitppl79PQ,6373
|
|
26
29
|
backend/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
backend/models/job.py,sha256=
|
|
30
|
+
backend/models/job.py,sha256=nQfzj1DWUa71-EFB-Feca5AeEJ1qd4j7xWytY3Hab2o,25919
|
|
28
31
|
backend/models/requests.py,sha256=tCX7ss4to3rKAR_Wu92CZ8uPqNb2nnmCp1XepD4VR5s,4152
|
|
29
32
|
backend/models/tenant.py,sha256=rhj6n7bsX8ClstoHQKCVcLWALI31l5Tepcf_N8IXDdM,7403
|
|
30
33
|
backend/models/theme.py,sha256=cfNSHIigoAV4P41Jku6Sa1okHSRhUHjFpl1XBVF3kCY,4628
|
|
31
|
-
backend/models/user.py,sha256=
|
|
34
|
+
backend/models/user.py,sha256=bSm4qxY_8gWa8kUj3186BNumAZBP775ys70SozZXcec,8811
|
|
32
35
|
backend/models/worker_log.py,sha256=QDgpdRarm00N1TdFoGhKJxZjP9GmiMjrTJb6msw7pHA,5547
|
|
33
36
|
backend/pyproject.toml,sha256=LAvEXxQSRI94XQcwpBmuSoEu36341HOu53iigsN6dVs,577
|
|
34
37
|
backend/quick-check.sh,sha256=PUvH0wXaGzWrgWwwJG5M4Bxxt3vVA4mmdEdL6VepVHY,2382
|
|
@@ -43,17 +46,19 @@ backend/services/credential_manager.py,sha256=VA--PwvL3gboJ21orQb7MIUiovX8n66Foh
|
|
|
43
46
|
backend/services/discord_service.py,sha256=LnEasOgaSRlmebDKsVT2yKCdWNDmskUToP3o2wPmdus,5082
|
|
44
47
|
backend/services/dropbox_service.py,sha256=R47MUKCqK2BEXXmQxMLG6zkPWw02htFoES9q9xiaYAw,10717
|
|
45
48
|
backend/services/email_service.py,sha256=gpufwXhNWmdElpWCmKrTLtm2LB8S-0Y5wcyJ3n1i6Jg,52868
|
|
49
|
+
backend/services/email_validation_service.py,sha256=xblVdzieoNTDbkB8MJLOgV_hPsHP_iwO0m36l42QmQw,19102
|
|
46
50
|
backend/services/encoding_interface.py,sha256=Y8hPskDyX9DOyAD557F3-SdHjymaBkGXcoC9E_OW7SE,15825
|
|
47
51
|
backend/services/encoding_service.py,sha256=XAX4hyL2wIHdpBCTc8yglcjVJboZxRVAjc07lUTxgFg,18025
|
|
48
|
-
backend/services/firestore_service.py,sha256
|
|
52
|
+
backend/services/firestore_service.py,sha256=SQWwIelerFOADRG_ZMVqk8zPPR0-utwWhGXwkjtaPIo,19416
|
|
49
53
|
backend/services/flacfetch_client.py,sha256=zj4VToKamR8bShXZifLvjDmUVa1HHvDhZuaw_b7g4lU,19901
|
|
50
54
|
backend/services/gce_encoding/README.md,sha256=frTFrp7-ugFAvUd_K9EgE4ud8Xu4Qf1V7BNirQn6qJk,2515
|
|
51
55
|
backend/services/gce_encoding/__init__.py,sha256=d2H6zM207NSc5afnfgkd3kwOXUu2gFBYjxBSS7tvX_s,571
|
|
52
|
-
backend/services/gce_encoding/main.py,sha256=
|
|
56
|
+
backend/services/gce_encoding/main.py,sha256=7uS5QwqU-kcJbcw5c4zPX3CeOQQsf1HelSy0yWexLJQ,22956
|
|
53
57
|
backend/services/gce_encoding/requirements.txt,sha256=-hW5ot-PnVoKkxrpY3yV6l68wx7AvzgnLYAWEgDGWNc,408
|
|
54
58
|
backend/services/gdrive_service.py,sha256=3JTXmPBuxpKopAbWDrh6YhqR5L9BLop1R7caXBnIk2A,13266
|
|
59
|
+
backend/services/job_defaults_service.py,sha256=GHWkBeEsx97K86ffAdkDvw8PunpyIFuT2_ezgEoGbBM,4446
|
|
55
60
|
backend/services/job_logging.py,sha256=theCkAlwMbqyqAbu7vCCRpVRscaIpkam3UrCs_4Yi1g,8052
|
|
56
|
-
backend/services/job_manager.py,sha256=
|
|
61
|
+
backend/services/job_manager.py,sha256=JJGbOHHm6C97IpsXYyDw-WJjSiRutbo5CI0NUp_9O0k,37481
|
|
57
62
|
backend/services/job_notification_service.py,sha256=ywGJUMUDqV23OSDsugOUufpXO6N_24bM9YVaPp8bOk4,9557
|
|
58
63
|
backend/services/langfuse_preloader.py,sha256=t-Rt_ThjZm4K8W3jlyLn2H3cEy7KNUlhrvOPmdg-gYM,3100
|
|
59
64
|
backend/services/local_encoding_service.py,sha256=Q6yK2-QL9tHM_pUBoxdyfT7ln2L5xMx82JB2nC5OfNQ,20680
|
|
@@ -62,10 +67,12 @@ backend/services/lyrics_cache_service.py,sha256=53EIZuDs5jIKr6QiOhIKJjE2mx1Jd1_x
|
|
|
62
67
|
backend/services/metrics.py,sha256=hlEeLG4jOR1i_QbWaNQthoko9CSpe-Zn_LHJ2huEFeY,12728
|
|
63
68
|
backend/services/nltk_preloader.py,sha256=TZFghQrpDTi6COcW_rkjL15SlzdRNvPmrdy690fq0hw,3579
|
|
64
69
|
backend/services/packaging_service.py,sha256=MUuBk0jtG3vGQhuOWbDv9u1uIMwbBC4NknLpJYFcWhs,10259
|
|
70
|
+
backend/services/push_notification_service.py,sha256=hGWzyJhgZ4e8YhN0s5IxCTLpZdDQAVMY3lfr8zsEczU,14134
|
|
71
|
+
backend/services/rate_limit_service.py,sha256=KuLF9oWO44v-0zKYL3bFBwVq-_HejsQKbc0ojKJ1JSw,22907
|
|
65
72
|
backend/services/rclone_service.py,sha256=Q6wRAjlBiMMh9FBbbFRp4SHK1ljOQBed9zUJaJgAuhU,3646
|
|
66
73
|
backend/services/spacy_preloader.py,sha256=rpsMZB0CQWcoXjq8nyZCwJBkyjGheKaCFrfhxCOln5w,1836
|
|
67
74
|
backend/services/storage_service.py,sha256=gA7Snz1pihzYpRKZjEZx3eDwyMUBezl3ccLuBdpTwE4,8573
|
|
68
|
-
backend/services/stripe_service.py,sha256=
|
|
75
|
+
backend/services/stripe_service.py,sha256=JQCKgl6jH3nKSoadCrOj2gKph2tEUj1HUn-ZHWRPaPQ,14821
|
|
69
76
|
backend/services/structured_logging.py,sha256=daGgZUdc1xIiOdxL9-YtWHDy51hwZqd8ELpomkh2QH4,9063
|
|
70
77
|
backend/services/template_service.py,sha256=5CdSxBGhdBtxIUz24AhvltUfSWcFqZzBIxb9MjlN4YU,11212
|
|
71
78
|
backend/services/tenant_service.py,sha256=AlG5acJww-rpxGEQbw7eOWe1KaHLOcCn3fM95qDZMGw,9709
|
|
@@ -76,7 +83,7 @@ backend/services/worker_service.py,sha256=WRgh3kconWYmvraEIsx6eUto2frKacauKApFU1
|
|
|
76
83
|
backend/services/youtube_service.py,sha256=L2jqcWkw6qIaKh4wEfX894mHaTU0m5qtgIX6TPi6uiQ,3828
|
|
77
84
|
backend/services/youtube_upload_service.py,sha256=fvo4WxLQaKY_I75ViBMLk6vm87ym2ABHK0Fn_StYN6g,16694
|
|
78
85
|
backend/tests/__init__.py,sha256=jTjELMqIzpgHG9dcXwwkszTAAC4Wf-c93C6D1k-toZg,44
|
|
79
|
-
backend/tests/conftest.py,sha256=
|
|
86
|
+
backend/tests/conftest.py,sha256=drHy10O45kO2s23Snxlj1dg2VrhDp0Mz8FGE_dzzA1A,8301
|
|
80
87
|
backend/tests/emulator/__init__.py,sha256=yOGPU5e0JPNYyUpy-u13jW4gEfWQs3dCJxfincptaCY,156
|
|
81
88
|
backend/tests/emulator/conftest.py,sha256=VXhoJ3NZg3uiLzSAsushQtozFS7Lt6lmjk7ym-k6V8o,3844
|
|
82
89
|
backend/tests/emulator/test_e2e_cli_backend.py,sha256=BTrWDv4sRTeOlheZ-d4R37tZsvJ2MhdFLbDb9tjbF08,41018
|
|
@@ -87,6 +94,7 @@ backend/tests/emulator/test_worker_logs_direct.py,sha256=96EeaSxeNQBtDiZ9ky1-CGE
|
|
|
87
94
|
backend/tests/emulator/test_worker_logs_subcollection.py,sha256=whwUXW_-fF-nQp2Z791PNxi0nnvlRwLo87QacF-yMUI,16834
|
|
88
95
|
backend/tests/requirements-test.txt,sha256=1ixGqdsXFG0hbqUPWUjNGPlKdQgYxo1GajXOiLhs66M,193
|
|
89
96
|
backend/tests/requirements.txt,sha256=1526vDy39B1ZjJ5URZtoiDGnjvwuxiD9dNrjOLd6-gA,95
|
|
97
|
+
backend/tests/test_admin_delete_outputs.py,sha256=iDRKKOfZ8ikuaEx_7DHIiZWwT8EAbGW2KkKG3VA4wYc,13998
|
|
90
98
|
backend/tests/test_admin_email_endpoints.py,sha256=C1mOX3K4P-_QqSWa8ZSH4gtMnUJ7hqq5rOi00zSKR8g,16592
|
|
91
99
|
backend/tests/test_admin_job_files.py,sha256=LXeV08a4XuaipM-QFFVJKE02e83Muj-JrjtCPlgExuM,13348
|
|
92
100
|
backend/tests/test_admin_job_reset.py,sha256=PsM6cBPeN5d6HO4pejaOQNyTh7OHTOFNPMTPuulcZCI,14292
|
|
@@ -95,7 +103,7 @@ backend/tests/test_api_integration.py,sha256=ps4dFoW69NCKJAWvPSr410fEILPxfQNME_Y
|
|
|
95
103
|
backend/tests/test_api_routes.py,sha256=j6alBwXgtKspXxbOiDuNCCVMENk6yxdFJkakbife-rM,3193
|
|
96
104
|
backend/tests/test_audio_analysis_service.py,sha256=bKIAgyxfdbUOr7atHH-WCbZcZFkWGmGOOn7IfvRF2ms,11373
|
|
97
105
|
backend/tests/test_audio_editing_service.py,sha256=wXs82PRaxFQIji0CO1eKKYD2skHS4_VLK4aBnfj8CLE,15541
|
|
98
|
-
backend/tests/test_audio_search.py,sha256=
|
|
106
|
+
backend/tests/test_audio_search.py,sha256=VKVqh52to01AdQp1I1sAIkHIdhSOXgk82utc-oKdheg,54505
|
|
99
107
|
backend/tests/test_audio_services.py,sha256=mOF15i7IMtjM3mV-BNG0QBoMxW58cNPviEE6wka1pjQ,14607
|
|
100
108
|
backend/tests/test_auth_firestore.py,sha256=2etzuL47Pu-xOtR1CpCxi075OTFsftqneHa09yNJKEk,10063
|
|
101
109
|
backend/tests/test_config_extended.py,sha256=U2l9-wF28PmSllmRW5zNqRCNoYbBl3Nixb2SrmfGUOA,2475
|
|
@@ -105,12 +113,14 @@ backend/tests/test_discord_service.py,sha256=OU5mVzjukFtJd_H5e_HxJqSsf78B0TrNfjx
|
|
|
105
113
|
backend/tests/test_distribution_services.py,sha256=8oB2vMq5T_4rvOs6BURoLLTQiDf0kUJ-jF8dzJzDYRk,33699
|
|
106
114
|
backend/tests/test_dropbox_service.py,sha256=nDN1NjiCMS_f1bICWfe3maqbKT5FbhNuKCb1zjyjKq0,19198
|
|
107
115
|
backend/tests/test_email_service.py,sha256=u1VSTBCZl7m3GYR-vKV84tu3q7zhMuIhNA5a4OiCDlE,25290
|
|
116
|
+
backend/tests/test_email_validation_service.py,sha256=AGtusq5fUiNQz4gpiT8DXmroNPD5bcYij0R787NDooE,12472
|
|
108
117
|
backend/tests/test_emulator_integration.py,sha256=m4teGnKLBKQNe9UdFi0-0iR_unnotWs07VWgSd_atuw,10387
|
|
109
118
|
backend/tests/test_encoding_interface.py,sha256=7q9mKX4QG8-bfkxQgZkmeirK_ynfL88UTbgWS0f097U,14609
|
|
110
|
-
backend/tests/test_file_upload.py,sha256=
|
|
119
|
+
backend/tests/test_file_upload.py,sha256=seFF8viLNTEqiuChRolD5gIiMevhhkawvcXMFPcmCHw,68226
|
|
111
120
|
backend/tests/test_flacfetch_client.py,sha256=ZquMDLFVgORr9GoNfybOV9Z3eruborRgCvBRY6l-V8A,22614
|
|
121
|
+
backend/tests/test_gce_encoding_worker.py,sha256=8t_tWiFUEK0fz8p2xI9uOVIS5lQ6tDaafU7snBBlfYI,9015
|
|
112
122
|
backend/tests/test_gdrive_service.py,sha256=fh02KPaFqLEWfPaDQvSehn6r6RLq0bgt6MdXenF1kxA,19762
|
|
113
|
-
backend/tests/test_impersonation.py,sha256=
|
|
123
|
+
backend/tests/test_impersonation.py,sha256=1XhLZYIUuMay9mXzI1zOfAZTKzeGDm1Esq5xQVF1yhU,9498
|
|
114
124
|
backend/tests/test_instrumental_api.py,sha256=2eWaoEAYVY02HZgY4esn5echuWGv_sznoO6FYWIgTbQ,17210
|
|
115
125
|
backend/tests/test_internal_api.py,sha256=qMGSDCkYd5OY_Z85vQu10xjqJn1JtaQcaKSnSBpVijw,12980
|
|
116
126
|
backend/tests/test_job_creation_regression.py,sha256=ydd97391bMq40MSTlTlvMn3_zjtFDWzSQLjYczoqR_U,22826
|
|
@@ -120,10 +130,14 @@ backend/tests/test_job_notification_service.py,sha256=YbXqCWbsK8O5WICItb3VCrEY8q
|
|
|
120
130
|
backend/tests/test_jobs_api.py,sha256=z3pGTawTpt75a1bQ5x4ynw3pTlNihLA6vqktTc6mBAU,11092
|
|
121
131
|
backend/tests/test_local_encoding_service.py,sha256=TbBaFOB-8Re09G-qXIQCl8mS9WlQMFNQF01V64IekyI,14638
|
|
122
132
|
backend/tests/test_local_preview_encoding_service.py,sha256=VwxpcAjDdYaVauSsrJ609U575VWRZbLsXew8BqBXpJY,20228
|
|
123
|
-
backend/tests/test_made_for_you.py,sha256=
|
|
133
|
+
backend/tests/test_made_for_you.py,sha256=Eanhp4v_dOgpQTxKQPHxHdLG4XiJ-kruVPWkR0iUnsg,87806
|
|
124
134
|
backend/tests/test_main.py,sha256=BvzcadLUV0SEUO1ViKm0djgy_TEKXm8PPvgfcCCEJAY,3348
|
|
125
135
|
backend/tests/test_models.py,sha256=buUjtm3TaiIff58SCpG0Du1Bnm-S9X8LyaW64zEhb4U,39606
|
|
126
136
|
backend/tests/test_packaging_service.py,sha256=v4Bj8R61Fx0Kng6RoTj3SRN9jmxow5qCVtTJstTWNfE,13916
|
|
137
|
+
backend/tests/test_push_notification_service.py,sha256=h6uMHiZdEMViG6OlKE-T85kkvphVc_4iAClc_8gSesc,18226
|
|
138
|
+
backend/tests/test_push_routes.py,sha256=9Bw6erGLpaJD4d2ybsB6mq7IIJPdnQTF8h6xuhpEv9U,13091
|
|
139
|
+
backend/tests/test_rate_limit_service.py,sha256=1G-kskzv-5hcG_px78vZ9_J_X2Jj21s7l_wuUOWAOkY,16905
|
|
140
|
+
backend/tests/test_rate_limits_api.py,sha256=eFtdMzDMxhvI3MPhm60nRIWh-MVFCdpG0e-FwIVLn9I,14822
|
|
127
141
|
backend/tests/test_requests.py,sha256=DI2IG67hHk2rhuzUfz_QNJCLRTy1NZPLsnSdZbIfPA8,6817
|
|
128
142
|
backend/tests/test_routes_jobs.py,sha256=iqOZ93ACKpizSzLEJUx5hIo0vkKe2oIT7s7iZqQUJaE,11258
|
|
129
143
|
backend/tests/test_routes_review.py,sha256=ENo6_wFUDcyXZhRy_NBqajan9dvqV_7f1rIQ7LLLS-U,14334
|
|
@@ -131,6 +145,7 @@ backend/tests/test_services.py,sha256=JSsZZSpa0HjNZBSIrXXzBxZfJewfdR9RC3P8tHV8M8
|
|
|
131
145
|
backend/tests/test_services_extended.py,sha256=cBcaEicz4WdBo5WZB77AoGZTwWAOC6W4OslpT6VmFI8,4124
|
|
132
146
|
backend/tests/test_spacy_preloader.py,sha256=uWpkrOPUOOcW1-fWClKMKVhXHGk30FXq537kQH5jpd0,4437
|
|
133
147
|
backend/tests/test_storage_service.py,sha256=gorn3aFwKSr8lihxcG7kza7fYvDsTvxJhOxzuTtPK_o,19069
|
|
148
|
+
backend/tests/test_stripe_service.py,sha256=KcymsTeIftSje3uQx1qZgGe57DNlsPbmZCZ7OR6LTms,8560
|
|
134
149
|
backend/tests/test_style_upload.py,sha256=8G2dGgvyMGXsh1jk8PcGpTlSdBQAlHn13kpZcKn6rTY,10491
|
|
135
150
|
backend/tests/test_template_service.py,sha256=BKURQ1M-hXXgdBl9LqhPQKfpItWOYDRBSt1y5FXQzaM,10431
|
|
136
151
|
backend/tests/test_tenant_api.py,sha256=P4395WYGldJIX7hYcbk96bIDW0Hogcj2McUG6iApNmc,13441
|
|
@@ -159,7 +174,7 @@ backend/workers/render_video_worker.py,sha256=L6-VCxSBY6MbXBBm0-wu_DXxcIWKfW6ynT
|
|
|
159
174
|
backend/workers/screens_worker.py,sha256=vCS7j4dQRQ_tsWNhz-XH5nau7kGyUSzSp-dzyZpeJEo,21402
|
|
160
175
|
backend/workers/style_helper.py,sha256=7-PM79dAUAZHTj-bnATy43ImqNdl_00E9pm94CYg1BM,6906
|
|
161
176
|
backend/workers/video_worker.py,sha256=5r3PcYdoca16fjZtFzCwfKm-G7QjL98ZLMhw6qGVDNE,55670
|
|
162
|
-
backend/workers/video_worker_orchestrator.py,sha256=
|
|
177
|
+
backend/workers/video_worker_orchestrator.py,sha256=shkn7a_m9GxlPGtu-PUnqGX4FGc2VvwSpoVWu9_L1jI,29510
|
|
163
178
|
backend/workers/worker_logging.py,sha256=nlbGsjDjdkv28Fm-95vKBumy6P47dGiNN5Zf3r0A480,9928
|
|
164
179
|
karaoke_gen/__init__.py,sha256=wHpDbURJxmJAMNZ0uQjISv5MIT7KD9RWYi15xlYgEhU,1351
|
|
165
180
|
karaoke_gen/audio_fetcher.py,sha256=EuMSO_wG0z0ldfQQ_xGC8kdoUCDB1Rr2_IuWIZ218lA,71380
|
|
@@ -171,7 +186,7 @@ karaoke_gen/instrumental_review/analyzer.py,sha256=Heg8TbrwM4g5IV7bavmO6EfVD4M0U
|
|
|
171
186
|
karaoke_gen/instrumental_review/editor.py,sha256=_DGTjKMk5WhoGtLGtTvHzU522LJyQQ_DSY1r8fULuiA,11568
|
|
172
187
|
karaoke_gen/instrumental_review/models.py,sha256=cUSb_JheJK0cGdKx9f59-9sRvRrhrgdTdKBzQN3lHto,5226
|
|
173
188
|
karaoke_gen/instrumental_review/server.py,sha256=Ick90X77t2EeMRwtx2U08sSybadQyWH7G0tDG-4JqP4,19377
|
|
174
|
-
karaoke_gen/instrumental_review/static/index.html,sha256=
|
|
189
|
+
karaoke_gen/instrumental_review/static/index.html,sha256=xGHlUYZ4NfJbduuC6ecxgyV4vj1sj2UcBvHgrQT6SII,64730
|
|
175
190
|
karaoke_gen/instrumental_review/waveform.py,sha256=Q6LBPZrJAD6mzZ7TmRf3Tf4gwYhUYTHumJKytLs3hSg,12940
|
|
176
191
|
karaoke_gen/karaoke_finalise/__init__.py,sha256=HqZ7TIhgt_tYZ-nb_NNCaejWAcF_aK-7wJY5TaW_keM,46
|
|
177
192
|
karaoke_gen/karaoke_finalise/karaoke_finalise.py,sha256=uAx25TAOB5MGKw4bHCl5cqcvIfZMj4tjXMJurtRrbog,93895
|
|
@@ -450,8 +465,8 @@ lyrics_transcriber/transcribers/whisper.py,sha256=YcCB1ic9H6zL1GS0jD0emu8-qlcH0Q
|
|
|
450
465
|
lyrics_transcriber/types.py,sha256=UJjaxhVd2o14AG4G8ToU598p0JeYdiTFjpG38jGCoYQ,27917
|
|
451
466
|
lyrics_transcriber/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
452
467
|
lyrics_transcriber/utils/word_utils.py,sha256=-cMGpj9UV4F6IsoDKAV2i1aiqSO8eI91HMAm_igtVMk,958
|
|
453
|
-
karaoke_gen-0.
|
|
454
|
-
karaoke_gen-0.
|
|
455
|
-
karaoke_gen-0.
|
|
456
|
-
karaoke_gen-0.
|
|
457
|
-
karaoke_gen-0.
|
|
468
|
+
karaoke_gen-0.105.4.dist-info/METADATA,sha256=OgyTNMu5A8560akFACt0BXdwu2cqcK10806TzKoNES8,23151
|
|
469
|
+
karaoke_gen-0.105.4.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
470
|
+
karaoke_gen-0.105.4.dist-info/entry_points.txt,sha256=xIyLe7K84ZyjO8L0_AmNectz93QjGSs5AkApMtlAd4g,160
|
|
471
|
+
karaoke_gen-0.105.4.dist-info/licenses/LICENSE,sha256=81R_4XwMZDODHD7JcZeUR8IiCU8AD7Ajl6bmwR9tYDk,1074
|
|
472
|
+
karaoke_gen-0.105.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|