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",
|
"copyright": "Tristan B. Kildaire",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"davinci": "~master",
|
"davinci": ">=0.1.11",
|
||||||
"gogga": ">=2.1.18",
|
"gogga": ">=2.1.18",
|
||||||
"guillotine": ">=0.2.1-alpha",
|
"guillotine": ">=0.2.1-alpha",
|
||||||
|
"niknaks": ">=0.6.0",
|
||||||
"river": ">=0.3.7",
|
"river": ">=0.3.7",
|
||||||
"tristanable": ">=4.0.0-beta"
|
"tristanable": ">=4.0.0-beta"
|
||||||
},
|
},
|
||||||
|
|
|
@ -99,15 +99,56 @@ public class DanteClient
|
||||||
import davinci;
|
import davinci;
|
||||||
NopMessage testMessage = new NopMessage();
|
NopMessage testMessage = new NopMessage();
|
||||||
testMessage.setTestField("Lekker Boetie");
|
testMessage.setTestField("Lekker Boetie");
|
||||||
|
|
||||||
import std.stdio;
|
|
||||||
writeln(testMessage.getEncoded());
|
|
||||||
|
|
||||||
BaseMessage msg = new BaseMessage(MessageType.CLIENT_TO_SERVER, CommandType.NOP_COMMAND, testMessage);
|
BaseMessage msg = new BaseMessage(MessageType.CLIENT_TO_SERVER, CommandType.NOP_COMMAND, testMessage);
|
||||||
|
|
||||||
return makeRequest(msg);
|
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
|
* Makes a request and returns a future which
|
||||||
* can be awaited on for when the request
|
* can be awaited on for when the request
|
||||||
|
@ -190,5 +231,37 @@ unittest
|
||||||
writeln("Awaitinf future... [done]");
|
writeln("Awaitinf future... [done]");
|
||||||
writeln("Future result: ", res.getValue().value.object);
|
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();
|
client.stop();
|
||||||
}
|
}
|
Loading…
Reference in New Issue