aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBobby <[email protected]>2023-07-19 22:35:34 -0400
committerBobby <[email protected]>2023-07-19 22:35:34 -0400
commit052fdcb685ac1f5a15d01048c07c201b8e762d2f (patch)
tree235574f3bba0c6e95983cd4f07b5b28b6bb6f0d6
parentbc9b2d89600e49be0425d21a8ae0d4ec13b72936 (diff)
downloadthatcomputerscientist-052fdcb685ac1f5a15d01048c07c201b8e762d2f.tar.xz
thatcomputerscientist-052fdcb685ac1f5a15d01048c07c201b8e762d2f.zip
Fixing User Deletion Scheduler
-rw-r--r--blog/apps.py4
-rw-r--r--jobs/tasks.py11
-rw-r--r--jobs/updater.py7
-rw-r--r--thatcomputerscientist/settings.py2
-rw-r--r--thatcomputerscientist/tasks.py24
-rw-r--r--users/apps.py5
6 files changed, 23 insertions, 30 deletions
diff --git a/blog/apps.py b/blog/apps.py
index 94788a5e..65e290db 100644
--- a/blog/apps.py
+++ b/blog/apps.py
@@ -4,3 +4,7 @@ from django.apps import AppConfig
class BlogConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'blog'
+
+ def ready(self):
+ from jobs import updater
+ updater.start()
diff --git a/jobs/tasks.py b/jobs/tasks.py
new file mode 100644
index 00000000..9742f078
--- /dev/null
+++ b/jobs/tasks.py
@@ -0,0 +1,11 @@
+from django.contrib.auth.models import User
+from django.utils import timezone
+
+def delete_inactive_users():
+ # Delete users who have not verified their email address within 72 hours
+ # of registering, ie. email_verified=False and date_joined > 72 hours ago
+ users = User.objects.filter(date_joined__lt=timezone.now() - timezone.timedelta(hours=72), userprofile__email_verified=False)
+ for user in users:
+ print("Deleting user: " + user.username)
+ user.delete()
+ \ No newline at end of file
diff --git a/jobs/updater.py b/jobs/updater.py
new file mode 100644
index 00000000..1636d14d
--- /dev/null
+++ b/jobs/updater.py
@@ -0,0 +1,7 @@
+from apscheduler.schedulers.background import BackgroundScheduler
+from jobs.tasks import delete_inactive_users
+
+def start():
+ scheduler = BackgroundScheduler()
+ scheduler.add_job(delete_inactive_users, 'interval', minutes=60)
+ scheduler.start()
diff --git a/thatcomputerscientist/settings.py b/thatcomputerscientist/settings.py
index ddae61f3..8f9c2220 100644
--- a/thatcomputerscientist/settings.py
+++ b/thatcomputerscientist/settings.py
@@ -61,7 +61,7 @@ INSTALLED_APPS = [
'thatcomputerscientist',
'haystack',
'django_hosts',
- 'blog',
+ 'blog.apps.BlogConfig',
'users',
'userpages',
'blog_admin',
diff --git a/thatcomputerscientist/tasks.py b/thatcomputerscientist/tasks.py
deleted file mode 100644
index a41b3cee..00000000
--- a/thatcomputerscientist/tasks.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from users.models import UserProfile
-from django.contrib.auth.models import User
-from django.utils import timezone
-from datetime import datetime
-from apscheduler.schedulers.background import BackgroundScheduler
-
-def delete_inactive_users():
- # Delete users who have not verified their email address within 72 hours
- # of registering, ie. email_verified=False and date_joined > 72 hours ago
-
- users = UserProfile.objects.filter(email_verified=False)
- for user in users:
- try:
- current_user = User.objects.get(user=user)
- if current_user.date_joined < timezone.now() - timezone.timedelta(hours=72):
- current_user.delete()
- except:
- pass
-
-
-def schedule():
- scheduler = BackgroundScheduler()
- scheduler.add_job(delete_inactive_users, 'interval', hours=1)
- scheduler.start()
diff --git a/users/apps.py b/users/apps.py
index 16ed36b8..72b14010 100644
--- a/users/apps.py
+++ b/users/apps.py
@@ -4,8 +4,3 @@ from django.apps import AppConfig
class UsersConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'users'
-
- def ready(self):
-
- from thatcomputerscientist.tasks import schedule
- schedule()