summaryrefslogtreecommitdiffstats
path: root/EssentialsUpdate/src/net/ess3/update/PastieUpload.java
blob: fba475b70152288b994f422794b3ac05e7d2177c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package net.ess3.update;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class PastieUpload
{
	private final transient PostToUrl connection;
	private final Pattern pattern = Pattern.compile("(?s).*\\?key=([a-z0-9]+).*");

	public PastieUpload() throws MalformedURLException
	{
		connection = new PostToUrl(new URL("http://pastie.org/pastes"));
	}

	public String send(final String data) throws IOException
	{
		final Map<String, Object> map = new HashMap<String, Object>();
		map.put("paste[parser_id]", "19");
		map.put("paste[authorization]", "burger");
		map.put("paste[body]", data);
		map.put("paste[restricted]", "1");
		final String html = connection.send(map);
		final Matcher matcher = pattern.matcher(html);
		if (matcher.matches())
		{
			final String key = matcher.group(1);
			return "http://pastie.org/private/" + key;
		}
		else
		{
			throw new IOException("Failed to upload to pastie.org");
		}
	}
}