68 lines
2.1 KiB
C#
68 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
|
|
/*
|
|
ChatterBotAPI
|
|
Copyright (C) 2011 pierredavidbelanger@gmail.com
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
namespace Services.CleverBotApi
|
|
{
|
|
internal class Pandorabots : ChatterBot
|
|
{
|
|
private readonly string botid;
|
|
|
|
public Pandorabots(string botid)
|
|
{
|
|
this.botid = botid;
|
|
}
|
|
|
|
public ChatterBotSession CreateSession()
|
|
{
|
|
return new PandorabotsSession(botid);
|
|
}
|
|
}
|
|
|
|
internal class PandorabotsSession : ChatterBotSession
|
|
{
|
|
private readonly IDictionary<string, string> vars;
|
|
|
|
public PandorabotsSession(string botid)
|
|
{
|
|
vars = new Dictionary<string, string>();
|
|
vars["botid"] = botid;
|
|
vars["custid"] = Guid.NewGuid().ToString();
|
|
}
|
|
|
|
public async Task<ChatterBotThought> Think(ChatterBotThought thought)
|
|
{
|
|
vars["input"] = thought.Text;
|
|
|
|
var response = await Utils.Post("http://www.pandorabots.com/pandora/talk-xml", vars, null).ConfigureAwait(false);
|
|
|
|
var responseThought = new ChatterBotThought();
|
|
responseThought.Text = Utils.XPathSearch(response, "//result/that/text()");
|
|
|
|
return responseThought;
|
|
}
|
|
|
|
public async Task<string> Think(string text)
|
|
{
|
|
return (await Think(new ChatterBotThought {Text = text}).ConfigureAwait(false)).Text;
|
|
}
|
|
}
|
|
} |