/* DroidBeard - a free, open-source Android app for managing SickBeard Copyright (C) 2014-2015 Robert Carr This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. */ package com.rastating.droidbeard.net; import android.content.Context; import com.rastating.droidbeard.entities.ShowSearchResult; import org.json.JSONArray; import org.json.JSONObject; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; public class SearchTvDBTask extends SickbeardAsyncTask<String, Void, ShowSearchResult[]> { public SearchTvDBTask(Context context) { super(context); } @Override protected ShowSearchResult[] doInBackground(String... strings) { String name = null; try { name = URLEncoder.encode(strings[0], "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); name = strings[0]; } try { String json = getJson("sb.searchtvdb", "name", name); List<ShowSearchResult> list = new ArrayList<ShowSearchResult>(); if (json != null && !json.equals("")) { JSONArray results = new JSONObject(json).getJSONObject("data").getJSONArray("results"); for (int i = 0; i < results.length(); i++) { JSONObject result = results.getJSONObject(i); ShowSearchResult showSearchResult = new ShowSearchResult(); showSearchResult.setFirstAired(result.getString("first_aired")); showSearchResult.setName(result.getString("name")); if (result.has("tvdbid")) { showSearchResult.setId(result.getLong("tvdbid")); list.add(showSearchResult); } else if (result.has("tvrageid")) { showSearchResult.setId(result.getLong("tvrageid")); showSearchResult.setIsTVRageResult(true); list.add(showSearchResult); } } return list.toArray(new ShowSearchResult[list.size()]); } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } } }