this post was submitted on 19 Sep 2024
23 points (96.0% liked)

Stop Drinking

1158 readers
41 users here now

This is a place to motivate each other to control or stop drinking. It is also a place for non drinkers to discuss and share.

We welcome anyone who wishes to join in by asking for advice, sharing our experiences and stories, or just encouraging someone who is trying to quit or cut down.

Please post only when sober; you’re welcome to read in the meanwhile.

founded 2 years ago
MODERATORS
 

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!

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 3 months ago (3 children)

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.

[–] [email protected] 3 points 3 months ago (1 children)

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

[–] Zerlyna 2 points 3 months ago

Last time I coded it was BASIC. 😭

[–] Zerlyna 2 points 3 months ago (1 children)

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] 2 points 3 months ago (1 children)

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 2 points 3 months ago (2 children)

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] 2 points 3 months ago* (last edited 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.

[–] [email protected] 1 points 3 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

[–] Zerlyna 1 points 3 months ago (1 children)
[–] rosamundi 2 points 3 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 😁