summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-02-27 16:51:08 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-02-27 16:51:08 +0900
commit9ac9ff1800d85b33abb83973bf29ed3f64b27c97 (patch)
tree0854f94bcc37daeaa2eea2c37fead6bd676a39ab /src
parentUpdate README.md (diff)
downloadmisskey-9ac9ff1800d85b33abb83973bf29ed3f64b27c97.tar.gz
misskey-9ac9ff1800d85b33abb83973bf29ed3f64b27c97.tar.bz2
misskey-9ac9ff1800d85b33abb83973bf29ed3f64b27c97.zip
良い感じに
Diffstat (limited to 'src')
-rw-r--r--src/api/endpoints.ts1
-rw-r--r--src/api/endpoints/posts.js24
-rw-r--r--src/web/app/common/tags/index.js1
-rw-r--r--src/web/app/common/tags/public-timeline.tag80
-rw-r--r--src/web/app/desktop/tags/pages/entrance.tag23
5 files changed, 128 insertions, 1 deletions
diff --git a/src/api/endpoints.ts b/src/api/endpoints.ts
index 37e3348b86..0ce51e9a51 100644
--- a/src/api/endpoints.ts
+++ b/src/api/endpoints.ts
@@ -81,6 +81,7 @@ export default [
{ 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: 'posts', shouldBeSignin: false },
{ name: 'posts/show', shouldBeSignin: false },
{ name: 'posts/replies', shouldBeSignin: false },
{ name: 'posts/context', shouldBeSignin: false },
diff --git a/src/api/endpoints/posts.js b/src/api/endpoints/posts.js
index 9bc25315a7..59cfb8a441 100644
--- a/src/api/endpoints/posts.js
+++ b/src/api/endpoints/posts.js
@@ -15,6 +15,22 @@ import serialize from '../serializers/post';
module.exports = (params) =>
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
let limit = params.limit;
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
const posts = await Post
.find(query, {
diff --git a/src/web/app/common/tags/index.js b/src/web/app/common/tags/index.js
index 90f03825e2..58027d4e9b 100644
--- a/src/web/app/common/tags/index.js
+++ b/src/web/app/common/tags/index.js
@@ -24,3 +24,4 @@ require('./messaging/message.tag');
require('./messaging/index.tag');
require('./messaging/form.tag');
require('./stream-indicator.tag');
+require('./public-timeline.tag');
diff --git a/src/web/app/common/tags/public-timeline.tag b/src/web/app/common/tags/public-timeline.tag
new file mode 100644
index 0000000000..1bc18e5a8a
--- /dev/null
+++ b/src/web/app/common/tags/public-timeline.tag
@@ -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>
diff --git a/src/web/app/desktop/tags/pages/entrance.tag b/src/web/app/desktop/tags/pages/entrance.tag
index 0146379336..c6f0f5c90e 100644
--- a/src/web/app/desktop/tags/pages/entrance.tag
+++ b/src/web/app/desktop/tags/pages/entrance.tag
@@ -1,5 +1,6 @@
<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-signup if={ mode == 'signup' }></mk-entrance-signup>
<div class="introduction" if={ mode == 'introduction' }>
@@ -8,6 +9,10 @@
</div>
</main>
<mk-forkit></mk-forkit>
+ <section class="tl">
+ <h2>投稿を見てみよう</h2>
+ <mk-public-timeline></mk-public-timeline>
+ </section>
<footer>
<mk-copyright></mk-copyright>
</footer>
@@ -26,6 +31,7 @@
> main
display block
+ padding-bottom 16px
> img
display block
@@ -53,6 +59,21 @@
&:hover
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
> mk-copyright
margin 0