OSDN Git Service

NicoBrowserをいんきゅばすから使用するためのAdapter
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / saccubus_adapter / NicoBrowserAdapter.java
1 package yukihane.inqubus.saccubus_adapter;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.logging.Level;
6 import java.util.logging.Logger;
7 import nicobrowser.NicoHttpClient;
8 import saccubus.ConvertStopFlag;
9 import saccubus.net.CommentInfo;
10 import saccubus.net.NicoClient;
11 import saccubus.net.TextProgressListener;
12 import saccubus.net.VideoInfo;
13 import saccubus.util.FileUtil;
14
15 /**
16  *
17  * @author yuki
18  */
19 public class NicoBrowserAdapter implements NicoClient {
20
21     private static final Logger logger = Logger.getLogger(NicoBrowserAdapter.class.getName());
22     private final NicoHttpClient client;
23     private final boolean hasLogin;
24     private final ConvertStopFlag stopFlag;
25
26     public NicoBrowserAdapter(final String mail, final String pass,
27             final ConvertStopFlag flag, final String proxyHost, final int proxyPort) {
28
29         if (proxyHost != null && proxyHost.length() > 0 && proxyPort >= 0 && proxyPort <= 65535) {
30             this.client = new NicoHttpClient(proxyHost, proxyPort);
31         } else {
32             this.client = new NicoHttpClient();
33         }
34
35         // ログイン
36         boolean loginned = false;
37         try {
38             loginned = client.login(mail, pass);
39         } catch (Exception ex) {
40             logger.log(Level.SEVERE, "ログイン処理時に例外発生", ex);
41         }
42         this.hasLogin = loginned;
43
44         this.stopFlag = flag;
45
46     }
47
48     @Override
49     public VideoInfo getVideoInfo(String tag) throws IOException {
50         final nicobrowser.VideoInfo vi = client.getVideoInfo(tag);
51         final VideoInfo.OfficialOption oo =
52                 new VideoInfo.OfficialOption(vi.getKeyMap().get("threadkey"), vi.getKeyMap().get("force_184"));
53
54         return new VideoInfo(FileUtil.safeFileName(vi.getTitleInWatchPage()), vi.getThreadId(), vi.getVideoUrl().
55                 toString(), vi.getMessageUrl().toString(), vi.getUserId(), vi.getVideoLength(), oo);
56     }
57
58     @Override
59     public CommentInfo getWayBackKey(VideoInfo vi, String time) throws IOException {
60         throw new UnsupportedOperationException("Not supported yet.");
61     }
62
63     @Override
64     public File getComment(VideoInfo videoInfo, CommentInfo commentInfo, File file, TextProgressListener listener,
65             String com) {
66         throw new UnsupportedOperationException("Not supported yet.");
67     }
68
69     @Override
70     public File getTcomment(VideoInfo videoInfo, File file, TextProgressListener listener) {
71         throw new UnsupportedOperationException("Not supported yet.");
72     }
73
74     @Override
75     public File getVideo(VideoInfo videoInfo, File file, TextProgressListener listener) {
76         throw new UnsupportedOperationException("Not supported yet.");
77     }
78
79     @Override
80     public boolean isLoggedIn() {
81         return hasLogin;
82     }
83
84     private boolean login() {
85         return false;
86     }
87 }