Here is a neat little site that provides a web based Groovy console with the ability to run Groovy scripts. It is deployed on the Google App Engine (very cool idea).
http://groovyconsole.appspot.com/
Just for fun, here is a little groovy script to read a CNN feed. This is also running as a bot within our environment:
def url = "http://rss.cnn.com/rss/cnn_topstories.rss"
println 'The top three news items today:'
def items = new XmlParser().parse(url).channel[0].item
for (item in items[0..2]) {
println "${item.title.text()} - ${item.link.text()}"
println item.description.text()
println '----'
}
Tuesday, August 11, 2009
Instant Bots - Now with Groovy
Over the years, Instant has developed Sametime bots in Java, .Net, and VB. We have also created OCS bots in VB and .Net. These have all been fun projects.
However, nothing matches the pleasure of developing IM applications using groovy.
Groovy is light weight and just plain fun. I'm especially impressed with XMLSlurper - which makes dealing with XML painless (well, actually productive).
Here is a little weather bot developed in groovy.
1: Let's login to Sametime
public weatherBot() {
super()
registerAndLogin("ST", "stserver.instant-tech.com", "weather bot", "");
}
2: Let's say Hello when we receive an IM:
public void ImReceived(ITFIMEvent ImEvent)
{
super.ImReceived(ImEvent)
String msgType = ImEvent.getMsgServiceType()
String prefix = "Welcome to the Instant Weather bot. Please enter a zipcode:"
MsgServiceInterface myService = getMsgService(msgType)
myService.sendText(ImEvent.getSenderId(),
prefix ,
ImEvent.getConfigId())
}
3: Let's return the weather (with a little help from XMLSlurper)
public void ImTextReceived(ITFIMEvent ImEvent)
{
super.ImTextReceived(ImEvent)
String msgType = ImEvent.getMsgServiceType()
MsgServiceInterface myService = getMsgService(msgType)
def baseUrl = "http://weather.yahooapis.com/forecastrss"
String zip = ""
String outPut = ""
//def zip = '03824'
zip = ImEvent.getText()
def url = baseUrl + "?p=" + zip
def xml = url.toURL().text
def rss = new XmlSlurper().parseText(xml)
outPut = "Your temp is " + rss.channel.item.condition.@temp + " and conditions are: " + rss.channel.item.condition.@text
myService.sendText(ImEvent.getSenderId(),
outPut,
ImEvent.getConfigId())
}
However, nothing matches the pleasure of developing IM applications using groovy.
Groovy is light weight and just plain fun. I'm especially impressed with XMLSlurper - which makes dealing with XML painless (well, actually productive).
Here is a little weather bot developed in groovy.
1: Let's login to Sametime
public weatherBot() {
super()
registerAndLogin("ST", "stserver.instant-tech.com", "weather bot", "");
}
2: Let's say Hello when we receive an IM:
public void ImReceived(ITFIMEvent ImEvent)
{
super.ImReceived(ImEvent)
String msgType = ImEvent.getMsgServiceType()
String prefix = "Welcome to the Instant Weather bot. Please enter a zipcode:"
MsgServiceInterface myService = getMsgService(msgType)
myService.sendText(ImEvent.getSenderId(),
prefix ,
ImEvent.getConfigId())
}
3: Let's return the weather (with a little help from XMLSlurper)
public void ImTextReceived(ITFIMEvent ImEvent)
{
super.ImTextReceived(ImEvent)
String msgType = ImEvent.getMsgServiceType()
MsgServiceInterface myService = getMsgService(msgType)
def baseUrl = "http://weather.yahooapis.com/forecastrss"
String zip = ""
String outPut = ""
//def zip = '03824'
zip = ImEvent.getText()
def url = baseUrl + "?p=" + zip
def xml = url.toURL().text
def rss = new XmlSlurper().parseText(xml)
outPut = "Your temp is " + rss.channel.item.condition.@temp + " and conditions are: " + rss.channel.item.condition.@text
myService.sendText(ImEvent.getSenderId(),
outPut,
ImEvent.getConfigId())
}
Interesting Flex on Grails Book
Here is a link to a very interesting Flex on Grails book.
http://sites.google.com/site/flexongrails/
In researching our next platform, I'm impressed with Grails. Grails seems to create a platform where applications are developed with few lines of code, they use very efficient components (i.e. groovy), and the focus is on a high quality applicaiton built on industry best practices.
As we extend our UI from Notes, we will take advantage of both Grails and Groovy.
http://sites.google.com/site/flexongrails/
In researching our next platform, I'm impressed with Grails. Grails seems to create a platform where applications are developed with few lines of code, they use very efficient components (i.e. groovy), and the focus is on a high quality applicaiton built on industry best practices.
As we extend our UI from Notes, we will take advantage of both Grails and Groovy.
Subscribe to:
Posts (Atom)