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>(); }
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); } }