40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
var {login} = require("masto");
|
|
var config = require("./config");
|
|
var client = require("./client");
|
|
var {WebhookClient} = require("discord.js");
|
|
|
|
var webhook = new WebhookClient({url: config.masto_webhook});
|
|
module.exports.webhook = webhook;
|
|
|
|
client.once("ready", async () => {
|
|
var donger = await login(config.masto);
|
|
console.log("donger logged in");
|
|
module.exports.donger = donger;
|
|
(async function openStream() {
|
|
try {
|
|
var stream = await donger.stream.streamUser();
|
|
module.exports.stream = stream;
|
|
stream.on("update", toot => {
|
|
|
|
if (toot.account.id != config.masto_account_id) return;
|
|
if (toot.visibility != "public") return;
|
|
if (toot.inReplyToAccountId && toot.inReplyToAccountId != toot.account.id) return;
|
|
|
|
webhook.send(toot.url || toot.reblog.url); //todo maybe custom embed
|
|
|
|
//todo maybe handle deletes
|
|
});
|
|
stream.ws.on("close", () => {
|
|
console.log("donger stream closed");
|
|
setTimeout(openStream, 10000);
|
|
});
|
|
} catch (error) {
|
|
console.error("donger stream", error.message);
|
|
setTimeout(openStream, 60000);
|
|
}
|
|
})();
|
|
});
|
|
|
|
|
|
|