OSDN Git Service

コメント中間ファイル生成メソッドが失敗した場合は例外で戻す
[coroid/inqubus.git] / frontend / src / saccubus / conv / ConvertToVideoHook.java
1 package saccubus.conv;
2
3 import java.io.*;
4 import org.xml.sax.*;
5 import javax.xml.parsers.*;
6
7 /**
8  * <p>
9  * タイトル: さきゅばす
10  * </p>
11  *
12  * <p>
13  * 説明: ニコニコ動画の動画をコメントつきで保存
14  * </p>
15  *
16  * <p>
17  * 著作権: Copyright (c) 2007 PSI
18  * </p>
19  *
20  * <p>
21  * 会社名:
22  * </p>
23  *
24  * @author 未入力
25  * @version 1.0
26  */
27 public final class ConvertToVideoHook {
28
29     private ConvertToVideoHook() {
30     }
31
32     public static void convert(File file, File out, String ng_id, String ng_word) throws IOException {
33         try {
34             final Packet packet = new Packet();
35             // SAXパーサーファクトリを生成
36             final SAXParserFactory spfactory = SAXParserFactory.newInstance();
37             // SAXパーサーを生成
38             final SAXParser parser = spfactory.newSAXParser();
39             // XMLファイルを指定されたデフォルトハンドラーで処理します
40             final NicoXMLReader nico_reader = new NicoXMLReader(packet, ng_id, ng_word);
41
42             parser.parse(file, nico_reader);
43
44             try (final FileOutputStream fos = new FileOutputStream(out)) {
45                 packet.write(fos);
46             }
47         } catch (IOException | SAXException | ParserConfigurationException ex) {
48             throw new IOException("コメント変換に失敗。ファイル名に使用できない文字が含まれているか正規表現の間違い?", ex);
49         }
50         }
51 }