View Javadoc

1   /***
2    * 
3    */
4   package hu.elte.tribus.services;
5   
6   import hu.elte.tribus.interfaces.AnsverFinder;
7   import hu.elte.tribus.interfaces.ConversationDao;
8   import hu.elte.tribus.interfaces.QaDao;
9   import hu.elte.tribus.interfaces.UserDao;
10  import hu.elte.tribus.interfaces.UserTracker;
11  import hu.elte.tribus.model.Topic;
12  
13  import java.io.IOException;
14  import java.util.ArrayList;
15  import java.util.List;
16  
17  import org.apache.log4j.Logger;
18  import org.schwering.irc.lib.IRCConnection;
19  
20  /***
21   * @author kocka
22   *
23   */
24  public class IRCService {
25  
26  	private String nickName = null;
27  	private String ircServer = null;
28  	private int port = 6667;
29  	private List<String> channels = new ArrayList<String>();
30  	private String password;
31  	
32  	private static final Logger logger = Logger.getLogger(IRCService.class);
33  	
34  	private IRCConnection connection; 
35  
36  	private UserTracker tracker;
37  
38  	private AnsverFinder ansverFinder;
39  	
40  	private UserDao userDao;
41  	
42  	private QaDao qaDao;
43  	
44  	private ConversationDao conversationDao;
45  	
46  	public void init() {
47  		logger.info("initializing irc connection");
48  		connection = new IRCConnection(ircServer, new int[]{port}, password, nickName, "yikulju","Yikulju FAQ-O-MAT");
49  		try {
50  			connection.setColors(false);
51  			connection.setPong(true);
52  			connection.setDaemon(true);
53  			connection.connect();
54  			for(Topic topic : qaDao.getTopicList()) {
55  				connection.doJoin("#"+topic.getName(), topic.getDesc());
56  				connection.doTopic(topic.getDesc());
57  			}
58  		} catch (IOException e) {
59  			logger.error("Could not connect trying later", e);
60  		}
61  		logger.info("joined all channells");
62  	}
63  
64  	public void stop(){
65  		connection.close();
66  	}
67  
68  	public List<String> getChannels() {
69  		return channels;
70  	}
71  
72  	public void setChannels(List<String> channels) {
73  		this.channels = channels;
74  	}
75  
76  	public String getIrcServer() {
77  		return ircServer;
78  	}
79  
80  	public void setIrcServer(String ircServer) {
81  		this.ircServer = ircServer;
82  	}
83  
84  	public String getNickName() {
85  		return nickName;
86  	}
87  
88  	public void setNickName(String nickName) {
89  		this.nickName = nickName;
90  	}
91  
92  	public int getPort() {
93  		return port;
94  	}
95  
96  	public void setPort(int port) {
97  		this.port = port;
98  	}
99  
100 	public String getPassword() {
101 		return password;
102 	}
103 
104 	public void setPassword(String password) {
105 		this.password = password;
106 	}
107 
108 	public AnsverFinder getAnsverFinder() {
109 		return ansverFinder;
110 	}
111 
112 	public void setAnsverFinder(AnsverFinder ansverFinder) {
113 		this.ansverFinder = ansverFinder;
114 	}
115 
116 	public UserTracker getTracker() {
117 		return tracker;
118 	}
119 
120 	public void setTracker(UserTracker tracker) {
121 		this.tracker = tracker;
122 	}
123 
124 	public UserDao getUserDao() {
125 		return userDao;
126 	}
127 
128 	public void setUserDao(UserDao userDao) {
129 		this.userDao = userDao;
130 	}
131 
132 	public QaDao getQaDao() {
133 		return qaDao;
134 	}
135 
136 	public void setQaDao(QaDao qaDao) {
137 		this.qaDao = qaDao;
138 	}
139 
140 	public ConversationDao getConversationDao() {
141 		return conversationDao;
142 	}
143 
144 	public void setConversationDao(ConversationDao conversationDao) {
145 		this.conversationDao = conversationDao;
146 	}
147 	
148 }