| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/env python
- import re
- class SubtitleEntry:
- def __init__(self, entryNumber, text, startTime, endTime):
- # dd:dd:dd,ddd --> dd:dd:dd,ddd
- self.entryNumber = entryNumber
- self.text = text
- self.startTime = startTime
- self.endTime = endTime
- def printEntry(self):
- print("{}".format(self.entryNumber))
- print("{} --> {}".format(self.startTime, self.endTime))
- print("{}".format(self.text))
- def shift(self, seconds):
- print("shifting entry by {} seconds".format(seconds))
- self.startTime += 1
- def main():
- print("opening subtitle")
- Subtitles = []
- with open("test.srt", "r+") as file:
- entryNumber = 0
- text = ""
- timestamp = ""
- for line in file:
- m1 = re.match(r"^([0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}) --> ([0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3})", line)
- if line == "\n":
- #print("blank line")
- if (entryNumber > 0) and (timestamp is not None):
- #print("new entry")
- s = SubtitleEntry(entryNumber, text, timestamp.groups()[0], timestamp.groups()[1])
- Subtitles.append(s)
- #print(s.entryNumber, s.startTime, s.endTime, s.text)
- text = ""
- timestamp = ""
- entryNumber = 0
- elif re.match(r"^[0-9]+$", line):
- #print("Added entryNumber")
- entryNumber = int(line.rstrip())
- #print(entryNumber)
- elif m1:
- #print("Added timestamp")
- timestamp = m1
- #print(m1.groups()[0])
- #print(m1.groups()[1])
- else:
- #print("Added text")
- text += line
- print("processing subtitles")
- for entry in Subtitles:
- entry.printEntry()
- if __name__ == "__main__":
- main()
|