Source code for darc.model.web.selenium
# -*- coding: utf-8 -*-
"""Loader Records
--------------------
The :mod:`darc.model.web.selenium` module defines the data model
representing :obj:`loader <darc.crawl.loader>`, specifically
from ``selenium`` submission.
.. seealso::
Please refer to :func:`darc.submit.submit_selenium` for more
information.
"""
from typing import TYPE_CHECKING
from peewee import BlobField, DateTimeField, ForeignKeyField, TextField
from darc.model.abc import BaseModelWeb as BaseModel
from darc.model.web.url import URLModel
if TYPE_CHECKING:
from typing import Optional
from darc._compat import datetime
__all__ = ['SeleniumModel']
[docs]class SeleniumModel(BaseModel):
"""Data model for documents from ``selenium`` submission."""
#: Original URL (c.f. :attr:`link.url <darc.link.Link.url>`).
url: 'URLModel' = ForeignKeyField(URLModel, backref='selenium')
#: Timestamp of the submission.
timestamp: 'datetime' = DateTimeField()
#: Document data as :obj:`str`.
document: str = TextField()
#: Screenshot in PNG format as :obj:`bytes`.
screenshot: 'Optional[bytes]' = BlobField(null=True)