IrcServlet.java 3.89 KB
/*
 * Copyright Codecrew Ry
 * 
 * All rights reserved.
 * 
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software. 
 * 
 * Any distribution and use in source and binary forms, with or without 
 * modification is not permitted without explicit written permission from the 
 * copyright owner. 
 * 
 * A non-exclusive royalty-free right is granted to the copyright owner of the 
 * Software to use, modify and distribute all modifications to the Software in 
 * future versions of the Software. 
 * 
 */
/*
 * Copyright Codecrew Ry
 *
 * All rights reserved. 	
 *
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such * software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software.
 *
 * Any distribution and use in source and binary forms, with or without
 * modification is not permitted without explicit written permission from the
 * copyright owner.
 *
 * A non-exclusive royalty-free right is granted to the copyright owner of the
 * Software to use, modify and distribute all modifications to the Software in
 * future versions of the Software.
 * 
 */
package fi.codecrew.moya.servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.ejb.EJB;
import javax.ejb.Startup;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.PlaceBeanLocal;
import fi.iudex.utils.irc.IrcBot;
import fi.iudex.utils.irc.IrcBotListener;

/**
 * Servlet implementation class SshServlet
 */
@WebServlet(urlPatterns = "/irc", loadOnStartup = 10)
public class IrcServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static final Logger logger = LoggerFactory.getLogger(IrcServlet.class);

	@EJB
	private EventBeanLocal eventbean;

	@EJB
	private PermissionBeanLocal permBean;
	private final ArrayList<IrcBot> bots = new ArrayList<>();

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public IrcServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	private class EventListener {

	}

	@EJB
	private PlaceBeanLocal placebean;

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		IrcBot bot = new IrcBot("irc.cc.tut.fi", "#codecrew.ry", "moya-bot");
		bot.addCmdListener("places", new IrcPlaceFetcher(placebean));
		bots.add(bot);
		bot.start();
		bot.addCmdListener("foo", new IrcBotListener() {

			@Override
			public String getUsageMessage() {
				// TODO Auto-generated method stub
				return null;
			}

			@Override
			public void executeIrc(IrcBot bot, String data) {
				bot.say("");
			}
		});

	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		logger.info("Destroying irc servlet");
		for (IrcBot b : bots) {
			b.stop();
		}
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String msg = request.getParameter("msg");
		if (msg != null && !msg.isEmpty())
			for (IrcBot b : bots) {
				b.say(msg);
			}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}