mirror of https://github.com/renaissanceorg/dante
Compare commits
3 Commits
8f8917c55e
...
8040bde4e9
Author | SHA1 | Date |
---|---|---|
Tristan B. Velloza Kildaire | 8040bde4e9 | |
Tristan B. Velloza Kildaire | 3479d380c3 | |
Tristan B. Velloza Kildaire | 7f467b5385 |
3
dub.json
3
dub.json
|
@ -4,9 +4,10 @@
|
|||
],
|
||||
"copyright": "Tristan B. Kildaire",
|
||||
"dependencies": {
|
||||
"davinci": "~master",
|
||||
"davinci": ">=0.1.11",
|
||||
"gogga": ">=2.1.18",
|
||||
"guillotine": ">=0.2.1-alpha",
|
||||
"niknaks": ">=0.6.0",
|
||||
"river": ">=0.3.7",
|
||||
"tristanable": ">=4.0.0-beta"
|
||||
},
|
||||
|
|
|
@ -99,15 +99,56 @@ public class DanteClient
|
|||
import davinci;
|
||||
NopMessage testMessage = new NopMessage();
|
||||
testMessage.setTestField("Lekker Boetie");
|
||||
|
||||
import std.stdio;
|
||||
writeln(testMessage.getEncoded());
|
||||
|
||||
BaseMessage msg = new BaseMessage(MessageType.CLIENT_TO_SERVER, CommandType.NOP_COMMAND, testMessage);
|
||||
|
||||
return makeRequest(msg);
|
||||
}
|
||||
|
||||
public Future authenticate(string username, string password)
|
||||
{
|
||||
import davinci.c2s.auth;
|
||||
import davinci;
|
||||
AuthMessage authMessage = new AuthMessage();
|
||||
authMessage.setUsername(username);
|
||||
authMessage.setPassword(password);
|
||||
|
||||
BaseMessage msg = new BaseMessage(MessageType.CLIENT_TO_SERVER, CommandType.AUTH_COMMAND, authMessage);
|
||||
|
||||
// TODO: We should handle auth here for the user, instead of just returning a future?
|
||||
|
||||
return makeRequest(msg);
|
||||
}
|
||||
|
||||
public Future enumerateChannels_imp(ulong offset, ubyte limit)
|
||||
{
|
||||
import davinci.c2s.channels : ChannelEnumerateRequest;
|
||||
import davinci;
|
||||
ChannelEnumerateRequest chanEnumReq = new ChannelEnumerateRequest();
|
||||
|
||||
|
||||
BaseMessage msg = new BaseMessage(MessageType.CLIENT_TO_SERVER, CommandType.CHANNELS_ENUMERATE_REQ, chanEnumReq);
|
||||
|
||||
// TODO: We should handle auth here for the user, instead of just returning a future?
|
||||
|
||||
return makeRequest(msg);
|
||||
}
|
||||
|
||||
public string[] enumerateChannels(ulong offset, ubyte limit)
|
||||
{
|
||||
import davinci.c2s.channels : ChannelEnumerateReply;
|
||||
BaseMessage response = cast(BaseMessage)enumerateChannels_imp(offset, limit).await().getValue().value.object;
|
||||
|
||||
ChannelEnumerateReply responseCommand = cast(ChannelEnumerateReply)response.getCommand();
|
||||
|
||||
return responseCommand.getChannels();
|
||||
}
|
||||
|
||||
public string[] enumerateChannels()
|
||||
{
|
||||
return enumerateChannels(0, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes a request and returns a future which
|
||||
* can be awaited on for when the request
|
||||
|
@ -190,5 +231,37 @@ unittest
|
|||
writeln("Awaitinf future... [done]");
|
||||
writeln("Future result: ", res.getValue().value.object);
|
||||
|
||||
client.stop();
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
DanteClient client = new DanteClient(new UnixAddress("/tmp/renaissance.sock"));
|
||||
client.start();
|
||||
|
||||
Future fut = client.authenticate("deavmi", "testpassword");
|
||||
|
||||
writeln("Awaitinf future...");
|
||||
Result res = fut.await();
|
||||
writeln("Awaitinf future... [done]");
|
||||
writeln("Future result: ", res.getValue().value.object);
|
||||
|
||||
client.stop();
|
||||
}
|
||||
|
||||
version(unittest)
|
||||
{
|
||||
import niknaks.debugging : dumpArray;
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
DanteClient client = new DanteClient(new UnixAddress("/tmp/renaissance.sock"));
|
||||
client.start();
|
||||
|
||||
writeln("Waiting for channels...");
|
||||
string[] channels = client.enumerateChannels();
|
||||
writeln(dumpArray!(channels));
|
||||
|
||||
client.stop();
|
||||
}
|
Loading…
Reference in New Issue