Ejemplo n.º 1
0
    @Override
    protected void onPostExecute(String result) {

      if (isCancelled()) return;
      else {
        if (isNew) {
          youtubeChannelSearch.clear();
          searchAdapter.notifyDataSetChanged();
        }
        try {
          JSONObject res = new JSONObject(response);

          if (Var.isJsonString(res, "nextPageToken")) pageToken = res.getString("nextPageToken");

          if (Var.isJsonArray(res, "items")) {
            JSONArray items = res.getJSONArray("items");
            for (int i = 0; i < items.length(); i++) {
              JSONObject item = items.getJSONObject(i);

              YoutubeChannel channel = new YoutubeChannel();
              if (Var.isJsonObject(item, "id")) { // Channel Id
                JSONObject id = item.getJSONObject(("id"));
                if (Var.isJsonString(id, "channelId")) {
                  channel.setFeedId(id.getString("channelId"));
                }
              }

              if (Var.isJsonObject(item, "snippet")) { // Channel Name
                JSONObject snippet = item.getJSONObject("snippet");
                if (Var.isJsonString(snippet, "title")) {
                  channel.setName(snippet.getString("title"));
                }

                if (Var.isJsonObject(snippet, "thumbnails")) { // Channel Thumbnail
                  JSONObject thumbnails = snippet.getJSONObject("thumbnails");
                  if (Var.isJsonObject(thumbnails, "default")) {
                    JSONObject def = thumbnails.getJSONObject("default");
                    if (Var.isJsonString(def, "url")) {
                      channel.setThumbnail(def.getString("url"));
                    }
                  }
                }

                youtubeChannelSearch.add(channel);
              }
            }
            searchAdapter.notifyDataSetChanged();
            if (youtubeChannelSearch.size() >= maxResults)
              searchBusy = false; // Keep busy if nothing is returned
          }

        } catch (Throwable t) {
          t.printStackTrace();
        }
      }
    }
Ejemplo n.º 2
0
    @Override
    protected String doInBackground(Void... params) {
      searchBusy = true;
      try {

        searchChannel.getYoutubeFeeds().clear();

        // TODO check the internet connection here
        String channelUrl =
            "https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id="
                + searchChannel.getFeedId()
                + "&fields=items%2FcontentDetails&key="
                + Var.DEVELOPER_KEY;
        String playlists = "";
        String channel = Var.HTTPGet(channelUrl);

        JSONObject res = new JSONObject(channel);
        if (Var.isJsonArray(res, "items")) {
          JSONArray items = res.getJSONArray("items");
          if (items.length() > 0) {
            JSONObject item = items.getJSONObject(0);
            if (Var.isJsonObject(item, "contentDetails")) {
              JSONObject contentDetails = item.getJSONObject(("contentDetails"));
              if (Var.isJsonObject(contentDetails, "relatedPlaylists")) { // Channel Name
                JSONObject relatedPlaylists = contentDetails.getJSONObject("relatedPlaylists");
                if (Var.isJsonString(relatedPlaylists, "uploads"))
                  playlists +=
                      (Var.isEmpty(playlists) ? "" : ",") + relatedPlaylists.getString("uploads");
                if (Var.isJsonString(relatedPlaylists, "likes"))
                  playlists +=
                      (Var.isEmpty(playlists) ? "" : ",") + relatedPlaylists.getString("likes");
                if (Var.isJsonString(relatedPlaylists, "favorites"))
                  playlists +=
                      (Var.isEmpty(playlists) ? "" : ",") + relatedPlaylists.getString("favorites");
              }
            }
          }
        }

        String playlistUrl =
            "https://www.googleapis.com/youtube/v3/playlists?part=snippet&id="
                + URLEncoder.encode(playlists, "UTF-8")
                + "&fields=items(id%2Csnippet)&key="
                + Var.DEVELOPER_KEY;
        String playlist = Var.HTTPGet(playlistUrl);

        JSONObject play = new JSONObject(playlist);
        if (Var.isJsonArray(play, "items")) {
          JSONArray items = play.getJSONArray("items");
          for (int i = 0; i < items.length(); i++) {
            JSONObject item = items.getJSONObject(i);

            if (Var.isJsonString(item, "id")) { // Feed Id
              YoutubeFeed feed = new YoutubeFeed(item.getString("id"));
              feed.setType(Var.TYPE_YOUTUBE_PLAYLIST);
              feed.setChannelHandle(searchChannel.getFeedId());

              if (Var.isJsonObject(item, "snippet")) { // Feed Name
                JSONObject snippet = item.getJSONObject("snippet");
                if (Var.isJsonString(snippet, "title")) {
                  if (snippet.getString("title").startsWith("Upload")) feed.setName("Uploads");
                  else feed.setName(snippet.getString("title"));
                }

                if (Var.isJsonObject(snippet, "thumbnails")) { // Feed Thumbnail
                  JSONObject thumbnails = snippet.getJSONObject("thumbnails");
                  if (Var.isJsonObject(thumbnails, "default")) {
                    JSONObject def = thumbnails.getJSONObject("default");
                    if (Var.isJsonString(def, "url")) {
                      feed.setThumbnail(def.getString("url"));
                    }
                  }
                }
              }

              searchChannel.getYoutubeFeeds().add(feed);

              Log.d(TAG, "youtube feed added " + feed.getName());
            }
          }

          YoutubeFeed activityFeed = new YoutubeFeed();
          activityFeed.setChannelHandle(searchChannel.getFeedId());
          searchChannel.getYoutubeFeeds().add(activityFeed); // Activity
        }

      } catch (Throwable t) {
        t.printStackTrace();
      }
      return null;
    }
