models.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. __package__ = 'archivebox.plugantic'
  2. # import uuid
  3. # from django.db import models
  4. # from typing_extensions import Self
  5. # from django_pydantic_field import SchemaField
  6. # from django.conf import settings
  7. # from abid_utils.models import ABIDModel, ABIDField
  8. # # from .plugins import Plugin as PluginSchema, CORE_PLUGIN
  9. # from .binproviders import BinProvider
  10. # from .binaries import Binary
  11. # from .configs import WgetOptionsConfig
  12. # from .extractors import Extractor
  13. # from .replayers import Replayer
  14. # PLUGINS_ROOT = settings.CONFIG['OUTPUT_DIR'] / 'plugins'
  15. # PLUGINS_ROOT.mkdir(exist_ok=True)
  16. # class CustomPlugin(ABIDModel):
  17. # abid_prefix = 'plg_'
  18. # abid_ts_src = 'self.added'
  19. # abid_uri_src = 'self.name'
  20. # abid_subtype_src = '"09"'
  21. # abid_rand_src = 'self.id'
  22. # id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # legacy pk
  23. # uuid = models.UUIDField(blank=True, null=True, editable=True, unique=True)
  24. # abid = ABIDField(prefix=abid_prefix)
  25. # name = models.CharField(max_length=64, blank=False, unique=True)
  26. # path = models.FilePathField(path=str(PLUGINS_ROOT), match='*', recursive=True, allow_folders=True, allow_files=False)
  27. # # replayers: list[Replayer] = SchemaField()
  28. # # binaries: list[Replayer] = SchemaField()
  29. # # extractors: list[Replayer] = SchemaField()
  30. # # @classmethod
  31. # # def from_loaded_plugin(cls, plugin: PluginSchema) -> Self:
  32. # # new_obj = cls(
  33. # # schema=plugin,
  34. # # )
  35. # # return new_obj