Ctrl K
ComunidadGuías…

app/jobs/mark_abuser_job.py

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
from __future__ import annotations

from typing import Optional

import arrow

from app.abuser_utils import store_abuse_data
from app.constants import JobType
from app.models import (
    User,
    Job,
    JobPriority,
)


class MarkAbuserJob:
    def __init__(self, user: User):
        self._user: User = user

    def run(self) -> None:
        store_abuse_data(user=self._user)

    @staticmethod
    def create_from_job(job: Job) -> Optional[MarkAbuserJob]:
        user = User.get(job.payload["user_id"])
        if not user:
            return None

        return MarkAbuserJob(user)

    def store_job_in_db(self) -> Job:
        return Job.create(
            name=JobType.ABUSER_MARK.value,
            payload={"user_id": self._user.id},
            priority=JobPriority.Low,
            run_at=arrow.now(),
            commit=True,
        )