mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2025-05-14 07:04:27 -04:00
clearer sql parsing and dumping
This commit is contained in:
parent
cdb70c73df
commit
35aa8c8902
2 changed files with 5 additions and 8 deletions
|
@ -18,15 +18,15 @@ class Page(models.Model):
|
||||||
updated = models.DateTimeField(null=True, default=None)
|
updated = models.DateTimeField(null=True, default=None)
|
||||||
# bookmarked = models.DateTimeField()
|
# bookmarked = models.DateTimeField()
|
||||||
|
|
||||||
sql_args = ('url', 'timestamp', 'title', 'tags', 'updated')
|
keys = ('url', 'timestamp', 'title', 'tags', 'updated')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, info: dict):
|
def from_json(cls, info: dict):
|
||||||
info = {k: v for k, v in info.items() if k in cls.sql_args}
|
info = {k: v for k, v in info.items() if k in cls.keys}
|
||||||
return cls(**info)
|
return cls(**info)
|
||||||
|
|
||||||
def as_json(self, *args) -> dict:
|
def as_json(self, *args) -> dict:
|
||||||
args = args or self.sql_args
|
args = args or self.keys
|
||||||
return {
|
return {
|
||||||
key: getattr(self, key)
|
key: getattr(self, key)
|
||||||
for key in args
|
for key in args
|
||||||
|
|
|
@ -9,16 +9,13 @@ from ..config import setup_django
|
||||||
|
|
||||||
### Main Links Index
|
### Main Links Index
|
||||||
|
|
||||||
sql_keys = ('url', 'timestamp', 'title', 'tags', 'updated')
|
|
||||||
|
|
||||||
|
|
||||||
@enforce_types
|
@enforce_types
|
||||||
def parse_sql_main_index() -> Iterator[Link]:
|
def parse_sql_main_index() -> Iterator[Link]:
|
||||||
setup_django()
|
setup_django()
|
||||||
from core.models import Page
|
from core.models import Page
|
||||||
|
|
||||||
return (
|
return (
|
||||||
page.as_json(*sql_keys)
|
page.as_json(*Page.keys)
|
||||||
for page in Page.objects.all()
|
for page in Page.objects.all()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,5 +25,5 @@ def write_sql_main_index(links: List[Link]) -> None:
|
||||||
from core.models import Page
|
from core.models import Page
|
||||||
|
|
||||||
for link in links:
|
for link in links:
|
||||||
info = {k: v for k, v in link._asdict().items() if k in sql_keys}
|
info = {k: v for k, v in link._asdict().items() if k in Page.keys}
|
||||||
Page.objects.update_or_create(url=link.url, defaults=info)
|
Page.objects.update_or_create(url=link.url, defaults=info)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue