summaryrefslogtreecommitdiffstats
path: root/parsers/people.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2025-01-20 14:43:31 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2025-01-20 14:43:31 +0000
commitdf52ee92518f9938d7d75d9fc16ea60c11bfcb7e (patch)
treeb3ec09e57eeefdc1dbaa0d02e885963425e2ba21 /parsers/people.py
parent4f9468ec6632b64c2fd27d729eee0844acdac813 (diff)
downloadtroggle-df52ee92518f9938d7d75d9fc16ea60c11bfcb7e.tar.gz
troggle-df52ee92518f9938d7d75d9fc16ea60c11bfcb7e.tar.bz2
troggle-df52ee92518f9938d7d75d9fc16ea60c11bfcb7e.zip
split out users from people
Diffstat (limited to 'parsers/people.py')
-rw-r--r--parsers/people.py94
1 files changed, 1 insertions, 93 deletions
diff --git a/parsers/people.py b/parsers/people.py
index 6719f4b..9f3dbdd 100644
--- a/parsers/people.py
+++ b/parsers/people.py
@@ -1,9 +1,6 @@
-import base64
import csv
-import json
import os
import re
-from cryptography.fernet import Fernet
from html import unescape
from pathlib import Path
@@ -89,96 +86,7 @@ def troggle_slugify(longname):
slug = f"{slug}_{slug_cache[slug]}"
slug_cache[slug] = 1
- return slug
-
-USERS_FILE = "users_e.json"
-ENCRYPTED_DIR = "encrypted"
-def load_users():
- """These are the previously registered users of the troggle system.
- """
- PARSER_USERS = "_users"
- DataIssue.objects.filter(parser=PARSER_USERS).delete()
-
- key = settings.LONGTERM_SECRET_KEY # Django generated
- k = base64.urlsafe_b64encode(key.encode("utf8")[:32]) # make Fernet compatible
- f = Fernet(k)
- print(f)
-
-
- jsonfile = settings.EXPOWEB / ENCRYPTED_DIR / USERS_FILE
- jsonurl = "/" + str(Path(ENCRYPTED_DIR) / USERS_FILE)
- if not (jsonfile.is_file()):
- message = f" ! Users json file does not exist: '{jsonfile}'"
- DataIssue.objects.create(parser=PARSER_USERS, message=message)
- print(message)
- return None
-
- with open(jsonfile, 'r', encoding='utf-8') as json_f:
- try:
- registered_users_dict = json.load(json_f)
- except FileNotFoundError:
- print("File not found!")
- except json.JSONDecodeError:
- print("Invalid JSON format! - JSONDecodeError")
- except Exception as e:
- print(f"An exception occurred: {str(e)}")
- message = f"! Troggle USERs. Failed to load {jsonfile} JSON file"
- print(message)
- DataIssue.objects.update_or_create(parser=PARSER_USERS, message=message, url=jsonurl)
- return None
- users_list = registered_users_dict["registered_users"]
-
- print(f" - {len(users_list)} users read from JSON")
- for userdata in users_list:
- if userdata["username"]:
- if userdata["username"] == "expo":
- continue
- if userdata["username"] == "expoadmin":
- continue
- try:
- u = userdata["username"]
- e_email = userdata["email"]
- email = f.decrypt(e_email).decode()
- print(f" - user: '{u} <{email}>' ")
- if existing_user := User.objects.filter(username=userdata["username"]): # WALRUS
- # print(f" - deleting existing user '{existing_user[0]}' before importing")
- existing_user[0].delete()
- user = User.objects.create_user(userdata["username"], email, "secret")
- user.set_password = "secret" # stores hash not password
- user.is_staff = False
- user.is_superuser = False
- user.save()
- except Exception as e:
- print(f"Exception <{e}>\nusers in db: {len(User.objects.all())}\n{User.objects.all()}")
- formatted_json = json.dumps(userdata, indent=4)
- print(formatted_json)
- return None
- else:
- print(f" - user: BAD username for {userdata} ")
- # if userdata["date"] != "" or userdata["date"] != "None":
- # message = f"! {str(self.walletname)} Date format not ISO {userdata['date']}. Failed to load from {jsonfile} JSON file"
- # from troggle.core.models.troggle import DataIssue
- # DataIssue.objects.update_or_create(parser="wallets", message=message, url=wurl)
-
-
- ru = []
- for u in User.objects.all():
- if u.username == "expo":
- continue
- if u.username == "expoadmin":
- continue
- e_email = f.encrypt(u.email.encode("utf8")).decode()
- ru.append({"username":u.username, "email": e_email, "password": u.password})
- print(u.username, e_email)
- original = f.decrypt(e_email).decode()
- print(u.username, original)
-
- jsondict = { "registered_users": ru }
- encryptedfile = settings.EXPOWEB / ENCRYPTED_DIR / "encrypt.json"
- # with open(encryptedfile, 'w', encoding='utf-8') as json_f:
- # json.dump(jsondict, json_f, indent=1)
- # return True
-
+ return slug
def load_people_expos():
"""This is where the folk.csv file is parsed to read people's names.