debug RedditAPI

master
adb 4 years ago
parent db654ddfdd
commit 766d53713e

@ -1,10 +1,25 @@
plugins {
id 'java'
id 'maven'
}
sourceCompatibility = 1.7
targetCompatibility = 1.7
configurations.all {
}
sourceSets {
main.java.srcDir "src/main"
test.java.srcDir "src/test"
}
repositories { repositories {
mavenCentral() mavenCentral()
} }
apply plugin: "java" apply plugin: "java"
dependencies { dependencies {
//compile "com.github.jreddit:jreddit:1.0.3" //not supported by reddit api anymore
//jreddit 1.0.4 dependencies //jreddit 1.0.4 dependencies
compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1' compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.3' compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.3'
@ -15,11 +30,6 @@ dependencies {
testCompile group: 'org.mockito', name: 'mockito-core', version: '1.9.5' testCompile group: 'org.mockito', name: 'mockito-core', version: '1.9.5'
} }
sourceSets {
main.java.srcDir "src/main"
test.java.srcDir "src/test"
}
jar { jar {
from configurations.compile.collect { zipTree it } from configurations.compile.collect { zipTree it }
manifest.attributes "Main-Class": "sh.adb.RandomRedditMemesAPI.Main" manifest.attributes "Main-Class": "sh.adb.RandomRedditMemesAPI.Main"

35
gradlew vendored

@ -82,7 +82,6 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@ -126,11 +125,10 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi fi
# For Cygwin or MSYS, switch paths to Windows format before running java # For Cygwin, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"` APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"` JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath # We build the pattern for arguments to be converted via cygpath
@ -156,19 +154,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
else else
eval `echo args$i`="\"$arg\"" eval `echo args$i`="\"$arg\""
fi fi
i=`expr $i + 1` i=$((i+1))
done done
case $i in case $i in
0) set -- ;; (0) set -- ;;
1) set -- "$args0" ;; (1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;; (2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;; (3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;; (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac esac
fi fi
@ -177,9 +175,14 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " " echo " "
} }
APP_ARGS=`save "$@"` APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules # Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@" exec "$JAVACMD" "$@"

25
gradlew.bat vendored

@ -29,9 +29,6 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0 set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME% set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@ -40,7 +37,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute if "%ERRORLEVEL%" == "0" goto init
echo. echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@ -54,7 +51,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=% set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute if exist "%JAVA_EXE%" goto init
echo. echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@ -64,14 +61,28 @@ echo location of your Java installation.
goto fail goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell

@ -1,23 +1,29 @@
package sh.adb.RandomRedditMemesAPI; package sh.adb.RandomRedditMemesAPI;
import com.github.jreddit.oauth.RedditOAuthAgent;
import com.github.jreddit.oauth.RedditToken;
import com.github.jreddit.oauth.app.RedditApp;
import com.github.jreddit.oauth.app.RedditInstalledApp;
import com.github.jreddit.oauth.exception.RedditOAuthException; import com.github.jreddit.oauth.exception.RedditOAuthException;
import com.sun.net.httpserver.HttpServer; import com.sun.net.httpserver.HttpServer;
import org.json.simple.parser.ParseException;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
public class Main { public class Main {
public static void main(String[] args) throws IOException, RedditOAuthException { public static void main(String[] args) throws IOException, RedditOAuthException, ParseException {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("", new ErrorHandler()); server.createContext("/", new FallbackHandler());
//server.createContext("/api/v1/", new StandardHandler()); //server.createContext("/api/v1/", new StandardHandler());
server.createContext("/api/v1/r/", new CommunityHandler()); server.createContext("/api/v1/r/", new CommunityHandler());
server.setExecutor(null); server.setExecutor(null);
server.start(); server.start();
System.out.println("server started");
RedditAPI client = new RedditAPI(); RedditAPI client = new RedditAPI();
System.out.println("the token is"); System.out.println("the token is");
System.out.println(client.token); System.out.println(client.token.getAccessToken());
} }
} }

@ -9,24 +9,23 @@ import com.github.jreddit.oauth.app.RedditInstalledApp;
import com.github.jreddit.oauth.exception.RedditOAuthException; import com.github.jreddit.oauth.exception.RedditOAuthException;
public class RedditAPI { public class RedditAPI {
private RedditApp redditApp; private final RedditOAuthAgent agent;
private RedditOAuthAgent agent; protected RedditToken token;
public RedditToken token;
public RedditAPI() throws RedditOAuthException { public RedditAPI() throws RedditOAuthException, ParseException {
// Information about the app // Information about the app
String userAgent = "jReddit: Reddit API Wrapper for Java"; String userAgent = "jReddit: Reddit API Wrapper for Java";
String clientID = "gn9RWt8rgo2GDoZK"; String clientID = "PfnhLt3VahLrbg";
String redirectURI = "https://github.com/snkas/jReddit"; String redirectURI = "https://github.com/snkas/jReddit";
// Reddit application // Reddit application
RedditApp redditApp = new RedditInstalledApp(clientID, redirectURI); RedditApp redditApp = new RedditInstalledApp(clientID, redirectURI);
// Create OAuth agent // Create OAuth agent
RedditOAuthAgent agent = new RedditOAuthAgent(userAgent, redditApp); agent = new RedditOAuthAgent(userAgent, redditApp);
// Create token (will be valid for 1 hour) // Create token (will be valid for 1 hour)
RedditToken token = agent.tokenAppOnly(false); token = agent.tokenAppOnly(false);
System.out.println("Access Token: " + token.getAccessToken()); System.out.println("Access Token: " + token.getAccessToken());
System.out.println("Token Type: " + token.getTokenType()); System.out.println("Token Type: " + token.getTokenType());
System.out.println("Refreshable: " + token.isRefreshable()); System.out.println("Refreshable: " + token.isRefreshable());
@ -36,6 +35,6 @@ public class RedditAPI {
System.out.println("Will expire in 59 minutes: " + token.willExpireIn((long) 3540)); System.out.println("Will expire in 59 minutes: " + token.willExpireIn((long) 3540));
} }
public void newToken() throws RedditOAuthException { public void newToken() throws RedditOAuthException {
RedditToken token = this.agent.tokenAppOnly(false); this.token = this.agent.tokenAppOnly(false);
} }
} }
Loading…
Cancel
Save