debug CommunityHandler and return first result
This commit is contained in:
		
							parent
							
								
									760b73261a
								
							
						
					
					
						commit
						3c2a1946ed
					
				@ -1,18 +1,34 @@
 | 
				
			|||||||
package sh.adb.RandomRedditMemesAPI;
 | 
					package sh.adb.RandomRedditMemesAPI;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.github.jreddit.parser.entity.Submission;
 | 
				
			||||||
 | 
					import com.github.jreddit.parser.exception.RedditParseException;
 | 
				
			||||||
import com.sun.net.httpserver.HttpExchange;
 | 
					import com.sun.net.httpserver.HttpExchange;
 | 
				
			||||||
import com.sun.net.httpserver.HttpHandler;
 | 
					import com.sun.net.httpserver.HttpHandler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.io.InputStream;
 | 
					import java.io.InputStream;
 | 
				
			||||||
import java.io.OutputStream;
 | 
					import java.io.OutputStream;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CommunityHandler implements HttpHandler {
 | 
					class CommunityHandler implements HttpHandler {
 | 
				
			||||||
 | 
					    RedditAPI api;
 | 
				
			||||||
 | 
					    public CommunityHandler(RedditAPI redditClient) {
 | 
				
			||||||
 | 
					        this.api = redditClient;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void handle(HttpExchange t) throws IOException {
 | 
					    public void handle(HttpExchange t) throws IOException {
 | 
				
			||||||
        InputStream is = t.getRequestBody();
 | 
					        //InputStream is = t.getRequestBody();
 | 
				
			||||||
        //is.read();
 | 
					        //is.read();
 | 
				
			||||||
        String response = "This is the response";
 | 
					        List<Submission> submissions = null;
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            submissions = this.api.getSub("ProgrammerHumor");
 | 
				
			||||||
 | 
					        } catch (RedditParseException e) {
 | 
				
			||||||
 | 
					            e.printStackTrace();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        assert submissions != null;
 | 
				
			||||||
 | 
					        String response = submissions.get(0).getURL();
 | 
				
			||||||
 | 
					        System.out.println("response > "+response);
 | 
				
			||||||
        t.sendResponseHeaders(200, response.length());
 | 
					        t.sendResponseHeaders(200, response.length());
 | 
				
			||||||
        OutputStream os = t.getResponseBody();
 | 
					        OutputStream os = t.getResponseBody();
 | 
				
			||||||
        os.write(response.getBytes());
 | 
					        os.write(response.getBytes());
 | 
				
			||||||
 | 
				
			|||||||
@ -13,17 +13,18 @@ import java.net.InetSocketAddress;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class Main {
 | 
					public class Main {
 | 
				
			||||||
    public static void main(String[] args) throws IOException, RedditOAuthException, ParseException {
 | 
					    public static void main(String[] args) throws IOException, RedditOAuthException, ParseException {
 | 
				
			||||||
 | 
					        //start RedditAPI
 | 
				
			||||||
 | 
					        RedditAPI redditClient = new RedditAPI();
 | 
				
			||||||
 | 
					        System.out.println("RedditAPI started - the token is");
 | 
				
			||||||
 | 
					        System.out.println(redditClient.token.getAccessToken());
 | 
				
			||||||
 | 
					        //start httpServer
 | 
				
			||||||
        HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
 | 
					        HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
 | 
				
			||||||
        server.createContext("/", new FallbackHandler());
 | 
					        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(redditClient));
 | 
				
			||||||
        server.setExecutor(null);
 | 
					        server.setExecutor(null);
 | 
				
			||||||
        server.start();
 | 
					        server.start();
 | 
				
			||||||
        System.out.println("server started");
 | 
					        System.out.println("server started");
 | 
				
			||||||
 | 
					 | 
				
			||||||
        RedditAPI client = new RedditAPI();
 | 
					 | 
				
			||||||
        System.out.println("the token is");
 | 
					 | 
				
			||||||
        System.out.println(client.token.getAccessToken());
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,13 @@
 | 
				
			|||||||
package sh.adb.RandomRedditMemesAPI;
 | 
					package sh.adb.RandomRedditMemesAPI;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.github.jreddit.oauth.client.RedditClient;
 | 
				
			||||||
 | 
					import com.github.jreddit.oauth.client.RedditHttpClient;
 | 
				
			||||||
 | 
					import com.github.jreddit.parser.entity.Submission;
 | 
				
			||||||
 | 
					import com.github.jreddit.parser.exception.RedditParseException;
 | 
				
			||||||
 | 
					import com.github.jreddit.parser.listing.SubmissionsListingParser;
 | 
				
			||||||
 | 
					import com.github.jreddit.request.retrieval.param.SubmissionSort;
 | 
				
			||||||
 | 
					import com.github.jreddit.request.retrieval.submissions.SubmissionsOfSubredditRequest;
 | 
				
			||||||
 | 
					import org.apache.http.impl.client.HttpClientBuilder;
 | 
				
			||||||
import org.json.simple.parser.ParseException;
 | 
					import org.json.simple.parser.ParseException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.github.jreddit.oauth.RedditOAuthAgent;
 | 
					import com.github.jreddit.oauth.RedditOAuthAgent;
 | 
				
			||||||
@ -8,8 +16,11 @@ import com.github.jreddit.oauth.app.RedditApp;
 | 
				
			|||||||
import com.github.jreddit.oauth.app.RedditInstalledApp;
 | 
					import com.github.jreddit.oauth.app.RedditInstalledApp;
 | 
				
			||||||
import com.github.jreddit.oauth.exception.RedditOAuthException;
 | 
					import com.github.jreddit.oauth.exception.RedditOAuthException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class RedditAPI {
 | 
					public class RedditAPI {
 | 
				
			||||||
    private final RedditOAuthAgent agent;
 | 
					    private final RedditOAuthAgent agent;
 | 
				
			||||||
 | 
					    private final RedditClient client;
 | 
				
			||||||
    protected RedditToken token;
 | 
					    protected RedditToken token;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public RedditAPI() throws RedditOAuthException, ParseException  {
 | 
					    public RedditAPI() throws RedditOAuthException, ParseException  {
 | 
				
			||||||
@ -24,6 +35,9 @@ public class RedditAPI {
 | 
				
			|||||||
        // Create OAuth agent
 | 
					        // Create OAuth agent
 | 
				
			||||||
        agent = new RedditOAuthAgent(userAgent, redditApp);
 | 
					        agent = new RedditOAuthAgent(userAgent, redditApp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Create request executor
 | 
				
			||||||
 | 
					        client = new RedditHttpClient(userAgent, HttpClientBuilder.create().build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Create token (will be valid for 1 hour)
 | 
					        // Create token (will be valid for 1 hour)
 | 
				
			||||||
        token = agent.tokenAppOnly(false);
 | 
					        token = agent.tokenAppOnly(false);
 | 
				
			||||||
        System.out.println("Access Token: " + token.getAccessToken());
 | 
					        System.out.println("Access Token: " + token.getAccessToken());
 | 
				
			||||||
@ -37,4 +51,10 @@ public class RedditAPI {
 | 
				
			|||||||
    public void newToken() throws RedditOAuthException {
 | 
					    public void newToken() throws RedditOAuthException {
 | 
				
			||||||
        this.token = this.agent.tokenAppOnly(false);
 | 
					        this.token = this.agent.tokenAppOnly(false);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    public List<Submission> getSub(String subreddit) throws RedditParseException {
 | 
				
			||||||
 | 
					        SubmissionsListingParser parser = new SubmissionsListingParser();
 | 
				
			||||||
 | 
					        SubmissionsOfSubredditRequest request = (SubmissionsOfSubredditRequest) new SubmissionsOfSubredditRequest(subreddit, SubmissionSort.HOT).setLimit(100);
 | 
				
			||||||
 | 
					        List<Submission> submissions = parser.parse(client.get(token, request));
 | 
				
			||||||
 | 
					        return submissions;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user