Ejemplo n.º 3
0
    protected void onPostExecute(Integer result) {
      if (isCancelled()) return;
      else {

        if (users == null || twitterPage == 1) {
          twitterFeedSearch.clear();
        }

        try {

          if (users != null) {
            for (twitter4j.User u : users) {
              TwitterFeed feed = new TwitterFeed(String.valueOf(u.getId()));
              feed.setDisplayName(u.getName());
              feed.setChannelHandle("@" + u.getScreenName());
              feed.setThumbnail(u.getProfileImageURL());

              twitterFeedSearch.add(feed);
            }

            searchBusy = false;
          } else if (jsonTokenStream != null) {

            //  Log error and clear the adapter
            Object json = new JSONTokener(jsonTokenStream).nextValue();
            if (json instanceof JSONObject) {
              if (Var.isJsonArray(((JSONObject) json), "errors")) {
                JSONArray errors = ((JSONObject) json).getJSONArray("errors");
                if (errors.length() > 0) {
                  Log.d(TAG, jsonTokenStream);

                  if (Var.isJsonString(errors.getJSONObject(0), "message")) {
                    String message = errors.getJSONObject(0).getString("message");
                    int code = errors.getJSONObject(0).getInt("code");

                    searchMessage_tv.setVisibility(View.VISIBLE);
                    if (code == 88) searchMessage_tv.setText(R.string.rate_limit_error);
                    if (code == 34) searchMessage_tv.setText(R.string.page_does_not_exist_error);
                    else searchMessage_tv.setText(message);
                  }
                }
              }
            } else if (json instanceof JSONArray) {

              if (!twitter.hasAccessToken()) {

                JSONArray results = new JSONArray(jsonTokenStream);
                for (int i = 0; i < results.length(); i++) {
                  JSONObject item = results.getJSONObject(i);

                  if (Var.isJsonString(item, "id")) {

                    TwitterFeed feed = new TwitterFeed(item.getString("id"));
                    if (Var.isJsonString(item, "name")) feed.setDisplayName(item.getString("name"));
                    if (Var.isJsonString(item, "screen_name"))
                      feed.setChannelHandle("@" + item.getString("screen_name"));
                    if (Var.isJsonString(item, "profile_image_url"))
                      feed.setThumbnail(
                          item.getString("profile_image_url").replace("_normal", "_bigger"));

                    twitterFeedSearch.add(feed);
                  }
                }
              }
            }
          }
          searchAdapter.notifyDataSetChanged();
        } catch (Exception e) {
          Log.e("Tweet", "Error retrieving JSON stream" + e.getMessage());
          e.printStackTrace();
        }
      }
    }