GithubHelp home page GithubHelp logo

jumblr's Introduction

Jumblr.

Build Status

A pleasant and complete Java wrapper for the Tumblr V2 API.

Example

// Create a new client
JumblrClient client = new JumblrClient("consumer_key", "consumer_secret");
client.setToken("oauth_token", "oauth_token_secret");

// Write the user's name
User user = client.user();
System.out.println(user.getName());

// And list their blogs
for (Blog blog : user.getBlogs()) {
	System.out.println("\t" + blog.getTitle());
}

// Like the most recent "lol" tag
client.tagged("lol").get(0).like();

Basic Usage

User

Information about the authenticating user

User user = client.user();
System.out.println(user.getName());

What blogs the user is following

List<Blog> blogs = client.userFollowing();
for (Blog blog : blogs) {
	System.out.println(blog.getTitle());
}

Dashboard posts for the user?

List<Post> posts = client.userDashboard();

Or the things we like:

List<Post> posts = client.userLikes();

Blog

Get information about a given blog

Blog blog = client.blogInfo("seejohnrun.tumblr.com");
blog.getTitle();

And then you can use either the client approach, or make calls on the blog. These two are equivelant:

List<User> users = client.blogFollowers();
List<User> users = blog.followers();

Same with likes, etc:

// All return List<Post>
blog.posts();
blog.queuedPosts();
blog.draftPosts();
blog.submissions();

It's easy to get get the avatar of a blog too:

blog.avatar(); // String

And follow/unfollow blogs:

blog.follow();
blog.unfollow();

Post

Again:

post.like();
post.unlike();

// or
client.postLike(postId, reblogKey);
client.postUnlike(postId, reblogKey);

Maybe you want to delete a post, or reblog it?

// Delete
post.delete();

// Reblog
post.reblog();

And editing posts is equally easy:

post.setTitle("hello");
post.save();

// or if you like..
Map<String, String> detail = new HashMap<String, String>();
detail.put("title", "hello");
client.postEdit(blogName, postId, detail);

Just as easy as creating them:

QuotePost post = client.newPost(blogName, QuotePost.class);
post.setQuote("hello world");
post.save();

// or if you like...
Map<String, String> detail = new HashMap<String, String>();
detail.put("quote", "hello world");
detail.put("type", "quote");
client.postCreate(blogName, detail);

Tagged

All of the posts tagged a given thing:

for (Post post : client.tagged("lol")) {
  post.getId();
}

Pagination

Pagination and additional options are on most calls, and you can just pass them to the overloaded form:

Map<String, Integer> options = new HashMap<String, Integer>();
options.put("limit", 2);
options.put("offset", 5);
List<Post> posts = blog.posts(options);

Errors

Any connection errors will raise a JumblrException, which you can get more information from:

catch (JumblrException ex) {
	System.out.println("(" + ex.getResponseCode().toString() + ") " + ex.getMessage());
}

Gradle

compile 'com.tumblr:jumblr:0.0.11'

Maven

<dependency>
  <groupId>com.tumblr</groupId>
  <artifactId>jumblr</artifactId>
  <version>0.0.11</version>
</dependency>

Runnings Tests

mvn test

More detail?

Pop out that JavaDoc - full documentation awaits.

Or you can use our hosted copy at: http://tumblr.github.io/jumblr/javadoc/

Also see the documentation for the Tumblr API itself.

Builds

We supply some JAR builds you can use if you're not a fan of mvn. You can grab them with (or without) dependencies from the project page.

Reporting issues

Please refer to the GitHub issue tracker at: https://github.com/tumblr/jumblr/issues

Copyright and license

Copyright 2015 Tumblr, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations.

jumblr's People

Contributors

seejohnrun avatar jackie-scholl avatar kevintcoughlin avatar bdenney avatar orac avatar codingjester avatar ceyko avatar dallasmarlow avatar ajaysolleti avatar shakiba avatar ericleong avatar tobyjsullivan avatar ngreenwood6 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.