Added new edit_status.py instructions
This commit is contained in:
pare
5ecd4137d8
commit
06f712fffd
S'han modificat 2 arxius amb 13 adicions i 11 eliminacions
12
README.md
12
README.md
|
@ -17,14 +17,16 @@ Run mailing.py periodically to catch 'new' inactive users and update the elapsed
|
||||||
|
|
||||||
Within Python Virtual Environment:
|
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.
|
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`
|
||||||
|
|
12
mailing.py
12
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))
|
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))
|
print("Updating user " + str(id))
|
||||||
|
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
cur.close()
|
cur.close()
|
||||||
|
@ -101,10 +101,10 @@ def email_sent(id):
|
||||||
|
|
||||||
if conn is not None:
|
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):
|
def check_alive(id):
|
||||||
|
@ -193,7 +193,7 @@ try:
|
||||||
inactive_users_id.append(row[0])
|
inactive_users_id.append(row[0])
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
inactive_users_id = []
|
inactive_users_id = []
|
||||||
|
|
||||||
cur.close()
|
cur.close()
|
||||||
|
@ -210,7 +210,7 @@ finally:
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
while i < len(inactive_users_id):
|
while i < len(inactive_users_id):
|
||||||
|
|
||||||
seen = check_alive(inactive_users_id[i])
|
seen = check_alive(inactive_users_id[i])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -231,7 +231,7 @@ while i < len(inactive_users_id):
|
||||||
last_year = datetime.today() - timedelta(days=365)
|
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'
|
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],))
|
cur.execute("DELETE FROM " + mailing_db_table + " where account_id=(%s)", (inactive_users_id[i],))
|
||||||
print("Deleting user " + str(inactive_users_id[i]))
|
print("Deleting user " + str(inactive_users_id[i]))
|
||||||
|
|
||||||
|
|
Loading…
Referencia en una nova incidència