| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- __package__ = 'archivebox.plugantic'
- # import uuid
- # from django.db import models
- # from typing_extensions import Self
- # from django_pydantic_field import SchemaField
- # from django.conf import settings
- # from abid_utils.models import ABIDModel, ABIDField
- # # from .plugins import Plugin as PluginSchema, CORE_PLUGIN
- # from .binproviders import BinProvider
- # from .binaries import Binary
- # from .configs import WgetOptionsConfig
- # from .extractors import Extractor
- # from .replayers import Replayer
- # PLUGINS_ROOT = settings.CONFIG['OUTPUT_DIR'] / 'plugins'
- # PLUGINS_ROOT.mkdir(exist_ok=True)
- # class CustomPlugin(ABIDModel):
- # abid_prefix = 'plg_'
- # abid_ts_src = 'self.added'
- # abid_uri_src = 'self.name'
- # abid_subtype_src = '"09"'
- # abid_rand_src = 'self.id'
- # id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # legacy pk
- # uuid = models.UUIDField(blank=True, null=True, editable=True, unique=True)
- # abid = ABIDField(prefix=abid_prefix)
- # name = models.CharField(max_length=64, blank=False, unique=True)
- # path = models.FilePathField(path=str(PLUGINS_ROOT), match='*', recursive=True, allow_folders=True, allow_files=False)
- # # replayers: list[Replayer] = SchemaField()
- # # binaries: list[Replayer] = SchemaField()
- # # extractors: list[Replayer] = SchemaField()
- # # @classmethod
- # # def from_loaded_plugin(cls, plugin: PluginSchema) -> Self:
- # # new_obj = cls(
- # # schema=plugin,
- # # )
- # # return new_obj
|