Files
scripts/mymuesli/main.java
2021-11-16 23:55:48 +01:00

131 lines
3.1 KiB
Java

package de.eneller.scripts;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static char[] matchArray = "abcdefghijklmnopqrstuvwxyz123456789".toCharArray();
public static int length = 6;
public static void main(String[] args) throws IOException {
System.out.println("test");
String filepath = "https://www.mymuesli.com/";
String data = "";
CountArray append = new CountArray(length,matchArray.length-1);
if(args.length>0){
append.setArr(transform(args[0]));
}
String url = "";
boolean b = true;
do {
b = true;
url = filepath + buildString(append.getArr());
if(testURL(url)){
System.out.println(url);
}
}while(append.countUp()==true);
}
public static String buildString(int[] ints){
String data = "";
for(int i=0;i< ints.length;i++){
data += matchArray[ints[i]];
}
return data;
}
public static boolean testURL(String urlstring) throws MalformedURLException, IOException {
URL u = new URL(urlstring);
HttpURLConnection connection = (HttpURLConnection) u.openConnection();
connection.setRequestMethod("GET");
connection.connect();
return (connection.getResponseCode()!=404);
}
public static int[] transform(String s){
char[] c = s.toCharArray();
int j;
if(c.length==length){
int[] n = new int[length];
for(int i=0;i<length;i++){
for(j=0; j< matchArray.length;j++){
if(matchArray[j]==c[i]){
break;
}
}
n[i]=j;
}
System.out.println(Arrays.toString(n));
return n;
}
return new int[]{-1};
}
}
public class CountArray {
private int length;
private int maxValue;
private int[] arr;
public CountArray(int length, int maxValue){
this.length=length;
this.maxValue=maxValue;
this.arr = new int[length];
for(int i=0;i<arr.length;i++){
arr[i]=0;
}
}
public boolean countUp(){
int i =arr.length-1;
if(arr[i]==maxValue){
arr[i]=0;
return countUp(i-1);
}
arr[i]++;
return true;
}
public boolean countUp(int i){
if(i==-1){
return false;
}
if(arr[i]==maxValue){
arr[i]=0;
return countUp(i-1);
}
arr[i]++;
return true;
}
public int[] getArr(){
return this.arr;
}
public boolean setArr(int[] in){
if(in.length==this.length){
for(int i=0;i< length;i++){
if(in[i]>maxValue){
return false;
}
}
for(int i=0;i<length;i++){
this.arr[i] = in[i];
}
return true;
}
return false;
}
}