/*
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
/*
Copyright 2010 Jamie Walters
based on code by Joe Robinson
*/
import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class blasearch {
public static void main(String[] args) throws IOException
{
String query = "";
String version = "v1.5.0";
/* Build query from query or arguments, depending on whether
arguments were given. */
if (args.length == 0) {
try {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
query = br.readLine();
} catch (Exception e) {
System.err.println("Error:" + e.getMessage());
System.exit(1);
}
} else {
for (int i = 0; i < args.length; i++) {
query += args[i];
}
}
if (query.equals("-v") || query.equals("--version")) {
System.out.println(version);
System.exit(0);
}
String[] qParts = query.split(" ");
int offset = 0;
int start = 0;
query = "";
for (int i = 0; i < qParts.length; i++) {
if (qParts[i].equals("-n") && i < qParts.length-1) {
try {
if(Integer.parseInt(qParts[i+1]) > 0) {
offset = Integer.parseInt(qParts[i+1])-1;
start = (offset / 2)*4;
offset = (offset %2)*2;
i++;
} else {
start = 0;
offset = 0;
i++;
}
} catch (NumberFormatException e) {
start = 0;
offset = 0;
}
} else {
query += qParts[i]+"+";
}
}
// Change all ' ' to '+'
query = query.replaceAll(" ", "+");
String[] parts = null;
//URL which provides XML response
URL url = new URL("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q="+ query+"&start="+start);
URLConnection urlc = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(urlc.getInputStream()));
String line;
String[] lines;
ArrayList results = new ArrayList();
ArrayList urls = new ArrayList();
String result = "";
String tempString = "";
//Read every line
while ((line = br.readLine()) != null)
{
// Splits the google output by the commas
lines = line.split(",");
for(int i=0; i 1) {
for (int j = 1; j < searchParts.length; j++) {
int hexVal = Integer.parseInt(searchParts[j].substring(0,4),16);
searchResult += (char)hexVal;
searchResult += searchParts[j].substring(4);
}
}
results.add(searchResult);
}
}
}
// Print results
if(results.size() > 0){
for(int i=(offset); i<(offset+2); i++){
if (i != 0) {
System.out.print(" | ");
}
int count = i + 1;
System.out.print("Result " + (count+start) + ": " + results.get(i));
}
} else {
System.out.print("Error: no results.\n");
System.exit(1);
}
System.out.print("\n");
}
}