Compare commits

...

9 Commits

Author SHA1 Message Date
83b7010d6a 10.100.0 2019-04-09 21:13:52 +09:00
71654cbe47 Fix #4636 2019-04-09 21:11:05 +09:00
e8f96e848a Merge branch 'v10' of https://github.com/syuilo/misskey into v10 2019-04-09 21:10:36 +09:00
251abf21d4 Update .gitignore 2019-04-09 21:10:18 +09:00
d103427932 Fix non media thumbnails (#4380) 2019-04-09 21:07:46 +09:00
592cdfa910 ユーザーリストでフォローボタンを表示するように (#4654) 2019-04-08 20:18:42 +09:00
f2ad1a0406 Fix: 投稿ウィジットでローカルのみの公開範囲で投稿できない (#4653) 2019-04-08 20:16:00 +09:00
82af9320c0 Fix: TLを遡った時に抜けがある時がある (v10) (#4629)
* Update the cursor when the timeline is updated

* fix releaseQueue
2019-04-08 15:18:44 +09:00
fceebf7388 Fix #4562 (#4563) 2019-04-08 15:17:39 +09:00
14 changed files with 47 additions and 12 deletions

1
.gitignore vendored
View File

@ -19,3 +19,4 @@ api-docs.json
*.code-workspace
yarn.lock
.DS_Store
/files

View File

@ -5,6 +5,15 @@ If you encounter any problems with updating, please try the following:
1. `npm run clean` or `npm run cleanall`
2. Retry update (Don't forget `npm i`)
10.100.0
----------
* ユーザーリストでフォローボタンを表示するように
* ドライブのファイルのサムネイルを修正
* 投稿ウィジットでローカルのみの公開範囲で投稿できない問題を修正
* TLを遡った時に抜けがある時がある問題を修正
* ユーザータイムラインが投稿日時順ではなくなっているのを修正
* 10.99.0 でチャートのレンダリングがおかしい問題を修正
10.99.0
----------
* manifest.json にインスタンス名を反映させるように

View File

@ -1,7 +1,7 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "10.99.0",
"version": "10.100.0",
"codename": "nighthike",
"repository": {
"type": "git",
@ -96,7 +96,7 @@
"@types/websocket": "0.0.40",
"@types/ws": "6.0.1",
"animejs": "3.0.1",
"apexcharts": "3.6.5",
"apexcharts": "3.6.2",
"autobind-decorator": "2.4.0",
"autosize": "4.0.2",
"autwh": "0.1.0",

View File

@ -8,7 +8,7 @@
<div class="no-users" v-if="inited && us.length == 0">
<p>{{ $t('no-users') }}</p>
</div>
<div class="user" v-for="user in us">
<div class="user" v-for="user in us" :key="user.id">
<mk-avatar class="avatar" :user="user"/>
<div class="body" v-if="!iconOnly">
<div class="name">
@ -18,6 +18,7 @@
<div class="description" v-if="user.description" :title="user.description">
<mfm :text="user.description" :is-note="false" :author="user" :i="$store.state.i" :custom-emojis="user.emojis" :should-break="false" :plain-text="true"/>
</div>
<mk-follow-button class="follow-button" v-if="$store.getters.isSignedIn && user.id != $store.state.i.id" :user="user" mini/>
</div>
</div>
<button class="more" :class="{ fetching: fetchingMoreUsers }" v-if="cursor != null" @click="fetchMoreUsers()" :disabled="fetchingMoreUsers">
@ -160,6 +161,12 @@ export default Vue.extend({
text-overflow ellipsis
opacity 0.7
font-size 14px
padding-right 40px
> .follow-button
position absolute
top 8px
right 0px
> .more
display block

View File

@ -157,6 +157,7 @@ export default Vue.extend({
// オーバーフローしたら古い投稿は捨てる
if (this.notes.length >= displayLimit) {
this.notes = this.notes.slice(0, displayLimit);
this.cursor = this.notes[this.notes.length - 1].id
}
} else {
this.queue.push(note);
@ -165,6 +166,7 @@ export default Vue.extend({
append(note) {
this.notes.push(note);
this.cursor = this.notes[this.notes.length - 1].id
},
releaseQueue() {

View File

@ -85,7 +85,7 @@ export default Vue.extend({
this.makePromise = cursor => this.$root.api('users/notes', {
userId: this.user.id,
limit: fetchLimit + 1,
untilId: cursor ? cursor : undefined,
untilDate: cursor ? cursor : new Date().getTime() + 1000 * 86400 * 365,
withFiles: this.withFiles,
includeMyRenotes: this.$store.state.settings.showMyRenotes,
includeRenotedMyNotes: this.$store.state.settings.showRenotedMyNotes,
@ -95,7 +95,7 @@ export default Vue.extend({
notes.pop();
return {
notes: notes,
cursor: notes[notes.length - 1].id
cursor: new Date(notes[notes.length - 1].createdAt).getTime()
};
} else {
return {

View File

@ -176,10 +176,22 @@ export default define({
post() {
this.posting = true;
let visibility = 'public';
let localOnly = false;
const m = this.$store.state.settings.defaultNoteVisibility.match(/^local-(.+)/);
if (m) {
visibility = m[1];
localOnly = true;
} else {
visibility = this.$store.state.settings.defaultNoteVisibility;
}
this.$root.api('notes/create', {
text: this.text == '' ? undefined : this.text,
fileIds: this.files.length > 0 ? this.files.map(f => f.id) : undefined,
visibility: this.$store.state.settings.defaultNoteVisibility
visibility,
localOnly,
}).then(data => {
this.clear();
}).catch(err => {

View File

@ -157,6 +157,7 @@ export default Vue.extend({
// オーバーフローしたら古い投稿は捨てる
if (this.notes.length >= displayLimit) {
this.notes = this.notes.slice(0, displayLimit);
this.cursor = this.notes[this.notes.length - 1].id
}
} else {
this.queue.push(note);
@ -165,6 +166,7 @@ export default Vue.extend({
append(note) {
this.notes.push(note);
this.cursor = this.notes[this.notes.length - 1].id
},
releaseQueue() {

View File

@ -36,13 +36,13 @@ export default Vue.extend({
includeReplies: this.mode == 'with-replies',
includeMyRenotes: this.mode != 'my-posts',
withFiles: this.mode == 'with-media',
untilId: cursor ? cursor : undefined
untilDate: cursor ? cursor : new Date().getTime() + 1000 * 86400 * 365
}).then(notes => {
if (notes.length == fetchLimit + 1) {
notes.pop();
return {
notes: notes,
cursor: notes[notes.length - 1].id
cursor: new Date(notes[notes.length - 1].createdAt).getTime()
};
} else {
return {

View File

@ -151,6 +151,7 @@ export default Vue.extend({
// オーバーフローしたら古い投稿は捨てる
if (this.notes.length >= displayLimit) {
this.notes = this.notes.slice(0, displayLimit);
this.cursor = this.notes[this.notes.length - 1].id
}
} else {
this.queue.push(note);
@ -159,6 +160,7 @@ export default Vue.extend({
append(note) {
this.notes.push(note);
this.cursor = this.notes[this.notes.length - 1].id
},
releaseQueue() {

View File

@ -21,13 +21,13 @@ export default Vue.extend({
userId: this.user.id,
limit: fetchLimit + 1,
withFiles: this.withMedia,
untilId: cursor ? cursor : undefined
untilDate: cursor ? cursor : new Date().getTime() + 1000 * 86400 * 365
}).then(notes => {
if (notes.length == fetchLimit + 1) {
notes.pop();
return {
notes: notes,
cursor: notes[notes.length - 1].id
cursor: new Date(notes[notes.length - 1].createdAt).getTime()
};
} else {
return {

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -8,7 +8,7 @@ export default function(file: IDriveFile, thumbnail = false): string {
if (file.metadata.withoutChunks) {
if (thumbnail) {
return file.metadata.thumbnailUrl || file.metadata.webpublicUrl || (isImage ? file.metadata.url : null);
return file.metadata.thumbnailUrl || file.metadata.webpublicUrl || (isImage ? file.metadata.url : '/assets/thumbnail-not-available.png');
} else {
return file.metadata.webpublicUrl || file.metadata.url;
}

View File

@ -73,7 +73,7 @@ export default async function(ctx: Koa.BaseContext) {
await sendRaw();
} else {
ctx.status = 404;
await send(ctx as any, '/dummy.png', { root: assets });
await send(ctx as any, '/thumbnail-not-available.png', { root: assets });
}
}
} else if ('web' in ctx.query) {