private static int RunConversation(ConversationOptions options)
        {
            _log = LogFactory.Build(options.Verbose);
            _log.Info("Processing Conversations");

            // Validate options
            DateTime start, end;

            try
            {
                start = options.StartTime ?? DateTime.UtcNow.AddMinutes(-15);
                end   = options.EndTime ?? DateTime.UtcNow.AddMinutes(1);
            }
            catch (Exception e)
            {
                _log.Error(e.Message);
                return(1);
            }

            // Initialise connection
            var client = new FacebookClient(options.PageToken)
            {
                Version = "v2.10"
            };
            FacebookPageDetails page;

            try
            {
                page = client.Get <FacebookPageDetails>("me");
                _log.Info($"Connected: {page.id} ({page.name})");
            }
            catch (FacebookOAuthException fbex)
            {
                _log.Error($"Cannot connect: {fbex.Message}");
                return(1);
            }
            catch (Exception e)
            {
                _log.Error($"Something went wrong! {e.Message}");
                return(1);
            }

            // Process
            try
            {
                var processor = new ConversationProcessor(_log, client, page, start, end, options);
                processor.Process();
            }
            catch (Exception e)
            {
                _log.Error("Error during processing", e);
                return(1);
            }

            return(0);
        }
        public ConversationProcessor(
            ILog log, FacebookClient client, FacebookPageDetails page, DateTime start,
            DateTime end, ConversationOptions options)
        {
            _log     = log;
            _client  = client;
            _page    = page;
            _start   = start;
            _end     = end;
            _options = options;

            _seenConversations = new Dictionary <string, DateTime>();
        }
Beispiel #3
0
    void ParseConversationFile(string fileToParse)
    {
        StreamReader reader = File.OpenText(fileToParse);
        string       line;

        while ((line = reader.ReadLine()) != null)
        {
            ConversationOptions co = new ConversationOptions();
            co.options = new List <KeyValuePair <string, int> >();
            string[] splitStrings = line.Split('|');
            foreach (string s in splitStrings)
            {
                s.Trim();
                if (s.StartsWith("!"))
                {
                    co.conversationText = s.Substring(1);
                    co.conversationText.Trim();
                }
                else if (s.StartsWith("?"))
                {
                    string optionString = s.Substring(1);
                    optionString = optionString.Trim();
                    string[] optionStrings = optionString.Split(':');
                    if (optionStrings.Length == 2)
                    {
                        // That's what we need
                        string optionText = optionStrings[0].Trim();
                        co.options.Add(new KeyValuePair <string, int>(optionText, int.Parse(optionStrings[1])));
                    }
                    else
                    {
                        Debug.LogError("Malformed string");
                    }
                }
            }

            conversations.Add(co);
        }
    }
 void ParseConversationFile(string fileToParse)
 {
     StreamReader reader = File.OpenText(fileToParse);
     string line;
     while ((line = reader.ReadLine()) != null)
     {
         ConversationOptions co = new ConversationOptions();
         co.options = new List<KeyValuePair<string, int>>();
         string[] splitStrings = line.Split('|');
         foreach (string s in splitStrings)
         {
             s.Trim();
             if (s.StartsWith("!"))
             {
                 co.conversationText = s.Substring(1);
                 co.conversationText.Trim();
             }
             else if (s.StartsWith("?"))
             {
                 string optionString = s.Substring(1);
                 optionString = optionString.Trim();
                 string[] optionStrings = optionString.Split(':');
                 if (optionStrings.Length == 2)
                 {
                     // That's what we need
                     string optionText = optionStrings[0].Trim();
                     co.options.Add(new KeyValuePair<string, int>(optionText, int.Parse(optionStrings[1])));
                 }
                 else
                 {
                     Debug.LogError("Malformed string");
                 }
             }
         }
         
         conversations.Add(co);
     }
 }