From 3d373433111717152ceaa42ae8bf67f291d59085 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Wed, 12 Aug 2020 08:52:03 +0900 Subject: [PATCH] Add a second trailing display that wraps around when the song display view is scrolling. --- DivaBot/src/sig/DrawCanvas.java | 7 ++- DivaBot/src/sig/utils/WebUtils.java | 69 +++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 DivaBot/src/sig/utils/WebUtils.java diff --git a/DivaBot/src/sig/DrawCanvas.java b/DivaBot/src/sig/DrawCanvas.java index fc24480..66ba676 100644 --- a/DivaBot/src/sig/DrawCanvas.java +++ b/DivaBot/src/sig/DrawCanvas.java @@ -161,10 +161,15 @@ public class DrawCanvas extends JPanel{ String text = songname+" / "+((romanizedname.length()>0)?romanizedname:englishname)+" "+(artist.length()>0?"by "+artist:"")+" "+((plays>0)?("Plays - "+(passes)+"/"+(plays)):"")+" "+((plays!=0)?"("+((int)(Math.floor(((float)passes)/plays*100)))+"% pass rate"+((fcCount>0)?" - "+fcCount+" FC"+(fcCount==1?"":"s")+" "+((int)(Math.floor(((float)fcCount)/plays*100)))+"% FC rate":"")+")":"No plays")+" "+((bestPlay!=null)?"Best Play - "+bestPlay.display():"")+" Overall Rating: "+overallrating; Rectangle2D bounds = TextUtils.calculateStringBoundsFont(text, programFont); if (scrollX<-bounds.getWidth()-100) { - scrollX=(int)bounds.getWidth()+100; + scrollX=0; } DrawUtils.drawOutlineText(g2, programFont, 32+scrollX, 36, 3, Color.WHITE, new Color(0,0,0,64), text); + if (scrolling) { + DrawUtils.drawOutlineText(g2, programFont, 32+scrollX+(int)bounds.getWidth()+100, 36, 3, Color.WHITE, new Color(0,0,0,64), text); + } } + + switch (difficulty) { case "H":{ g2.drawImage(hard,0,0,20,51,null); diff --git a/DivaBot/src/sig/utils/WebUtils.java b/DivaBot/src/sig/utils/WebUtils.java new file mode 100644 index 0000000..3d6695f --- /dev/null +++ b/DivaBot/src/sig/utils/WebUtils.java @@ -0,0 +1,69 @@ +package sig.utils; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Scanner; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.HttpVersion; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.MultipartEntity; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.entity.mime.content.ContentBody; +import org.apache.http.entity.mime.content.FileBody; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.params.CoreProtocolPNames; +import org.apache.http.util.EntityUtils; + +public class WebUtils { + public static void POSTimage(String url,File file,Map params) { + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPost uploadFile = new HttpPost(url); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + for (String s : params.keySet()) { + builder.addTextBody(s, params.get(s), ContentType.TEXT_PLAIN); + } + try { + // This attaches the file to the POST: + builder.addBinaryBody( + "file", + new FileInputStream(file), + ContentType.APPLICATION_OCTET_STREAM, + file.getName() + ); + + HttpEntity multipart = builder.build(); + uploadFile.setEntity(multipart); + CloseableHttpResponse response; + response = httpClient.execute(uploadFile); + HttpEntity responseEntity = response.getEntity(); + String result = ""; + if (responseEntity != null) { + try (InputStream instream = responseEntity.getContent()) { + Scanner s = new Scanner(instream).useDelimiter("\\A"); + result = s.hasNext() ? s.next() : ""; + System.out.println(result); + instream.close(); + } catch (UnsupportedOperationException | IOException e) { + e.printStackTrace(); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + } +}