Compare commits

..

6 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
lamp 1704537a13 fix missing eval emoji 2022-07-17 21:28:15 -07:00
lamp 69c5a106b5 2022-07-17 21:27:40 -07:00
lamp a2966b1475 fix [object Object] 2022-07-17 21:26:54 -07:00
4 changed files with 35 additions and 9 deletions
+4 -2
View File
@@ -10,7 +10,7 @@ module.exports = {
inactive_role: "892869309603389500", inactive_role: "892869309603389500",
verified_role: "949064806030254130", verified_role: "949064806030254130",
view_archived_channels_role: "916056534402863125", view_archived_channels_role: "916056534402863125",
eval_undefined_emoji: "707729833601531935", eval_undefined_emoji: "🅱️",
mi_emoji: "887931046086185060", mi_emoji: "887931046086185060",
ki_emoji: "887935846710394910", ki_emoji: "887935846710394910",
default_channel: "949831184957980722", default_channel: "949831184957980722",
@@ -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
} }
+1 -1
View File
@@ -9,7 +9,7 @@ client.on("messageCreate", async function (message) {
if (message.content.startsWith("!>")) { if (message.content.startsWith("!>")) {
with (message) { with (message) {
try { try {
var x = await eval(message.content.substr(2).trim()); var x = await eval(message.content.substring(2).trim());
} catch(e) { } catch(e) {
var x = e.message; var x = e.message;
} }
+1 -1
View File
@@ -1,6 +1,6 @@
process.title = "lamp discord bot"; process.title = "lamp discord bot";
process.on("unhandledRejection", error => { process.on("unhandledRejection", error => {
console.error("Unhandled Rejection:\n" + (error.stack || error)); console.error("Unhandled Rejection:\n", error.stack || error);
}); });
require("./util"); // global variables set in here require("./util"); // global variables set in here
+29 -5
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");
var stream = await donger.stream.streamUser(); module.exports.donger = donger;
stream.on("update", toot => { (async function openStream() {
console.debug("toot", toot); // testing 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);
}
})();
}); });