mirror of
https://git.linux-kernel.at/oliver/ivatar.git
synced 2025-11-19 14:38:02 +00:00
New field bluesky_handle in both main models
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 5.1.5 on 2025-01-27 10:54
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("ivataraccount", "0018_alter_photo_format"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="confirmedemail",
|
||||
name="bluesky_handle",
|
||||
field=models.CharField(blank=True, max_length=256, null=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 5.1.5 on 2025-01-27 13:33
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("ivataraccount", "0019_confirmedemail_bluesky_handle"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="confirmedopenid",
|
||||
name="bluesky_handle",
|
||||
field=models.CharField(blank=True, max_length=256, null=True),
|
||||
),
|
||||
]
|
||||
@@ -9,7 +9,7 @@ import time
|
||||
from io import BytesIO
|
||||
from os import urandom
|
||||
from urllib.error import HTTPError, URLError
|
||||
from ivatar.utils import urlopen
|
||||
from ivatar.utils import urlopen, Bluesky
|
||||
from urllib.parse import urlsplit, urlunsplit
|
||||
|
||||
from PIL import Image
|
||||
@@ -322,6 +322,8 @@ class ConfirmedEmail(BaseAccountModel):
|
||||
null=True,
|
||||
on_delete=models.deletion.SET_NULL,
|
||||
)
|
||||
# Alternative assignment - use Bluesky handle
|
||||
bluesky_handle = models.CharField(max_length=256, null=True, blank=True)
|
||||
digest = models.CharField(max_length=32)
|
||||
digest_sha256 = models.CharField(max_length=64)
|
||||
objects = ConfirmedEmailManager()
|
||||
@@ -342,6 +344,18 @@ class ConfirmedEmail(BaseAccountModel):
|
||||
self.photo = photo
|
||||
self.save()
|
||||
|
||||
def set_bluesky_handle(self, handle):
|
||||
"""
|
||||
Helper method to set Bluesky handle
|
||||
"""
|
||||
bs = Bluesky()
|
||||
avatar = bs.get_profile(handle)
|
||||
if not avatar:
|
||||
raise Exception("Invalid Bluesky handle")
|
||||
return
|
||||
self.bluesky_handle = handle
|
||||
self.save()
|
||||
|
||||
def save(
|
||||
self, force_insert=False, force_update=False, using=None, update_fields=None
|
||||
):
|
||||
@@ -463,6 +477,8 @@ class ConfirmedOpenId(BaseAccountModel):
|
||||
alt_digest2 = models.CharField(max_length=64, null=True, blank=True, default=None)
|
||||
# https://<id> - https w/o trailing slash
|
||||
alt_digest3 = models.CharField(max_length=64, null=True, blank=True, default=None)
|
||||
# Alternative assignment - use Bluesky handle
|
||||
bluesky_handle = models.CharField(max_length=256, null=True, blank=True)
|
||||
|
||||
access_count = models.BigIntegerField(default=0, editable=False)
|
||||
|
||||
@@ -481,6 +497,18 @@ class ConfirmedOpenId(BaseAccountModel):
|
||||
self.photo = photo
|
||||
self.save()
|
||||
|
||||
def set_bluesky_handle(self, handle):
|
||||
"""
|
||||
Helper method to set Bluesky handle
|
||||
"""
|
||||
bs = Bluesky()
|
||||
avatar = bs.get_profile(handle)
|
||||
if not avatar:
|
||||
raise Exception("Invalid Bluesky handle")
|
||||
return
|
||||
self.bluesky_handle = handle
|
||||
self.save()
|
||||
|
||||
def save(
|
||||
self, force_insert=False, force_update=False, using=None, update_fields=None
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user