forked from cory/tildefriends
Cory McWilliams
d293637741
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3530 ed5197a5-7fde-0310-b194-c3ffbd925b24
76 lines
1.4 KiB
JavaScript
76 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
//! {
|
|
//! "chat": {
|
|
//! "version": 1,
|
|
//! "settings": [
|
|
//! {"name": "nickname", "type": "text"},
|
|
//! {"name": "password", "type": "password"}
|
|
//! ]
|
|
//! },
|
|
//! "category": "libraries"
|
|
//! }
|
|
|
|
let gServices = {};
|
|
|
|
class ChatService {
|
|
constructor(options) {
|
|
let self = this;
|
|
self._name = options.name;
|
|
self._callback = options.callback;
|
|
setTimeout(function() {
|
|
self._callback({
|
|
action: "message",
|
|
from: "service",
|
|
to: self._name,
|
|
message: "Hello, world!",
|
|
conversation: null,
|
|
});
|
|
}, 1000);
|
|
}
|
|
|
|
sendMessage(target, message) {
|
|
let self = this;
|
|
setTimeout(function() {
|
|
self._callback({
|
|
action: "message",
|
|
from: target,
|
|
to: self._name,
|
|
message: "I saw you say: " + message,
|
|
conversation: target,
|
|
});
|
|
}, 500);
|
|
return self._callback({
|
|
action: "message",
|
|
from: self._name,
|
|
to: target,
|
|
message: message,
|
|
conversation: target,
|
|
});
|
|
}
|
|
}
|
|
|
|
core.register("onMessage", function(sender, message) {
|
|
print(message);
|
|
let service = gServices[message.name];
|
|
if (!service) {
|
|
service = new ChatService(message);
|
|
gServices[message.name] = service;
|
|
} else {
|
|
service._callback = message.callback || service._callback;
|
|
}
|
|
|
|
setTimeout(function() {
|
|
service._callback({
|
|
action: "message",
|
|
from: "service",
|
|
to: service._name,
|
|
message: "I got your message.",
|
|
conversation: null,
|
|
});
|
|
}, 500);
|
|
|
|
return {
|
|
sendMessage: service.sendMessage.bind(service),
|
|
};
|
|
}); |