Example #1
0
        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);
            }
        }
Example #2
0
        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();
 }
Example #4
0
        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);
        }
Example #5
0
        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.");
            }
        }