Skip to content

Commit a60ebde

Browse files
committed
filter: flip added, which reverts the line order
1 parent 464943a commit a60ebde

File tree

4 files changed

+39
-1
lines changed

4 files changed

+39
-1
lines changed

cmd/subber/subber.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var (
2121
keepAds = kingpin.Flag("keep-ads", "Do not strip advertisement captions.").Bool()
2222
skipBackups = kingpin.Flag("skip-backups", "Do not make backup (.srt.org) of original .srt").Bool()
2323
language = kingpin.Flag("language", "Language.").Default("en").String()
24-
filterName = kingpin.Flag("filter", "Filter (none, caps, html, ocr, all).").Default("none").String()
24+
filterName = kingpin.Flag("filter", "Filter (none, caps, html, ocr, flip, all).").Default("none").String()
2525
sync = kingpin.Flag("sync", "Synchronize captions (milliseconds).").Int()
2626
)
2727

filter.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ func (subtitle *Subtitle) FilterCaptions(filter string) {
1717
subtitle.filterHTML()
1818
case "ocr":
1919
subtitle.filterOCR()
20+
case "flip":
21+
subtitle.filterFlip()
2022
case "none":
2123
default:
2224
fmt.Printf("Unrecognized filter name: %s\n", filter)

filter_flip.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package subtitles
2+
3+
// filterFlip reverts the line order of each caption
4+
func (subtitle *Subtitle) filterFlip() *Subtitle {
5+
for i, cap := range subtitle.Captions {
6+
flipped := []string{}
7+
for _, line := range cap.Text {
8+
flipped = append([]string{line}, flipped...)
9+
}
10+
subtitle.Captions[i].Text = flipped
11+
}
12+
return subtitle
13+
}

filter_flip_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package subtitles
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestFilterFlip(t *testing.T) {
10+
in := Subtitle{Captions: []Caption{{
11+
Seq: 1,
12+
Start: makeTime(0, 0, 4, 630),
13+
End: makeTime(0, 0, 6, 18),
14+
Text: []string{"Line one", "Line two"},
15+
}}}
16+
expected := Subtitle{[]Caption{{
17+
1,
18+
makeTime(0, 0, 4, 630),
19+
makeTime(0, 0, 6, 18),
20+
[]string{"Line two", "Line one"},
21+
}}}
22+
assert.Equal(t, &expected, in.filterFlip())
23+
}

0 commit comments

Comments
 (0)