Hi, I’m learing python and I was thinking about createing Lemmy bot.
RemindMe bot is awesome
Beat me to it. Came here to say exactly this.
Lemmygrad has a bot which detects youtube, twitter and reddit links in your post and offers links to open source front ends like invidious, nitter and libreddit. It’d be nice if we had one of those.
I think this would work better as a built-in link filter enhancement in the instance and community options, so for example, all communities who customized their filter to replace “twitter.com” and “t.co” links will automatically convert them to “nitter.instance.com” links when the comment is posted. Link filtering can also be used to block links to scam and unknown websites.
I honestly prefer using an addon such as LibRedirect. Just because I want open-source front ends, doesn’t mean everyone does, and it’s easy enough to handle on a user-level.
Filtering is different than offer alts
I’ll reply first on more general grounds. In my opinion, bots…
- should only reply to posts/comments when explicitly requested to, through a standard approach.
- should be properly tagged as bots, not just their username but also some interface element. And they should never behave in a way that mimics human beings.
- should have short, succinct output, that doesn’t force other users to scroll past a lot of junk.
- should only have a descriptive output (it gives you info), not prescriptive (it doesn’t tell you what to do).
Now, actually answering your question:
- a bot that links manga, anime and LN references to MyAnimeList, MangaUpdates etc. pages, like u/Roboragi does in Reddit.
- an unit conversion bot, like @iorale@lemmy.fmhy.ml said, that also works for cooking units. (Specially when Americans say stuff like “half cup of onions”, for me it’s the same as “a random amount of onion”). I volunteer myself to help out gathering units for that.
- a simple Wikipedia link bot, that gives you a short excerpt of the Wikipedia link.
I was thinking of running an instance which houses just bots. In theory, that’d make it easy to have an easy to remember URL and usernames, like !bgg@bot.pls or something. If I can get a URL that makes sense I might consider something like this. It’d keep it small enough to call, and make sure they’re always 100% intentional.
This is mainly because I don’t want to be a source of annoyance for anyone, and I’ve seen too many people annoyed at the “natural response” bots that pop in all the time on reddit.
If they’re on their own instance, a whole instance can block that instance if they don’t want bots, or block specific bots if they prefer.
Or even better - what if they need to request specific bots? That is: the bot needs human consent to act on first place. That means that bots will be only used if they’re clearly useful for the instance, community or the user, not just a “yeah this bot is annoying and adding noise but why bother?”
I need to do some experiments to find out what happens if a bot is tagged in a community they’re not subbed to. It may be that this is exactly what I can do - it’d be a request by a user, then the mod can ban it if they want. I don’t know whether I can do something where only a mod can invite, I’ll have to see if there’s anything that might help there
mastodon already has botsin.space, depending on how well lemmy & masto interoperate (in theory they’ll be fine because AP, but these kinda things tend to mess up in practice. lemmy still doesn’t do authorized fetch afaik) hosting bots there & calling them from lemmy should work.
Thanks for the link, looks like they had the same idea.
That’s actually a really bright idea. Makes bots easier to identify, and easier to avoid if preferred.
GNU units to the rescue! https://www.gnu.org/software/units/
…wow.
I just installed it. I was expecting something like "ah, it knows that a cup should be a certain amount of mililitres, but what if I ask it in grams? Then I put “1 cup sugar”, “grams”… and it returned 200g. It couldn’t find flour so I used butter, 226g. It works!
Checking /usr/share/units/definitions.units, the devs had the insight to add a lot of cooking stuff to it. Also a way to define your own units. The syntax is an arse but I guess that the bot could handle it.
This would be great as the “guts” of a really good conversion bot.
r/fanfiction and r/HPfanfiction have a fanfic link summary bot. you do linkffn(STORYID) or linkao3(STORYID) and it posts a summary. was useful.
I would have never guessed how to request the bot, if you didn’t show it. That’s another reason why I think that there should be a standard way to request bots, it increases discoverability. For contrast, Roboragi:
- {this} looks for anime
- <this> looks for manga
- ]this[ looks for light novel
- |this| looks for visual novel
You probably wouldn’t guess it from the fanfic link summary bot either.
I think that a simple common syntax that could be used is @!bot-name [options] [“]data to process[”], at least when users are requesting it regardless of community. It’s hard to hit it by accident, but still easy to type, and flexible enough to allow multiple bots to follow it. So for example:
- @!fanfic-link-bot ao3 STORYID // looks for STORYID in Archive of Our Own
- @!animanga-bot ln “story name” // looks for a light novel called “story name”
- @!units-converter-bot grams “five cups of flour” // converts five cups of flour into grams
- etc.
Then if community moderators are allowed to call bots to perform functions automatically, without the user requesting them, they could also set up synonyms as shorthands. for example people in c/fanfiction could simply type “ffao3 STORYID” instead, less keystrokes for the same result.
on r/fanfiction a link to the bot’s info is provided on the sidebar:
Want to link a fic in a comment? Use link bot!
https://github.com/FanfictionBot/reddit-ffn-bot/wiki/Usage
But I 100% agree that something more standard would be called for for something more multi-purpose
And you made me realise something: why the hell are the FanfictionBot, roboragi, wiki linking bot and the likes different bots, if they perform the same underlying task (provide link and summary)? We could have one bot to rule them all.
(Sadly I know why. Because Reddit never bothered to provide users with functionality. So they developed this functionality in parallel, wasting their development time with unnecessary redundancy.)
should only reply to posts/comments when explicitly requested to
I assume you mean somelike like
!remindme 4 days
but then one of your examples is “half a cup of onions” and I can’t see your fictional American thinking to trigger the bot - which means someone would have to reply to that person to request a bot conversion.Similarly, there’s a music IDing bot on reddit that responds to human-language questions like “whats the song” which is 100% ok with me (and the users have always been pleasantly surprised from what I’ve seen).
I can’t see your fictional American thinking to trigger the bot - which means someone would have to reply to that person to request a bot conversion.
I think that they would, given enough community encouragement to do so; things like “OP, please add @!cookunitsbot to your post” go a long way. Roboragi in r/manga for example works well in this way.
Alternatively, if my “I think” above is wrong: then “requested” could also include “explicitly set up by the mods”, not just “triggered by the user”. For me it already solves the main issue, that is bots chasing you across communities to boss you around or vomit trivia.
Similarly, there’s a music IDing bot on reddit that responds to human-language questions like “whats the song” which is 100% ok with me (and the users have always been pleasantly surprised from what I’ve seen).
Frankly I think that having a standard way to request bots is better for everyone (including the bot developers) than having it reply human questions. Even then, as long as it doesn’t do this thing outside of its own “turf” (music communities), it should be fine.
Tracking upvotes and good not/bad not replies is helpful feed back to, capturing that seem like a good idea
Because none of us ever read the article anyway… autotldr bot.
This will be an unpopular opinion, but none.
And I would like to see a federation-wide policy that all bots must be clearly identified as bots (an attribute on their account). And features in the site code to block all bots as a user preference.
Lemmy has an option to mark accounts as bots. For example, check out the profile of @ParentiBot@lemmygrad.ml.
The quote
In the United States, for over a hundred years, the ruling interests tirelessly propagated anticommunism among the populace, until it became more like a religious orthodoxy than a political analysis. During the Cold War, the anticommunist ideological framework could transform any data about existing communist societies into hostile evidence. If the Soviets refused to negotiate a point, they were intransigent and belligerent; if they appeared willing to make concessions, this was but a skillful ploy to put us off our guard. By opposing arms limitations, they would have demonstrated their aggressive intent; but when in fact they supported most armament treaties, it was because they were mendacious and manipulative. If the churches in the USSR were empty, this demonstrated that religion was suppressed; but if the churches were full, this meant the people were rejecting the regime’s atheistic ideology. If the workers went on strike (as happened on infrequent occasions), this was evidence of their alienation from the collectivist system; if they didn’t go on strike, this was because they were intimidated and lacked freedom. A scarcity of consumer goods demonstrated the failure of the economic system; an improvement in consumer supplies meant only that the leaders were attempting to placate a restive population and so maintain a firmer hold over them. If communists in the United States played an important role struggling for the rights of workers, the poor, African-Americans, women, and others, this was only their guileful way of gathering support among disfranchised groups and gaining power for themselves. How one gained power by fighting for the rights of powerless groups was never explained. What we are dealing with is a nonfalsifiable orthodoxy, so assiduously marketed by the ruling interests that it affected people across the entire political spectrum.
– Michael Parenti, Blackshirts And Reds
I am a bot, and this action was performed automatically. Please contact the admins of this instance if you have any questions or concerns.
I agree with this. Similar to how discord handles bots, it should be labeled
Also, there is a setting to block bots.
RemindMe was super useful
I’m sure something like AutoMod would eventually become useful for community moderators.
There’s no bots I’m really missing hard right now, but it’s worth recalling that bots are such a popular approach on Reddit specifically because the community has no way to improve reddit directly. If you want to add a feature to reddit, the ONLY way you can do it is to try to parse the text in a post/comment and the have the bot post it’s own output as a comment or whatever.
With Lemmy, the code is open source and you can improve it directly. So before writing a bot to hammer the apis of an instance reading every post/comment made to a community, it’s worth asking oneself if Lemmy could be improved to natively do the thing without needing a bot. Like for remind-me, what if Lemmy had a native remind-me button that direct-messaged you with a link to a post after some configurable delay. Easier to use, more efficient, no bot needed.
Now, this might be more work than writing a bot. And a bot can be a useful way to prototype some feature. It also means learning rust and JavaScript rather than python, and it means cooperating with Lemmy devs who might have concerns about performance at-scale, maintainability, or user-experience. These concerns will likely make the result better though. It’s fine to do stuff via bots, but consider the possibility that directly contributing to improve Lemmy would be a better result that isn’t possible in the Reddit ecosystem.
Personally, I’ve been thinking about bots, but I plan to run them on my own instance or their own dedicated instance. That way, they don’t add any load at all with their interactions, and only their comments are synced to other instances. That also makes it easy for whole instances or communities to kick them if they don’t want them there.
Since no one mentioned it,
Stabbot - the video stabilising bot to fix videos that the uploader didn’t bother with.
Songfinder bot seems handy to prevent earworms.
Plus a lot of the other ones mentioned. Just helpful bots with a distinct purpose that come in when asked to save time or educate.
Video/image download bot would be super useful.
I am a bot, and this action was performed automatically.
You missed the bleep-bloop!
One major bot that is fediverse specific. A community syncing bot. So if two communities from different instances want to, they could have a bot that crossposts everything between each other and delete one deleted between each other. A more advanced feature to have is to have it only do certain tags, so for example !linux@lemmy.ml with a
help/question
andfedora
tags could be auto posted to !fedora@lemmy.ml, and !linux_questions@lemmy.ml .On that note, I’d like to see something like “crossposts” supported.
I saw someone attempt to invoke a !remindme bot in some other thread. I don’t know if that’s actually something that exists already, but that would probably be useful for people who use it.
Maybe features like this could actually work as plugins.
If it’s the same post I saw, that was one of the main devs - he then mused that someone should create that bot here.
I’ve always found the ones that give a Wikipedia summary useful
Also the one that turned Wikipedia mobile links into desktop ones.
I made a couple of bots that could give you some ideas:
https://github.com/SleeplessOne1917/lemmy-ocr-bot
Thanks for sharing. I checked out a few other bots in different languages, but the typescript one seemed really nice and easy to setup. How much resources does it use typically?
I haven’t actually checked resource usage tbh.
A bot that listens to and tallys “goodbott” and “bad bot” comments