Added parser prototype
this is a prototype for the JSON parser. Not fully fonctionnal (bunch of NullPointerException)
This commit is contained in:
parent
f42d4c81fd
commit
520a2ee598
1
.gitignore
vendored
1
.gitignore
vendored
@ -22,3 +22,4 @@
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
/twitter_techsupportgore_bot/nbproject/private/
|
||||
/twitter_techsupportgore_bot/build/
|
@ -1,4 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
*** GENERATED FROM project.xml - DO NOT EDIT ***
|
||||
*** EDIT ../build.xml INSTEAD ***
|
||||
@ -20,6 +21,8 @@ is divided into following sections:
|
||||
|
||||
-->
|
||||
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="twitter_techsupportgore_bot-impl">
|
||||
<property name="kotlin.lib" value="C:\Users\louis\AppData\Roaming\NetBeans\8.2\kotlinc\lib"/>
|
||||
<typedef classpath="${kotlin.lib}/kotlin-ant.jar" resource="org/jetbrains/kotlin/ant/antlib.xml"/>
|
||||
<fail message="Please build using Ant 1.8.0 or higher.">
|
||||
<condition>
|
||||
<not>
|
||||
@ -273,6 +276,7 @@ is divided into following sections:
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</src>
|
||||
<withKotlin/>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
|
@ -29,9 +29,12 @@ dist.jar=${dist.dir}/twitter_techsupportgore_bot.jar
|
||||
dist.javadoc.dir=${dist.dir}/javadoc
|
||||
endorsed.classpath=
|
||||
excludes=
|
||||
file.reference.gson-2.8.5.jar=C:\\Users\\louis\\Documents\\libraries\\Java\\gson-2.8.5.jar
|
||||
file.reference.kotlin-runtime.jar=nulllib\\kotlin-runtime.jar
|
||||
includes=**
|
||||
jar.compress=false
|
||||
javac.classpath=
|
||||
javac.classpath=\
|
||||
${file.reference.gson-2.8.5.jar}
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
@ -56,6 +59,7 @@ javadoc.splitindex=true
|
||||
javadoc.use=true
|
||||
javadoc.version=false
|
||||
javadoc.windowtitle=
|
||||
kotlinc.classpath=${file.reference.kotlin-runtime.jar}
|
||||
main.class=twitter_techsupportgore_bot.Twitter_techsupportgore_bot
|
||||
manifest.file=manifest.mf
|
||||
meta.inf.dir=${src.dir}/META-INF
|
||||
|
@ -16,18 +16,84 @@
|
||||
*/
|
||||
package twitter_techsupportgore_bot;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.ProtocolException;
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* This is where everything begins.
|
||||
*
|
||||
* @author louis
|
||||
*/
|
||||
public class Twitter_techsupportgore_bot {
|
||||
|
||||
private static HttpURLConnection con;
|
||||
|
||||
/**
|
||||
* Launch the bot.
|
||||
*
|
||||
* @param args the command line arguments
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
// TODO code application logic here
|
||||
public static void main(String[] args) throws MalformedURLException,
|
||||
ProtocolException, IOException {
|
||||
|
||||
String url = "https://www.reddit.com/r/techsupportgore/new.json?limit=75";
|
||||
|
||||
try {
|
||||
|
||||
URL myurl = new URL(url);
|
||||
con = (HttpURLConnection) myurl.openConnection();
|
||||
|
||||
con.setRequestMethod("GET");
|
||||
con.setRequestProperty("User-Agent", "Mozilla 5.0 (Windows; U; "
|
||||
+ "Windows NT 5.1; en-US; rv:1.8.0.11) ");
|
||||
|
||||
StringBuilder content;
|
||||
|
||||
try (BufferedReader in = new BufferedReader(
|
||||
new InputStreamReader(con.getInputStream()))) {
|
||||
|
||||
String line;
|
||||
content = new StringBuilder();
|
||||
|
||||
while ((line = in.readLine()) != null) {
|
||||
content.append(line);
|
||||
content.append(System.lineSeparator());
|
||||
}
|
||||
|
||||
}
|
||||
JsonObject objet = new JsonParser().parse(content.toString()).getAsJsonObject();
|
||||
JsonObject data = new JsonParser().parse(objet.get("data").toString()).getAsJsonObject();
|
||||
JsonArray children = new JsonParser().parse(data.get("children").toString()).getAsJsonArray();
|
||||
|
||||
for (int i = 0; i < children.size(); i++) {
|
||||
JsonObject child = new JsonParser().parse(children.get(i).toString()).getAsJsonObject();
|
||||
JsonObject childData = new JsonParser().parse(child.get("data").toString()).getAsJsonObject();
|
||||
System.out.println("Title: " + childData.get("title").toString());
|
||||
System.out.println("From: " + childData.get("author").toString());
|
||||
System.out.println("Is crosspostable ? : " + !childData.get("is_crosspostable").getAsBoolean());
|
||||
System.out.println("Is a video ? : " + childData.get("is_video").getAsBoolean());
|
||||
System.out.println("Is mature ? : " + childData.get("over_18").getAsBoolean());
|
||||
System.out.println("Score : " + childData.get("score").getAsDouble());
|
||||
System.out.println("Post url : " + childData.get("url").getAsString());
|
||||
JsonObject preview = new JsonParser().parse(childData.get("preview").toString()).getAsJsonObject();
|
||||
JsonArray previewImages = new JsonParser().parse(preview.get("images").toString()).getAsJsonArray();
|
||||
JsonObject source = new JsonParser().parse(previewImages.get(0).toString()).getAsJsonObject();
|
||||
JsonObject urlSrc = new JsonParser().parse(source.get("source").toString()).getAsJsonObject();
|
||||
System.out.println("Source url : " + urlSrc.get("url").toString().replace("amp;", ""));
|
||||
System.out.println("-----------------");
|
||||
}
|
||||
|
||||
} finally {
|
||||
|
||||
con.disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user