Пример #1
0
    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;
            }
        }
    }
Пример #2
0
    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
                });
            }
        }
    }
Пример #3
0
    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;
        }
    }
Пример #4
0
    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;
            }
        }
    }
Пример #5
0
 private static void LoadReceiverTwitter(ExcelWorksheet sheet, SocialMediaScenario scenario)
 {
     scenario.twitterWithFriends.messages.AddRange(LoadNormalTwitterFeed(sheet));
 }
Пример #6
0
    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);
    }
Пример #7
0
    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;
            }
        }
    }
Пример #8
0
 private static void LoadPileOnTwitter(ExcelWorksheet sheet, SocialMediaScenario scenario)
 {
     scenario.pileOnMessageFeed.messages.AddRange(LoadNormalTwitterFeed(sheet));
 }