lyrics-transcriber 0.69.0__tar.gz → 0.70.0__tar.gz

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.
Files changed (174) hide show
  1. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/PKG-INFO +1 -1
  2. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/package.json +1 -1
  3. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/Header.tsx +14 -0
  4. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/LyricsAnalyzer.tsx +26 -1
  5. lyrics_transcriber-0.69.0/lyrics_transcriber/frontend/web_assets/assets/index-izP9z1oB.js → lyrics_transcriber-0.70.0/lyrics_transcriber/frontend/web_assets/assets/index-BV5ep1cr.js +40 -5
  6. lyrics_transcriber-0.70.0/lyrics_transcriber/frontend/web_assets/assets/index-BV5ep1cr.js.map +1 -0
  7. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/web_assets/index.html +1 -1
  8. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/pyproject.toml +1 -1
  9. lyrics_transcriber-0.69.0/lyrics_transcriber/frontend/web_assets/assets/index-izP9z1oB.js.map +0 -1
  10. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/LICENSE +0 -0
  11. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/README.md +0 -0
  12. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/__init__.py +0 -0
  13. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/cli/__init__.py +0 -0
  14. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/cli/cli_main.py +0 -0
  15. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/core/__init__.py +0 -0
  16. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/core/config.py +0 -0
  17. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/core/controller.py +0 -0
  18. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/anchor_sequence.py +0 -0
  19. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/corrector.py +0 -0
  20. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/__init__.py +0 -0
  21. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/base.py +0 -0
  22. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/extend_anchor.py +0 -0
  23. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/levenshtein.py +0 -0
  24. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/llm.py +0 -0
  25. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/llm_providers.py +0 -0
  26. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/no_space_punct_match.py +0 -0
  27. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/relaxed_word_count_match.py +0 -0
  28. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/repeat.py +0 -0
  29. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/sound_alike.py +0 -0
  30. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/syllables_match.py +0 -0
  31. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/word_count_match.py +0 -0
  32. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/handlers/word_operations.py +0 -0
  33. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/operations.py +0 -0
  34. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/phrase_analyzer.py +0 -0
  35. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/correction/text_utils.py +0 -0
  36. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/.gitignore +0 -0
  37. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/.yarn/releases/yarn-4.7.0.cjs +0 -0
  38. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/.yarnrc.yml +0 -0
  39. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/README.md +0 -0
  40. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/REPLACE_ALL_FUNCTIONALITY.md +0 -0
  41. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/__init__.py +0 -0
  42. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/eslint.config.js +0 -0
  43. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/index.html +0 -0
  44. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/public/android-chrome-192x192.png +0 -0
  45. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/public/android-chrome-512x512.png +0 -0
  46. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/public/apple-touch-icon.png +0 -0
  47. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/public/favicon-16x16.png +0 -0
  48. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/public/favicon-32x32.png +0 -0
  49. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/public/favicon.ico +0 -0
  50. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/public/nomad-karaoke-logo.png +0 -0
  51. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/App.tsx +0 -0
  52. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/api.ts +0 -0
  53. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/AddLyricsModal.tsx +0 -0
  54. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/AudioPlayer.tsx +0 -0
  55. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/CorrectionMetrics.tsx +0 -0
  56. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/EditActionBar.tsx +0 -0
  57. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/EditModal.tsx +0 -0
  58. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/EditTimelineSection.tsx +0 -0
  59. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/EditWordList.tsx +0 -0
  60. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/FileUpload.tsx +0 -0
  61. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/FindReplaceModal.tsx +0 -0
  62. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/ModeSelector.tsx +0 -0
  63. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/PreviewVideoSection.tsx +0 -0
  64. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/ReferenceView.tsx +0 -0
  65. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/ReplaceAllLyricsModal.tsx +0 -0
  66. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/ReviewChangesModal.tsx +0 -0
  67. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/SegmentDetailsModal.tsx +0 -0
  68. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/TimelineEditor.tsx +0 -0
  69. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/TimingOffsetModal.tsx +0 -0
  70. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/TranscriptionView.tsx +0 -0
  71. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/WordDivider.tsx +0 -0
  72. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/components/HighlightedText.tsx +0 -0
  73. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/components/SourceSelector.tsx +0 -0
  74. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/components/Word.tsx +0 -0
  75. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/constants.ts +0 -0
  76. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/hooks/useWordClick.ts +0 -0
  77. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/styles.ts +0 -0
  78. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/types.js +0 -0
  79. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/types.ts +0 -0
  80. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/utils/keyboardHandlers.ts +0 -0
  81. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/utils/localStorage.ts +0 -0
  82. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/utils/referenceLineCalculator.ts +0 -0
  83. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/utils/segmentOperations.ts +0 -0
  84. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/utils/timingUtils.ts +0 -0
  85. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/components/shared/utils/wordUtils.ts +0 -0
  86. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/hooks/useManualSync.ts +0 -0
  87. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/main.tsx +0 -0
  88. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/theme.ts +0 -0
  89. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/types/global.d.ts +0 -0
  90. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/types.js +0 -0
  91. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/types.ts +0 -0
  92. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/validation.ts +0 -0
  93. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/src/vite-env.d.ts +0 -0
  94. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/tsconfig.app.json +0 -0
  95. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/tsconfig.json +0 -0
  96. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/tsconfig.node.json +0 -0
  97. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/tsconfig.tsbuildinfo +0 -0
  98. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/update_version.js +0 -0
  99. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/vite.config.d.ts +0 -0
  100. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/vite.config.js +0 -0
  101. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/vite.config.ts +0 -0
  102. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/web_assets/android-chrome-192x192.png +0 -0
  103. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/web_assets/android-chrome-512x512.png +0 -0
  104. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/web_assets/apple-touch-icon.png +0 -0
  105. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/web_assets/favicon-16x16.png +0 -0
  106. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/web_assets/favicon-32x32.png +0 -0
  107. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/web_assets/favicon.ico +0 -0
  108. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/web_assets/nomad-karaoke-logo.png +0 -0
  109. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/frontend/yarn.lock +0 -0
  110. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/lyrics/base_lyrics_provider.py +0 -0
  111. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/lyrics/file_provider.py +0 -0
  112. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/lyrics/genius.py +0 -0
  113. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/lyrics/musixmatch.py +0 -0
  114. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/lyrics/spotify.py +0 -0
  115. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/lyrics/user_input_provider.py +0 -0
  116. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/__init__.py +0 -0
  117. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/__init__.py +0 -0
  118. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/ass.py +0 -0
  119. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/ass_specs.txt +0 -0
  120. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/config.py +0 -0
  121. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/constants.py +0 -0
  122. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/event.py +0 -0
  123. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/formatters.py +0 -0
  124. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/lyrics_line.py +0 -0
  125. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/lyrics_screen.py +0 -0
  126. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/section_detector.py +0 -0
  127. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/section_screen.py +0 -0
  128. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/ass/style.py +0 -0
  129. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdg.py +0 -0
  130. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/__init__.py +0 -0
  131. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/cdg.py +0 -0
  132. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/composer.py +0 -0
  133. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/config.py +0 -0
  134. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/images/instrumental.png +0 -0
  135. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/images/intro.png +0 -0
  136. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/pack.py +0 -0
  137. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/render.py +0 -0
  138. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/centertexttoplogobottomtext.png +0 -0
  139. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/circlein.png +0 -0
  140. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/circleout.png +0 -0
  141. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/fizzle.png +0 -0
  142. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/largecentertexttoplogo.png +0 -0
  143. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/rectangle.png +0 -0
  144. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/spiral.png +0 -0
  145. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/topleftmusicalnotes.png +0 -0
  146. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/wipein.png +0 -0
  147. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/wipeleft.png +0 -0
  148. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/wipeout.png +0 -0
  149. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/transitions/wiperight.png +0 -0
  150. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/cdgmaker/utils.py +0 -0
  151. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/fonts/AvenirNext-Bold.ttf +0 -0
  152. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/fonts/DMSans-VariableFont_opsz,wght.ttf +0 -0
  153. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/fonts/DMSerifDisplay-Regular.ttf +0 -0
  154. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/fonts/Oswald-SemiBold.ttf +0 -0
  155. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/fonts/Zurich_Cn_BT_Bold.ttf +0 -0
  156. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/fonts/arial.ttf +0 -0
  157. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/fonts/georgia.ttf +0 -0
  158. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/fonts/verdana.ttf +0 -0
  159. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/generator.py +0 -0
  160. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/lrc_to_cdg.py +0 -0
  161. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/lyrics_file.py +0 -0
  162. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/plain_text.py +0 -0
  163. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/segment_resizer.py +0 -0
  164. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/subtitles.py +0 -0
  165. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/output/video.py +0 -0
  166. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/review/__init__.py +0 -0
  167. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/review/server.py +0 -0
  168. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/storage/__init__.py +0 -0
  169. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/storage/dropbox.py +0 -0
  170. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/transcribers/audioshake.py +0 -0
  171. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/transcribers/base_transcriber.py +0 -0
  172. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/transcribers/whisper.py +0 -0
  173. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/types.py +0 -0
  174. {lyrics_transcriber-0.69.0 → lyrics_transcriber-0.70.0}/lyrics_transcriber/utils/word_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lyrics-transcriber
