Rework with black

This commit is contained in:
Oliver Falk
2022-02-11 13:17:22 +01:00
parent cbe0af27c0
commit a085e8b22f

View File

@@ -1,7 +1,8 @@
#!/usr/bin/env python #!/usr/bin/env python
''' # -*- coding: utf-8 -*-
"""
Import the whole libravatar export Import the whole libravatar export
''' """
import os import os
from os.path import isfile, isdir, join from os.path import isfile, isdir, join
@@ -9,13 +10,18 @@ import sys
import base64 import base64
from io import BytesIO from io import BytesIO
import django import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ivatar.settings") # pylint: disable=wrong-import-position
os.environ.setdefault(
"DJANGO_SETTINGS_MODULE", "ivatar.settings"
) # pylint: disable=wrong-import-position
django.setup() # pylint: disable=wrong-import-position django.setup() # pylint: disable=wrong-import-position
from django.contrib.auth.models import User from django.contrib.auth.models import User
from PIL import Image from PIL import Image
from django_openid_auth.models import UserOpenID from django_openid_auth.models import UserOpenID
from ivatar.settings import JPEG_QUALITY from ivatar.settings import JPEG_QUALITY
from ivatar.ivataraccount.read_libravatar_export import read_gzdata as libravatar_read_gzdata from ivatar.ivataraccount.read_libravatar_export import (
read_gzdata as libravatar_read_gzdata,
)
from ivatar.ivataraccount.models import ConfirmedEmail from ivatar.ivataraccount.models import ConfirmedEmail
from ivatar.ivataraccount.models import ConfirmedOpenId from ivatar.ivataraccount.models import ConfirmedOpenId
from ivatar.ivataraccount.models import Photo from ivatar.ivataraccount.models import Photo
@@ -26,54 +32,63 @@ if len(sys.argv) < 2:
exit(-255) exit(-255)
if not isdir(sys.argv[1]): if not isdir(sys.argv[1]):
print("First argument to '%s' must be a directory containing the exports" % sys.argv[0]) print(
"First argument to '%s' must be a directory containing the exports"
% sys.argv[0]
)
exit(-255) exit(-255)
PATH = sys.argv[1] PATH = sys.argv[1]
for file in os.listdir(PATH): for file in os.listdir(PATH):
if not file.endswith('.xml.gz'): if not file.endswith(".xml.gz"):
continue continue
if isfile(join(PATH, file)): if isfile(join(PATH, file)):
fh = open(join(PATH, file), 'rb') fh = open(join(PATH, file), "rb")
items = libravatar_read_gzdata(fh.read()) items = libravatar_read_gzdata(fh.read())
print('Adding user "%s"' % items['username']) print('Adding user "%s"' % items["username"])
(user, created) = User.objects.get_or_create(username=items['username']) (user, created) = User.objects.get_or_create(username=items["username"])
user.password = items['password'] user.password = items["password"]
user.save() user.save()
saved_photos = {} saved_photos = {}
for photo in items['photos']: for photo in items["photos"]:
photo_id = photo['id'] photo_id = photo["id"]
data = base64.decodebytes(bytes(photo['data'], 'utf-8')) data = base64.decodebytes(bytes(photo["data"], "utf-8"))
pilobj = Image.open(BytesIO(data)) pilobj = Image.open(BytesIO(data))
out = BytesIO() out = BytesIO()
pilobj.save(out, pilobj.format, quality=JPEG_QUALITY) pilobj.save(out, pilobj.format, quality=JPEG_QUALITY)
out.seek(0) out.seek(0)
photo = Photo() photo = Photo()
photo.user = user photo.user = user
photo.ip_address = '0.0.0.0' photo.ip_address = "0.0.0.0"
photo.format = file_format(pilobj.format) photo.format = file_format(pilobj.format)
photo.data = out.read() photo.data = out.read()
photo.save() photo.save()
saved_photos[photo_id] = photo saved_photos[photo_id] = photo
for email in items['emails']: for email in items["emails"]:
try: try:
ConfirmedEmail.objects.get_or_create(email=email['email'], user=user, ConfirmedEmail.objects.get_or_create(
photo=saved_photos.get(email['photo_id'])) email=email["email"],
except django.db.utils.IntegrityError: user=user,
print('%s not unique?' % email['email']) photo=saved_photos.get(email["photo_id"]),
for openid in items['openids']:
try:
ConfirmedOpenId.objects.get_or_create(openid=openid['openid'], user=user,
photo=saved_photos.get(openid['photo_id'])) # pylint: disable=no-member
UserOpenID.objects.get_or_create(
user_id=user.id,
claimed_id=openid['openid'],
display_id=openid['openid'],
) )
except django.db.utils.IntegrityError: except django.db.utils.IntegrityError:
print('%s not unique?' % openid['openid']) print("%s not unique?" % email["email"])
for openid in items["openids"]:
try:
ConfirmedOpenId.objects.get_or_create(
openid=openid["openid"],
user=user,
photo=saved_photos.get(openid["photo_id"]),
) # pylint: disable=no-member
UserOpenID.objects.get_or_create(
user_id=user.id,
claimed_id=openid["openid"],
display_id=openid["openid"],
)
except django.db.utils.IntegrityError:
print("%s not unique?" % openid["openid"])
fh.close() fh.close()