public static async void HandleWiped() { if (_isPulled) { Logger.Debug("Clipping and sending message."); _isPulled = false; _wipeTime = DateTime.Now.TimeOfDay; var clips = await TwitchApiHandler.MakeClip(Settings.UserIDs); var message = ""; foreach (var userIdPair in Settings.UserIDs) { try { Logger.Debug($"Adding clip from {userIdPair.Key} to message."); message += $"{userIdPair.Key}'s POV: {clips[userIdPair.Value]}\n"; } catch (Exception ex) { Logger.Error($"Unable to add clip from #{userIdPair.Key}.", ex); } } var totalPullTime = DateTime.Now.TimeOfDay - _pullTime; var isGreen = totalPullTime.TotalSeconds > _preset.settings.GreenThreshold; _pullTimes.Add((int)totalPullTime.TotalSeconds); await Discord.SendMessage(message + "\n", $"Wipe #{++_wipes} - {totalPullTime:mm\\:ss}min", isGreen); } }
public static async Task Setup(Preset preset) { _preset = preset; while (string.IsNullOrWhiteSpace(_preset.settings.AccessToken) || string.IsNullOrWhiteSpace(_preset.settings.ClientId) || string.IsNullOrWhiteSpace(_preset.settings.DiscordToken)) { Logger.Error("Please provide the Client ID, Access Token and the Discord Token and start again."); return; } TwitchApiHandler.Setup(_preset); foreach (var streamName in _preset.settings.Channels) { var id = await TwitchApiHandler.GetUserIdByName(streamName); if (!Settings.UserIDs.ContainsKey(streamName)) { Settings.UserIDs.Add(streamName, id); } } await Discord.SetupBot(_preset.settings.ClipsChannel, _preset.settings.SummariesChannel, _preset); ActGlobals.oFormActMain.OnLogLineRead += OnLogLineRead; MainControl.OnPostSummary += HandlePostSummary; MainControl.OnChannelsChanged += HandleChannelsChanged; MainControl.OnDiscordChannelsChanged += HandleDiscordChannelsChanged; _isStarted = true; ChangeStatusLabel(true); }
public MainForm() { mHandler = new TwitchApiHandler(this); InitializeComponent(); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; cbGame.SelectedIndex = 0; cbPeriod.SelectedIndex = 0; cbLimit.SelectedItem = "10"; txtSave.Text = Properties.Settings.Default.savePath; lbVersion.Text = Assembly.GetExecutingAssembly().GetName().Version.ToString(2); txtVersion.Text = "Version: " + Assembly.GetExecutingAssembly().GetName().Version.ToString(2); chkAddToQue.Checked = Properties.Settings.Default.addToQue; chkUbs.Checked = Properties.Settings.Default.brd; chk_useChannel.Checked = Properties.Settings.Default.cusec; chk_useGame.Checked = Properties.Settings.Default.cuseg; checkVersionAsync(); }
public static async Task HandleManualClip() { Logger.Debug("Creating clip manually."); var clips = await TwitchApiHandler.MakeClip(Settings.UserIDs); var message = ""; foreach (var userIdPair in Settings.UserIDs) { try { Logger.Debug($"Adding clip from {userIdPair.Key} to message."); message += $"{userIdPair.Key}'s POV: {clips[userIdPair.Value]}\n"; } catch (Exception ex) { Logger.Error($"Unable to add clip from #{userIdPair.Key}.", ex); } } await Discord.SendMessage(message + "\n", "Manual clip", null); }
public static async void HandleChannelsChanged(object o, EventArgs e) { foreach (var streamName in _preset.settings.Channels.Where(streamName => !Settings.UserIDs.ContainsKey(streamName))) { var id = await TwitchApiHandler.GetUserIdByName(streamName); if (id is null) { Logger.Error($"Channel {streamName} either does not exist or there has been an error with the API call. Please check the spelling and try again."); return; } Settings.UserIDs.Add(streamName, id); Logger.Debug($"Adding {streamName}:{id} to channels list."); } var removedStreamNames = Settings.UserIDs.Keys.Where(streamName => !_preset.settings.Channels.Contains(streamName)).ToList(); foreach (var streamName in removedStreamNames) { Settings.UserIDs.Remove(streamName); Logger.Debug($"Removing {streamName} from channels list."); } }