良い感じに

This commit is contained in:
syuilo 2017-02-27 16:51:08 +09:00
parent 560b9191db
commit 9ac9ff1800
5 changed files with 128 additions and 1 deletions

View file

@ -81,6 +81,7 @@ export default [
{ name: 'following/create', shouldBeSignin: true, limitDuration: hour, limitMax: 100, kind: 'following-write' }, { name: 'following/create', shouldBeSignin: true, limitDuration: hour, limitMax: 100, kind: 'following-write' },
{ name: 'following/delete', shouldBeSignin: true, limitDuration: hour, limitMax: 100, kind: 'following-write' }, { name: 'following/delete', shouldBeSignin: true, limitDuration: hour, limitMax: 100, kind: 'following-write' },
{ name: 'posts', shouldBeSignin: false },
{ name: 'posts/show', shouldBeSignin: false }, { name: 'posts/show', shouldBeSignin: false },
{ name: 'posts/replies', shouldBeSignin: false }, { name: 'posts/replies', shouldBeSignin: false },
{ name: 'posts/context', shouldBeSignin: false }, { name: 'posts/context', shouldBeSignin: false },

View file

@ -15,6 +15,22 @@ import serialize from '../serializers/post';
module.exports = (params) => module.exports = (params) =>
new Promise(async (res, rej) => new Promise(async (res, rej) =>
{ {
// Get 'include_replies' parameter
let includeReplies = params.include_replies;
if (includeReplies === true) {
includeReplies = true;
} else {
includeReplies = false;
}
// Get 'include_reposts' parameter
let includeReposts = params.include_reposts;
if (includeReposts === true) {
includeReposts = true;
} else {
includeReposts = false;
}
// Get 'limit' parameter // Get 'limit' parameter
let limit = params.limit; let limit = params.limit;
if (limit !== undefined && limit !== null) { if (limit !== undefined && limit !== null) {
@ -52,6 +68,14 @@ module.exports = (params) =>
}; };
} }
if (!includeReplies) {
query.reply_to_id = null;
}
if (!includeReposts) {
query.repost_id = null;
}
// Issue query // Issue query
const posts = await Post const posts = await Post
.find(query, { .find(query, {

View file

@ -24,3 +24,4 @@ require('./messaging/message.tag');
require('./messaging/index.tag'); require('./messaging/index.tag');
require('./messaging/form.tag'); require('./messaging/form.tag');
require('./stream-indicator.tag'); require('./stream-indicator.tag');
require('./public-timeline.tag');

View file

@ -0,0 +1,80 @@
<mk-public-timeline>
<article each={ posts }>
<img src={ user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
<div>
<header>
<span class="name">{ user.name }</span>
<span class="username">@{ user.username }</span>
</header>
<div class="body">
<div class="text">{ text }</div>
</div>
</div>
</article>
<style>
:scope
display block
> article
padding 28px
border-bottom solid 1px #eee
&:last-child
border-bottom none
> img
display block
position absolute
width 58px
height 58px
margin 0
border-radius 100%
vertical-align bottom
> div
min-height 58px
padding-left 68px
> header
margin-bottom 2px
> .name
margin 0 .5em 0 0
padding 0
color #777
> .username
margin 0 .5em 0 0
color #ccc
> .body
> .text
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
font-size 1.1em
color #717171
</style>
<script>
this.mixin('api');
this.posts = [];
this.isFetching = true;
this.on('mount', () => {
this.api('posts', {
limit: 5,
include_reposts: false,
include_replies: false
}).then(posts => {
this.update({
isFetching: false,
posts: posts
});
});
});
</script>
</mk-public-timeline>

View file

@ -1,5 +1,6 @@
<mk-entrance> <mk-entrance>
<main><img src="/resources/title.svg" alt="Misskey"/> <main>
<img src="/resources/title.svg" alt="Misskey"/>
<mk-entrance-signin if={ mode == 'signin' }></mk-entrance-signin> <mk-entrance-signin if={ mode == 'signin' }></mk-entrance-signin>
<mk-entrance-signup if={ mode == 'signup' }></mk-entrance-signup> <mk-entrance-signup if={ mode == 'signup' }></mk-entrance-signup>
<div class="introduction" if={ mode == 'introduction' }> <div class="introduction" if={ mode == 'introduction' }>
@ -8,6 +9,10 @@
</div> </div>
</main> </main>
<mk-forkit></mk-forkit> <mk-forkit></mk-forkit>
<section class="tl">
<h2>投稿を見てみよう</h2>
<mk-public-timeline></mk-public-timeline>
</section>
<footer> <footer>
<mk-copyright></mk-copyright> <mk-copyright></mk-copyright>
</footer> </footer>
@ -26,6 +31,7 @@
> main > main
display block display block
padding-bottom 16px
> img > img
display block display block
@ -53,6 +59,21 @@
&:hover &:hover
text-decoration underline text-decoration underline
> .tl
padding 32px 0
background #fff
> h2
display block
margin 0
padding 0
text-align center
font-size 20px
color #5b6b73
> mk-public-timeline
max-width 500px
margin 0 auto
> footer > footer
> mk-copyright > mk-copyright
margin 0 margin 0