3
- Version: 0.69.0
3
+ Version: 0.70.0
4
4
  Summary: Automatically create synchronised lyrics files in ASS and MidiCo LRC formats with word-level timestamps, using Whisper and lyrics from Genius and Spotify
5
5
  License: MIT
6
6
  Author: Andrew Beveridge
@@ -2,7 +2,7 @@
2
2
  "name": "lyrics-transcriber-frontend",
3
3
  "private": true,
4
4
  "homepage": "https://nomadkaraoke.github.io/lyrics-transcriber-frontend",
5
- "version": "0.69.0",
5
+ "version": "0.70.0",
6
6
  "type": "module",
7
7
  "scripts": {
8
8
  "dev": "vite",
@@ -6,6 +6,7 @@ import EditIcon from '@mui/icons-material/Edit'
6
6
  import UndoIcon from '@mui/icons-material/Undo'
7
7
  import RedoIcon from '@mui/icons-material/Redo'
8
8
  import TimerIcon from '@mui/icons-material/Timer'
9
+ import RestoreIcon from '@mui/icons-material/Restore'
9
10
  import { CorrectionData, InteractionMode } from '../types'
10
11
  import CorrectionMetrics from './CorrectionMetrics'
11
12
  import ModeSelector from './ModeSelector'
@@ -32,6 +33,7 @@ interface HeaderProps {
32
33
  onHandlerClick?: (handler: string) => void
33
34
  onFindReplace?: () => void
34
35
  onEditAll?: () => void
36
+ onUnCorrectAll?: () => void
35
37
  onTimingOffset?: () => void
36
38
  timingOffsetMs?: number
37
39
  onUndo: () => void
@@ -55,6 +57,7 @@ export default function Header({
55
57
  onHandlerClick,
56
58
  onFindReplace,
57
59
  onEditAll,
60
+ onUnCorrectAll,
58
61
  onTimingOffset,
59
62
  timingOffsetMs = 0,
60
63
  onUndo,
@@ -316,6 +319,17 @@ export default function Header({
316
319
  Edit All
317
320
  </Button>
318
321
  )}
322
+ {!isReadOnly && onUnCorrectAll && (
323
+ <Button
324
+ variant="outlined"
325
+ size="small"
326
+ onClick={onUnCorrectAll}
327
+ startIcon={<RestoreIcon />}
328
+ sx={{ minWidth: 'fit-content', height: '32px' }}
329
+ >
330
+ Un-Correct All
331
+ </Button>
332
+ )}
319
333
  {!isReadOnly && onTimingOffset && (
320
334
  <Box sx={{ display: 'flex', alignItems: 'center' }}>
321
335
  <Button
@@ -196,6 +196,7 @@ interface MemoizedHeaderProps {
196
196
  onRedo: () => void
197
197
  canUndo: boolean
198
198
  canRedo: boolean
199
+ onUnCorrectAll: () => void
199
200
  }
200
201
 
201
202
  // Create a memoized Header component
@@ -219,7 +220,8 @@ const MemoizedHeader = memo(function MemoizedHeader({
219
220
  onUndo,
220
221
  onRedo,
221
222
  canUndo,
222
- canRedo
223
+ canRedo,
224
+ onUnCorrectAll
223
225
  }: MemoizedHeaderProps) {
224
226
  return (
225
227
  <Header
@@ -243,6 +245,7 @@ const MemoizedHeader = memo(function MemoizedHeader({
243
245
  onRedo={onRedo}
244
246
  canUndo={canUndo}
245
247
  canRedo={canRedo}
248
+ onUnCorrectAll={onUnCorrectAll}
246
249
  />
247
250
  );
248
251
  });
@@ -782,7 +785,28 @@ export default function LyricsAnalyzer({ data: initialData, onFileLoad, apiClien
782
785
  updateDataWithHistory(newData, 'find/replace'); // Update history
783
786
  }
784
787
 
788
+ // Add handler for Un-Correct All functionality
789
+ const handleUnCorrectAll = useCallback(() => {
790
+ if (!originalData.original_segments) {
791
+ console.warn('No original segments available for un-correcting')
792
+ return
793
+ }
794
+
795
+ if (window.confirm('Are you sure you want to revert all segments to their original transcribed state? This will undo all corrections made.')) {
796
+ console.log('Un-Correct All: Reverting all segments to original transcribed state', {
797
+ originalSegmentCount: originalData.original_segments.length,
798
+ currentSegmentCount: data.corrected_segments.length
799
+ })
785
800
 
801
+ // Create new data with original segments as corrected segments
802
+ const newData: CorrectionData = {
803
+ ...data,
804
+ corrected_segments: JSON.parse(JSON.stringify(originalData.original_segments))
805
+ }
806
+
807
+ updateDataWithHistory(newData, 'un-correct all segments')
808
+ }
809
+ }, [originalData.original_segments, data, updateDataWithHistory])
786
810
 
787
811
  // Add handler for Replace All Lyrics functionality
788
812
  const handleReplaceAllLyrics = useCallback(() => {
@@ -914,6 +938,7 @@ export default function LyricsAnalyzer({ data: initialData, onFileLoad, apiClien
914
938
  onRedo={handleRedo}
915
939
  canUndo={canUndo}
916
940
  canRedo={canRedo}
941
+ onUnCorrectAll={handleUnCorrectAll}
917
942
  />
918
943
 
919
944
  <Grid container direction={isMobile ? 'column' : 'row'}>
@@ -36597,6 +36597,9 @@ const PauseIcon = createSvgIcon(/* @__PURE__ */ jsxRuntimeExports.jsx("path", {
36597
36597
  const RedoIcon = createSvgIcon(/* @__PURE__ */ jsxRuntimeExports.jsx("path", {
36598
36598
  d: "M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7z"
36599
36599
  }), "Redo");
36600
+ const RestoreIcon = createSvgIcon(/* @__PURE__ */ jsxRuntimeExports.jsx("path", {
36601
+ d: "M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9m-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8z"
36602
+ }), "Restore");
36600
36603
  const TimerIcon = createSvgIcon(/* @__PURE__ */ jsxRuntimeExports.jsx("path", {
36601
36604
  d: "M9 1h6v2H9zm10.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61M13 14h-2V8h2z"
36602
36605
  }), "Timer");
@@ -37749,6 +37752,7 @@ function Header({
37749
37752
  onHandlerClick,
37750
37753
  onFindReplace,
37751
37754
  onEditAll,
37755
+ onUnCorrectAll,
37752
37756
  onTimingOffset,
37753
37757
  timingOffsetMs = 0,
37754
37758
  onUndo,
@@ -37975,6 +37979,17 @@ function Header({
37975
37979
  children: "Edit All"
37976
37980
  }
37977
37981
  ),
37982
+ !isReadOnly && onUnCorrectAll && /* @__PURE__ */ jsxRuntimeExports.jsx(
37983
+ Button,
37984
+ {
37985
+ variant: "outlined",
37986
+ size: "small",
37987
+ onClick: onUnCorrectAll,
37988
+ startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(RestoreIcon, {}),
37989
+ sx: { minWidth: "fit-content", height: "32px" },
37990
+ children: "Un-Correct All"
37991
+ }
37992
+ ),
37978
37993
  !isReadOnly && onTimingOffset && /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: { display: "flex", alignItems: "center" }, children: [
37979
37994
  /* @__PURE__ */ jsxRuntimeExports.jsx(
37980
37995
  Button,
@@ -38625,7 +38640,8 @@ const MemoizedHeader = reactExports.memo(function MemoizedHeader2({
38625
38640
  onUndo,
38626
38641
  onRedo,
38627
38642
  canUndo,
38628
- canRedo
38643
+ canRedo,
38644
+ onUnCorrectAll
38629
38645
  }) {
38630
38646
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
38631
38647
  Header,
@@ -38649,7 +38665,8 @@ const MemoizedHeader = reactExports.memo(function MemoizedHeader2({
38649
38665
  onUndo,
38650
38666
  onRedo,
38651
38667
  canUndo,
38652
- canRedo
38668
+ canRedo,
38669
+ onUnCorrectAll
38653
38670
  }
38654
38671
  );
38655
38672
  });
@@ -38994,6 +39011,23 @@ function LyricsAnalyzer({ data: initialData, onFileLoad, apiClient, isReadOnly,
38994
39011
  const newData = findAndReplace(data, findText, replaceText, options);
38995
39012
  updateDataWithHistory(newData, "find/replace");
38996
39013
  };
39014
+ const handleUnCorrectAll = reactExports.useCallback(() => {
39015
+ if (!originalData.original_segments) {
39016
+ console.warn("No original segments available for un-correcting");
39017
+ return;
39018
+ }
39019
+ if (window.confirm("Are you sure you want to revert all segments to their original transcribed state? This will undo all corrections made.")) {
39020
+ console.log("Un-Correct All: Reverting all segments to original transcribed state", {
39021
+ originalSegmentCount: originalData.original_segments.length,
39022
+ currentSegmentCount: data.corrected_segments.length
39023
+ });
39024
+ const newData = {
39025
+ ...data,
39026
+ corrected_segments: JSON.parse(JSON.stringify(originalData.original_segments))
39027
+ };
39028
+ updateDataWithHistory(newData, "un-correct all segments");
39029
+ }
39030
+ }, [originalData.original_segments, data, updateDataWithHistory]);
38997
39031
  const handleReplaceAllLyrics = reactExports.useCallback(() => {
38998
39032
  console.log("ReplaceAllLyrics - Opening modal");
38999
39033
  setIsReplaceAllLyricsModalOpen(true);
@@ -39075,7 +39109,8 @@ function LyricsAnalyzer({ data: initialData, onFileLoad, apiClient, isReadOnly,
39075
39109
  onUndo: handleUndo,
39076
39110
  onRedo: handleRedo,
39077
39111
  canUndo,
39078
- canRedo
39112
+ canRedo,
39113
+ onUnCorrectAll: handleUnCorrectAll
39079
39114
  }
39080
39115
  ),
39081
39116
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { container: true, direction: isMobile ? "column" : "row", children: [
@@ -39573,7 +39608,7 @@ const theme = createTheme({
39573
39608
  spacing: (factor) => `${0.6 * factor}rem`
39574
39609
  // Further reduced from 0.8 * factor
39575
39610
  });
39576
- const version = "0.69.0";
39611
+ const version = "0.70.0";
39577
39612
  const packageJson = {
39578
39613
  version
39579
39614
  };
@@ -39584,4 +39619,4 @@ ReactDOM$1.createRoot(document.getElementById("root")).render(
39584
39619
  /* @__PURE__ */ jsxRuntimeExports.jsx(App, {})
39585
39620
  ] })
39586
39621
  );
39587
- //# sourceMappingURL=index-izP9z1oB.js.map
39622
+ //# sourceMappingURL=index-BV5ep1cr.js.map