All Downloads are FREE. Search and download functionalities are using the official Maven repository.

stream.io.DweetWriter Maven / Gradle / Ivy

There is a newer version: 1.0.10
Show newest version
package stream.io;

import java.io.IOException;
import java.io.Serializable;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import stream.AbstractProcessor;
import stream.Data;
import stream.ProcessContext;

public class DweetWriter extends AbstractProcessor {

	static Logger logger = LoggerFactory.getLogger(DweetWriter.class);
	protected String machine;
	protected String id;
	protected String thing;
	protected String baseUrl;
	protected String[] keys;
	protected String prefix;
	protected String[] postKeys;

	public String getMachine() {
		return machine;
	}

	public void setMachine(String machine) {
		this.machine = machine;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getThing() {
		return thing;
	}

	public void setThing(String thing) {
		this.thing = thing;
	}

	public String[] getKeys() {
		return keys;
	}

	public void setKeys(String[] keys) {
		this.keys = keys;
	}

	public DweetWriter() {

	}

	@Override
	public void init(ProcessContext ctx) throws Exception {
		super.init(ctx);

		this.baseUrl = "https://dweet.io:443/dweet/for/";
		String prefix = this.machine + "_" + id;
		this.postKeys = new String[keys.length];

		for (int i = 0; i < keys.length; i++) {
			postKeys[i] = prefix + "_" + keys[i] + "=";
			postKeys[i] = postKeys[i].replace(":", "_");
			postKeys[i] = postKeys[i].replace("@", "_");
			postKeys[i] = postKeys[i].replace("-", "_");
		}

	}

	@Override
	public Data process(Data data) {

		StringBuilder b = new StringBuilder();
		b.append(baseUrl);
		b.append(this.thing);
		int count = 0;
		boolean first = true;
		for (int i = 0; i < keys.length; i++) {
			Serializable dk = data.get(keys[i]);
			if (dk != null) {
				if (first) {
					b.append("?");
					first = false;
				} else
					b.append("&");
				b.append(postKeys[i]);

				count++;
				// if (dk instanceof String) {
				// b.append("\"");
				// b.append(dk.toString());
				// b.append("\"");
				// continue;
				// }
				b.append(dk.toString());
			}
		}
		if (count > 0) {
			String surl = b.toString();

			System.out.println(surl);

			URL url = null;
			try {
				url = new URL(surl);
				HttpURLConnection connection = (HttpURLConnection) url
						.openConnection();
				connection.setRequestMethod("POST");
				connection.setRequestProperty("Content-Type",
						"application/json");
				logger.info("dweet.io says {}", connection.getResponseCode());
				connection.disconnect();
			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}

		} else
			logger.info("nothing to dweet!");
		return data;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy