Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Antti Väyrynen
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit ad194633
authored
Oct 24, 2014
by
Tuomas Riihimäki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initial IRC bot implementation :)
1 parent
ef360b00
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
235 additions
and
0 deletions
code/moya-database/src/main/java/fi/codecrew/moya/model/IrcChannel.java
code/moya-web/src/main/java/fi/codecrew/moya/servlet/IrcServlet.java
code/moya-database/src/main/java/fi/codecrew/moya/model/IrcChannel.java
0 → 100644
View file @
ad19463
/*
* 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
.
model
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.EnumType
;
import
javax.persistence.Enumerated
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.Table
;
import
javax.persistence.UniqueConstraint
;
@Entity
()
@Table
(
name
=
"irc_channels"
,
uniqueConstraints
=
@UniqueConstraint
(
columnNames
=
{
IrcChannel
.
COLUMN_EVENT_ID
,
IrcChannel
.
COLUMN_CHANNEL
,
}))
public
class
IrcChannel
extends
GenericEntity
{
protected
static
final
String
COLUMN_CHANNEL
=
"channel"
;
protected
static
final
String
COLUMN_EVENT_ID
=
"event_id"
;
private
static
final
long
serialVersionUID
=
5347009472418354347L
;
public
static
enum
IrcNetwork
{
IRCNET
(
"irc.nebula.fi"
),
QUAKENET
(
"irc.fi.quakenet.org"
);
private
final
String
server
;
private
IrcNetwork
(
String
server
)
{
this
.
server
=
server
;
}
public
String
getServer
()
{
return
server
;
}
}
@JoinColumn
(
name
=
COLUMN_EVENT_ID
)
private
LanEvent
event
;
@Column
(
nullable
=
false
,
name
=
COLUMN_CHANNEL
)
private
String
channel
;
@Enumerated
(
EnumType
.
STRING
)
private
IrcNetwork
network
;
public
LanEvent
getEvent
()
{
return
event
;
}
public
void
setEvent
(
LanEvent
event
)
{
this
.
event
=
event
;
}
public
String
getChannel
()
{
return
channel
;
}
public
void
setChannel
(
String
channel
)
{
this
.
channel
=
channel
;
}
public
IrcNetwork
getNetwork
()
{
return
network
;
}
public
void
setNetwork
(
IrcNetwork
network
)
{
this
.
network
=
network
;
}
}
code/moya-web/src/main/java/fi/codecrew/moya/servlet/IrcServlet.java
0 → 100644
View file @
ad19463
/*
* 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
}
}
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment