Иногда можно скачать субтитры только на русском, на иврите - нет.
Он скачивает, но иногда они в кодировке windows-1251, и на его ивритском виндоузе не видны.
Он попросил написать программу "починки" этих субтитров, и ему нужно было чтобы это была программа с GUI (он не знаком с command line interface :( ) и с меню на иврите.
Я же воспользовался этим, чтобы посмотреть как на groovy делают GUI
import groovy.swing.SwingBuilder import groovy.beans.Bindable import javax.swing.filechooser.FileFilter import javax.swing.JFileChooser import javax.swing.JFrame class MyModel { @Bindable String text = "\n" } def openSubDialog = new JFileChooser( dialogTitle: "תבחר קובץ srt", fileSelectionMode: JFileChooser.FILES_ONLY, multiSelectionEnabled: true, //the file filter must show also directories, in order to be able to look into them fileFilter: [getDescription: {-> "*.srt"}, accept: {file -> file==null?false:file ==~ /.*?\.srt/ || file.isDirectory() }] as FileFilter) def model = new MyModel() new SwingBuilder().edt { frame(title: "ממיר קידוד קבצים", size: [900, 100], defaultCloseOperation: JFrame.EXIT_ON_CLOSE, locationRelativeTo: null, show: true) { gridLayout(cols: 1, rows: 2) textArea(text: bind(source: model, sourceProperty: "text")) button("תבחר קובץ srt", actionPerformed: { openSubDialog.showOpenDialog(); convert(openSubDialog.getSelectedFiles(), model) }) } } def convert(def files,def model) { files.each { def a = readFile(it) if (a?.length() == null) { model.text += it.getAbsolutePath() + "empty !\n" } else { writeFile(it, a) model.text += it.getAbsolutePath() + "\n" } } } def readFile(File file) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "windows-1251")); String line = null; StringBuilder stringBuilder = new StringBuilder(); String ls = System.getProperty("line.separator"); while ((line = reader.readLine()) != null) { stringBuilder.append(line); stringBuilder.append(ls); } reader.close(); return stringBuilder.toString(); } def writeFile(File file, String s) throws IOException { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"), s.length()); writer.write(s) writer.close() }