diff --git a/cry/feed.py b/cry/feed.py index ca4b73f..67b0b76 100644 --- a/cry/feed.py +++ b/cry/feed.py @@ -2,6 +2,7 @@ import asyncio import calendar import dataclasses +import datetime import functools import hashlib import html.parser @@ -132,6 +133,9 @@ class Entry: link=link, ) + def posted_time_iso(self) -> str: + return datetime.datetime.fromtimestamp(self.posted_at / 1000).isoformat() + def time_ago(self) -> str: posted = int(self.posted_at / 1000) seconds = int(time.time()) - posted diff --git a/cry/static/style.css b/cry/static/style.css index a6d1d8c..34b4633 100644 --- a/cry/static/style.css +++ b/cry/static/style.css @@ -1,10 +1,9 @@ body { + box-sizing: border-box; margin-right: 4rem; margin-left: 4rem; margin-top: 0; margin-bottom: 0; - display: flex; - flex-direction: column; height: 100vh; } @@ -41,3 +40,92 @@ li.entry:before { content: '\2022'; padding-right: 0.5rem; } + +/* + * FEED VIEW + */ +.fv-body { + display: grid; + grid-template-columns: 1fr; + grid-template-rows: auto auto 1fr; +} + +.fv-title { + grid-row: 1; +} + +.fv-subscribe { + grid-row: 2; +} + +.fv-main-panel { + grid-row: 3; + margin-top: 1rem; + + display: grid; + grid-template-rows: 1fr; + grid-template-columns: 1fr 3fr; + overflow-y: scroll; +} + +.fv-summary-panel { + grid-column: 1; + + display: grid; + grid-template-columns: 1fr; + grid-template-rows: auto 1fr; + + margin-right: 1rem; + overflow-y: scroll; +} + +.fv-summary-refresh { + grid-row: 1; + + width: 100%; + display: block; +} + +.fv-summary-refresh input { + width: 100%; + padding: 0.5rem; +} + +.fv-summary-list { + grid-row: 2; + + list-style-type: none; + padding: 0; + overflow-y: scroll; +} + +.fv-feed-panel { + grid-column: 2; + overflow-y: scroll; +} + +/* + * FEED SUMMARY ITEM + */ +.feed-summary { + margin-bottom: 0.5rem; + overflow: hidden; +} + +.feed-summary-title { + margin: 0; + font-size: 100%; + font-weight: bold; +} + +.feed-summary-timestamp { + margin: 0; +} + +.feed-summary-entry { + margin: 0; + + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} diff --git a/cry/views.py b/cry/views.py index c53833d..45f1ef9 100644 --- a/cry/views.py +++ b/cry/views.py @@ -4,6 +4,23 @@ import dominate.tags as tags from . import feed + +class time(tags.html_tag): + """The