From 06f712fffd995a0c575eb51fb05bacabf5010270 Mon Sep 17 00:00:00 2001 From: spla Date: Mon, 29 Jun 2020 10:25:11 +0200 Subject: [PATCH] Added new edit_status.py instructions --- README.md | 12 +++++++----- mailing.py | 12 ++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 163f9e5..1eca720 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,16 @@ Run mailing.py periodically to catch 'new' inactive users and update the elapsed Within Python Virtual Environment: -1. Run 'db-setup.py' to set database parameters and create needed database and table. All collected data of inactive users (see point 3) will be written there. +1. Run `python db-setup.py` to set database parameters and create needed database and table. All collected data of inactive users (see point 3) will be written there. -2. Run 'setup.py' to set your SMTP parameters and desired email subject. Also set your Mastodon's full path. They will be saved to 'secrets/secrets.txt' for further use. +2. Run `python setup.py` to set your SMTP parameters and desired email subject. Also set your Mastodon's full path. They will be saved to `secrets/secrets.txt` for further use. -3. Run 'mailing.py' to start emailing your inactive users ('last_sign_in_at' older than a year). Their username, account_id, email, delivery status (True if successful) and delivery date will be written to Postgresql database. There is another column, 'deleted', False by default. Will be useful to track deleted/not deleted inactive users if you choose to do so. +3. Run `python mailing.py` to start emailing your inactive users (`last_sign_in_at` column older than a year). Their username, account_id, email, delivery status (True if successful) and delivery date will be written to Postgresql database. There is another column, `deleted`, False by default. Will be useful to track deleted/not deleted inactive users if you choose to do so. 4. Use your favourite scheduling method to set mailing.py to run regularly. Column 'elapsed_days' of mailing's database will be updated so you can decide actions after some time. -5. Run "delete_inactives.py' to delete all inactive users after 30 days period from the warning email. +5. Run `python delete_inactives.py` to delete all inactive users after 30 days period from the warning email. -Note: install all needed packages with 'pip install -r requirements.txt' +6. Run `python edit_status.py` to set True or False any of following `mailing_db_table` columns: `to_be_deleted`, `feedback` and `recipient_error`. + +Note: install all needed packages with `pip install -r requirements.txt` diff --git a/mailing.py b/mailing.py index 9270311..3d34e2b 100644 --- a/mailing.py +++ b/mailing.py @@ -50,7 +50,7 @@ def write_db(now, id, username, email, emailed_at, emailed): cur.execute("UPDATE " + mailing_db_table + " SET elapsed_days=(%s), email=(%s), emailed=(%s) where account_id=(%s)", (delta, email, emailed, id)) print("Updating user " + str(id)) - + conn.commit() cur.close() @@ -101,10 +101,10 @@ def email_sent(id): if conn is not None: - conn.close() + conn.close() ############################################################################### -# Connect to Mastodon's Postgres DB to check if any inactive user is back online +# Connect to Mastodon's Postgres DB to check if any inactive user is back online ############################################################################### def check_alive(id): @@ -193,7 +193,7 @@ try: inactive_users_id.append(row[0]) else: - + inactive_users_id = [] cur.close() @@ -210,7 +210,7 @@ finally: i = 0 while i < len(inactive_users_id): - + seen = check_alive(inactive_users_id[i]) try: @@ -231,7 +231,7 @@ while i < len(inactive_users_id): last_year = datetime.today() - timedelta(days=365) if reactivated == True or seen == None or seen > last_year: #if inactive user had reactivated its account or had deleted it we must delete related row from 'mailing_db_table' - + cur.execute("DELETE FROM " + mailing_db_table + " where account_id=(%s)", (inactive_users_id[i],)) print("Deleting user " + str(inactive_users_id[i]))