The Previous Update Broke Our Bot And I Don't Know Why

https://lemmy.world/post/12972375

The Previous Update Broke Our Bot And I Don't Know Why - Lemmy.World

Hi all, I’m not sure where I should post. The mod team at [email protected] uses this account to run a bot found here: https://github.com/daniel-lxs/BotIt [https://github.com/daniel-lxs/BotIt] What this bot does, it is uses karma criteria on reddit, to grab the links of the best breaking news in the MMA world and automatically post it on here. It allows our users to catch all the breaking news without having to use Reddit. We are now getting an incorrect_login error. The previous bot maker is MIA and has left the project. We lost almost all of our users the last time lemmy banned this account in a bot purge. It was unbanned awhile back, but now we are afraid we are going to lose the rest of them. Can anyone help?

Just a shot in the dark but I’ve seen some people say something about one of the updates logging out accounts as a security measure. Assuming the recent updates didn’t change auth stuff, maybe it’s possible that it just needs to refresh the token? A glance at the code looks like it will keep trying to use the same JWT as long as it’s still valid, and fall back to getting a new JWT using username/password. So deleting the JWT would make it get a new one. (Iirc JWTs have an embedded expiration, but the server can invalidate it so the bot code could in theory not know that the server can invalidate it)

Assuming you’re getting the incorrect login error from Lemmy. Idk maybe I’m way off base with my guess.

Thank you for responding.

[ERROR] [LEMMY] Error while trying to login, host might be down [ERROR] [SCHEDULER] An error occurred: Error: incorrect_login

Is the error.

I have attempted to add a different username and password and it didn’t work. Would that get a new JWT?

If not how do I delete it?

Hmm maybe it’s not that simple then. It doesn’t look like the JWT is stored so it’s probably trying to get a new one when started. The other possible culprit would be if you need to use lemmy-js-library with a major version matching the Lemmy server version.

Assuming the server updated to 0.19.0, the version used by the bot is 0.18.0. You would just need to edit package.json so that the lemmy-js-client line reads:

“lemmy-js-client”: “^0.19.0”,

Then running npm install or yarn install (or whatever command you used to install dependencies previously)

After change:

PS C:\Users***********\Botlt> npm install

npm ERR! code EJSONPARSE

npm ERR! path C:\Users\Josh\Botlt/package.json

npm ERR! JSON.parse Unexpected token ““” (0x201C) in JSON at position 976 while parsing near “… "lemmy-js-client": “^0.19.0”,\r\n "lin…”

npm ERR! JSON.parse Failed to parse JSON data.

npm ERR! JSON.parse Note: package.json must be actual JSON, not just JavaScript.

I get the same error just running npm run build as well.

I think that’s part of the solution, I skimmed some of the forks and found one that updated the lemmy-js-client to 0.19.2-alpha.3 but they made some code changes too to the authentication code. So maybe trying that fork is worth a shot: github.com/thepaperpilot/BotIt

Last changes were last month on that fork

GitHub - thepaperpilot/BotIt: A bot that scrapes posts from an specific subreddit and posts it on a kbin magazine.

A bot that scrapes posts from an specific subreddit and posts it on a kbin magazine. - thepaperpilot/BotIt

GitHub

Thanks so much for your help.

I don’t program, and I didn’t even realize there was a fork. Let me root around in there and see what I can find out tomorrow.

Thanks again.