📄 myrobot.cs
字号:
using System;
using System.IO;
using System.Drawing;
using System.Configuration;
using System.Runtime.Serialization;
using System.Collections.Specialized;
using System.Xml;
using System.Xml.Serialization;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;
using Incesoft.BotPlatform.SDK;
using Incesoft.BotPlatform.SDK.Interface;
namespace BotPlatformConsoleServer
{
public class MyRobot
{
public string address;
public int port;
public string user;
public string password;
static void Main(string[] args)
{
MyRobot me = new MyRobot();
me.address = "msnbot.incesoft.com";
me.port = 6602;
me.user = "spid";
me.password = "password";
IRobotServer server = RobotServerFactory.Instance.createRobotServer(me.address, me.port);
server.addRobotHandler(new MyHandler(server));
server.addConnectionListener(new MyListener());
try
{
server.login(me.user, me.password, 300000);
}
catch (RobotException e)
{
Console.Out.WriteLine("Failed to connect :" + e.Message);
}
}
}
class MyHandler : IRobotHandler
{
public MyHandler(IRobotServer server)
{
this.server = server;
}
private IRobotServer server;
private Random rdm = new Random();
public System.String commandList = "*****************************************\r" +
"** BOTPLATFORM SDK DEMO COMMAND LIST **\r" +
"*****************************************\r" +
" preface --- test message preface. \r" +
" emo ------- test emoticon.\r" +
" nudge ----- test nudge.\r" +
" p4 -------- test msn activity.\r" +
" typing ---- test typing info.\r" +
" name ------ test change friendly name.\r" +
" pm -------- test change personal msg.\r" +
" dp -------- test change display picture.\r" +
" bye --------- test close session.\r" +
" help ------ print this command list.\r" +
" ? --------- print this command list.\r" +
" ent --------- print enterprise only command list.";
public System.String commandListEnt = "*****************************************\r" +
"** BOTPLATFORM SDK ENTERPRISE ONLY COMMAND LIST **\r" +
"** Only use the following commands after upgraded your sp account **\r" +
"*****************************************\r" +
" file ------ test file transfer.\r" +
" bg -------- test background sharing.\r" +
" ink ------- test send ink.\r" +
" wink ------ test send wink.\r" +
" voice ----- test send voiceclip.\r" +
" webcam ---- test send webcam\r" +
" cs <account> -------- test create session.\r" +
" pu <account> ------ test push offline message.\r" +
" iv <account> -------- test invite user.\r" +
" ent --------- print this command list.";
public virtual void sessionOpened(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: sessionOpened");
try
{
switch(session.OpenMode)
{
case SessionOpenMode.OPEN_MODE_CONV_OPEN:
session.send(commandList);
break;
case SessionOpenMode.OPEN_MODE_ROBOT:
session.send("You have an alert message: blablabla");
break;
default:
break;
}
}
catch (RobotException e)
{
util.consoleOut(e.ToString());
}
}
public virtual void sessionClosed(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: sessionClosed");
}
public virtual void messageReceived(IRobotSession session, IRobotMessage message)
{
System.Console.Out.WriteLine("EVENT: messageReceived");
try
{
System.String command = message.String;
IRobotMessage msg = session.createMessage();
if ("help".ToUpper().Equals(command.ToUpper()) || "?".ToUpper().Equals(command.ToUpper()))
{
session.send(commandList);
}
else if ("preface".ToUpper().Equals(command.ToUpper()))
{
msg.setSignature("preface-" + rdm.Next());
msg.setString("test change preface");
session.send(msg);
}
else if ("nudge".ToUpper().Equals(command.ToUpper()))
{
session.sendNudge();
}
else if ("p4".ToUpper().Equals(command.ToUpper()))
{
session.sendActivity("http://sp.incesoft.com", "INCE SP HOME PAGE");
}
else if ("typing".ToUpper().Equals(command.ToUpper()))
{
session.sendTyping();
}
else if ("name".ToUpper().Equals(command.ToUpper()))
{
server.DisplayName = "displayname-" + rdm.Next();
}
else if ("pm".ToUpper().Equals(command.ToUpper()))
{
server.PersonalMessage = "personalmessage-" + rdm.Next();
}
else if ("dp".ToUpper().Equals(command.ToUpper()))
{
server.DisplayPicture = "__default.dat";
}
else if ("emo".ToUpper().Equals(command.ToUpper()))
{
msg.registerEmoticon("(1)", "bear.png");
msg.registerEmoticon("(2)", "beaver.png");
msg.registerEmoticon("(3)", "balloon.png");
msg.setString("a(1)b(2)c(3)d");
session.send(msg);
}
else if ("emo".ToUpper().Equals(command.ToUpper())){
session.send(commandListEnt);
}
else if ("cs".ToUpper().Equals(command.Substring(0, 2).ToUpper()))
{
server.createSession(session.Robot, command.Substring(2).Trim());
}
else if ("pu".ToUpper().Equals(command.Substring(0, 2).ToUpper()))
{
server.pushMessage(session.Robot, command.Substring(2).Trim(), "You have an offline message: blablabla");
}
else if ("iv".ToUpper().Equals(command.Substring(0, 2).ToUpper()))
{
session.inviteUser(command.Substring(2).Trim());
}
else if ("bye".ToUpper().Equals(command.ToUpper()))
{
session.close();
}
else
{
System.String ret = "font name: " + message.FontName + "\r";
ret = ret + "font style: " + message.FontStyle + "\r";
ret = ret + "font color: " + message.FontColor.ToString() + "\r";
ret = ret + "message content: " + "\r";
ret = ret + message.String;
session.send(ret);
}
}
catch (RobotException e)
{
util.consoleOut(e.ToString());
}
}
public virtual void nudgeReceived(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: nudgeReceived");
}
public virtual void activityAccepted(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: activityAccepted");
}
public virtual void activityRejected(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: activityRejected");
}
public virtual void userAdd(String robot, String user)
{
System.Console.Out.WriteLine("EVENT: userAdd");
}
public virtual void userRemove(String robot, String user)
{
System.Console.Out.WriteLine("EVENT: userRemove");
}
public virtual void exceptionCaught(IRobotSession session, System.Exception cause)
{
System.Console.Out.WriteLine("SERVER ERROR: " + cause.Message);
}
public virtual void activityClosed(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: activityClosed");
}
public virtual void fileAccepted(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: fileAccepted");
}
public virtual void fileRejected(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: fileRejected");
}
public virtual void fileTransferEnded(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: fileTransferEnded");
}
public virtual void backgroundAccepted(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: backgroundAccepted");
}
public virtual void backgroundRejected(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: backgroundRejected");
}
public virtual void backgroundTransferEnded(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: backgroundTransferEnded");
}
public virtual void webcamAccepted(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: webcamAccepted");
}
public virtual void webcamRejected(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: webcamRejected");
}
public virtual void activityLoaded(IRobotSession session)
{
System.Console.Out.WriteLine("EVENT: activityLoaded");
}
public virtual void activityReceived(IRobotSession session, System.String data)
{
System.Console.Out.WriteLine("EVENT: activityReceived:" + data);
}
public virtual void userJoined(IRobotSession session, IRobotUser user)
{
System.Console.Out.WriteLine("EVENT: userJoined : " + user);
}
public virtual void userLeft(IRobotSession session, IRobotUser user)
{
System.Console.Out.WriteLine("EVENT: userLeft :" + user);
}
}
class MyListener : IRobotConnectionListener
{
public void serverConnected(IRobotServer server)
{
Console.Out.WriteLine("Server connected.");
}
public void serverReconnected(IRobotServer server)
{
Console.Out.WriteLine("Server reconnected.");
}
public void serverDisconnected(IRobotServer server)
{
Console.Out.WriteLine("Server disconnected.");
}
public void serverLoggedIn(IRobotServer sever)
{
Console.Out.WriteLine("Server logged in.");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -