add custom dict() method for arcology.arroyo.Feed for export rendering

main
Ryan Rix 2023-01-24 21:33:44 -10:00
parent c606952a0b
commit 0a6ebe6e27
2 changed files with 44 additions and 1 deletions

View File

@ -762,11 +762,14 @@ A page has any number of refs according to the file primary key:
(vector file (format "%s:%s" type ref) node-id))))
#+end_src
* Arcology Feeds
* INPROGRESS Arcology Feeds
:PROPERTIES:
:ID: arcology/arroyo/feed
:ROAM_ALIASES: arcology.arroyo.Feed
:END:
:LOGBOOK:
- State "INPROGRESS" from [2023-01-24 Tue 23:33]
:END:
#+NAME: arcology.arroyo.Feed
#+begin_src python
@ -792,6 +795,15 @@ class Feed(SQLModel, table=True):
def get_post_visibility(self):
return parse_sexp(self.post_visibility)
def dict(self, **kwargs):
return dict(
key=self.get_key(),
url=self.get_arcology_key().to_url(),
title=self.get_title(),
site=self.get_site(),
visibility=self.get_post_visibility(),
)
#+end_src
A page has any number of feeds according to the file primary key:

View File

@ -206,6 +206,37 @@ class Keyword(SQLModel, table=True):
return next(session.exec(q))
except StopIteration:
return None
class Feed(SQLModel, table=True):
__tablename__ = "arcology_feeds"
file: str = Field(primary_key=True, foreign_key="arcology_pages.file")
key: str = Field(primary_key=True, description="The routing key for the feed.")
title: str = Field(description="Title of the page which the feed is embedded in")
site: str = Field(description="Arcology Site which the feed resides on.")
post_visibility: str = Field(description="Visibility of the feed's posts in feed2toot, etc")
def get_key(self):
return parse_sexp(self.key)
def get_arcology_key(self):
return ArcologyKey(self.get_key())
def get_title(self):
return parse_sexp(self.title)
def get_site(self):
return parse_sexp(self.site)
def get_post_visibility(self):
return parse_sexp(self.post_visibility)
def dict(self, **kwargs):
return dict(
key=self.get_key(),
url=self.get_arcology_key().to_url(),
title=self.get_title(),
site=self.get_site(),
visibility=self.get_post_visibility(),
)
from sqlmodel import create_engine
from sqlalchemy import event