2020-07-23 18:53:00 +02:00
|
|
|
import views from 'koa-views';
|
2020-07-24 16:08:43 +02:00
|
|
|
import { parse, toHtml } from 'mfmf';
|
|
|
|
import { parsePlain } from 'mfmf/dist/script/mfm/parse';
|
|
|
|
|
|
|
|
|
2020-07-24 17:12:11 +02:00
|
|
|
import constant from './const';
|
2020-07-23 18:53:00 +02:00
|
|
|
import { User } from './models/User';
|
|
|
|
import { Note } from './models/Note';
|
|
|
|
|
|
|
|
export const render = views(__dirname + '/views', {
|
|
|
|
extension: 'pug', options: {
|
2020-07-24 17:12:11 +02:00
|
|
|
...constant,
|
2020-07-24 16:08:43 +02:00
|
|
|
mfmToHtml: (text: string, plain = false) => {
|
|
|
|
return toHtml(plain ? parsePlain(text) : parse(text), [], {
|
|
|
|
url: '',
|
|
|
|
});
|
|
|
|
},
|
2020-07-23 18:53:00 +02:00
|
|
|
getAcct: (user: User) => user.host ? `@${user.username}@${user.host}` : `@${user.username}`,
|
|
|
|
getUserName: (user: User) => user.name || user.username,
|
|
|
|
getVisibility: (note: Note) => {
|
|
|
|
let icon: string;
|
|
|
|
switch (note.visibility) {
|
|
|
|
case 'public':
|
|
|
|
icon = '🌐';
|
|
|
|
break;
|
|
|
|
case 'home':
|
|
|
|
icon = '🏠';
|
|
|
|
break;
|
|
|
|
case 'followers':
|
|
|
|
icon = '🔒';
|
|
|
|
break;
|
|
|
|
case 'specified':
|
|
|
|
icon = '✉️';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
icon = '❓';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (note.localOnly) icon += '☣';
|
|
|
|
return icon;
|
2020-07-24 06:58:36 +02:00
|
|
|
}
|
2020-07-23 18:53:00 +02:00
|
|
|
}
|
|
|
|
});
|