Compare commits
4 Commits
43a3fc1a69
...
63c679d859
Author | SHA1 | Date |
---|---|---|
Shadowfacts | 63c679d859 | |
Shadowfacts | d0663a17e7 | |
Shadowfacts | f007b2d1ca | |
Shadowfacts | 1f28d6263c |
|
@ -130,16 +130,19 @@ export async function signAndSend(activity: Activity, inbox: string) {
|
|||
}
|
||||
|
||||
async function sendToFollowers(activity: Create, db: Database) {
|
||||
// TODO: only send to unique inboxes
|
||||
db.each("SELECT inbox FROM followers", (err, result) => {
|
||||
db.all("SELECT inbox FROM followers", (err, results) => {
|
||||
if (err) {
|
||||
console.log("Error getting followers: ", err);
|
||||
return;
|
||||
}
|
||||
const inbox = "https://" + new URL(result.inbox).host + "/inbox";
|
||||
const inboxes = results.map(it => "https://" + new URL(it.inbox).host + "/inbox");
|
||||
// convert to a Set to deduplicate inboxes
|
||||
(new Set(inboxes))
|
||||
.forEach(inbox => {
|
||||
console.log(`Federating ${activity.object.id} to ${inbox}`);
|
||||
signAndSend(activity, inbox);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export default function federate(toFederate: [string, Article][], db: Database) {
|
||||
|
|
|
@ -11,7 +11,9 @@ metadata.layout = "default.html.ejs"
|
|||
<% for (const post of posts) { %>
|
||||
<article itemscope itemtype="https://schema.org/BlogPosting">
|
||||
<h2 class="article-title" itemprop="headline">
|
||||
<%- fancyLink(post.metadata.title, post.metadata.permalink, `itemprop="url mainEntityOfPage"`) %>
|
||||
<a href="<%= post.metadata.permalink %>" itemprop="url mainEntityOfPage">
|
||||
<%= post.metadata.title %>
|
||||
</a>
|
||||
</h2>
|
||||
<%- include("includes/article-meta.html.ejs", { metadata: post.metadata }) %>
|
||||
<div class="article-content" itemprop="description">
|
||||
|
|
|
@ -42,6 +42,7 @@ body {
|
|||
article {
|
||||
margin-bottom: 75px;
|
||||
color: var(--content-text-color);
|
||||
border-bottom: 1px solid var(--accent-color);
|
||||
|
||||
@media (min-width: 768px) {
|
||||
a::before { content: "["; }
|
||||
|
@ -81,14 +82,6 @@ article {
|
|||
color: var(--secondary-ui-text-color);
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
width: calc(100% - 2 * 30px); // account for .container padding, don't overflow
|
||||
height: 1px;
|
||||
background-color: var(--accent-color);
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.article-title {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 0;
|
||||
|
@ -147,16 +140,20 @@ article {
|
|||
}
|
||||
|
||||
#comments-container {
|
||||
.comments-list {
|
||||
margin-top: 0px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
border-bottom: 1px solid var(--accent-color);
|
||||
padding-bottom: 55px;
|
||||
|
||||
.comment-user-avatar {
|
||||
width: 50px;
|
||||
border-radius: 5px;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.comments-list {
|
||||
margin-top: 0px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.comment-info {
|
||||
|
@ -165,10 +162,11 @@ article {
|
|||
}
|
||||
|
||||
.comment-children {
|
||||
margin-left: 50px;
|
||||
margin-left: 60px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.search {
|
||||
margin: 100px auto;
|
||||
|
@ -399,22 +397,17 @@ figure {
|
|||
|
||||
// Footer
|
||||
.site-footer {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
margin-top: 75px;
|
||||
margin-bottom: 20px;
|
||||
background-color: var(--ui-background-color);
|
||||
font-size: 16px;
|
||||
|
||||
> div {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
|
||||
padding-top: 10px;
|
||||
// border-top: 3px solid var(--accent-color);
|
||||
}
|
||||
|
||||
.site-title {
|
||||
margin: 0;
|
||||
font-variant: small-caps;
|
||||
|
@ -463,6 +456,10 @@ figure {
|
|||
.pagination {
|
||||
text-align: center;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination-link {
|
||||
color: var(--accent-color);
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<p class="article-meta">
|
||||
<meta itemprop="author" value="Shadowfacts">
|
||||
<div itemprop="author" itemscope="" itemtype="https://schema.org/Person">
|
||||
<meta itemprop="name" content="Shadowfacts">
|
||||
</div>
|
||||
on
|
||||
<span>
|
||||
<% const formatted = formatDate(metadata.date, "MMM Do, YYYY") %>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
</div>
|
||||
|
||||
<footer class="site-footer container">
|
||||
<div>
|
||||
<!-- <div> -->
|
||||
<div>
|
||||
<h2 class="site-title">Shadowfacts</h2>
|
||||
<p class="ui-controls">
|
||||
|
@ -91,7 +91,7 @@
|
|||
<li><%- fancyLink("Mastodon", "https://social.shadowfacts.net/users/shadowfacts", "rel=me") %></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
|
||||
<script>
|
||||
(() => {
|
||||
|
|
Loading…
Reference in New Issue