73 lines
1.9 KiB
TypeScript
73 lines
1.9 KiB
TypeScript
import { SignaldAPI, CaptchaRequiredException } from "node-signald";
|
|
import * as process from "process";
|
|
import * as prompt from "prompt";
|
|
|
|
const SOCKETFILE =
|
|
process.env.SIGNALD_SOCKET || "/run/user/1000/signald/signald.sock";
|
|
|
|
const validate = () => {
|
|
if (!process.env.NUMBER)
|
|
throw new Error(
|
|
"Please set the NUMBER env var to the number you want to test with."
|
|
);
|
|
};
|
|
const main = async () => {
|
|
validate();
|
|
const signald = new SignaldAPI();
|
|
await signald.connectAsync(SOCKETFILE);
|
|
try {
|
|
await signald.register(process.env.NUMBER);
|
|
} catch (e) {
|
|
console.log("GOT A error", e.name);
|
|
if (e.name === "CaptchaRequiredException") {
|
|
console.log(`
|
|
|
|
CAPTCHA REQUIRED
|
|
-----------------
|
|
|
|
1. Visit https://signalcaptchas.org/registration/generate.html
|
|
2. Appease the machine
|
|
3. Bring back your captcha gobbly-gook here
|
|
`);
|
|
console.log("captcha required");
|
|
|
|
prompt.start();
|
|
const { captcha } = await prompt.get(["captcha"]);
|
|
await signald.register(process.env.NUMBER, false, captcha);
|
|
} else {
|
|
console.error(e);
|
|
}
|
|
}
|
|
|
|
const { code } = await prompt.get(["code"]);
|
|
await signald.verify(process.env.NUMBER, code);
|
|
};
|
|
|
|
const main2 = async () => {
|
|
validate();
|
|
const signald = new SignaldAPI();
|
|
await signald.connectAsync(SOCKETFILE);
|
|
let result = await signald.listAccounts();
|
|
console.log(JSON.stringify(result));
|
|
signald.on("messagev0", (envelope) => {
|
|
const source = envelope.source.number;
|
|
const body = envelope.dataMessage.body;
|
|
const when = new Date(envelope.timestamp).toDateString();
|
|
console.log(`${when} [${source}]: ${body}`);
|
|
});
|
|
|
|
await Promise.all(
|
|
result.accounts.map(
|
|
async (account: any) => await signald.requestSync(account.address.uuid)
|
|
)
|
|
);
|
|
|
|
await Promise.all(
|
|
result.accounts.map(
|
|
async (account: any) => await signald.subscribev0(account.address.uuid)
|
|
)
|
|
);
|
|
};
|
|
|
|
// main();
|
|
main2();
|