36 lines
597 B
Python
36 lines
597 B
Python
|
from abc import ABC
|
||
|
from pydantic import BaseModel
|
||
|
from typing import Optional, Tuple
|
||
|
|
||
|
from mastodon import Mastodon
|
||
|
|
||
|
from masto_tools.init import log_in
|
||
|
|
||
|
from masto_tools.config import Config
|
||
|
|
||
|
class Result(BaseModel):
|
||
|
"""
|
||
|
Result of a script step
|
||
|
"""
|
||
|
|
||
|
|
||
|
class Script(ABC):
|
||
|
"""
|
||
|
Metaclass for organizing
|
||
|
"""
|
||
|
name:str = ""
|
||
|
# TODO Typ
|
||
|
scopes: Tuple[str] = ()
|
||
|
|
||
|
def __init__(self, config:Optional[Config]=None):
|
||
|
|
||
|
# TODO: Logging
|
||
|
|
||
|
if config is None:
|
||
|
config = Config()
|
||
|
|
||
|
self.config = config
|
||
|
|
||
|
self.client = log_in(config)
|
||
|
|