This commit is contained in:
Doug Hoyte
2024-12-19 19:13:46 -05:00
parent 20cc3a66b3
commit ff2424a5ef
5 changed files with 41 additions and 5 deletions

View File

@ -1,6 +1,8 @@
read read
* nostr: links not replaced in feed titles * nostr: links not replaced in feed titles
* support nprofile/nevent/etc links * support nprofile/nevent/etc links
example nevent: https://oddbean.com/e/note1qmye0at28we63aze93xjr92nzw725td0a5ncz3htwlc3wg78kp6q7802ad
example nprofile: https://oddbean.com/e/note1ykjalrpaj6jvxeuc434yd7ksrj8yd2vte478700ta8np250l3clsyjvh4q
* non-500 error pages when bech32 fails to parse, for example * non-500 error pages when bech32 fails to parse, for example
* search field: enter anything, pubkey (hex or npub), eventId, etc. maybe even full-text search? * search field: enter anything, pubkey (hex or npub), eventId, etc. maybe even full-text search?
* rss * rss

View File

@ -615,7 +615,9 @@ struct EventThread {
if (processedLevIds.contains(e.ev.primaryKeyId)) continue; if (processedLevIds.contains(e.ev.primaryKeyId)) continue;
if (e.getKind() != 1) continue; if (e.getKind() != 1) continue;
ctx.orphanNodes.emplace_back(e.getCreatedAt(), process(id)); if (!eventCache.contains(e.parent)) {
ctx.orphanNodes.emplace_back(e.getCreatedAt(), process(id));
}
} }
std::sort(ctx.orphanNodes.begin(), ctx.orphanNodes.end(), [](auto &a, auto &b){ return a.timestamp < b.timestamp; }); std::sort(ctx.orphanNodes.begin(), ctx.orphanNodes.end(), [](auto &a, auto &b){ return a.timestamp < b.timestamp; });

View File

@ -62,7 +62,7 @@ h2 {
align-items: center; align-items: center;
@media only screen and (max-width: 576px){ @media only screen and (max-width: 576px){
.oddbean-name { .oddbean-name, .about {
display: none; display: none;
} }
} }
@ -86,6 +86,7 @@ h2 {
.feedname { .feedname {
margin-left: 3px; margin-left: 3px;
color: #0032f5;
} }
} }
@ -114,9 +115,18 @@ h2 {
#ob-footer { #ob-footer {
margin-top: 30px; margin-top: 30px;
padding-top: 20px; margin-bottom: 30px;
border-top: 1px solid #65cb25; padding-top: 10px;
border-top: 2px solid #65cb25;
text-align: center; text-align: center;
.footer-links {
font-size: 90%;
}
> * {
margin-top: 15px;
}
} }
@ -234,6 +244,20 @@ table.vert {
padding-left: 20px; padding-left: 20px;
border-left: 1px dotted black; border-left: 1px dotted black;
} }
.orphan-separator {
width: 100%;
text-align: center;
border-bottom: 2px dashed #c60000;
line-height: 0.1em;
margin: 10px 0 20px;
> span {
color: #c60000;
padding: 0 10px;
background: #f6f6ef;
}
}
} }
@ -311,7 +335,7 @@ table.vert {
.feed-description { .feed-description {
padding-left: 20px; padding-left: 20px;
border-left: 2px solid blue; border-left: 2px solid #0032f5;
white-space: pre-line; white-space: pre-line;
} }
} }

View File

@ -1,6 +1,10 @@
<div class="event-root"> <div class="event-root">
$(ctx.foundEvents) $(ctx.foundEvents)
<div class="orphan-separator"> ?(ctx.orphanNodes.size() > 0)
<span>orphan notes (missing parents)</span>
</div>
<div class="replies"> @(auto &e : ctx.orphanNodes) <div class="replies"> @(auto &e : ctx.orphanNodes)
$(e.rendered) $(e.rendered)
</div> </div>

View File

@ -42,6 +42,10 @@
</div> </div>
<div id="ob-footer"> <div id="ob-footer">
<div>
<a href="/about">About Oddbean</a>
</div>
<form method="get" action="/search"> <form method="get" action="/search">
Search: <input type="text" name="q" size="17" autocorrect="off" spellcheck="false" autocapitalize="off" autocomplete="false"> Search: <input type="text" name="q" size="17" autocorrect="off" spellcheck="false" autocapitalize="off" autocomplete="false">
</form> </form>