Fix issue with apostrophes being part of the string. Additionally completed reading of pop'n (#1)

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2, Sig, Sigo 3 years ago
parent 8e19d17f9b
commit adc3b10c46
  1. 2
      ArcadeReader.java
  2. 4
      readers/DDRReader.java
  3. 35
      readers/PopnReader.java
  4. 13
      readers/Reader.java
  5. 4
      readers/SoundVoltexReader.java
  6. BIN
      result.png
  7. 2
      sigPlace.java

@ -57,6 +57,6 @@ public class ArcadeReader {
* *
*/ */
public static void retrieveData(Path img) { public static void retrieveData(Path img) {
new LoveLiveReader().interpretBoxes(img); new PopnReader().interpretBoxes(img);
} }
} }

@ -238,8 +238,8 @@ public class DDRReader extends Reader{
ImageIO.write(cutImg,"png",output.toFile()); ImageIO.write(cutImg,"png",output.toFile());
String dataString = readAllBoxes(output); String dataString = readAllBoxes(output);
String[] data = dataString.split(Pattern.quote("\n")); String[] data = dataString.split(Pattern.quote("\n"));
String[] ja_data = data[0].split(Pattern.quote(")")); String[] ja_data = data[0].split(Pattern.quote(","));
String[] en_data = data[2].split(Pattern.quote(")")); String[] en_data = data[2].split(Pattern.quote(","));
trimAllData(ja_data); trimAllData(ja_data);
trimAllData(en_data); trimAllData(en_data);
System.out.println(Arrays.toString(ja_data)); System.out.println(Arrays.toString(ja_data));

@ -173,12 +173,13 @@ public class PopnReader extends Reader{
ImageIO.write(cutImg,"png",output.toFile()); ImageIO.write(cutImg,"png",output.toFile());
String dataString = readAllBoxes(output); String dataString = readAllBoxes(output);
String[] data = dataString.split(Pattern.quote("\n")); String[] data = dataString.split(Pattern.quote("\n"));
String[] ja_data = data[0].split(Pattern.quote(")")); String[] ja_data = data[0].split(Pattern.quote(","));
String[] en_data = data[2].split(Pattern.quote(")")); String[] en_data = data[2].split(Pattern.quote(","));
trimAllData(ja_data); trimAllData(ja_data);
trimAllData(en_data); trimAllData(en_data);
System.out.println(Arrays.toString(ja_data)); System.out.println(Arrays.toString(ja_data));
System.out.println(Arrays.toString(en_data)); System.out.println(Arrays.toString(en_data));
interpretOutput(ja_data,en_data);
g.dispose(); g.dispose();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
@ -189,7 +190,33 @@ public class PopnReader extends Reader{
@Override @Override
void interpretResults(String[] finalData) { void interpretResults(String[] finalData) {
// TODO Auto-generated method stub for (int i=0;i<finalData.length;i++) {
String[] splitter = finalData[i].split(Pattern.quote("\n"));
switch (i) {
case 0:{
score=convertToInt("SCORE",splitter);
}break;
case 1:{
notes[0]=convertToInt("COOL",splitter);
}break;
case 2:{
notes[1]=convertToInt("GREAT",splitter);
}break;
case 3:{
notes[2]=convertToInt("GOOD",splitter);
}break;
case 4:{
notes[3]=convertToInt("BAD",splitter);
}break;
case 5:{
maxcombo=convertToInt("COMBO",splitter);
}break;
case 6:{}break;//We'll handle the level in a special way.
case 7:{
title=convertToString(splitter);
}break;
}
}
System.out.println(this);
} }
} }

