Compare commits

..

3 Commits

Author SHA1 Message Date
lamp ab43d009b0 masto auto reconnect stream 2022-07-18 13:02:23 -07:00
lamp b18c90996e fix 2022-07-17 22:21:01 -07:00
lamp 1f4dec517f masto bridge v1 2022-07-17 22:17:24 -07:00
2 changed files with 32 additions and 6 deletions
+3 -1
View File
@@ -82,5 +82,7 @@ module.exports = {
masto: { masto: {
url: "https://mastodong.lol", url: "https://mastodong.lol",
accessToken: process.env.MASTO_TOKEN accessToken: process.env.MASTO_TOKEN
} },
masto_account_id: "108643271047165149",
masto_webhook: process.env.DISCORD_WEBHOOK_FOR_MASTO
} }
+26 -2
View File
@@ -1,14 +1,38 @@
var {login} = require("masto"); var {login} = require("masto");
var config = require("./config"); var config = require("./config");
var client = require("./client"); 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 () => { client.once("ready", async () => {
var donger = await login(config.masto); var donger = await login(config.masto);
module.exports = donger; console.log("donger logged in");
module.exports.donger = donger;
(async function openStream() {
try {
var stream = await donger.stream.streamUser(); var stream = await donger.stream.streamUser();
module.exports.stream = stream;
stream.on("update", toot => { stream.on("update", toot => {
console.debug("toot", toot); // testing
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);
}
})();
}); });