Exemplo n.º 1
0
        public CustomUploaderSettingsForm(UploadersConfig config)
        {
            Config = config;

            InitializeComponent();

            /*
             * CodeMenuItem[] inputCodeMenuItems = new CodeMenuItem[]
             * {
             *  new CodeMenuItem("$input$", "Text/URL input"),
             *  new CodeMenuItem("$filename$", "File name"),
             *  new CodeMenuItem("$random:input1|input2$", "Random selection from list"),
             *  new CodeMenuItem("$select:input1|input2$", "Lets user to select one input from list"),
             *  new CodeMenuItem("$prompt:title|default_value$", "Lets user to input text"),
             *  new CodeMenuItem("$base64:input$", "Base64 encode input")
             * };
             */

            CodeMenuItem[] outputCodeMenuItems = new CodeMenuItem[]
            {
                new CodeMenuItem("$response$", "Response text"),
                new CodeMenuItem("$responseurl$", "Response/Redirection URL"),
                new CodeMenuItem("$header:header_name$", "Response header"),
                new CodeMenuItem("$json:path$", "Parse response using JSON"),
                new CodeMenuItem("$xml:path$", "Parse response using XML"),
                new CodeMenuItem("$regex:index|group$", "Parse response using Regex"),
                new CodeMenuItem("$filename$", "File name used when uploading"),
                new CodeMenuItem("$random:input1|input2$", "Random selection from list"),
                new CodeMenuItem("$select:input1|input2$", "Lets user to select one input from list"),
                new CodeMenuItem("$prompt:title|default_value$", "Lets user to input text"),
                new CodeMenuItem("$base64:input$", "Base64 encode input")
            };

            new CodeMenu(rtbResultURL, outputCodeMenuItems);
            new CodeMenu(rtbResultThumbnailURL, outputCodeMenuItems);
            new CodeMenu(rtbResultDeletionURL, outputCodeMenuItems);
            new CodeMenu(rtbResultErrorMessage, outputCodeMenuItems);

            rtbRequestURL.AddContextMenu();
            rtbData.AddContextMenu();
            rtbResultURL.AddContextMenu();
            rtbResultThumbnailURL.AddContextMenu();
            rtbResultDeletionURL.AddContextMenu();
            rtbResultErrorMessage.AddContextMenu();
            eiCustomUploaders.ObjectType = typeof(CustomUploaderItem);
            CustomUploaderAddDestinationTypes();
            cbRequestMethod.Items.AddRange(Enum.GetNames(typeof(HttpMethod)));
            cbBody.Items.AddRange(Helpers.GetEnumDescriptions <CustomUploaderBody>());

            ShareXResources.ApplyTheme(this);

            CustomUploaderLoadTab();
        }
Exemplo n.º 2
0
        public CustomUploaderSyntaxTestForm(ResponseInfo responseInfo, string urlSyntax)
        {
            InitializeComponent();

            testResponseInfo = responseInfo;

            if (testResponseInfo == null)
            {
                testResponseInfo = new ResponseInfo()
                {
                    ResponseText = "{\r\n    \"status\": 200,\r\n    \"data\": {\r\n        \"link\": \"https:\\/\\/example.com\\/image.png\"\r\n    }\r\n}",
                    ResponseURL  = "https://example.com/upload"
                };
            }

            if (string.IsNullOrEmpty(urlSyntax))
            {
                urlSyntax = "{json:data.link}";
            }

            rtbResponseText.Text = testResponseInfo.ResponseText;
            rtbURLSyntax.Text    = urlSyntax;
            rtbURLSyntax.Select(rtbURLSyntax.TextLength, 0);

            CodeMenuItem[] outputCodeMenuItems = new CodeMenuItem[]
            {
                new CodeMenuItem("{response}", "Response text"),
                new CodeMenuItem("{responseurl}", "Response/Redirection URL"),
                new CodeMenuItem("{header:header_name}", "Response header"),
                new CodeMenuItem("{json:path}", "Parse JSON response using JSONPath"),
                new CodeMenuItem("{xml:path}", "Parse XML response using XPath"),
                new CodeMenuItem("{regex:pattern|group}", "Parse response using Regex"),
                new CodeMenuItem("{filename}", "File name used when uploading"),
                new CodeMenuItem("{random:input1|input2}", "Random selection from list"),
                new CodeMenuItem("{select:input1|input2}", "Lets user to select one input from list"),
                new CodeMenuItem("{prompt:title|default_value}", "Lets user to input text"),
                new CodeMenuItem("{base64:input}", "Base64 encode input")
            };

            new CodeMenu(rtbURLSyntax, outputCodeMenuItems)
            {
                MenuLocationOffset = new Point(5, -3)
            };

            rtbURLSyntax.AddContextMenu();

            ShareXResources.ApplyTheme(this);

            CustomUploaderSyntaxHighlight(rtbURLSyntax);
            UpdatePreview();
        }