summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/miroguide
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/danoeh/antennapod/miroguide')
-rw-r--r--src/de/danoeh/antennapod/miroguide/conn/MiroGuideConnector.java129
-rw-r--r--src/de/danoeh/antennapod/miroguide/conn/MiroGuideException.java23
-rw-r--r--src/de/danoeh/antennapod/miroguide/conn/MiroGuideService.java153
-rw-r--r--src/de/danoeh/antennapod/miroguide/model/MiroGuideChannel.java75
-rw-r--r--src/de/danoeh/antennapod/miroguide/model/MiroGuideItem.java40
5 files changed, 0 insertions, 420 deletions
diff --git a/src/de/danoeh/antennapod/miroguide/conn/MiroGuideConnector.java b/src/de/danoeh/antennapod/miroguide/conn/MiroGuideConnector.java
deleted file mode 100644
index b4c06c340..000000000
--- a/src/de/danoeh/antennapod/miroguide/conn/MiroGuideConnector.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package de.danoeh.antennapod.miroguide.conn;
-
-import android.net.Uri;
-import de.danoeh.antennapod.util.LangUtils;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-/** Executes HTTP requests and returns the results. */
-public class MiroGuideConnector {
- private HttpClient httpClient;
-
- private static final String HOST_URL = "http://www.miroguide.com/api/";
- private static final String PATH_GET_CHANNELS = "get_channels";
- private static final String PATH_LIST_CATEGORIES = "list_categories";
- private static final String PATH_GET_CHANNEL = "get_channel";
-
- public MiroGuideConnector() {
- httpClient = new DefaultHttpClient();
- }
-
- public void shutdown() {
- httpClient.getConnectionManager().shutdown();
- }
-
- private Uri.Builder getBaseURIBuilder(String path) {
- Uri.Builder builder = Uri.parse(HOST_URL).buildUpon();
- builder.appendPath(path).appendQueryParameter("datatype", "json");
- return builder;
- }
-
- public JSONArray getArrayResponse(Uri uri) throws MiroGuideException {
- try {
- JSONArray result = new JSONArray(executeRequest(uri));
- return result;
- } catch (JSONException e) {
- e.printStackTrace();
- throw new MiroGuideException();
- }
- }
-
- public JSONObject getSingleObjectResponse(Uri uri) throws MiroGuideException {
- try {
- JSONObject result = new JSONObject(executeRequest(uri));
- return result;
- } catch (JSONException e) {
- e.printStackTrace();
- throw new MiroGuideException();
- }
- }
-
- /**
- * Executes a HTTP GET request with the given URI and returns the content of
- * the return value.
- *
- * @throws MiroGuideException
- */
- private String executeRequest(Uri uri) throws MiroGuideException {
- HttpGet httpGet = new HttpGet(uri.toString());
- String result = null;
- try {
- HttpResponse response = httpClient.execute(httpGet);
- if (response.getStatusLine().getStatusCode() == 200) {
- HttpEntity entity = response.getEntity();
- if (entity != null) {
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(entity.getContent(),
- LangUtils.UTF_8));
- try {
- result = reader.readLine();
- } finally {
- reader.close();
- }
- }
- } else {
- throw new MiroGuideException(response.getStatusLine()
- .getReasonPhrase());
- }
- } catch (IOException e) {
- e.printStackTrace();
- throw new MiroGuideException(e.getMessage());
- }
- return result;
-
- }
-
- public Uri createGetChannelsUri(String filter, String filterValue,
- String sort, String limit, String offset) throws MiroGuideException {
- Uri.Builder resultBuilder = getBaseURIBuilder(PATH_GET_CHANNELS);
- resultBuilder.appendQueryParameter("filter", filter)
- .appendQueryParameter("filter_value", filterValue);
-
- if (sort != null) {
- resultBuilder.appendQueryParameter("sort", sort);
- }
- if (limit != null) {
- resultBuilder.appendQueryParameter("limit", limit);
- }
- if (offset != null) {
- resultBuilder.appendQueryParameter("offset", offset);
- }
- Uri result = resultBuilder.build();
- return result;
- }
-
- public Uri createListCategoriesURI() throws MiroGuideException {
- Uri.Builder resultBuilder = getBaseURIBuilder(PATH_LIST_CATEGORIES);
- Uri result = resultBuilder.build();
-
- return result;
- }
-
- public Uri createGetChannelUri(String id) throws MiroGuideException {
- Uri.Builder resultBuilder = getBaseURIBuilder(PATH_GET_CHANNEL)
- .appendQueryParameter("id", id);
- Uri result = resultBuilder.build();
- return result;
- }
-
-}
diff --git a/src/de/danoeh/antennapod/miroguide/conn/MiroGuideException.java b/src/de/danoeh/antennapod/miroguide/conn/MiroGuideException.java
deleted file mode 100644
index 6097761d8..000000000
--- a/src/de/danoeh/antennapod/miroguide/conn/MiroGuideException.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package de.danoeh.antennapod.miroguide.conn;
-
-public class MiroGuideException extends Exception {
- private static final long serialVersionUID = -8834656185748713194L;
-
- public MiroGuideException() {
- super();
- }
-
- public MiroGuideException(String arg0, Throwable arg1) {
- super(arg0, arg1);
- }
-
- public MiroGuideException(String arg0) {
- super(arg0);
- }
-
- public MiroGuideException(Throwable arg0) {
- super(arg0);
- }
-
-
-}
diff --git a/src/de/danoeh/antennapod/miroguide/conn/MiroGuideService.java b/src/de/danoeh/antennapod/miroguide/conn/MiroGuideService.java
deleted file mode 100644
index bdb4ec5dd..000000000
--- a/src/de/danoeh/antennapod/miroguide/conn/MiroGuideService.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package de.danoeh.antennapod.miroguide.conn;
-
-import de.danoeh.antennapod.miroguide.model.MiroGuideChannel;
-import de.danoeh.antennapod.miroguide.model.MiroGuideItem;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-
-
-/** Provides methods to communicate with the Miroguide API on an abstract level. */
-public class MiroGuideService {
- private static final String TAG = "MiroGuideService";
-
- public static final int DEFAULT_CHANNEL_LIMIT = 20;
-
- public static final String FILTER_CATEGORY = "category";
- public static final String FILTER_NAME = "name";
- public static final String SORT_NAME = "name";
- public static final String SORT_POPULAR = "popular";
- public static final String SORT_RATING = "rating";
-
- public static final String JSON_DATE_FORMAT_STRING = "yyyy-MM-dd'T'HH:mm:ss";
-
- private MiroGuideConnector connector;
-
- private static ThreadLocal<SimpleDateFormat> jSONDateFormat = new ThreadLocal<SimpleDateFormat>() {
- @Override
- protected SimpleDateFormat initialValue() {
- return new SimpleDateFormat(JSON_DATE_FORMAT_STRING, Locale.US);
- }
-
- };
-
- public MiroGuideService() {
- connector = new MiroGuideConnector();
- }
-
- public void close() {
- connector.shutdown();
- }
-
- public String[] getCategories() throws MiroGuideException {
- JSONArray resultArray = connector.getArrayResponse(connector
- .createListCategoriesURI());
- String[] result = new String[resultArray.length()];
- for (int i = 0; i < resultArray.length(); i++) {
- try {
- result[i] = resultArray.getJSONObject(i).getString("name");
- } catch (JSONException e) {
- e.printStackTrace();
- throw new MiroGuideException();
- }
- }
- return result;
- }
-
- /** Get a list of MiroGuideChannel objects without their items. */
- public List<MiroGuideChannel> getChannelList(String filter, String filterValue,
- String sort, int limit, int offset) throws MiroGuideException {
- JSONArray resultArray = connector.getArrayResponse(connector
- .createGetChannelsUri(filter, filterValue, sort,
- Integer.toString(limit), Integer.toString(offset)));
- int resultLen = resultArray.length();
- List<MiroGuideChannel> channels = new ArrayList<MiroGuideChannel>(resultLen);
- for (int i = 0; i < resultLen; i++) {
- JSONObject content = null;
- try {
- content = resultArray.getJSONObject(i);
- MiroGuideChannel channel = extractMiroChannel(content, false);
- channels.add(channel);
- } catch (JSONException e) {
- e.printStackTrace();
- throw new MiroGuideException();
- }
- }
-
- return channels;
- }
-
- /**
- * Get a single channel with its items.
- *
- * @throws MiroGuideException
- */
- public MiroGuideChannel getChannel(long id) throws MiroGuideException {
- JSONObject resultObject = connector.getSingleObjectResponse(connector
- .createGetChannelUri(Long.toString(id)));
- MiroGuideChannel result = null;
- try {
- result = extractMiroChannel(resultObject, true);
- } catch (JSONException e) {
- e.printStackTrace();
- throw new MiroGuideException();
- }
- return result;
- }
-
- /**
- * Get a MiroGuideChannel object from it's JSON source. The itemlist of the
- * channel can be included or excluded
- *
- * @throws JSONException
- */
- private MiroGuideChannel extractMiroChannel(JSONObject content, boolean withItems)
- throws JSONException {
- long id = content.getLong("id");
- String name = content.getString("name");
- String description = content.getString("description");
- String thumbnailUrl = content.optString("thumbnail_url");
- String downloadUrl = content.getString("url");
- String websiteUrl = content.getString("website_url");
- if (!withItems) {
- return new MiroGuideChannel(id, name, thumbnailUrl, downloadUrl,
- websiteUrl, description);
- } else {
- JSONArray itemData = content.getJSONArray("item");
- int numItems = itemData.length();
- ArrayList<MiroGuideItem> items = new ArrayList<MiroGuideItem>(numItems);
- for (int i = 0; i < numItems; i++) {
- items.add(extractMiroItem(itemData.getJSONObject(i)));
- }
-
- return new MiroGuideChannel(id, name, thumbnailUrl, downloadUrl,
- websiteUrl, description, items);
- }
- }
-
- /** Get a MiroGuideItem from its JSON source. */
- private MiroGuideItem extractMiroItem(JSONObject content) throws JSONException {
- Date date = parseMiroItemDate(content.getString("date"));
- String description = content.getString("description");
- String name = content.getString("name");
- String url = content.getString("url");
- return new MiroGuideItem(name, description, date, url);
- }
-
- private Date parseMiroItemDate(String s) {
- try {
- return jSONDateFormat.get().parse(s);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return null;
- }
-
-}
diff --git a/src/de/danoeh/antennapod/miroguide/model/MiroGuideChannel.java b/src/de/danoeh/antennapod/miroguide/model/MiroGuideChannel.java
deleted file mode 100644
index f5d62d2e8..000000000
--- a/src/de/danoeh/antennapod/miroguide/model/MiroGuideChannel.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package de.danoeh.antennapod.miroguide.model;
-
-import java.util.ArrayList;
-
-public class MiroGuideChannel {
- private long id;
- private String name;
- private String thumbnailUrl;
- private String downloadUrl;
- private String websiteUrl;
- private String description;
- private ArrayList<MiroGuideItem> items;
-
- public MiroGuideChannel(long id, String name, String thumbnailUrl,
- String downloadUrl, String websiteUrl, String description) {
- super();
- this.id = id;
- this.name = name;
- this.thumbnailUrl = thumbnailUrl;
- this.downloadUrl = downloadUrl;
- this.websiteUrl = websiteUrl;
- this.description = description;
- }
-
- public MiroGuideChannel(long id, String name, String thumbnailUrl,
- String downloadUrl, String websiteUrl, String description,
- ArrayList<MiroGuideItem> items) {
- super();
- this.id = id;
- this.name = name;
- this.thumbnailUrl = thumbnailUrl;
- this.downloadUrl = downloadUrl;
- this.websiteUrl = websiteUrl;
- this.description = description;
- this.items = items;
- }
-
- @Override
- public String toString() {
- return id + " " + name;
- }
-
- public long getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public String getThumbnailUrl() {
- return thumbnailUrl;
- }
-
- public String getDownloadUrl() {
- return downloadUrl;
- }
-
- public String getWebsiteUrl() {
- return websiteUrl;
- }
-
- public String getDescription() {
- return description;
- }
-
- public ArrayList<MiroGuideItem> getItems() {
- return items;
- }
-
- public void setThumbnailUrl(String thumbnailUrl) {
- this.thumbnailUrl = thumbnailUrl;
- }
-
-}
diff --git a/src/de/danoeh/antennapod/miroguide/model/MiroGuideItem.java b/src/de/danoeh/antennapod/miroguide/model/MiroGuideItem.java
deleted file mode 100644
index cb5b15c56..000000000
--- a/src/de/danoeh/antennapod/miroguide/model/MiroGuideItem.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package de.danoeh.antennapod.miroguide.model;
-
-import java.util.Date;
-
-public class MiroGuideItem {
- private String name;
- private String description;
- private Date date;
- private String url;
-
- public MiroGuideItem(String name, String description, Date date, String url) {
- super();
- this.name = name;
- this.description = description;
- this.date = (Date) date.clone();
- this.url = url;
- }
-
- @Override
- public String toString() {
- return name + " " + date.toString();
- }
-
- public String getName() {
- return name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public Date getDate() {
- return (Date) date.clone();
- }
-
- public String getUrl() {
- return url;
- }
-
-}