private void Init() { var hkcu = Registry.CurrentUser; Debug.Assert(hkcu != null, "hkcu != null"); hkcu.CreateSubKey("SOFTWARE\\BiliRoku"); var bilirokuKey = hkcu.OpenSubKey("SOFTWARE\\BiliRoku"); Debug.Assert(bilirokuKey != null, "bilirokuKey != null"); var subkeyNames = bilirokuKey.GetValueNames(); foreach (var keyName in subkeyNames) { switch (keyName) { case "version": _version = bilirokuKey.GetValue("version").ToString(); break; case "room_id": _roomId = bilirokuKey.GetValue("room_id").ToString(); break; case "is_download_cmt": _isDownloadCmt = bilirokuKey.GetValue("is_download_cmt").ToString(); break; case "is_wait_streaming": _isWaitStreaming = bilirokuKey.GetValue("is_wait_streaming").ToString(); break; case "is_auto_retry": _isAutoRetry = bilirokuKey.GetValue("is_auto_retry").ToString(); break; case "filename": _filename = bilirokuKey.GetValue("filename").ToString(); break; case "save_path": _savePath = bilirokuKey.GetValue("save_path").ToString(); break; case "refresh_time": _refreshTime = bilirokuKey.GetValue("refresh_time").ToString(); break; case "timeout": _timeout = bilirokuKey.GetValue("timeout").ToString(); break; default: InfoLogger.SendInfo("Config", "WARNING", "不支持的配置项。"); break; } } hkcu.Close(); }
private async void NetErrorFastRetry() { InfoLogger.SendInfo(Roomid, "INFO", $"网络错误,即将开始重试[重试次数 {retrycount+1}]"); await Task.Delay(2000); if (record_status == false) { Start(); //保证同时只有一个下载(否则会下坏) } retrycount++; }
private void CommentProvider_OnDisconnected(object sender, DisconnectEvtArgs e) { InfoLogger.SendInfo(Roomid, "INFO", "弹幕服务器断开"); //如果不是用户触发的,则尝试重连。 if (!force_stoping) { return; } InfoLogger.SendInfo(Roomid, "INFO", "尝试重新连接弹幕服务器"); commentProvider.Connect(); }
private async void AutoRetry() { var config = Config.Instance; InfoLogger.SendInfo(Roomid, "INFO", "等待 " + config.RefreshTime + " 秒后重试。"); await Task.Delay(int.Parse(config.RefreshTime ?? "30") * 1000); if (record_status == false) { Start(); //保证同时只有一个下载(否则会下坏) } }
private CommentProvider ReceiveComment() { try { var _commentProvider = new CommentProvider(realRoomid); _commentProvider.OnDisconnected += CommentProvider_OnDisconnected; _commentProvider.OnReceivedRoomCount += CommentProvider_OnReceivedRoomCount; _commentProvider.OnReceivedComment += CommentProvider_OnReceivedComment; _commentProvider.Connect(); return(_commentProvider); } catch (Exception e) { InfoLogger.SendInfo(Roomid, "ERROR", "弹幕服务器出错:" + e.Message); return(null); } }
private void AddInfo(string level, string info) { InfoLogger.SendInfo("AutoUpdate", level, info); }