I’ve been working on a bot to automate crossposting from a given subreddit to a given Lemmy community. It’s pretty basic and not very well tested but it’s working if anyone wants to try it out.

For now it relies on the Reddit API because it has a handy streaming object and I didn’t know you could just go to a subs homepage and append “.json” to the URL

Features right now:

  • Watches a sub and posts to Lemmy as new posts come in
  • Pulls images and videos from third party hosts and includes them in posts
  • Copies titles and selftexts

With this we can close the “content gap” between Reddit and Lemmy, similar to everyone posting Digg content to Reddit as Digg died due to checks notes corporate mismanagement at efforts to monetize. Huh.

Comment, fork, star, open issues and enjoy.

  • chuso@kbin.social
    link
    fedilink
    arrow-up
    23
    ·
    2 years ago

    I know crossposters make transition easier for people who find it hard to completely switch from Reddit to Lemmy, but we’ve been there already in Mastodon and crossposters were not very appreciated because they are basically bots. They allow you to continue using Reddit or Twitter as your main account while you mirror your content to Lemmy or Mastodon.
    It’s frustrating for people who actually use Lemmy or Mastodon to find some content they want to interact with and later notice it’s from an unattended account that is just mirroring content from another site so your interactions won’t get any reply because you are basically talking to a bot.

    • abraham_linksys@kbin.socialOP
      link
      fedilink
      arrow-up
      9
      ·
      2 years ago

      Not sure how this would contribute to people still using Reddit/Twitter as their main feed? This is for mirroring subreddits so the content can be browsed from Lemmy and when you comment, your comment is viewed by others using Lemmy. I think this is good mainly for videos, images and links and discussing them here on Lemmy. Wouldn’t make sense for subs where you want to interact directly with OP, like advice subs.

      Thanks for the feedback though, a bot flag in the title would eliminate anyone mistaking a bot for a person.

  • lixus98@kbin.social
    link
    fedilink
    arrow-up
    22
    ·
    edit-2
    2 years ago

    I also made a similar bot, might be useful!, this one doesn’t check every single post, only external links, I didn’t want to repost original content or spam communities, so the post only gets one post per hour (which can be changed) and checks the community to see if there’s a similar post there already (same link).

    Edit: it uses the json page, and filters posts based on upvotes, downvotes, age, etc. It supports multiple subreddits and communities at the same time.

    https://github.com/daniel-lxs/BotIt

    • Mnmalst@kbin.social
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      2 years ago

      Ah sweet I was about to start working on something like this. Will definitely use it in the future. Thanks
      *edit: Ah it still uses the public json endpoints. A “real” scrapper might be necessary in the future.

      • lixus98@kbin.social
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        2 years ago

        You are right, I already had a scraper in progress, if it comes down to it I will use that instead.
        Edit: also you can contribute if you want to, suggestions are 100% open.

        • Mnmalst@kbin.social
          link
          fedilink
          arrow-up
          1
          ·
          2 years ago

          I might if I find something I am missing.
          I have some specific requirements when it comes to scrapping. I am planning to use it on my phone in termux which doesn’t allow all nodejs modules. Sadly also the most popular scrappers which use a xserver in the background. So it has to be very basic html scrapping which should be possible when you do it on the old.reedit site.

          • lixus98@kbin.social
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            2 years ago

            I see, I used node bc that’s what I’m most familiarized with. I’m running it from Digitalocean and seems to be stable for now.
            But if you have different requirements you should definitely give making one a go.

            • Mnmalst@kbin.social
              link
              fedilink
              arrow-up
              2
              ·
              2 years ago

              Oh, nothing wrong with node at all. I used it for something very similar in the past myself. It’s just that certain modules just don’t work in termux.

    • abraham_linksys@kbin.socialOP
      link
      fedilink
      arrow-up
      2
      ·
      2 years ago

      API is changing in a few days, not being dropped. I haven’t dug into it but I’m not too worried that usage will go above free tier. If that dies there’s the .json versions of the site you can view by adding .json to most reddit URLs, and even if they kill that there will always be scraping.

  • BedSharkPal@kbin.social
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    Looks like it posts images without domain checking? I assume that would result in a bunch of Reddit hosted images being posted here?

    • abraham_linksys@kbin.socialOP
      link
      fedilink
      arrow-up
      8
      ·
      2 years ago

      It’s possible but kind of pointless. Who wants to read a bunch of comments of people being wrong and not even be able to respond (directly) to them?

  • mianghuei@kbin.social
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    Was there some script or program that scrapes a subreddit and export/converts it into Lemmy/Fediverse database?

  • Tarte@kbin.social
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    Awesome!

    I don’t know how to set any of this up. But if anyone manages to get /r/AskHistorians crossposted here, that’d be awesome. I believe that’s a prime target for crossposts, because for most people it’s read-only anyway and not discussion.