public class ProgramAB extends Service implements TextListener, TextPublisher
Modifier and Type | Class and Description |
---|---|
static class |
ProgramAB.Response |
Modifier and Type | Field and Description |
---|---|
boolean |
aimlError |
boolean |
loading |
static org.slf4j.Logger |
log |
java.lang.String |
wasCleanyShutdowned |
cfgDir, dnaPool, MESSAGE_RECORDING_FORMAT_BINARY, MESSAGE_RECORDING_FORMAT_XML
Constructor and Description |
---|
ProgramAB(java.lang.String name) |
Modifier and Type | Method and Description |
---|---|
void |
addOOBTextListener(TextListener service) |
void |
addResponseListener(Service service) |
void |
addTextListener(TextListener service) |
void |
addTextPublisher(TextPublisher service) |
void |
addToMap(java.lang.String mapName,
java.lang.String mapKey,
java.lang.String mapValue) |
void |
addToSet(java.lang.String setName,
java.lang.String setValue) |
void |
attach(Attachable attachable)
This attach when overriden "routes" to the appropriately typed parameterized
attach within a service.
|
org.alicebot.ab.Chat |
getChat(java.lang.String userName,
java.lang.String botName) |
java.lang.String |
getCurrentBotName() |
java.lang.String |
getCurrentUserName() |
int |
getMaxConversationDelay() |
static ServiceType |
getMetaData()
This static method returns all the details of the class without it having
to be constructed.
|
java.lang.String |
getPath() |
java.lang.String |
getPredicate(java.lang.String username,
java.lang.String predicateName) |
ProgramAB.Response |
getResponse(java.lang.String text) |
ProgramAB.Response |
getResponse(java.lang.String username,
java.lang.String text) |
ProgramAB.Response |
getResponse(java.lang.String session,
java.lang.String text,
java.lang.Long delay)
Only respond if the last response was longer than delay ms ago
|
ProgramAB.Response |
getResponse(java.lang.String username,
java.lang.String botName,
java.lang.String text) |
java.util.Set<java.lang.String> |
getSessionNames() |
boolean |
isEnableAutoConversation() |
boolean |
isProcessOOB() |
java.util.ArrayList<java.lang.String> |
listPatterns(java.lang.String botName)
Return a list of all patterns that the AIML Bot knows to match against.
|
static void |
main(java.lang.String[] s) |
long |
millisecondsSinceLastResponse()
Return the number of milliseconds since the last response was given -1 if a
response has never been given.
|
void |
onText(java.lang.String text) |
java.lang.String |
publishOOBText(java.lang.String oobText) |
ProgramAB.Response |
publishResponse(ProgramAB.Response response) |
java.lang.String |
publishResponseText(ProgramAB.Response response) |
java.lang.String |
publishText(java.lang.String text) |
void |
reloadSession(java.lang.String session,
java.lang.String botName) |
void |
reloadSession(java.lang.String path,
java.lang.String username,
java.lang.String botname) |
void |
reloadSession(java.lang.String path,
java.lang.String username,
java.lang.String botname,
java.lang.Boolean killAimlIf) |
void |
removePredicate(java.lang.String userName,
java.lang.String predicateName) |
void |
removePredicate(java.lang.String userName,
java.lang.String botName,
java.lang.String predicateName) |
void |
repetition_count(int val) |
java.lang.String |
resolveSessionKey(java.lang.String username,
java.lang.String botname) |
void |
savePredicates()
Persist the predicates for all known sessions in the robot.
|
void |
setCurrentBotName(java.lang.String currentBotName) |
void |
setCurrentUserName(java.lang.String currentUserName) |
void |
setEnableAutoConversation(boolean enableAutoConversation) |
void |
setMaxConversationDelay(int maxConversationDelay) |
void |
setPath(java.lang.String path) |
void |
setPredicate(java.lang.String username,
java.lang.String predicateName,
java.lang.String predicateValue) |
void |
setProcessOOB(boolean processOOB) |
boolean |
setUsername(java.lang.String username)
setUsername will check if username correspond to current session If no, a
new session is started
|
void |
startSession() |
void |
startSession(java.lang.String session) |
void |
startSession(java.lang.String session,
java.lang.String botName)
Load the AIML 2.0 Bot config and start a chat session.
|
void |
startSession(java.lang.String path,
java.lang.String userName,
java.lang.String botName) |
void |
stopService()
Stops the service.
|
void |
unsetPredicate(java.lang.String username,
java.lang.String predicateName) |
void |
writeAIML() |
void |
writeAIMLIF() |
void |
writeAndQuit() |
void |
writeAndQuit(java.lang.Boolean killAimlIf)
writeAndQuit will clean shutdown BOT so next stratup is sync & faaaast
|
addListener, addListener, addTask, addTask, addTask, addTaskOneShot, allowDisplay, allowDisplay, attach, broadcastState, buildDna, buildDna, buildDnaKeys, buildDnaNames, clearLastError, close, containsTask, copyShallowFrom, createPeer, createPeer, createRootReserved, detach, detach, detach, echoHeartbeat, error, error, error, getAttached, getCfgDir, getComm, getDeclaredMethodNames, getDeclaredMethods, getDescription, getDna, getDnaString, getHostName, getInbox, getInstanceId, getIntanceName, getInterfaceSet, getLastError, getMessageSet, getMetaData, getMethodMap, getMethodNames, getMethods, getMethodToolTip, getMsg, getName, getNotifyList, getNotifyListKeySet, getOutbox, getPeerKey, getPeerName, getServiceResourceFile, getSimpleName, getTasks, getThisThread, getType, hasError, hasPeers, help, help, in, info, info, invoke, invoke, invoke, invokeOn, isAttached, isAttached, isLocal, isReady, isRunning, isRuntime, isVirtual, load, load, logTimeEnable, mergeDna, mergeDna, mergePeerDna, movePeerDna, out, out, preProcessHook, preRoutingHook, publishError, publishQueueStats, publishState, publishStats, publishStatus, purgeTask, purgeTasks, releasePeers, releaseService, removeAllListeners, removeListener, requiresSecurity, reserve, reserve, reserveRoot, reserveRoot, reserveRootAs, run, save, save, save, send, send, send, send, sendBlocking, sendBlocking, sendBlocking, sendBlocking, sendPeer, setInstanceId, setName, setPeer, setSecurityProvider, setState, setThisThread, setVirtual, sleep, stackToString, startHeartbeat, startPeer, startPeer, startRecording, startService, stopHeartbeat, stopMsgRecording, subscribe, subscribe, subscribe, toString, unsubscribe, unsubscribe, unsubscribe, updateStats, warn, warn
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
getName
getName
public static final transient org.slf4j.Logger log
public boolean aimlError
public boolean loading
public java.lang.String wasCleanyShutdowned
public void addOOBTextListener(TextListener service)
public void addResponseListener(Service service)
public void addTextListener(TextListener service)
addTextListener
in interface TextPublisher
public void addTextPublisher(TextPublisher service)
public int getMaxConversationDelay()
public ProgramAB.Response getResponse(java.lang.String text)
public ProgramAB.Response getResponse(java.lang.String username, java.lang.String botName, java.lang.String text)
text
- - the query string to the bot brainusername
- - the user that is sending the querybotName
- - the name of the bot you which to get the response frompublic ProgramAB.Response getResponse(java.lang.String username, java.lang.String text)
public java.lang.String resolveSessionKey(java.lang.String username, java.lang.String botname)
public void repetition_count(int val)
public org.alicebot.ab.Chat getChat(java.lang.String userName, java.lang.String botName)
public void removePredicate(java.lang.String userName, java.lang.String predicateName)
public void removePredicate(java.lang.String userName, java.lang.String botName, java.lang.String predicateName)
public void addToSet(java.lang.String setName, java.lang.String setValue)
public void addToMap(java.lang.String mapName, java.lang.String mapKey, java.lang.String mapValue)
public void setPredicate(java.lang.String username, java.lang.String predicateName, java.lang.String predicateValue)
public void unsetPredicate(java.lang.String username, java.lang.String predicateName)
public java.lang.String getPredicate(java.lang.String username, java.lang.String predicateName)
public ProgramAB.Response getResponse(java.lang.String session, java.lang.String text, java.lang.Long delay)
session
- - current session/usernametext
- - text to get a response fordelay
- - min amount of time that must have transpired since the last
response.public boolean isEnableAutoConversation()
public boolean isProcessOOB()
public java.util.ArrayList<java.lang.String> listPatterns(java.lang.String botName)
botName
- the bots name from which to return it's patterns.public long millisecondsSinceLastResponse()
public void onText(java.lang.String text)
onText
in interface TextListener
public java.lang.String publishOOBText(java.lang.String oobText)
public ProgramAB.Response publishResponse(ProgramAB.Response response)
public java.lang.String publishResponseText(ProgramAB.Response response)
public java.lang.String publishText(java.lang.String text)
publishText
in interface TextPublisher
public void reloadSession(java.lang.String session, java.lang.String botName)
public void reloadSession(java.lang.String path, java.lang.String username, java.lang.String botname)
public void reloadSession(java.lang.String path, java.lang.String username, java.lang.String botname, java.lang.Boolean killAimlIf)
public void savePredicates() throws java.io.IOException
java.io.IOException
public void setEnableAutoConversation(boolean enableAutoConversation)
public void setMaxConversationDelay(int maxConversationDelay)
public void setProcessOOB(boolean processOOB)
public void startSession()
public void startSession(java.lang.String session)
public java.util.Set<java.lang.String> getSessionNames()
public void startSession(java.lang.String session, java.lang.String botName)
session
- - The new session namebotName
- - The name of the bot to load. (example: alice2)public void startSession(java.lang.String path, java.lang.String userName, java.lang.String botName)
public void setPath(java.lang.String path)
public void setCurrentBotName(java.lang.String currentBotName)
public boolean setUsername(java.lang.String username)
username
- - The new usernamejava.io.IOException
public void writeAIML()
public void writeAIMLIF()
public void writeAndQuit()
public void writeAndQuit(java.lang.Boolean killAimlIf)
killAimlIf
- - Delete aimlif and restart bot from aiml - Useful to push aiml
modifications in realtime - Without restart whole scriptpublic void attach(Attachable attachable)
Service
public void attach(Attachable service) { if (ServoControl.class.isAssignableFrom(service.getClass())) { attachServoControl((ServoControl) service); return; } ... route to more attach functions .... error("%s doesn't know how to attach a %s", getClass().getSimpleName(), service.getClass().getSimpleName()); } And within attachServoControl : public void attachServoControl(ServoControl service) { // guard if (!isAttached(service)){ return; } ... attach logic .... // call to attaching service service.attach(this); }
attach
in interface Attachable
attach
in class Service
attachable
- - the service to attach from this servicepublic void stopService()
Service
stopService
in interface ServiceInterface
stopService
in class Service
public static ServiceType getMetaData()
public static void main(java.lang.String[] s) throws java.io.IOException
java.io.IOException
public java.lang.String getPath()
public java.lang.String getCurrentUserName()
public void setCurrentUserName(java.lang.String currentUserName)
public java.lang.String getCurrentBotName()