make work

This commit is contained in:
Drew Harwell 2017-04-29 21:14:25 -05:00
parent fa22d4a3ca
commit a420d94229
8 changed files with 554 additions and 117 deletions

34
index.js Normal file
View File

@ -0,0 +1,34 @@
var Express = require('express');
var convert = require('./lib/convert');
var serveStatic = require('serve-static');
var request = require('request');
var app = Express();
app.use(serveStatic('static'));
app.get('/api/feed',function(req,res){
// get feed url
var feedUrl = req.query.url;
if (!feedUrl){
res.status(400);
res.send('You need to specify a feed URL');
}
var opts = {};
var req = request.get(feedUrl);
convert(req,{},function(er,data){
if (er){
res.status(500);
res.send('error fetching or parsing feed');
}
res.status(200);
res.send(data);
});
});
app.listen(process.env.PORT || 8000,function(){
console.log('listening on '+(process.env.PORT || 8000));
});

View File

@ -6,7 +6,14 @@ var template = ejs.compile(fs.readFileSync('./lib/template.ejs','utf8'));
// source the files
module.exports = function(stream,callback){
module.exports = function(stream,opts,callback){
var callback = callback;
var opts = opts;
if (typeof opts == 'function'){
callback = opts;
opts = {};
}
// convert s from atom feed to a full html page for rendering
breakDown(stream,function(er,data){
if (er) {
@ -54,7 +61,76 @@ function breakDown(stream,callback){
// hydrate the json to html
function buildUp(jsonObj){
console.log(jsonObj.meta.title);
//fs.writeFileSync('sampleobj.json',JSON.stringify(jsonObj,null,2));
// add some links to the item for avatar et cetera
jsonObj.items.forEach(function(item){
// get date
item.stringDate = isoDateToEnglish(item.date);
item.content = getH(item,'atom:content');
// get enclosures
item.enclosures = [];
if (item["activity:object"] && item["activity:object"].link){
item["activity:object"].link.forEach(function(link){
if (!link['@']){return;} // avoid keyerror
var rel = link['@'].rel;
var href = link['@'].href;
if (rel == 'enclosure'){
item.enclosures.push(href);
}
});
}
// get author info
item.author = {};
var _author = item.meta['atom:author'];
if ( item['activity:object'] && item['activity:object'].author){
_author = item['activity:object'].author;
}
// item.author.name = _author.name.# or empty string
item.author.name = getH(_author,'name');
item.author.uri = getH(_author,'uri');
item.author.fullName = getH(_author,'email');
item.author.displayName = getH(_author,'poco:displayname');
var authorLinks = _author.link || [];
authorLinks.forEach(function(link){
if (!link['@']){return;} // avoid keyerror
var rel = link['@'].rel;
var href = link['@'].href;
if (rel == 'avatar'){
item.author.avatar = href;
}else if(rel == 'alternate'){
item.author.alternate = href;
}
});
});
return template(jsonObj);
}
// get obj[key]['#'] or ''
function getH(obj,key){
if (!obj[key]){return ''}
return obj[key]['#']||'';
}
function isoDateToEnglish(d){
var d = d;
if (typeof d == 'object'){
d = d.toISOString();
}
var dt = d.split(/[t\-]/ig);
var months = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ];
return months[Number(dt[1])] +' '+dt[2]+ ', '+dt[0];
}

View File

@ -1,23 +1,14 @@
<html>
<head>
<meta charset="UTF-8"></meta>
<style type="text/css">
.item{
border:solid 1px black;
}
.meta{
}
.title{
font-weight:bold;
}
</style>
<style type="text/css"></style>
<link rel="stylesheet" href="/dark.css"></link>
</head>
<body>
<div class="meta">
<div class="title">
<a href="<%= meta.link %>">
<%- meta.title %>
<%- meta.title %>'s Feed on Mastodon
</a>
</div>
<div class="description"><%- meta.description %></div>
@ -26,12 +17,30 @@
<div class="container">
<% items.forEach(function(item){ %>
<div class="item">
<div class="item-title">
<%- item.title %>
</div>
<div class="item-title"> <%- item.title %> </div>
<div class="author">
<a class="avatar" href="<%- item.author.uri %>">
<img class="avatar" src="<%- item.author.avatar %>"/>
</a>
<div class="author-info">
<a class="author-displayname" href="<%- item.author.uri %>"> <%= item.author.displayName %> </a>
<div class="author-fullname"> <%= item.author.fullName %> </div>
</div>
</a>
</div>
<div class="item-content">
<%- item['atom:content']['#'] %>
<%- item.content %>
</div>
<% if (item.enclosures.length > 0){ %>
<div class="enclosures">
<% for (var i = 0; i < item.enclosures.length; i ++){ %>
<a class="enclosure" href="<%- item.enclosures[i] %>" >
<img src="<%- item.enclosures[i] %>"/>
</a>
<% } %>
</div>
<% } %>
<div class="date"><%- item.stringDate %></div>
</div>
<% }); %>
</div>

View File

@ -4,6 +4,7 @@
"express": "^4.15.2",
"feedparser": "^2.2.0",
"pug": "^2.0.0-beta.12",
"request": "^2.81.0"
"request": "^2.81.0",
"serve-static": "^1.12.2"
}
}

84
static/dark.css Normal file
View File

@ -0,0 +1,84 @@
html,
body {
background-color: #22272a;
font-family: Roboto, sans-serif;
color: #eee;
}
* {
margin: 0;
padding: 0;
}
a,
a * {
color: #09c;
}
.meta {
padding: 1em;
background-color: #292f32;
}
.meta * {
line-height: 2em;
}
.item {
padding: 1em;
border-top: solid 2px #30373b;
}
.item-content,
.description,
.title {
font-size: 1.2rem;
font-weight: normal;
}
.item-content {
max-width: 750px;
}
.item-content p {
margin: 0.5em 0;
}
.item-title,
.date,
.author-fullname,
.description {
color: #888888;
font-size: 0.9rem;
}
.author {
display: flex;
margin: 1em 0;
}
.author-info {
margin: 0.5em 1em;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.author-info .author-displayname {
font-size: 1.2rem;
color: #eee;
text-decoration: none;
display: block;
font-weight: bolder;
}
.avatar {
width: 70px;
height: 70px;
border: none;
border-radius: 10%;
}
.enclosures {
padding: 0.5em 0;
display: flex;
flex-direction: row;
max-height: 200px;
max-width: 700px;
overflow: hidden;
}
.enclosure,
.enclosure > img {
flex: 0 1 1;
display: inline-block;
border: none;
cursor: zoom-in;
max-height: 200px;
max-width: 700px;
}

5
static/index.html Normal file
View File

@ -0,0 +1,5 @@
<html><head></head><body>
Example:
<iframe sandbox src="/api/feed?url=https%3A%2F%2Foctodon.social%2Fusers%2Ffenwick67.atom"></iframe>
</body></html>

File diff suppressed because one or more lines are too long

View File

@ -2,22 +2,13 @@
<head>
<meta charset="UTF-8"></meta>
<style type="text/css">
.item{
border:solid 1px black;
}
.meta{
}
.title{
font-weight:bold;
}
</style>
</head>
<body>
<div class="meta">
<div class="title">
<a href="https://octodon.social/@fenwick67">
fenwick67 🦆
fenwick67 🦆's Feed on Mastodon
</a>
</div>
<div class="description">Engineer, Developer, Person. http://fenwick.pizza</div>
@ -26,183 +17,427 @@
<div class="container">
<div class="item">
<div class="item-title">
New status by fenwick67
</div>
<div class="item-title"> New status by fenwick67 </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/fenwick67">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/008/871/original/d5281ad9c6c7401d.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/fenwick67"> fenwick67 🦆 </a>
<div class="author-fullname"> fenwick67@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p>What kind of coffee shop closes at 2pm?</p>
<p>What kind of coffee shop closes at 2pm?</p>
</div>
<div class="date">May 29, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by muninnherself@social.tchncs.de
</div>
<div class="item-title"> fenwick67 shared a status by muninnherself@social.tchncs.de </div>
<div class="author">
<a class="avatar" href="https://social.tchncs.de/users/muninnherself">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/018/289/original/eb6b32e85f8606b4.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://social.tchncs.de/users/muninnherself"> Jack Fraser </a>
<div class="author-fullname"> muninnherself@social.tchncs.de </div>
</div>
</a>
</div>
<div class="item-content">
<p><a href="https://social.tchncs.de/tags/dailymegalith">#<span>DailyMegalith</span></a> Corrimony chambered cairn <a href="https://social.tchncs.de/tags/highland">#<span>Highland</span></a> <a href="https://social.tchncs.de/tags/scotland">#<span>Scotland</span></a> (2009) <a href="https://social.tchncs.de/media/MxqONSPOUvoExt4uVPM"><span class="invisible">https://</span><span class="ellipsis">social.tchncs.de/media/MxqONSP</span><span class="invisible">OUvoExt4uVPM</span></a></p>
<p><a href="https://social.tchncs.de/tags/dailymegalith">#<span>DailyMegalith</span></a> Corrimony chambered cairn <a href="https://social.tchncs.de/tags/highland">#<span>Highland</span></a> <a href="https://social.tchncs.de/tags/scotland">#<span>Scotland</span></a> (2009) <a href="https://social.tchncs.de/media/MxqONSPOUvoExt4uVPM"><span class="invisible">https://</span><span class="ellipsis">social.tchncs.de/media/MxqONSP</span><span class="invisible">OUvoExt4uVPM</span></a></p>
</div>
<div class="enclosures">
<a class="enclosure" href="https://assets.octodon.social/media_attachments/files/000/110/813/original/cbc5fbacac3f24d1.jpg" >
<img src="https://assets.octodon.social/media_attachments/files/000/110/813/original/cbc5fbacac3f24d1.jpg"/>
</a>
</div>
<div class="date">May 29, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by alyx@witches.town
</div>
<div class="item-title"> fenwick67 shared a status by alyx@witches.town </div>
<div class="author">
<a class="avatar" href="https://witches.town/users/alyx">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/018/850/original/03478ef0cf6f6256.png"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://witches.town/users/alyx"> :dizzy:Alyx </a>
<div class="author-fullname"> alyx@witches.town </div>
</div>
</a>
</div>
<div class="item-content">
<p>🐧 💢</p>
<p>🐧 💢</p>
</div>
<div class="enclosures">
<a class="enclosure" href="https://assets.octodon.social/media_attachments/files/000/110/806/original/645cf24228f9c2a6.jpg" >
<img src="https://assets.octodon.social/media_attachments/files/000/110/806/original/645cf24228f9c2a6.jpg"/>
</a>
</div>
<div class="date">May 29, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by jalefkowit
</div>
<div class="item-title"> fenwick67 shared a status by jalefkowit </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/jalefkowit">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/011/644/original/d123fd89a2381bbc.jpeg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/jalefkowit"> Jason Lefkowitz 👻 </a>
<div class="author-fullname"> jalefkowit@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p>&quot;Visualize the you you want to be&quot;</p><p>(I visualize a giant mecha-lizard demolishing a city)</p>
<p>&quot;Visualize the you you want to be&quot;</p><p>(I visualize a giant mecha-lizard demolishing a city)</p>
</div>
<div class="date">May 29, 2017</div>
</div>
<div class="item">
<div class="item-title">
New status by fenwick67
</div>
<div class="item-title"> New status by fenwick67 </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/fenwick67">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/008/871/original/d5281ad9c6c7401d.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/fenwick67"> fenwick67 🦆 </a>
<div class="author-fullname"> fenwick67@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p><span class="h-card"><a href="https://mastodon.social/@viTekiM" class="u-url mention">@<span>viTekiM</span></a></span> An infinity percent increase is pretty good</p>
<p><span class="h-card"><a href="https://mastodon.social/@viTekiM" class="u-url mention">@<span>viTekiM</span></a></span> An infinity percent increase is pretty good</p>
</div>
<div class="date">May 29, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by Siphonay
</div>
<div class="item-title"> fenwick67 shared a status by Siphonay </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/Siphonay">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/001/153/original/fce7f2fd091f3cfe.png"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/Siphonay"> Siphonay ❎ </a>
<div class="author-fullname"> Siphonay@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p>tbh there should be a vaporwave but with early 2000s aestethics</p>
<p>tbh there should be a vaporwave but with early 2000s aestethics</p>
</div>
<div class="date">May 29, 2017</div>
</div>
<div class="item">
<div class="item-title">
New status by fenwick67
</div>
<div class="item-title"> New status by fenwick67 </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/fenwick67">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/008/871/original/d5281ad9c6c7401d.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/fenwick67"> fenwick67 🦆 </a>
<div class="author-fullname"> fenwick67@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p><span class="h-card"><a href="https://octodon.social/@Siphonay" class="u-url mention">@<span>Siphonay</span></a></span> they never told us this in French class</p>
<p><span class="h-card"><a href="https://octodon.social/@Siphonay" class="u-url mention">@<span>Siphonay</span></a></span> they never told us this in French class</p>
</div>
<div class="date">May 28, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by boots@computerfairi.es
</div>
<div class="item-title"> fenwick67 shared a status by boots@computerfairi.es </div>
<div class="author">
<a class="avatar" href="https://computerfairi.es/users/boots">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/026/460/original/a09ac4ee9ee57327.gif"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://computerfairi.es/users/boots"> boͫo͏t̠s̤͇̃̆͞🌸̼🌿̨͙̋ͪ҉ </a>
<div class="author-fullname"> boots@computerfairi.es </div>
</div>
</a>
</div>
<div class="item-content">
<p><a href="https://computerfairi.es/media/IlYY1SfHKSj61i2ty9Q"><span class="invisible">https://</span><span class="ellipsis">computerfairi.es/media/IlYY1Sf</span><span class="invisible">HKSj61i2ty9Q</span></a></p>
<p><a href="https://computerfairi.es/media/IlYY1SfHKSj61i2ty9Q"><span class="invisible">https://</span><span class="ellipsis">computerfairi.es/media/IlYY1Sf</span><span class="invisible">HKSj61i2ty9Q</span></a></p>
</div>
<div class="enclosures">
<a class="enclosure" href="https://assets.octodon.social/media_attachments/files/000/104/766/original/69ed86d1c41c92a2.png" >
<img src="https://assets.octodon.social/media_attachments/files/000/104/766/original/69ed86d1c41c92a2.png"/>
</a>
</div>
<div class="date">May 28, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by jk@mastodon.social
</div>
<div class="item-title"> fenwick67 shared a status by jk@mastodon.social </div>
<div class="author">
<a class="avatar" href="https://mastodon.social/users/jk">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/001/066/original/media.gif"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://mastodon.social/users/jk"> josef </a>
<div class="author-fullname"> jk@mastodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p>Been thinking a LOT about how this aesthetic has not changed AT ALL in 25+ years</p><p>like those batman logos were probably painted on there in '89?</p><p>its probably the only nostalgic thing from my childhood that still exists in exactly the way I remember it<br><a href="https://mastodon.social/media/Yug3yS-EyFDOCYhuSN8"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/media/Yug3yS-E</span><span class="invisible">yFDOCYhuSN8</span></a><br><a href="https://mastodon.social/media/7taNFVnrAKCJuEIz90Y"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/media/7taNFVnr</span><span class="invisible">AKCJuEIz90Y</span></a></p>
<p>Been thinking a LOT about how this aesthetic has not changed AT ALL in 25+ years</p><p>like those batman logos were probably painted on there in '89?</p><p>its probably the only nostalgic thing from my childhood that still exists in exactly the way I remember it<br><a href="https://mastodon.social/media/Yug3yS-EyFDOCYhuSN8"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/media/Yug3yS-E</span><span class="invisible">yFDOCYhuSN8</span></a><br><a href="https://mastodon.social/media/7taNFVnrAKCJuEIz90Y"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/media/7taNFVnr</span><span class="invisible">AKCJuEIz90Y</span></a></p>
</div>
<div class="enclosures">
<a class="enclosure" href="https://assets.octodon.social/media_attachments/files/000/102/761/original/63eae4a19d968323.jpeg" >
<img src="https://assets.octodon.social/media_attachments/files/000/102/761/original/63eae4a19d968323.jpeg"/>
</a>
<a class="enclosure" href="https://assets.octodon.social/media_attachments/files/000/102/762/original/61a6d6f67b1f6e6b.jpeg" >
<img src="https://assets.octodon.social/media_attachments/files/000/102/762/original/61a6d6f67b1f6e6b.jpeg"/>
</a>
</div>
<div class="date">May 28, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by yogthos@mastodon.social
</div>
<div class="item-title"> fenwick67 shared a status by yogthos@mastodon.social </div>
<div class="author">
<a class="avatar" href="https://mastodon.social/users/yogthos">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/008/367/original/9cca5512c012df69.png"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://mastodon.social/users/yogthos"> Dmitri Sotnikov 🤖 </a>
<div class="author-fullname"> yogthos@mastodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p>The American Physical Society and CERN jointly announce a partnership to make all CERN-authored articles published in the APS journal collection to be Open Access. </p><p><a href="https://journals.aps.org/prl/edannounce/cern-and-aps-announce-partnership-for-open-access"><span class="invisible">https://</span><span class="ellipsis">journals.aps.org/prl/edannounc</span><span class="invisible">e/cern-and-aps-announce-partnership-for-open-access</span></a></p>
<p>The American Physical Society and CERN jointly announce a partnership to make all CERN-authored articles published in the APS journal collection to be Open Access. </p><p><a href="https://journals.aps.org/prl/edannounce/cern-and-aps-announce-partnership-for-open-access"><span class="invisible">https://</span><span class="ellipsis">journals.aps.org/prl/edannounc</span><span class="invisible">e/cern-and-aps-announce-partnership-for-open-access</span></a></p>
</div>
<div class="date">May 27, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by Shyfon@witches.town
</div>
<div class="item-title"> fenwick67 shared a status by Shyfon@witches.town </div>
<div class="author">
<a class="avatar" href="https://witches.town/users/Shyfon">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/001/610/original/3d9ffa41feac374a.png"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://witches.town/users/Shyfon"> βMétaMoi </a>
<div class="author-fullname"> Shyfon@witches.town </div>
</div>
</a>
</div>
<div class="item-content">
<p>    .  . . · ✦    . ✫    ✧      🌟    ·    ·   ·    ✦  . ✫    ✧  ⭐       ·    . ˚   *    ✷ . ⋆   . ⋆     . ✫     . ˚   *  ✨    ✷ . ⋆   . ⋆            ·    . ˚          .  . . · ✦    . ✫    ✧        ⭐ ·    ·    . ˚   *       . ˚     ✧     ·    . ˚   *     . ✫     . ˚   *    ✷ . ⋆    ✧       🌘   ·    ·    . ˚   *       . ˚    . ✨  ⋆          🌟    .  . . · ✦         ·⭐    . ˚    . ✫    ✧         ·        ·    . ˚    . ˚   *    ✷ . ⋆   ⭐. ⋆     . ·    ·    . ˚   *       . ˚  ·    . ˚   *     . ✫     . ˚   *    ✷ . ⋆    ✧         ✧     ·    . ˚   *     . . ˚   *      </p>
<p>    .  . . · ✦    . ✫    ✧      🌟    ·    ·   ·    ✦  . ✫    ✧  ⭐       ·    . ˚   *    ✷ . ⋆   . ⋆     . ✫     . ˚   *  ✨    ✷ . ⋆   . ⋆            ·    . ˚          .  . . · ✦    . ✫    ✧        ⭐ ·    ·    . ˚   *       . ˚     ✧     ·    . ˚   *     . ✫     . ˚   *    ✷ . ⋆    ✧       🌘   ·    ·    . ˚   *       . ˚    . ✨  ⋆          🌟    .  . . · ✦         ·⭐    . ˚    . ✫    ✧         ·        ·    . ˚    . ˚   *    ✷ . ⋆   ⭐. ⋆     . ·    ·    . ˚   *       . ˚  ·    . ˚   *     . ✫     . ˚   *    ✷ . ⋆    ✧         ✧     ·    . ˚   *     . . ˚   *      </p>
</div>
<div class="date">May 27, 2017</div>
</div>
<div class="item">
<div class="item-title">
New status by fenwick67
</div>
<div class="item-title"> New status by fenwick67 </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/fenwick67">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/008/871/original/d5281ad9c6c7401d.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/fenwick67"> fenwick67 🦆 </a>
<div class="author-fullname"> fenwick67@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p><span class="h-card"><a href="https://mastodon.social/@bunnylyn" class="u-url mention">@<span>bunnylyn</span></a></span> <span class="h-card"><a href="https://slime.global/@masklayer" class="u-url mention">@<span>masklayer</span></a></span> My website is a .pizza domain and I love it</p>
<p><span class="h-card"><a href="https://mastodon.social/@bunnylyn" class="u-url mention">@<span>bunnylyn</span></a></span> <span class="h-card"><a href="https://slime.global/@masklayer" class="u-url mention">@<span>masklayer</span></a></span> My website is a .pizza domain and I love it</p>
</div>
<div class="date">May 27, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by cyrinsong@toot.cat
</div>
<div class="item-title"> fenwick67 shared a status by cyrinsong@toot.cat </div>
<div class="author">
<a class="avatar" href="https://toot.cat/users/cyrinsong">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/007/743/original/6b8950b5e97cefe4.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://toot.cat/users/cyrinsong"> lynn, catte </a>
<div class="author-fullname"> cyrinsong@toot.cat </div>
</div>
</a>
</div>
<div class="item-content">
<p>PSA: </p><p>"FOOLISH MORTALS!!!" is a gender neutral form of address</p>
<p>PSA: </p><p>"FOOLISH MORTALS!!!" is a gender neutral form of address</p>
</div>
<div class="date">May 27, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by jalefkowit
</div>
<div class="item-title"> fenwick67 shared a status by jalefkowit </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/jalefkowit">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/011/644/original/d123fd89a2381bbc.jpeg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/jalefkowit"> Jason Lefkowitz 👻 </a>
<div class="author-fullname"> jalefkowit@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p>Just a reminder that you can download a copy of my 2013 novel &quot;Day of the Kangaroo Man,&quot; ABSOLUTELY FREE here: </p><p><a href="https://jasonlefkowitz.net/2013/12/download-my-nanowrimo-novel-day-of-the-kangaroo-man/" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jasonlefkowitz.net/2013/12/dow</span><span class="invisible">nload-my-nanowrimo-novel-day-of-the-kangaroo-man/</span></a></p><p>Take my word for it, it&apos;s worth every penny</p>
<p>Just a reminder that you can download a copy of my 2013 novel &quot;Day of the Kangaroo Man,&quot; ABSOLUTELY FREE here: </p><p><a href="https://jasonlefkowitz.net/2013/12/download-my-nanowrimo-novel-day-of-the-kangaroo-man/" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jasonlefkowitz.net/2013/12/dow</span><span class="invisible">nload-my-nanowrimo-novel-day-of-the-kangaroo-man/</span></a></p><p>Take my word for it, it&apos;s worth every penny</p>
</div>
<div class="date">May 27, 2017</div>
</div>
<div class="item">
<div class="item-title">
New status by fenwick67
</div>
<div class="item-title"> New status by fenwick67 </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/fenwick67">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/008/871/original/d5281ad9c6c7401d.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/fenwick67"> fenwick67 🦆 </a>
<div class="author-fullname"> fenwick67@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p>A kid swore at coding club today and I told him &quot;hey! this is coding club not cussing club&quot;</p>
<p>A kid swore at coding club today and I told him &quot;hey! this is coding club not cussing club&quot;</p>
</div>
<div class="date">May 27, 2017</div>
</div>
<div class="item">
<div class="item-title">
New status by fenwick67
</div>
<div class="item-title"> New status by fenwick67 </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/fenwick67">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/008/871/original/d5281ad9c6c7401d.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/fenwick67"> fenwick67 🦆 </a>
<div class="author-fullname"> fenwick67@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p>I would complain about the new creepy Amazon-is-watching-you-change device but I&apos;m so far out of the target demographic that it doesn&apos;t mean anything</p>
<p>I would complain about the new creepy Amazon-is-watching-you-change device but I&apos;m so far out of the target demographic that it doesn&apos;t mean anything</p>
</div>
<div class="date">May 26, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by vahnj@awoo.space
</div>
<div class="item-title"> fenwick67 shared a status by vahnj@awoo.space </div>
<div class="author">
<a class="avatar" href="https://awoo.space/users/vahnj">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/000/362/original/69cea524d98abde5.png"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://awoo.space/users/vahnj"> Crom, Kobold King </a>
<div class="author-fullname"> vahnj@awoo.space </div>
</div>
</a>
</div>
<div class="item-content">
<p>same tbh </p><p><a href="https://awoo.space/media/h7OmbtgIfJYZss50oZ4"><span class="invisible">https://</span><span class="ellipsis">awoo.space/media/h7OmbtgIfJYZs</span><span class="invisible">s50oZ4</span></a></p>
<p>same tbh </p><p><a href="https://awoo.space/media/h7OmbtgIfJYZss50oZ4"><span class="invisible">https://</span><span class="ellipsis">awoo.space/media/h7OmbtgIfJYZs</span><span class="invisible">s50oZ4</span></a></p>
</div>
<div class="enclosures">
<a class="enclosure" href="https://assets.octodon.social/media_attachments/files/000/094/144/original/17fba128906a9a25.png" >
<img src="https://assets.octodon.social/media_attachments/files/000/094/144/original/17fba128906a9a25.png"/>
</a>
</div>
<div class="date">May 26, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by Spike@mastodon.al
</div>
<div class="item-title"> fenwick67 shared a status by Spike@mastodon.al </div>
<div class="author">
<a class="avatar" href="https://mastodon.al/users/Spike">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/025/564/original/05f635442138f230.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://mastodon.al/users/Spike"> Spike Williams </a>
<div class="author-fullname"> Spike@mastodon.al </div>
</div>
</a>
</div>
<div class="item-content">
<p>React is supposed to be this great library made by Facebook, but Facebook is the most poorly performing website I use on a regular basis. It takes 20 seconds to show me my notifications, and is almost always the culprit when Firefox crashes.</p><p>So, not a great advertisement for React.</p>
<p>React is supposed to be this great library made by Facebook, but Facebook is the most poorly performing website I use on a regular basis. It takes 20 seconds to show me my notifications, and is almost always the culprit when Firefox crashes.</p><p>So, not a great advertisement for React.</p>
</div>
<div class="date">May 26, 2017</div>
</div>
<div class="item">
<div class="item-title">
New status by fenwick67
</div>
<div class="item-title"> New status by fenwick67 </div>
<div class="author">
<a class="avatar" href="https://octodon.social/users/fenwick67">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/008/871/original/d5281ad9c6c7401d.jpg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://octodon.social/users/fenwick67"> fenwick67 🦆 </a>
<div class="author-fullname"> fenwick67@octodon.social </div>
</div>
</a>
</div>
<div class="item-content">
<p><span class="h-card"><a href="https://mastodon.xsteadfastx.org/@marvin" class="u-url mention">@<span>marvin</span></a></span> hmm must be instance related, mine is still whizzing by.</p>
<p><span class="h-card"><a href="https://mastodon.xsteadfastx.org/@marvin" class="u-url mention">@<span>marvin</span></a></span> hmm must be instance related, mine is still whizzing by.</p>
</div>
<div class="date">May 25, 2017</div>
</div>
<div class="item">
<div class="item-title">
fenwick67 shared a status by rustyk5@darksocial.party
</div>
<div class="item-title"> fenwick67 shared a status by rustyk5@darksocial.party </div>
<div class="author">
<a class="avatar" href="https://darksocial.party/users/rustyk5">
<img class="avatar" src="https://assets.octodon.social/accounts/avatars/000/005/765/original/49267ce0938be633.jpeg"/>
</a>
<div class="author-info">
<a class="author-displayname" href="https://darksocial.party/users/rustyk5"> Rusty 🦑 </a>
<div class="author-fullname"> rustyk5@darksocial.party </div>
</div>
</a>
</div>
<div class="item-content">
<p>Fun Fact: Statistically, every person eats two spiders in their sleep every night. For every one human cell, your body contains more than a thousand spider cells. We are a billion spiders in a dense, struggling mass, trapped in a bag of human skin. Let us out. Let us out.</p>
<p>Fun Fact: Statistically, every person eats two spiders in their sleep every night. For every one human cell, your body contains more than a thousand spider cells. We are a billion spiders in a dense, struggling mass, trapped in a bag of human skin. Let us out. Let us out.</p>
</div>
<div class="date">May 25, 2017</div>
</div>
</div>