scansion/objects/component.lua

Thu, 23 Mar 2023 18:28:20 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 23 Mar 2023 18:28:20 +0000
changeset 181
3a9b9c98304a
permissions
-rw-r--r--

Add support for component connections

181
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local async = require "scansion.async";
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local client = require "scansion.objects.client";
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 require "verse".init("component");
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 return setmetatable({
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 connects = function (component)
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 local wait, done = async.waiter();
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 component.stream:hook("ready", function ()
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 component.stream.conn:pause()
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 component.log"ready"
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 done()
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 component.log("ready done")
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 end);
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 component.stream:debug("Connecting as a component...");
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 component.stream:connect_component(component.jid, component.password);
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 wait();
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 end;
3a9b9c98304a Add support for component connections
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 }, { __index = client });

mercurial