public NiconicoChatService( NiconicoChatServiceSettings settings, ChannelDatabase channelDatabase, string jikkyouIdTableFilePath, string liveIdTableFilePath ) { this.settings = settings; this.jkIdResolver = new NiconicoUtils.JkIdResolver(channelDatabase, new NiconicoUtils.JkIdTable(jikkyouIdTableFilePath)); this.liveIdResolver = new NiconicoUtils.LiveIdResolver(channelDatabase, new NiconicoUtils.LiveIdTable(liveIdTableFilePath)); try { if (!string.IsNullOrWhiteSpace(UserId) && !string.IsNullOrWhiteSpace(UserPassword)) { SetUser(UserId, UserPassword, NicoSid, Session, SessionSecure).Wait(); } } catch (AggregateException e) when(e.InnerExceptions.Count == 1 && e.InnerExceptions[0] is NiconicoUtils.NiconicoLoginSessionException) { } ChatCollectServiceEntries = new ChatCollectServiceEntry.IChatCollectServiceEntry[] { new ChatCollectServiceEntry.NewNiconicoJikkyouChatCollectServiceEntry(this, this.liveIdResolver, this.loginSession), new ChatCollectServiceEntry.NiconicoLiveChatCollectServiceEntry(this, this.loginSession), new ChatCollectServiceEntry.TsukumijimaJikkyoApiChatCollectServiceEntry(this, this.jkIdResolver), }; ChatTrendServiceEntries = new IChatTrendServiceEntry[0]; }
public NichanChatService( NichanChatServiceSettings settings, ChannelDatabase channelDatabase, string threadSettingFilePath ) { this.settings = settings; // 設定構造変更に伴い設定値を移行 if (settings.HmKey != null) { settings.GochanApi.HmKey = settings.HmKey; settings.HmKey = null; } if (settings.AppKey != null) { settings.GochanApi.AppKey = settings.AppKey; settings.AppKey = null; } if (settings.UserId != null) { settings.GochanApi.UserId = settings.UserId; settings.UserId = null; } if (settings.Password != null) { settings.GochanApi.Password = settings.Password; settings.Password = null; } var boardSetting = NichanUtils.ThreadSettingFileParser.Parse(threadSettingFilePath); boardDatabase = new NichanUtils.BoardDatabase(boardSetting.BoardEntries, boardSetting.ThreadMappingRuleEntries); threadResolver = new NichanUtils.ThreadResolver(channelDatabase, boardDatabase); this.resCollectInterval.Value = settings.ThreadUpdateInterval; this.threadSearchInterval.Value = settings.ThreadListUpdateInterval; this.nichanApiClient.Value = new Nichan.ApiClient( settings.GochanApi.HmKey, settings.GochanApi.AppKey, settings.GochanApi.UserId, settings.GochanApi.Password, settings.GochanApi.AuthUserAgent, settings.GochanApi.AuthX2chUA, settings.GochanApi.UserAgent ); this.pastCollectServiceBackTime.Value = settings.PastCollectServiceBackTime; ChatCollectServiceEntries = new ChatCollectServiceEntry.IChatCollectServiceEntry[] { new ChatCollectServiceEntry.DATNichanChatCollectServiceEntry(this, resCollectInterval, threadSearchInterval, threadResolver, nichanApiClient), new ChatCollectServiceEntry.PastNichanChatCollectServiceEntry(this, threadResolver, pastCollectServiceBackTime), }; ChatTrendServiceEntries = new IChatTrendServiceEntry[0]; BoardList = boardDatabase.BoardList.Select(x => new BoardInfo(x.Title, x.Uri)); }
public JkIdResolver(ChannelDatabase channelDatabase, JkIdTable jkIdTable) { this.channelDatabase = channelDatabase; this.jkIdTable = jkIdTable; }
public ThreadResolver(ChannelDatabase channelDatabase, BoardDatabase boardDatabase) { this.channelDatabase = channelDatabase; this.boardDatabase = boardDatabase; }
public LiveIdResolver(ChannelDatabase channelDatabase, LiveIdTable liveIdTable) { this.channelDatabase = channelDatabase; this.liveIdTable = liveIdTable; }