Skip to content

Commit f1b7f84

Browse files
author
zhenya
committed
Added utils.
1 parent af8f1b0 commit f1b7f84

18 files changed

Lines changed: 345 additions & 214 deletions
Lines changed: 73 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,76 @@
11
package com.iusenko.subrip;
22

3-
import java.io.Serializable;
4-
5-
public class Phrase implements Serializable {
6-
7-
private int number;
8-
private String text;
9-
private String fromTime;
10-
private String toTime;
11-
12-
public Phrase(String text) {
13-
this.text = text;
14-
this.fromTime = "00:00:00.00";
15-
this.toTime = "00:00:00.00";
16-
}
17-
18-
public Phrase() {
19-
}
20-
21-
public String getText() {
22-
return text;
23-
}
24-
25-
public void setText(String text) {
26-
this.text = text;
27-
}
28-
29-
public String getFromTime() {
30-
return fromTime;
31-
}
32-
33-
public void setFromTime(String fromTime) {
34-
this.fromTime = fromTime;
35-
}
36-
37-
public String getToTime() {
38-
return toTime;
39-
}
40-
41-
public void setToTime(String toTime) {
42-
this.toTime = toTime;
43-
}
44-
45-
public int getNumber() {
46-
return number;
47-
}
48-
49-
public void setNumber(int number) {
50-
this.number = number;
51-
}
52-
53-
@Override
54-
public String toString() {
55-
StringBuilder sb = new StringBuilder();
56-
sb.append("number=").append(number);
57-
sb.append(", time=").append(fromTime).append(":").append(toTime);
58-
sb.append(", text=").append(text);
59-
return sb.toString();
60-
}
3+
/**
4+
*
5+
* @author iusenko
6+
*/
7+
public class Phrase {
8+
public static final Phrase END = new Phrase();
9+
10+
private int id;
11+
private long startTime;
12+
private long endTime;
13+
private String startTimeText;
14+
private String endTimeText;
15+
private String text;
16+
17+
public long getEndTime() {
18+
return endTime;
19+
}
20+
21+
public void setEndTime(long endTime) {
22+
this.endTime = endTime;
23+
}
24+
25+
public int getId() {
26+
return id;
27+
}
28+
29+
public void setId(int id) {
30+
this.id = id;
31+
}
32+
33+
public long getStartTime() {
34+
return startTime;
35+
}
36+
37+
public void setStartTime(long startTime) {
38+
this.startTime = startTime;
39+
}
40+
41+
public String getText() {
42+
return text;
43+
}
44+
45+
public void setText(String text) {
46+
this.text = text;
47+
}
48+
49+
public String getStartTimeText() {
50+
return startTimeText;
51+
}
52+
53+
public void setStartTimeText(String startTimeText) {
54+
this.startTimeText = startTimeText;
55+
}
56+
57+
public String getEndTimeText() {
58+
return endTimeText;
59+
}
60+
61+
public void setEndTimeText(String endTimeText) {
62+
this.endTimeText = endTimeText;
63+
}
64+
65+
@Override
66+
public String toString() {
67+
StringBuilder sb = new StringBuilder(id);
68+
sb.append(" ");
69+
sb.append(startTimeText).append("(").append(startTime).append(")");
70+
sb.append(" --> ");
71+
sb.append(endTimeText).append("(").append(endTime).append(")");
72+
sb.append(" ");
73+
sb.append(text);
74+
return sb.toString();
75+
}
6176
}

src/main/java/com/iusenko/subrip/srt/PhraseBuilder.java renamed to src/main/java/com/iusenko/subrip/PhraseBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package com.iusenko.subrip.srt;
1+
package com.iusenko.subrip;
22

33
import java.text.ParseException;
44
import java.text.SimpleDateFormat;
55
import java.util.Date;
66

7-
import com.iusenko.subrip.Utils;
7+
import com.iusenko.subrip.old.Utils;
88

99
/**
1010
*

src/main/java/com/iusenko/subrip/srt/PhraseParserException.java renamed to src/main/java/com/iusenko/subrip/PhraseParserException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iusenko.subrip.srt;
1+
package com.iusenko.subrip;
22

33
/**
44
*
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.iusenko.subrip;
2+
3+
import java.util.List;
4+
5+
public class PhraseUtils {
6+
7+
public static Phrase find(long timestamp, List<Phrase> phrases) {
8+
for (Phrase phrase : phrases) {
9+
if (phrase.getStartTime() >= timestamp
10+
&& timestamp <= phrase.getEndTime()) {
11+
return phrase;
12+
}
13+
}
14+
return null;
15+
}
16+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.iusenko.subrip;
2+
3+
import java.io.BufferedReader;
4+
import java.io.FileInputStream;
5+
import java.io.FileNotFoundException;
6+
import java.io.IOException;
7+
import java.io.InputStream;
8+
import java.io.InputStreamReader;
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
import com.iusenko.subrip.old.Utils;
13+
14+
public class SubripParser {
15+
private final BufferedReader in;
16+
private List<Phrase> phrases;
17+
18+
public SubripParser(InputStream in) {
19+
this.in = new BufferedReader(new InputStreamReader(in));
20+
}
21+
22+
public SubripParser(String path) throws FileNotFoundException {
23+
this(new FileInputStream(path));
24+
}
25+
26+
protected Phrase next() throws IOException, PhraseParserException {
27+
String line;
28+
int lineIndex = 0;
29+
PhraseBuilder builder = new PhraseBuilder();
30+
31+
while ((line = in.readLine()) != null) {
32+
line = line.trim();
33+
34+
if (Utils.isBlank(line)) {
35+
return builder.create();
36+
}
37+
38+
if (lineIndex == 0) {
39+
builder.id(line);
40+
} else if (lineIndex == 1) {
41+
builder.timeline(line);
42+
} else {
43+
builder.appendTextLine(line);
44+
}
45+
46+
lineIndex++;
47+
}
48+
return null;
49+
}
50+
51+
public List<Phrase> load() throws IOException, PhraseParserException {
52+
phrases = new ArrayList<Phrase>();
53+
Phrase phrase = null;
54+
while ((phrase = next()) != null) {
55+
phrases.add(phrase);
56+
}
57+
return phrases;
58+
}
59+
}

src/main/java/com/iusenko/subrip/App.java renamed to src/main/java/com/iusenko/subrip/old/App.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iusenko.subrip;
1+
package com.iusenko.subrip.old;
22

33
/**
44
* Hello world!

src/main/java/com/iusenko/subrip/BufferManager.java renamed to src/main/java/com/iusenko/subrip/old/BufferManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iusenko.subrip;
1+
package com.iusenko.subrip.old;
22

33
import java.io.FileNotFoundException;
44
import java.io.IOException;
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.iusenko.subrip.old;
2+
3+
import java.io.Serializable;
4+
5+
public class Phrase implements Serializable {
6+
7+
private int number;
8+
private String text;
9+
private String fromTime;
10+
private String toTime;
11+
12+
public Phrase(String text) {
13+
this.text = text;
14+
this.fromTime = "00:00:00.00";
15+
this.toTime = "00:00:00.00";
16+
}
17+
18+
public Phrase() {
19+
}
20+
21+
public String getText() {
22+
return text;
23+
}
24+
25+
public void setText(String text) {
26+
this.text = text;
27+
}
28+
29+
public String getFromTime() {
30+
return fromTime;
31+
}
32+
33+
public void setFromTime(String fromTime) {
34+
this.fromTime = fromTime;
35+
}
36+
37+
public String getToTime() {
38+
return toTime;
39+
}
40+
41+
public void setToTime(String toTime) {
42+
this.toTime = toTime;
43+
}
44+
45+
public int getNumber() {
46+
return number;
47+
}
48+
49+
public void setNumber(int number) {
50+
this.number = number;
51+
}
52+
53+
@Override
54+
public String toString() {
55+
StringBuilder sb = new StringBuilder();
56+
sb.append("number=").append(number);
57+
sb.append(", time=").append(fromTime).append(":").append(toTime);
58+
sb.append(", text=").append(text);
59+
return sb.toString();
60+
}
61+
}

src/main/java/com/iusenko/subrip/SubRipParser.java renamed to src/main/java/com/iusenko/subrip/old/SubRipParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iusenko.subrip;
1+
package com.iusenko.subrip.old;
22

33
import java.io.BufferedReader;
44
import java.io.InputStream;

src/main/java/com/iusenko/subrip/Utils.java renamed to src/main/java/com/iusenko/subrip/old/Utils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iusenko.subrip;
1+
package com.iusenko.subrip.old;
22

33
/**
44
*

0 commit comments

Comments
 (0)