Good morning sober peeps!!

We may be anonymous strangers on the internet, but we have one thing in common. We may be a world apart, but we’re here together!

Welcome to the 24 hour pledge! I’m pledging myself to not drinking today, and invite you to do the same.

Maybe you’re new to c/stop drinking and have a hard time deciding what to do next. Maybe you’re like me and feel you need a daily commitment or maybe you’ve been sober for a long time and want to inspire others.

It doesn’t matter if you’re still hung over from a three day bender or been sober for years, if you just woke up or have already completed a sober day. For the next 24 hours, let’s not drink alcohol!

  • ChaoticNeutralCzech@feddit.org
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    I was talking about the wrong date in the post title. You can still fix this, Lemmy allows editing post titles (and links).

    There is no shame in scheduling posts you were going to make anyway, prominent poster @MentalEdge@sopuli.xyz does it and I do that on my @ChaoticNeutralCzech@lemmy.one account. The easiest way is to write a Python script with the pythorhead library, and automating it with a cron job or Windows’ Task Scheduler, or run manually if you wish to do that. Your username and password, as well as what the previous post was (for unpinning in the community), can be stored in your OS’s environment variables.

    In your case, it’s just a matter of something like

    # warning: untested
    from pythorhead import Lemmy
    import datetime
    import os
    
    todays_date = datetime.now().strftime("%A %B %d")
    
    post_title = "The Daily Checkin for" + todays_date + " - Just For Today, We Are Not Drinking!"
    post_body = "Good morning sober peeps!!\n\nWe may be anonymous strangers on the internet, but we have one thing in common. We may be a world apart, but we’re here together!\n\nWelcome to the 24 hour pledge! I’m pledging myself to not drinking today, and invite you to do the same.\n\nMaybe you’re new to c/stop drinking and have a hard time deciding what to do next. Maybe you’re like me and feel you need a daily commitment or maybe you’ve been sober for a long time and want to inspire others.\n\nIt doesn’t matter if you’re still hung over from a three day bender or been sober for years, if you just woke up or have already completed a sober day. For the next 24 hours, let’s not drink alcohol!"
    
    community_id = 5759 #lemmy.world/c/stopdrinking for lemmy.world users
    previous_post = os.getenv("STOPDRINKING_PP")
    post = ""
    
    lemmy_username = os.getenv("STOPDRINKING_UN")
    lemmy_password = os.getenv("STOPDRINKING_PW")
    lemmy = Lemmy("https://lemmy.world") 
    
    def retry_login():
        if not lemmy.log_in(lemmy_username, lemmy_password):
            print("Failed to log in")
            exit(1)
    
    def retry_post():
        global post
        post = lemmy.post(community_id, post_title, body=post_body,)
        if post:
            print(f"Successfully posted ({post['post_view']['post']['ap_id']})")
        else:
            print("Failed to post")
            exit(1)
    
    def retry_refeature():
        global previous_post
        global post
        post.feature(true)
        if (previous_post):
            previous_post.feature(false)
        previous_post = post
        os.environ["STOPDRINKING_PP"] = previous_post
    
    def retry: #this structure allows retrying in the interactive shell
        retry_login()
        retry_post()
        retry_refeature()
        input("Press Enter to exit...")
        os._exit(0)
    
    retry() 
    

    This command makes the script run in interactive mode, so you can see error output if problems happen, change variables and type retry() commands to retry:

    py -i stopdrinkingtoday.py
    

    I haven’t tested the code but it should not be too hard to get it working. Feel free to ask for help.

    • MentalEdge
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 months ago

      I would use a file instead of ENVs so that the state actually survives a reboot. Otherwise, a system restart will screw your setup…

      That, or you could make the script actually check what’s currently pinned.

      That said, like already pointed out by @Zerlyna@lemmy.world, not everyone is a coder.

      So I’d suggest looking at https://schedule.lemmings.world

    • Zerlyna@lemmy.worldOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      ummmm yeah. Not a coder. I don’t think the other mod here is either. Just take turns posting, whomever is awake first. They are on the other side of the pond from me, usually them.

      • ChaoticNeutralCzech@feddit.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 months ago

        You could make the script check the latest posts for yesterday’s date and decide whether to take action but that makes it more difficult of course, and I’m not going to finish it if you’re OK without it.

        • Zerlyna@lemmy.worldOPM
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 months ago

          I asked the other mod. When Lemmy first started, the original mod did have a script that worked for a while. But the problem with the script is that you don’t get the notifications of responses. Maybe I’m just old-school.

          • ChaoticNeutralCzech@feddit.org
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            2 months ago

            You do get notifications if you configure the script to use your account. However, it is a security risk unless it’s running on your computer and you store the password responsibly.

          • MentalEdge
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 months ago

            You would, if you use the script so that it posts using your account.

            That’s what I do, exactly so that any comments appear in my inbox, since I do often want to respond.

            That said, if you don’t have any programming experience, there is: https://schedule.lemmings.world

      • rosamundi@lemmy.worldM
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 months ago

        Not really, but I’m on my phone in an airport hotel so it might make more sense when I’m back home 😁