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!

  • ZerlynaOPM
    link
    English
    23 months ago

    I have a blemish on my Calendar as I succumbed to trying it out with some new meds to see how it affected my sleep. I don’t know why I Do it to myself, it never works out in a positive favour.

    • @[email protected]
      link
      fedilink
      English
      13 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 @[email protected] does it and I do that on my @[email protected] 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
        33 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 @[email protected], not everyone is a coder.

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

        • ZerlynaOPM
          link
          English
          23 months ago

          Last time I coded it was BASIC. 😭

      • ZerlynaOPM
        link
        English
        23 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.

        • @[email protected]
          link
          fedilink
          English
          23 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.

          • ZerlynaOPM
            link
            English
            23 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.

            • @[email protected]
              link
              fedilink
              English
              2
              edit-2
              3 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
              13 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

        • rosamundiM
          link
          English
          23 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 😁