コード例 #1
0
        private bool ParseVariableTrigger(CommsLayerMessage msg)
        {
            var    dv = JsonConvert.DeserializeObject <VariableDataDBO>(data.ToString());
            string variableName, value;

            switch (modifier)
            {
            case (int)SingleVariableTriggerModifiers.MatchPresetToValue:
                variableName = dv.variable;
                value        = dv.value;

                return(UserVariablesSingleton.DoesSingleVariableMatch(variableName, value));

            case (int)SingleVariableTriggerModifiers.MatchMessageToValue:
                if (msg.type != CommsLayerMessage.Type.Text)
                {
                    return(false);
                }

                variableName = dv.variable;
                value        = msg.message.ToString();

                return(UserVariablesSingleton.DoesSingleVariableMatch(variableName, value));

            default:
                return(false);
            }
        }
コード例 #2
0
        private void ParseDictionaryReaction(CommsLayerMessage clm)
        {
            var key = clm.senderId.ToString();
            var dv  = JsonConvert.DeserializeObject <VariableDataDBO>(data.ToString());

            switch (modifier)
            {
            case (int)DictionaryVariableReactionModifiers.SavePresetValue:
                UserVariablesSingleton.SetDictionaryVariableItem(dv.variable, key, dv.value);
                break;

            case (int)DictionaryVariableReactionModifiers.SaveUserMessage:

                if (clm.type != CommsLayerMessage.Type.Text)
                {
                    return;
                }

                UserVariablesSingleton.SetDictionaryVariableItem(dv.variable, key, (string)clm.message);
                break;

            case (int)DictionaryVariableReactionModifiers.DeleteEntry:
                UserVariablesSingleton.DeleteDictionaryVariable(dv.variable, key);
                break;
            }
        }
コード例 #3
0
        private void ParseSpecialReaction(CommsLayerMessage msg)
        {
            switch (modifier)
            {
            case (int)IOReactionModifiers.CreateCSV:
                var csvMetadata = JsonConvert.DeserializeObject <CsvMetadataDBO>(data.ToString());
                UserVariablesSingleton.DumpToCSV(csvMetadata);
                break;

            case (int)IOReactionModifiers.SaveImage:
                var fileMetadata = (Telegram.Bot.Types.File)msg.message;

                var imageMetadata = JsonConvert.DeserializeObject <ImageMetadataDBO>(data.ToString());

                FileManager.DownloadAndSaveFile(fileMetadata.FilePath, $"{msg.senderId}{imageMetadata.suffix}.jpg", imageMetadata.subfolderName);
                break;
            }
        }
コード例 #4
0
        private bool ParseDictionaryTrigger(CommsLayerMessage msg)
        {
            var    dv = JsonConvert.DeserializeObject <VariableDataDBO>(data.ToString());
            string dictionaryName, userId, value;

            switch (modifier)
            {
            case (int)DictionaryVariableTriggerModifiers.MatchMessageToValue:
                if (msg.type != CommsLayerMessage.Type.Text)
                {
                    return(false);
                }

                dictionaryName = dv.variable;
                userId         = msg.senderId.ToString();
                value          = msg.message.ToString();

                return(UserVariablesSingleton.DoesDictionaryVariableMatch(dictionaryName, userId, value));

            case (int)DictionaryVariableTriggerModifiers.MatchPresetToValue:
                dictionaryName = dv.variable;
                userId         = msg.senderId.ToString();
                value          = dv.value;

                return(UserVariablesSingleton.DoesDictionaryVariableMatch(dictionaryName, userId, value));

            case (int)DictionaryVariableTriggerModifiers.KeyExists:
                dictionaryName = dv.variable;
                userId         = msg.senderId.ToString();

                return(UserVariablesSingleton.DoesDictionaryVariableUserExist(dictionaryName, userId));

            default:
                return(false);
            }
        }