Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OCTO-11094-always-skip-special-characters #345

Merged
merged 1 commit into from
Oct 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
Changelog
---------
2.2.15
^^^^^^
- Always skip doubled special characters, not just in case the cue starters are doubled.

2.2.14
^^^^^^
- Fix an issue with WebVTT writer text positioning on break inside a cue.
Expand Down
3 changes: 1 addition & 2 deletions pycaption/scc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -367,13 +367,12 @@ def _handle_double_command(self, word):
# doubled special characters and doubled extended characters
# with only one member of each pair being displayed.

doubled_types = word != "94a1" and word in COMMANDS or _is_pac_command(word)
doubled_types = (word != "94a1" and word in COMMANDS) or _is_pac_command(word) or word in SPECIAL_CHARS
if self.double_starter:
doubled_types = (
doubled_types
or word in EXTENDED_CHARS
or word == "94a1"
or word in SPECIAL_CHARS
)

if word in CUE_STARTING_COMMAND and word != self.last_command:
Expand Down
2 changes: 1 addition & 1 deletion pycaption/scc/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -988,7 +988,7 @@ def _restructure_bytes_to_position_map(byte_to_pos_map):

# taken from
# http://www.theneitherworld.com/mcpoodle/SCC_TOOLS/DOCS/CC_CHARS.HTML
INCONVERTIBLE_TO_ASCII_EXTENDED_CHARS_ASSOCIATION = {
SUBSTITUTE_CHARACTERS = {
'¡': ["!", "i"], # inverted exclamation mark
'¤': ["C"], # currency
'¥': ["Y"], # yen
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

setup(
name="pycaption",
version="2.2.14",
version="2.2.15.dev1",
description="Closed caption converter",
long_description=open(README_PATH).read(),
author="Joe Norton",
Expand Down
8 changes: 8 additions & 0 deletions tests/fixtures/scc.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,14 @@ def sample_scc_roll_up_ru2():

00:00:13;07 9425 9425 94ad 94ad 9470 9470 c1c2 c3c4 c580 91bf

00:00:13;15 9425 9425 94ad 94ad 9470 9470 9137

00:00:13;20 9425 9425 94ad 94ad 9470 9470 9137 9137

00:00:13;25 9425 9425 94ad 94ad 9470 9470 9137 9137 9137

00:00:13;40 9425 9425 94ad 94ad 9470 9470 9137 9137 9137 9137

00:00:14;07 9425 9425 94ad 94ad 9470 9470 9220 9220 92a1 92a2 92a7

00:00:17;01 9426 9426 94ad 94ad 9470 9470 57c8 4552 4520 d94f d5a7 5245 20d3 54c1 cec4 49ce c720 ce4f 572c
Expand Down
8 changes: 7 additions & 1 deletion tests/test_scc.py
Original file line number Diff line number Diff line change
Expand Up @@ -419,8 +419,12 @@ def test_freeze_rollup_captions_contents(self, sample_scc_roll_up_ru2):
"AND IMPROVING THE LIVES OF ALL",
"WE SERVE.",
"®°½",
"®°½½",
"®°½",
"ABû",
'♪',
'♪',
'♪♪',
'♪♪',
"ÁÉÓ¡",
"WHERE YOU'RE STANDING NOW,",
"LOOKING OUT THERE, THAT'S AL",
Expand All @@ -430,6 +434,8 @@ def test_freeze_rollup_captions_contents(self, sample_scc_roll_up_ru2):
"And wildlife.",
">> Bike Iowa, your source for",
]
for x in actual_texts:
print(x)
assert expected_texts == actual_texts

def test_multiple_formats(self, sample_scc_multiple_formats):
Expand Down
Loading