Using Python, How can I create a bot/script that let’s me re-post a subreddit’s post to Lemmy?

Just wanted to do a simple little project to practice my programming skills.

I just need to know the outline/backbone of things I should know to do this project.

  • @CaspianXI
    link
    13
    edit-2
    1 year ago

    This should get you started:

    import requests
    
    # Fetch post from Reddit API
    def fetch_reddit_post():
        reddit_url = "https://www.reddit.com/r/{subreddit}/comments/{post_id}.json"
        subreddit = "python"  # Replace with the desired subreddit
        post_id = "abcdef"  # Replace with the desired post ID
    
        url = reddit_url.format(subreddit=subreddit, post_id=post_id)
        headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
    
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            post_data = response.json()
            return post_data
        else:
            print("Failed to fetch post from Reddit API")
            return None
    
    # Post to Lemmy API
    def post_to_lemmy(post_data):
        lemmy_url = "https://lemmy.ml/api/{version}/post"
        version = "v3"  # Replace with the desired Lemmy API version
    
        url = lemmy_url.format(version=version)
        headers = {"Content-Type": "application/json"}
    
        # Extract necessary information from the Reddit post
        title = post_data[0]["data"]["children"][0]["data"]["title"]
        content = post_data[0]["data"]["children"][0]["data"]["selftext"]
    
        # Create payload for Lemmy API
        payload = {
            "title": title,
            "body": content,
            "community_id": "abcdef",  # Replace with the desired Lemmy community ID
            "auth": "your_auth_token"  # Replace with your Lemmy API authentication token
        }
    
        response = requests.post(url, json=payload, headers=headers)
        if response.status_code == 200:
            print("Post successfully created on Lemmy")
        else:
            print("Failed to post to Lemmy API")
    
    # Fetch post from Reddit API
    post_data = fetch_reddit_post()
    
    if post_data:
        # Post to Lemmy API
        post_to_lemmy(post_data)
    
    • @RookiMA
      link
      41 year ago

      Nice work! A tip for the future you can use spoilers!

      Like this!

      Yeahhhhh

      • Maximilious
        link
        fedilink
        61 year ago

        Your spoiler didn’t work when viewing on kbin but his proper use of code framing for this purpose did work on kbin.

        • @RookiMA
          link
          31 year ago

          kbin could use a different markdown compiler. It framed correcty with a code block but it does literally just font and a bit color.

        • @RookiMA
          link
          31 year ago

          Let me explain:

          Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Accumsan tortor posuere ac ut. Aliquet nec ullamcorper sit amet risus nullam eget felis eget. Sagittis vitae et leo duis ut diam quam nulla. Sed egestas egestas fringilla phasellus faucibus. Sapien faucibus et molestie ac feugiat sed lectus vestibulum. Habitant morbi tristique senectus et. Massa enim nec dui nunc mattis. Urna porttitor rhoncus dolor purus non enim praesent. Volutpat ac tincidunt vitae semper. Lectus magna fringilla urna porttitor rhoncus dolor. Tellus id interdum velit laoreet. Varius morbi enim nunc faucibus. Feugiat nibh sed pulvinar proin gravida hendrerit lectus a. Lacus luctus accumsan tortor posuere ac ut. Vitae justo eget magna fermentum iaculis eu non.

          Ac ut consequat semper viverra nam. Id venenatis a condimentum vitae sapien pellentesque habitant morbi tristique. Enim nulla aliquet porttitor lacus luctus accumsan. Fermentum leo vel orci porta non pulvinar neque laoreet suspendisse. Tellus orci ac auctor augue mauris augue neque. Laoreet id donec ultrices tincidunt arcu non sodales neque. Ac tincidunt vitae semper quis lectus. Semper eget duis at tellus at urna condimentum mattis pellentesque. Est placerat in egestas erat imperdiet sed. Arcu bibendum at varius vel.

          Enim lobortis scelerisque fermentum dui faucibus in ornare. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Morbi quis commodo odio aenean sed adipiscing diam donec adipiscing. Ornare arcu odio ut sem nulla pharetra diam sit. Ut venenatis tellus in metus vulputate eu. Purus gravida quis blandit turpis cursus in hac habitasse platea. Placerat vestibulum lectus mauris ultrices eros in. Vitae nunc sed velit dignissim. Nisi vitae suscipit tellus mauris a. Eu feugiat pretium nibh ipsum consequat nisl. Congue quisque egestas diam in. Dui sapien eget mi proin. Maecenas pharetra convallis posuere morbi leo. Ultrices dui sapien eget mi proin sed. Enim eu turpis egestas pretium aenean pharetra magna ac.

          Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Eu scelerisque felis imperdiet proin fermentum leo vel. Aliquam ultrices sagittis orci a scelerisque. Eu facilisis sed odio morbi. Purus in massa tempor nec. Interdum posuere lorem ipsum dolor sit amet consectetur adipiscing elit. Ac odio tempor orci dapibus ultrices. Scelerisque varius morbi enim nunc faucibus a pellentesque sit amet. Bibendum ut tristique et egestas quis ipsum suspendisse ultrices gravida. Integer vitae justo eget magna fermentum iaculis eu non diam.

          Vitae semper quis lectus nulla at volutpat diam ut. Mi sit amet mauris commodo quis. Pharetra vel turpis nunc eget lorem dolor sed. Egestas maecenas pharetra convallis posuere morbi leo urna molestie at. Enim sit amet venenatis urna cursus eget. Ornare lectus sit amet est placerat in egestas erat imperdiet. Bibendum at varius vel pharetra vel turpis nunc eget. Eget velit aliquet sagittis id consectetur purus ut faucibus pulvinar. Commodo quis imperdiet massa tincidunt nunc pulvinar sapien et. Vel risus commodo viverra maecenas accumsan lacus vel facilisis volutpat.

          Fermentum posuere urna nec tincidunt praesent. Neque ornare aenean euismod elementum. Arcu dictum varius duis at consectetur lorem donec. Proin nibh nisl condimentum id venenatis a condimentum. Consectetur a erat nam at lectus. Risus commodo viverra maecenas accumsan lacus vel facilisis. At tempor commodo ullamcorper a lacus vestibulum sed arcu. Neque ornare aenean euismod elementum. Interdum velit euismod in pellentesque massa placerat duis ultricies lacus. Sed sed risus pretium quam vulputate. Lectus nulla at volutpat diam ut venenatis tellus in. Lectus quam id leo in vitae. A scelerisque purus semper eget. Scelerisque purus semper eget duis at tellus. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Egestas egestas fringilla phasellus faucibus scelerisque eleifend. Sed vulputate mi sit amet mauris commodo quis imperdiet. Mauris augue neque gravida in fermentum et. Pellentesque diam volutpat commodo sed egestas egestas. Feugiat in fermentum posuere urna nec tincidunt.

          Dui id ornare arcu odio ut. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae nunc. Nulla aliquet porttitor lacus luctus. Morbi tristique senectus et netus et malesuada fames ac turpis. Donec ac odio tempor orci dapibus ultrices in iaculis nunc. Nibh praesent tristique magna sit amet purus gravida quis. Semper auctor neque vitae tempus quam. Nascetur ridiculus mus mauris vitae ultricies leo integer. Sed enim ut sem viverra aliquet eget sit amet. Sodales neque sodales ut etiam sit.

          Facilisis mauris sit amet massa vitae tortor condimentum. In aliquam sem fringilla ut morbi tincidunt augue interdum velit. Bibendum arcu vitae elementum curabitur vitae nunc sed velit dignissim. Pulvinar etiam non quam lacus suspendisse faucibus. Massa massa ultricies mi quis hendrerit. Cras fermentum odio eu feugiat pretium nibh ipsum consequat. Gravida quis blandit turpis cursus in. Diam volutpat commodo sed egestas egestas fringilla phasellus. Massa sed elementum tempus egestas sed. Eu facilisis sed odio morbi quis. Ut tellus elementum sagittis vitae et leo. Ullamcorper malesuada proin libero nunc consequat interdum varius sit amet. Et magnis dis parturient montes nascetur ridiculus. Eleifend mi in nulla posuere sollicitudin aliquam.

          Odio morbi quis commodo odio aenean sed adipiscing. Mollis aliquam ut porttitor leo a diam sollicitudin. Eu volutpat odio facilisis mauris sit amet massa vitae tortor. Adipiscing commodo elit at imperdiet dui accumsan sit. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Adipiscing elit pellentesque habitant morbi tristique senectus et netus. Non tellus orci ac auctor augue mauris augue. Amet nulla facilisi morbi tempus iaculis urna id volutpat. Facilisis magna etiam tempor orci eu lobortis. Magna eget est lorem ipsum dolor sit amet consectetur. Rutrum tellus pellentesque eu tincidunt tortor aliquam nulla. Est lorem ipsum dolor sit amet consectetur. Erat pellentesque adipiscing commodo elit at. Phasellus faucibus scelerisque eleifend donec pretium vulputate sapien. Urna et pharetra pharetra massa massa. Amet est placerat in egestas erat imperdiet sed euismod nisi. Sed id semper risus in hendrerit gravida rutrum. Velit dignissim sodales ut eu sem integer vitae. Aliquam nulla facilisi cras fermentum odio eu feugiat.

          Ipsum dolor sit amet consectetur adipiscing elit duis tristique sollicitudin. Vel orci porta non pulvinar neque laoreet suspendisse. Erat pellentesque adipiscing commodo elit at imperdiet. Sed viverra ipsum nunc aliquet bibendum. At elementum eu facilisis sed odio morbi. Metus dictum at tempor commodo ullamcorper a. Rhoncus urna neque viverra justo nec ultrices. Ut faucibus pulvinar elementum integer enim neque volutpat. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Posuere sollicitudin aliquam ultrices sagittis orci a. Eu facilisis sed odio morbi quis commodo odio aenean. Amet nulla facilisi morbi tempus iaculis urna id. In ante metus dictum at tempor commodo ullamcorper. Curabitur vitae nunc sed velit dignissim. Vel fringilla est ullamcorper eget nulla facilisi.

          Est sit amet facilisis magna etiam tempor orci eu lobortis. Arcu felis bibendum ut tristique. Commodo viverra maecenas accumsan lacus vel facilisis volutpat. Arcu odio ut sem nulla pharetra diam. Pretium fusce id velit ut. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque. Nulla facilisi nullam vehicula ipsum. Pellentesque diam volutpat commodo sed egestas egestas. Id interdum velit laoreet id donec ultrices. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Morbi quis commodo odio aenean sed adipiscing diam. In mollis nunc sed id semper risus in. Eros in cursus turpis massa tincidunt. Eu volutpat odio facilisis mauris. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Lectus mauris ultrices eros in.

          Auctor urna nunc id cursus metus aliquam eleifend mi in. Mi tempus imperdiet nulla malesuada pellentesque elit eget gravida. Molestie a iaculis at erat. Ut ornare lectus sit amet est placerat in egestas erat. Pretium fusce id velit ut tortor pretium viverra suspendisse potenti. Quisque egestas diam in arcu cursus euismod. Faucibus a pellentesque sit amet porttitor eget dolor morbi non. Non pulvinar neque laoreet suspendisse interdum consectetur libero id. Massa tempor nec feugiat nisl. Velit ut tortor pretium viverra suspendisse. Enim lobortis scelerisque fermentum dui faucibus in ornare. Faucibus interdum posuere lorem ipsum dolor sit amet. Faucibus in ornare quam viverra orci. Lorem mollis aliquam ut porttitor leo a diam sollicitudin.

          Risus nullam eget felis eget nunc lobortis mattis. Faucibus interdum posuere lorem ipsum dolor sit amet consectetur adipiscing. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate. Sit amet purus gravida quis blandit. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc. In dictum non consectetur a erat nam at lectus urna. Etiam dignissim diam quis enim lobortis scelerisque. Feugiat in ante metus dictum at. At quis risus sed vulputate odio. Diam vulputate ut pharetra sit amet aliquam. Bibendum arcu vitae elementum curabitur vitae. Viverra justo nec ultrices dui.

          So after you read this forced you probably know not EVERYBODY wants to scroll like 15 seconds just to see the next comment!

          Thank You!

          • Butt Pirate
            link
            fedilink
            21 year ago

            Thank you for explaining. 2 points of consideration:

            1. Next time explain why something would be useful instead of just stating that they are. We can’t read your mind.
            2. Your spoiler doesn’t work on my app so it just looks like regular text to me. Hence more confusion.

            Regards, Yearly1845

            • @RookiMA
              link
              11 year ago

              Yeah thats the app problem. Thank you!