package nl.ru.ai.projects.parrot.tools;
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.awt.image.DataBuffer;
import java.awt.image.Raster;
import java.awt.image.RenderedImage;
import java.awt.image.WritableRaster;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import javax.imageio.ImageIO;
import nl.ru.ai.projects.parrot.dronecontrol.VideoPollInterface;
import org.apache.commons.codec.binary.Base64;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import winterwell.jtwitter.OAuthSignpostClient;
import winterwell.jtwitter.Twitter;
import winterwell.jtwitter.TwitterException;
public class {
private static TwitterAccess instance = null;
private OAuthSignpostClient oauthClient;
private Twitter twitter;
private boolean enabled;
private () {
oauthClient = new OAuthSignpostClient("", "",
"", "");
twitter = new Twitter("BioMAV", oauthClient);
}
if ( instance == null )
instance = new TwitterAccess();
return instance;
}
this.enabled = enabled;
}
return enabled;
}
setStatus(status, 75);
}
public void setStatus(String status,
int chance) {
if ( enabled ) {
int randomValue = (int) (Math.random()*100);
if ( randomValue <= chance ) {
try {
twitter.setStatus(status);
} catch (TwitterException e) {
;
}
}
}
}
public void (byte[] image, String tweet) {
if ( !enabled )
return;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
RenderedImage img = getImageFromCamera(image);
try {
ImageIO.write(img, "jpg", baos);
URL url = new URL("http://api.imgur.com/2/upload.json");
String data = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(Base64.encodeBase64String(baos.toByteArray()), "UTF-8");
data += "&" + URLEncoder.encode("key", "UTF-8") + "=" + URLEncoder.encode("f9c4861fc0aec595e4a64dd185751d28", "UTF-8");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
StringBuffer buffer = new StringBuffer();
InputStreamReader isr = new InputStreamReader(conn.getInputStream());
Reader in = new BufferedReader(isr);
int ch;
while ( (ch = in.read()) > -1 )
buffer.append((char)ch);
String imgURL = processJSON(buffer.toString());
setStatus(tweet+" "+imgURL, 100);
} catch (IOException e1) {
e1.printStackTrace();
}
}
BufferedImage image = new BufferedImage(VideoPollInterface.FRONT_VIDEO_FRAME_WIDTH, VideoPollInterface.FRONT_VIDEO_FRAME_HEIGHT, BufferedImage.TYPE_3BYTE_BGR);
if (cameraOutput != null) {
WritableRaster raster = Raster.createBandedRaster(DataBuffer.TYPE_BYTE,
VideoPollInterface.FRONT_VIDEO_FRAME_WIDTH,
VideoPollInterface.FRONT_VIDEO_FRAME_HEIGHT,
3,
new Point(0, 0));
raster.setDataElements(0, 0, VideoPollInterface.FRONT_VIDEO_FRAME_WIDTH, VideoPollInterface.FRONT_VIDEO_FRAME_HEIGHT, cameraOutput);
image.setData(raster);
}
return image;
}
String returnString = "";
JsonObject json = new JsonParser().parse(input).getAsJsonObject().getAsJsonObject("upload").getAsJsonObject("links");
if ( json!=null )
returnString = json.getAsJsonPrimitive("imgur_page").getAsString();
return returnString;
}
}