Package com.tubeonfire.controller.admin

Source Code of com.tubeonfire.controller.admin.YoutubeSearchServlet

package com.tubeonfire.controller.admin;

import java.io.IOException;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.tubeonfire.model.admin.PlaylistModel;
import com.tubeonfire.service.YoutubeService;

@SuppressWarnings("serial")
public class YoutubeSearchServlet extends HttpServlet {

  private static final Logger log = Logger
      .getLogger(YoutubeSearchServlet.class.getName());

  public void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws IOException, ServletException {
    PlaylistModel plModel = new PlaylistModel();
    plModel.prepareAll(true);
    if (plModel.getListResult().size() > 0) {
      req.setAttribute("plModel", plModel);
      process(req, resp);
    } else {
      HttpSession session = req.getSession();
      session.setAttribute("alert",
          "You must create at least 1 playlist to search and add video from Youtube !");
      resp.sendRedirect("/admin/playlist/add");
    }
  }

  private void process(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    try {
      int page = 1;
      String type = (String) req.getParameter("type");
      String quanlity = (String) req.getParameter("quanlity");
      String keyword = (String) req.getParameter("keyword");
      try {
        page = Integer.parseInt(req.getParameter("page"));
      } catch (Exception e) {
        page = 1;
      }
      if (type != null && quanlity != null && keyword != null
          && keyword.length() > 0) {
        YoutubeService tubeService = new YoutubeService();
        if (type.equals("1")) {
          tubeService.setPage(page);
          if (keyword.contains("http://www.youtube.com/user/")) {
            /*
             * example : http://www.youtube.com/user/xuanhung2401
             */
            String pattern = "(?:\\/user\\/)([\\w-]+)";
            Pattern compiledPattern = Pattern.compile(pattern);
            Matcher matcher = compiledPattern.matcher(keyword);
            if (matcher.find()) {
              keyword = matcher.group().replace("/user/", "");
            }
          } else if (keyword.contains("http://www.youtube.com")) {
            /*
             * example : http://www.youtube.com/xuanhung2401
             */
            String pattern = "(?:youtube.com\\/)([\\w-]+)";
            Pattern compiledPattern = Pattern.compile(pattern);
            Matcher matcher = compiledPattern.matcher(keyword);
            if (matcher.find()) {
              keyword = matcher.group().replace("youtube.com/",
                  "");
            }
          }
          tubeService.searchByChannel(keyword, true);
        } else if (type.equals("2")) {
          tubeService.setPage(page);
          tubeService.searchByKey(keyword, quanlity.equals("2"));
        } else if (type.equals("3")) {
          String pattern = "(?:videos\\/|v=)([\\w-]+)";
          Pattern compiledPattern = Pattern.compile(pattern);
          Matcher matcher = compiledPattern.matcher(keyword);
          if (matcher.find()) {
            String fullStrId = matcher.group();
            fullStrId = (fullStrId.substring(
                fullStrId.length() - 11, fullStrId.length()));
            tubeService.searchById(fullStrId);
          }
        }
        resp.setCharacterEncoding("UTF-8");
        req.setAttribute("url", "/admin/youtube/search" + "?type=" + type
            + "&quanlity=" + quanlity + "&keyword=" + keyword
            + "&page=" + page);
        req.setAttribute("type", type);
        req.setAttribute("quanlity", quanlity);
        req.setAttribute("keyword", keyword);
        req.setAttribute("result", tubeService);
        req.getRequestDispatcher("/admin/youtube_search.jsp").forward(
            req, resp);
      } else {
        req.getRequestDispatcher("/admin/youtube_search.jsp").forward(
            req, resp);
      }
    } catch (Exception e) {
      log.warning(e.toString());
      e.printStackTrace();
      resp.sendError(4004,
          "We are sorry for the inconvenience ! Please try again later !");
    }
  }

  public static void main(String[] args) {
    String keyword = "http://www.youtube.com/xuanhung2401";
    String pattern = "(?:youtube.com\\/)([\\w-]+)";
    Pattern compiledPattern = Pattern.compile(pattern);
    Matcher matcher = compiledPattern.matcher(keyword);
    if (matcher.find()) {
      keyword = matcher.group().replace("youtube.com/", "");
      System.out.println(keyword);
    } else {
      System.out.println("has no");
    }
  }
}
TOP

Related Classes of com.tubeonfire.controller.admin.YoutubeSearchServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.