Skip to content

Commit

Permalink
filter: flip added, which reverts the line order
Browse files Browse the repository at this point in the history
  • Loading branch information
martinlindhe committed Jul 15, 2020
1 parent 464943a commit a60ebde
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 1 deletion.
2 changes: 1 addition & 1 deletion cmd/subber/subber.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ var (
keepAds = kingpin.Flag("keep-ads", "Do not strip advertisement captions.").Bool()
skipBackups = kingpin.Flag("skip-backups", "Do not make backup (.srt.org) of original .srt").Bool()
language = kingpin.Flag("language", "Language.").Default("en").String()
filterName = kingpin.Flag("filter", "Filter (none, caps, html, ocr, all).").Default("none").String()
filterName = kingpin.Flag("filter", "Filter (none, caps, html, ocr, flip, all).").Default("none").String()
sync = kingpin.Flag("sync", "Synchronize captions (milliseconds).").Int()
)

Expand Down
2 changes: 2 additions & 0 deletions filter.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ func (subtitle *Subtitle) FilterCaptions(filter string) {
subtitle.filterHTML()
case "ocr":
subtitle.filterOCR()
case "flip":
subtitle.filterFlip()
case "none":
default:
fmt.Printf("Unrecognized filter name: %s\n", filter)
Expand Down
13 changes: 13 additions & 0 deletions filter_flip.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package subtitles

// filterFlip reverts the line order of each caption
func (subtitle *Subtitle) filterFlip() *Subtitle {
for i, cap := range subtitle.Captions {
flipped := []string{}
for _, line := range cap.Text {
flipped = append([]string{line}, flipped...)
}
subtitle.Captions[i].Text = flipped
}
return subtitle
}
23 changes: 23 additions & 0 deletions filter_flip_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package subtitles

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestFilterFlip(t *testing.T) {
in := Subtitle{Captions: []Caption{{
Seq: 1,
Start: makeTime(0, 0, 4, 630),
End: makeTime(0, 0, 6, 18),
Text: []string{"Line one", "Line two"},
}}}
expected := Subtitle{[]Caption{{
1,
makeTime(0, 0, 4, 630),
makeTime(0, 0, 6, 18),
[]string{"Line two", "Line one"},
}}}
assert.Equal(t, &expected, in.filterFlip())
}

0 comments on commit a60ebde

Please sign in to comment.