@ -5,6 +5,7 @@ import java.nio.file.Path;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.regex.Pattern;
import java.awt.Color; import java.awt.Color;
public abstract class Reader{ public abstract class Reader{
@ -65,7 +66,8 @@ public abstract class Reader{
} }
System.out.print("]"); System.out.print("]");
System.out.println(" belongs to region "+j+"."); System.out.println(" belongs to region "+j+".");
finalData[j]=finalData[j]+"\n"+en_data[i+8]; finalData[j]=finalData[j]+"\n"+en_data[i+8]
.substring(1,en_data[i+8].length()-1); //The beginning and endings have a ', so we remove it.
accuracy[j]=Double.parseDouble(en_data[i+9]); accuracy[j]=Double.parseDouble(en_data[i+9]);
break; break;
} }
@ -90,7 +92,8 @@ public abstract class Reader{
if (accuracy[j]!=0) { if (accuracy[j]!=0) {
finalData[j]=""; finalData[j]="";
} }
finalData[j]=finalData[j]+"\n"+jp_data[i+8]; finalData[j]=finalData[j]+"\n"+jp_data[i+8]
.substring(1,jp_data[i+8].length()-1); //The beginning and endings have a ', so we remove it.
accuracy[j]=0; accuracy[j]=0;
break; break;
} }
@ -201,7 +204,7 @@ public abstract class Reader{
/*4*/{'4'}, /*4*/{'4'},
/*5*/{'5'}, /*5*/{'5'},
/*6*/{'6','b'}, /*6*/{'6','b'},
/*7*/{'7'}, /*7*/{'7','z','Z'},
/*8*/{'8','B'}, /*8*/{'8','B'},
/*9*/{'9','g','y',}, /*9*/{'9','g','y',},
}; };
@ -218,10 +221,11 @@ public abstract class Reader{
String s = data[i]; String s = data[i];
int j=0; int j=0;
if (i==1) { if (i==1) {
j=prefix.length()-1; j=prefix.length();
} else { } else {
j=0; j=0;
} }
System.out.println("["+s+"]"+" starts at "+j);
for (;j<s.length();j++) { for (;j<s.length();j++) {
letter_iterator: letter_iterator:
for (int k=0;k<number_alternatives.length;k++) { for (int k=0;k<number_alternatives.length;k++) {
@ -229,6 +233,7 @@ public abstract class Reader{
if (s.charAt(j)==number_alternatives[k][l]) { if (s.charAt(j)==number_alternatives[k][l]) {
numb*=10; numb*=10;
numb+=k; numb+=k;
System.out.println(" "+s.charAt(j)+" found for "+k+".");
break letter_iterator; break letter_iterator;
} }
} }

@ -387,8 +387,8 @@ public class SoundVoltexReader extends Reader{
ImageIO.write(cutImg,"png",output.toFile()); ImageIO.write(cutImg,"png",output.toFile());
String dataString = readAllBoxes(output); String dataString = readAllBoxes(output);
String[] data = dataString.split(Pattern.quote("\n")); String[] data = dataString.split(Pattern.quote("\n"));
String[] ja_data = data[0].split(Pattern.quote(")")); String[] ja_data = data[0].split(Pattern.quote(","));
String[] en_data = data[2].split(Pattern.quote(")")); String[] en_data = data[2].split(Pattern.quote(","));
trimAllData(ja_data); trimAllData(ja_data);
trimAllData(en_data); trimAllData(en_data);
System.out.println(Arrays.toString(ja_data)); System.out.println(Arrays.toString(ja_data));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 204 KiB

@ -48,7 +48,7 @@ public class sigPlace {
"%FOOTER", Paths.get(REFDIR,"FOOTER.html")) "%FOOTER", Paths.get(REFDIR,"FOOTER.html"))
)); ));
public static void main(String[] args) { public static void main(String[] args) {
ArcadeReader.retrieveData(Paths.get("lovelive1.png")); ArcadeReader.retrieveData(Paths.get("popn2.png"));
/* Path secretFile = Paths.get(".clientsecret"); /* Path secretFile = Paths.get(".clientsecret");
List<String> data; List<String> data;
try { try {

Loading…
Cancel
Save