private static void LoadReceiverFlow(ExcelWorksheet sheet, SocialMediaScenario scenario) { var messages = LoadNormalTwitterFeed(sheet, processMessage: false); for (int i = 0; i < messages.Count; i++) { var messageObject = messages[i]; if (i == 0) { messageObject.flash = true; messageObject.hateSpeechSubMessage = true; messageObject.message = ProcessString(messageObject.message); scenario.twitterWithFriends.messages.Add(messageObject); } else if (i == 1) { messageObject.message = ProcessString(messageObject.message); scenario.hatespeechMessageFeed.messages.Add(messageObject); } else if (i == 2) { scenario.receiverProfile = messageObject.profile; scenario.receiverMessage = messageObject.message; break; } } }
private static void Load4Chan(ExcelWorksheet sheet, SocialMediaScenario scenario, int offset = 0) { int rows = sheet.Dimension.Rows; int messageColumn = 1 + offset; int imageColumn = 2 + offset; for (int rowIndex = 1; rowIndex <= rows; rowIndex++) { var row = sheet.Row(rowIndex); // Skip instructions which are coloured var colour = row.Style.Fill.BackgroundColor; if (colour.Rgb != null) { continue; } // Skip header rows if (sheet.Cells[rowIndex, messageColumn].Style.Font.Bold && !string.IsNullOrWhiteSpace(sheet.GetValue <string>(rowIndex, messageColumn))) { continue; } var message = sheet.GetValue <string>(rowIndex, messageColumn); bool useReceiverMessage = sheet.GetValue <string>(rowIndex, imageColumn) == "Receiver Message"; Sprite image = null; var animatedImage = useReceiverMessage ? null : GetAnimatedImage(sheet, rowIndex, imageColumn); if (!useReceiverMessage && animatedImage == null) { image = GetImage(sheet, rowIndex, imageColumn); } if (!string.IsNullOrWhiteSpace(message) || image || animatedImage) { scenario.fourChan.messages.Add(new Message { message = message, animatedImage = animatedImage, image = image, senderSubMessage = useReceiverMessage, highlight = useReceiverMessage }); } } }
private static void LoadReceiverURLS(ExcelWorksheet sheet, SocialMediaScenario scenario) { if (sheet == null) { return; } int rows = sheet.Dimension.Rows; const int urlColumn = 1; const int startColumn = 2; for (int rowIndex = 1; rowIndex <= rows; rowIndex++) { var row = sheet.Row(rowIndex); // Skip instructions which are coloured var colour = row.Style.Fill.BackgroundColor; if (colour.Rgb != null) { continue; } var url = sheet.GetValue <string>(rowIndex, urlColumn); if (url == null) { continue; } int startTime = 0; try { startTime = sheet.GetValue <int>(rowIndex, startColumn); } catch { } scenario.receiverVideo = url; scenario.receiverVideoSkipTime = startTime; } }
private static void LoadSenderFlow(ExcelWorksheet sheet, SocialMediaScenario scenario) { var messages = LoadNormalTwitterFeed(sheet, processMessage: false); for (int i = 0; i < messages.Count; i++) { var messageObject = messages[i]; if (i == 0) { messageObject.message = ProcessString(messageObject.message); messageObject.senderSubMessage = true; scenario.senderTwitterFeed.messages.Add(messageObject); } else if (i == 1) { scenario.senderProfile = messageObject.profile; scenario.senderMessage = messageObject.message; break; } } }
private static void LoadReceiverTwitter(ExcelWorksheet sheet, SocialMediaScenario scenario) { scenario.twitterWithFriends.messages.AddRange(LoadNormalTwitterFeed(sheet)); }
public static SocialMediaScenario LoadSocialMediaScenario(string file) { var result = new SocialMediaScenario(); result.name = file; result.twitterWithFriends = new MessageFeed(); result.twitterWithFriends.messages = new List <Message>(); result.fourChan = new MessageFeed(); result.fourChan.messages = new List <Message>(); result.hatespeechMessageFeed = new MessageFeed(); result.hatespeechMessageFeed.messages = new List <Message>(); result.pileOnMessageFeed = new MessageFeed(); result.pileOnMessageFeed.messages = new List <Message>(); result.senderTwitterFeed = new MessageFeed(); result.senderTwitterFeed.messages = new List <Message>(); result.thirdSceneSMSFeed = new MessageFeed(); result.firstSceneSMSFeed = new MessageFeed(); using (ExcelPackage p = new ExcelPackage(new FileInfo(file))) { // Receiver, scene 1 LoadReceiverTwitter(p.Workbook.Worksheets["ReceiverTwitter"], result); LoadReceiverFlow(p.Workbook.Worksheets["ReceiverFlow"], result); result.firstSceneSMSFeed.messages = LoadSMSFeed(p.Workbook.Worksheets["First Notification Feed"]); try { LoadReceiverURLS(p.Workbook.Worksheets["ReceiverVideo"], result); } catch { } // Sender, scene 2 LoadSenderTwitter(p.Workbook.Worksheets["SenderTwitter"], result); Load4Chan(p.Workbook.Worksheets["Sender4Chan"], result); if (result.senderTwitterFeed.messages.Count > 0) { result.senderTwitterFeed.messages[result.senderTwitterFeed.messages.Count - 1].startOfSubMessages = true; } if (result.fourChan.messages.Count > 0) { result.fourChan.messages[result.fourChan.messages.Count - 1].pauseHere = true; } int startOfEnticement = result.senderTwitterFeed.messages.Count; LoadSenderTwitter(p.Workbook.Worksheets["SenderEnticement"], result); for (int i = startOfEnticement; i < result.senderTwitterFeed.messages.Count; i++) { if (!string.IsNullOrWhiteSpace(result.senderTwitterFeed.messages[i].retweetedBy)) { continue; } result.senderTwitterFeed.messages[i].skip = true; } if (result.senderTwitterFeed.messages.Count > 0) { result.senderTwitterFeed.messages[result.senderTwitterFeed.messages.Count - 1].pauseHere = true; } Load4Chan(p.Workbook.Worksheets["SenderEnticement"], result, 6); // Sender Enticement is Twitter with 4Chan to the side LoadSenderFlow(p.Workbook.Worksheets["SenderFlow"], result); result.recommendedVideos = LoadRecommendedVideos(p.Workbook.Worksheets["Sender Videos"]).ToArray(); LoadSenderURLS(p.Workbook.Worksheets["Sender Videos"], result); // Receiver, scene 3 result.thirdSceneSMSFeed.messages = LoadSMSFeed(p.Workbook.Worksheets["Second Notification Feed"]); LoadPileOnTwitter(p.Workbook.Worksheets["TwitterPileOn"], result); } return(result); }
private static void LoadSenderURLS(ExcelWorksheet sheet, SocialMediaScenario scenario) { if (sheet == null) { return; } int rows = sheet.Dimension.Rows; const int nameColumn = 1; const int urlColumn = 2; const int startColumn = 3; const int titleColumn = 4; const int loopColumn = 5; for (int rowIndex = 1; rowIndex <= rows; rowIndex++) { var row = sheet.Row(rowIndex); // Skip instructions which are coloured var colour = row.Style.Fill.BackgroundColor; if (colour.Rgb != null) { continue; } var name = sheet.GetValue <string>(rowIndex, nameColumn); if (name == null) { continue; } var url = sheet.GetValue <string>(rowIndex, urlColumn); int startTime = 0; try { startTime = sheet.GetValue <int>(rowIndex, startColumn); } catch { } switch (name.ToLower()) { case "streamed video": scenario.senderStreamingSkipTime = startTime; scenario.senderStreamingURL = url; break; case "youtube video": scenario.senderYoutubeURL = url; scenario.senderYoutubeVideoTitle = sheet.GetValue <string>(rowIndex, titleColumn); var loopText = sheet.GetValue <string>(rowIndex, loopColumn); scenario.senderYoutubeLoop = !string.IsNullOrWhiteSpace(loopText); break; } } }
private static void LoadPileOnTwitter(ExcelWorksheet sheet, SocialMediaScenario scenario) { scenario.pileOnMessageFeed.messages.AddRange(LoadNormalTwitterFeed(sheet)); }