Implement screenshot uploading to attach to completed plays.
This commit is contained in:
parent
f6be822371
commit
5178517b74
Binary file not shown.
@ -245,7 +245,7 @@ public class MyRobot{
|
|||||||
Scanner s = new Scanner(instream).useDelimiter("\\A");
|
Scanner s = new Scanner(instream).useDelimiter("\\A");
|
||||||
String result = s.hasNext() ? s.next() : "";
|
String result = s.hasNext() ? s.next() : "";
|
||||||
System.out.println(result);
|
System.out.println(result);
|
||||||
if (result.equalsIgnoreCase("\"authentication success!\"")) {
|
if (result.equalsIgnoreCase("authentication success!")) {
|
||||||
FileUtils.writetoFile(new String[] {username,authenticationToken,"The App Authentication token is used to record your scores and verify who you are! Do not share it with others!!!"}, "authToken.txt", false);
|
FileUtils.writetoFile(new String[] {username,authenticationToken,"The App Authentication token is used to record your scores and verify who you are! Do not share it with others!!!"}, "authToken.txt", false);
|
||||||
USERNAME=username;
|
USERNAME=username;
|
||||||
AUTHTOKEN=authenticationToken;
|
AUTHTOKEN=authenticationToken;
|
||||||
@ -355,7 +355,7 @@ public class MyRobot{
|
|||||||
tmp.mkdir();
|
tmp.mkdir();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Result data = typeface1.getAllData(MYROBOT.createScoreScreenCapture());
|
final Result data = typeface1.getAllData(MYROBOT.createScoreScreenCapture());
|
||||||
System.out.println(data);
|
System.out.println(data);
|
||||||
//ImageIO.write(MYROBOT.,"png",new File("test.png"));
|
//ImageIO.write(MYROBOT.,"png",new File("test.png"));
|
||||||
if (data.cool==-1 || data.fine==-1 || data.safe==-1 || data.sad==-1 || data.worst==-1 || data.percent<0f || data.percent>110f || data.combo==-1 || data.score==-1) {
|
if (data.cool==-1 || data.fine==-1 || data.safe==-1 || data.sad==-1 || data.worst==-1 || data.percent<0f || data.percent>110f || data.combo==-1 || data.score==-1) {
|
||||||
@ -372,7 +372,7 @@ public class MyRobot{
|
|||||||
}
|
}
|
||||||
File[] songFolderFiles = songFolder.listFiles();
|
File[] songFolderFiles = songFolder.listFiles();
|
||||||
int playId = songFolderFiles.length;
|
int playId = songFolderFiles.length;
|
||||||
File playFolder = new File(selectedSong.title+"/"+difficulty+"/"+playId);
|
final File playFolder = new File(selectedSong.title+"/"+difficulty+"/"+playId);
|
||||||
playFolder.mkdir();
|
playFolder.mkdir();
|
||||||
recordedResults=true;
|
recordedResults=true;
|
||||||
lastcool=data.cool;
|
lastcool=data.cool;
|
||||||
@ -384,10 +384,12 @@ public class MyRobot{
|
|||||||
lastcombo=data.combo;
|
lastcombo=data.combo;
|
||||||
lastscore=data.score;
|
lastscore=data.score;
|
||||||
lastfail=data.fail;
|
lastfail=data.fail;
|
||||||
new File("scoreimage.png").renameTo(new File(playFolder,selectedSong.title+"_"+difficulty+"play_"+data.cool+"_"+data.fine+"_"+data.safe+"_"+data.sad+"_"+data.worst+"_"+data.percent+""
|
File resultImage=new File(playFolder,selectedSong.title+"_"+difficulty+"play_"+data.cool+"_"+data.fine+"_"+data.safe+"_"+data.sad+"_"+data.worst+"_"+data.percent+""
|
||||||
+ "_"+data.combo+"_"+data.score+".png"));
|
+ "_"+data.combo+"_"+data.score+".png");
|
||||||
results.add(new Result(selectedSong.title,difficulty,data.cool,data.fine,data.safe,data.sad,data.worst,data.percent,data.mod,data.combo,data.score,data.fail));
|
new File("scoreimage.png").renameTo(resultImage);
|
||||||
|
results.add(new Result(selectedSong.title,difficulty,data.cool,data.fine,data.safe,data.sad,data.worst,data.percent,data.mod,data.combo,data.score,data.fail,resultImage));
|
||||||
SoundUtils.playSound("collect_item.wav");
|
SoundUtils.playSound("collect_item.wav");
|
||||||
|
|
||||||
//gotoxy(800,64);
|
//gotoxy(800,64);
|
||||||
//click();
|
//click();
|
||||||
MYROBOT.setAutoDelay(0);
|
MYROBOT.setAutoDelay(0);
|
||||||
@ -405,7 +407,7 @@ public class MyRobot{
|
|||||||
} else {
|
} else {
|
||||||
if (results.size()>0) {
|
if (results.size()>0) {
|
||||||
recordingResults=true;
|
recordingResults=true;
|
||||||
for (Result r : results) {
|
for (final Result r : results) {
|
||||||
r.songName=r.songName.equalsIgnoreCase("PIANOGIRL")?"PIANO*GIRL":(r.songName.equalsIgnoreCase("16 -out of the gravity-"))?"1/6 -out of the gravity-":r.songName;
|
r.songName=r.songName.equalsIgnoreCase("PIANOGIRL")?"PIANO*GIRL":(r.songName.equalsIgnoreCase("16 -out of the gravity-"))?"1/6 -out of the gravity-":r.songName;
|
||||||
HttpClient httpclient = HttpClients.createDefault();
|
HttpClient httpclient = HttpClients.createDefault();
|
||||||
HttpPost httppost = new HttpPost("http://45.33.13.215:4501/submit");
|
HttpPost httppost = new HttpPost("http://45.33.13.215:4501/submit");
|
||||||
@ -441,16 +443,32 @@ public class MyRobot{
|
|||||||
}
|
}
|
||||||
HttpEntity entity = response.getEntity();
|
HttpEntity entity = response.getEntity();
|
||||||
|
|
||||||
|
JSONObject report = null;
|
||||||
|
|
||||||
if (entity != null) {
|
if (entity != null) {
|
||||||
try (InputStream instream = entity.getContent()) {
|
try (InputStream instream = entity.getContent()) {
|
||||||
Scanner s = new Scanner(instream).useDelimiter("\\A");
|
Scanner s = new Scanner(instream).useDelimiter("\\A");
|
||||||
String result = s.hasNext() ? s.next() : "";
|
String result = s.hasNext() ? s.next() : "";
|
||||||
System.out.println(result);
|
report=new JSONObject(result);
|
||||||
instream.close();
|
instream.close();
|
||||||
} catch (UnsupportedOperationException | IOException e) {
|
} catch (UnsupportedOperationException | IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final JSONObject finalReport=report;
|
||||||
|
|
||||||
|
System.out.println("Submitting screenshot for "+r.f);
|
||||||
|
Thread t = new Thread() {
|
||||||
|
public void run() {
|
||||||
|
HashMap<String,String> s = new HashMap<>();
|
||||||
|
s.put("username",USERNAME);
|
||||||
|
s.put("authentication_token",AUTHTOKEN);
|
||||||
|
s.put("playid",Integer.toString(finalReport.getInt("id")));
|
||||||
|
WebUtils.POSTimage("http://projectdivar.com/upload", r.f, s);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
t.start();
|
||||||
}
|
}
|
||||||
results.clear();
|
results.clear();
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ public class Result {
|
|||||||
public String mod;
|
public String mod;
|
||||||
public int combo,score;
|
public int combo,score;
|
||||||
public boolean isResult;
|
public boolean isResult;
|
||||||
|
public File f;
|
||||||
public Result(String song,String diff,int cool,int fine,int safe,int sad,int worst,float percent) {
|
public Result(String song,String diff,int cool,int fine,int safe,int sad,int worst,float percent) {
|
||||||
this.songName=song;
|
this.songName=song;
|
||||||
this.difficulty=diff;
|
this.difficulty=diff;
|
||||||
@ -40,6 +41,10 @@ public class Result {
|
|||||||
this.score=score;
|
this.score=score;
|
||||||
this.mod=mod;
|
this.mod=mod;
|
||||||
}
|
}
|
||||||
|
public Result(String song,String diff,int cool,int fine,int safe,int sad,int worst,float percent,String mod,int combo, int score,boolean fail,File f) {
|
||||||
|
this(song,diff,cool,fine,safe,sad,worst,percent,mod,combo,score,fail);
|
||||||
|
this.f=f;
|
||||||
|
}
|
||||||
public String display() {
|
public String display() {
|
||||||
return new StringBuilder(Integer.toString(cool)).append("/").append(fine)
|
return new StringBuilder(Integer.toString(cool)).append("/").append(fine)
|
||||||
.append("/").append(safe).append("/").append(sad).append("/").append(worst).append(" ").append(percent).append("%")
|
.append("/").append(safe).append("/").append(sad).append("/").append(worst).append(" ").append(percent).append("%")
|
||||||
|
@ -47,7 +47,7 @@ public class TypeFace2 {
|
|||||||
final static Rectangle RECT_SEARCH_WORST=new Rectangle(866+XOFFSET,400,100+XOFFSET+1,22+8);
|
final static Rectangle RECT_SEARCH_WORST=new Rectangle(866+XOFFSET,400,100+XOFFSET+1,22+8);
|
||||||
final static Rectangle RECT_SEARCH_PCT=new Rectangle(1182+XOFFSET,163,1132,8);
|
final static Rectangle RECT_SEARCH_PCT=new Rectangle(1182+XOFFSET,163,1132,8);
|
||||||
final static Rectangle RECT_SEARCH_PCT2=new Rectangle(1123+XOFFSET,163,1051,8);
|
final static Rectangle RECT_SEARCH_PCT2=new Rectangle(1123+XOFFSET,163,1051,8);
|
||||||
final static Rectangle RECT_SEARCH_SCORE=new Rectangle(859+XOFFSET,578-2,250+XOFFSET+1,32+10);
|
final static Rectangle RECT_SEARCH_SCORE=new Rectangle(859+XOFFSET,578-4,250+XOFFSET+1,32+14);
|
||||||
final static Rectangle RECT_SEARCH_COMBO=new Rectangle(1010+XOFFSET,435-2,100+XOFFSET+1,22+8);
|
final static Rectangle RECT_SEARCH_COMBO=new Rectangle(1010+XOFFSET,435-2,100+XOFFSET+1,22+8);
|
||||||
|
|
||||||
public Result getAllData(BufferedImage img, boolean debug) throws IOException,NumberFormatException,IndexOutOfBoundsException {
|
public Result getAllData(BufferedImage img, boolean debug) throws IOException,NumberFormatException,IndexOutOfBoundsException {
|
||||||
@ -506,7 +506,7 @@ public class TypeFace2 {
|
|||||||
ypointer=0;
|
ypointer=0;
|
||||||
String total = "";
|
String total = "";
|
||||||
trialloop:
|
trialloop:
|
||||||
while (ypointer<8) {
|
while (ypointer<12) {
|
||||||
xpointer=RECT_SEARCH_SCORE.width-1;
|
xpointer=RECT_SEARCH_SCORE.width-1;
|
||||||
while (xpointer>31) {
|
while (xpointer>31) {
|
||||||
int distance = 0;
|
int distance = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user