[lint] actor.py
This commit is contained in:
parent
00e051a8a2
commit
0fe7699e66
2 changed files with 21 additions and 15 deletions
|
@ -76,7 +76,7 @@ ME = {
|
|||
}
|
||||
|
||||
class BaseActor:
|
||||
def __init__(self, ap_actor: RawObject) -> None:
|
||||
def __init__(self, ap_actor: RawObject, **_) -> None:
|
||||
if (ap_type := ap_actor.get("type")) not in ACTOR_TYPES:
|
||||
raise ValueError(f"Unexpected actor type: {ap_type}")
|
||||
|
||||
|
|
34
app/actor.py
34
app/actor.py
|
@ -1,23 +1,27 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Actor stuff."""
|
||||
import typing
|
||||
import json
|
||||
from loguru import logger
|
||||
from app.database import AsyncSession
|
||||
from app import models
|
||||
from sqlalchemy import select
|
||||
from urllib.parse import urlparse
|
||||
from sqlalchemy import select
|
||||
from loguru import logger
|
||||
|
||||
import app.activitypub as ap
|
||||
from app import models
|
||||
from app.database import AsyncSession
|
||||
|
||||
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from app.models import Actor as ActorModel
|
||||
|
||||
import app.activitypub as ap
|
||||
|
||||
|
||||
|
||||
async def fetch_actor(
|
||||
db_session : AsyncSession,
|
||||
actor_id : str,
|
||||
) -> "ActorModel":
|
||||
"""Fetch actor on db, if not exist will be grabed and stored
|
||||
in db."""
|
||||
exist_actor = (
|
||||
await db_session.scalars(
|
||||
select(models.Actor).where(
|
||||
|
@ -26,17 +30,19 @@ async def fetch_actor(
|
|||
)
|
||||
).one_or_none()
|
||||
|
||||
if not exist_actor:
|
||||
ap_object = await ap.fetch(actor_id)
|
||||
exist_actor = await save_actor(ap_object, db_session)
|
||||
return exist_actor
|
||||
else:
|
||||
if exist_actor:
|
||||
return exist_actor
|
||||
|
||||
ap_object = await ap.fetch(actor_id)
|
||||
exist_actor = await save_actor(ap_object, db_session)
|
||||
return exist_actor
|
||||
|
||||
|
||||
async def save_actor(
|
||||
ap_object : dict,
|
||||
db_session : AsyncSession
|
||||
) -> "ActorModel":
|
||||
"""Save actor to db."""
|
||||
logger.info("save actor " + ap_object["id"])
|
||||
actor = models.Actor(
|
||||
ap_id=ap_object["id"],
|
||||
|
@ -50,6 +56,7 @@ async def save_actor(
|
|||
await db_session.refresh(actor)
|
||||
return actor
|
||||
|
||||
|
||||
def _handle (
|
||||
ap_object :dict
|
||||
) -> str:
|
||||
|
@ -62,12 +69,11 @@ def _handle (
|
|||
return handle
|
||||
|
||||
|
||||
|
||||
async def get_public_key(
|
||||
db_session: AsyncSession,
|
||||
key_id: str
|
||||
) -> str:
|
||||
|
||||
"""Give key id and reutrn public key."""
|
||||
existing_actor = (
|
||||
await db_session.scalars(
|
||||
select(models.Actor).where(models.Actor.ap_id == key_id.split("#")[0])
|
||||
|
|
Loading…
Reference in a new issue