package info.jiangpeng.helper;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import info.jiangpeng.BookImageDrawable;
import info.jiangpeng.model.Book;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.net.URL;
public class AbstractBookParser {
protected void parseLinkJson(JSONObject rawJsonString, Book book) throws JSONException, IOException {
JSONArray linkArray = rawJsonString.getJSONArray("link");
for (int i = 0; i < linkArray.length(); i++) {
JSONObject linkJson = linkArray.getJSONObject(i);
if (linkJson.getString("@rel").equals("alternate")) {
book.setBookUrlInWeb(linkJson.getString("@href"));
} else if (linkJson.getString("@rel").equals("self")) {
book.setBookDetailsUrl(linkJson.getString("@href"));
} else if (linkJson.getString("@rel").equals("image")) {
String imageUrl = linkJson.getString("@href");
book.setImageUrl(imageUrl);
book.setImageDrawable(new BookImageDrawable(BitmapFactory.decodeStream(new URL(imageUrl).openStream())));
}
}
}
protected void parseMetadataJson(JSONObject rawJsonString, Book book) throws JSONException {
JSONArray metadataArray = rawJsonString.getJSONArray("db:attribute");
for (int i = 0; i < metadataArray.length(); i++) {
JSONObject metaJson = metadataArray.getJSONObject(i);
if (metaJson.getString("@name").equals("publisher")) {
book.setPublisher(metaJson.getString("$t"));
} else if (metaJson.getString("@name").equals("pubdate")) {
book.setPubDate(metaJson.getString("$t"));
} else if (metaJson.getString("@name").equals("author")) {
book.setAuthor(metaJson.getString("$t"));
} else if (metaJson.getString("@name").equals("author-intro")) {
book.setAuthorIntro(metaJson.getString("$t"));
}
}
}
}