Compare commits

...

17 Commits

Author SHA1 Message Date
syuilo
a483af1b08 10.78.3 2019-01-21 17:28:53 +09:00
syuilo
01584a6bf9 Fix 404 2019-01-21 17:25:36 +09:00
syuilo
443f967611 Update reversi.vue 2019-01-21 17:20:41 +09:00
syuilo
bf931f2c82 🎨 2019-01-21 17:19:00 +09:00
MeiMei
5b32b900e4 投票未対応インスタンス向けメッセージをわかりやすくする (#3944)
* Poll message

* fix

* fix

* とりあえず日本語にしちゃう

* TODO

* fix
2019-01-21 16:34:17 +09:00
Acid Chicken (硫酸鶏)
0bdcb15b3b Re: Fix routing
本当に申し訳ありませんでした。
2019-01-21 15:52:25 +09:00
Acid Chicken (硫酸鶏)
1b316ab98b Update README.md [AUTOGEN] (#3943) 2019-01-21 15:46:59 +09:00
syuilo
4cd79dd530 Update README.md 2019-01-21 15:40:58 +09:00
syuilo
c204e0518f 10.78.2 2019-01-21 15:32:01 +09:00
syuilo
129d74b463 [Server] ストリームで流れてくる投稿とAPIでタイムラインを取得したときとの不一致を修正 2019-01-21 15:31:19 +09:00
Acid Chicken (硫酸鶏)
533540031b Fix comment URL 2019-01-21 15:20:44 +09:00
Acid Chicken (硫酸鶏)
5ea0ccea22 Fix routing 2019-01-21 15:19:43 +09:00
Acid Chicken (硫酸鶏)
d2c12af085 Fix routing 2019-01-21 15:18:42 +09:00
syuilo
55368c2c38 10.78.1 2019-01-21 14:47:20 +09:00
syuilo
aa020eedc3 [Client] Fix bug 2019-01-21 14:45:57 +09:00
syuilo
e0874069bd [Server] リプライをタイムラインに流す以前の仕様に差し戻し
Resolve #3941
2019-01-21 14:44:49 +09:00
syuilo
90c8568a3f Remove unused import 2019-01-21 13:45:58 +09:00
18 changed files with 62 additions and 36 deletions

View File

@@ -1,6 +1,22 @@
ChangeLog
=========
10.78.3
----------
* 投票未対応インスタンス向けメッセージをわかりやすく
* リバーシが404になる問題を修正
* デザインの修正
10.78.2
----------
* リバーシが404になる問題を修正
* ストリームで流れてくる投稿とAPIでタイムラインを取得したときとの不一致を修正
10.78.1
----------
* 「関係のない返信がタイムラインに流れる問題を修正」を取り消し
* デザインの修正
10.78.0
----------
* 他のインスタンスからアンケートに投票できるように

View File

@@ -69,6 +69,22 @@ Please see the [Setup and Installation Guide](./docs/setup.en.md).
----------------------------------------------------------------
Please see the [Contribution Guide](./CONTRIBUTING.md).
### Collaborators
<table>
<tr>
<td><img src="https://avatars3.githubusercontent.com/u/4439005?s=460&v=4" alt="syuilo" width="100"></td>
<td><img src="https://avatars0.githubusercontent.com/u/10798641?s=460&v=4" alt="AyaMorisawa" width="100"></td>
<td><img src="https://avatars1.githubusercontent.com/u/30769358?s=460&v=4" alt="mei23" width="100"></td>
<td><img src="https://avatars2.githubusercontent.com/u/20679825?s=460&v=4" alt="acid-chicken" width="100"></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/syuilo">@syuilo</a></td>
<td align="center"><a href="https://github.com/AyaMorisawa">@AyaMorisawa</a></td>
<td align="center"><a href="https://github.com/mei23">@mei23</a></td>
<td align="center"><a href="https://github.com/acid-chicken">@acid-chicken</a></td>
</tr>
</table>
:heart: Backers & Sponsors
----------------------------------------------------------------
<!-- PATREON_START -->
@@ -95,7 +111,7 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
<td><img src="https://c8.patreon.com/2/200/16542964" alt="Takumi Sugita" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13039004/509d0c412eb14ae08d6a812a3054f7d6/1?token-time=2145916800&token-hash=2PsbFNw0tnubZzgSXD01R6hIgncfiElG7H7HX2Y3dyo%3D" alt="nemu" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3?token-time=2145916800&token-hash=9JtETp0X8gI280Ne1E8bxn6j4Lw5o2k4mJkICx97V_k%3D" alt="YUKIMOCHI" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8241184/39e18850e87a449e9c9a71acb3310ebd/2?token-time=2145916800&token-hash=zrInDotuEIFslKphuSiCqr3M-r-rveTXjVKWr-VK6M0%3D" alt="Acid Chicken" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8241184/39e18850e87a449e9c9a71acb3310ebd/3?token-time=2145916800&token-hash=gMq30aylxu5v3G8pRhWR5jeRBbYWEoRKjGbNeiCQz5g%3D" alt="Acid Chicken" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/2?token-time=2145916800&token-hash=zcwFxb2zopzWwksKVU1YpfAEjsl4yKT02aQ6yiAFRiQ%3D" alt="natalie" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13034746/c711c7f58e204ecfbc2fd646bc8a4eee/1?token-time=2145916800&token-hash=5T8XcaAf9Zyzfg3QubR06s_kJZkArVEM2dwObrBVAU4%3D" alt="Hiratake" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/10789744/97175095d8f04c0f86225ff47cb98d40/1?token-time=2145916800&token-hash=ubVARikVOg3v7NW6LDhtG-ClE1LTU3I2TJ3js2-5xDs%3D" alt="Naoki Hirayama" width="100"></td>
@@ -122,7 +138,7 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
</tr></table>
**Last updated:** Fri, 18 Jan 2019 11:58:06 UTC
**Last updated:** Mon, 21 Jan 2019 06:45:06 UTC
<!-- PATREON_END -->
:four_leaf_clover: Copyright

View File

@@ -1,8 +1,8 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "10.78.0",
"clientVersion": "2.0.13640",
"version": "10.78.3",
"clientVersion": "2.0.13657",
"codename": "nighthike",
"main": "./built/index.js",
"private": true,

View File

@@ -26,7 +26,7 @@
</section>
<section v-if="myGames.length > 0">
<h2>{{ $t('my-games') }}</h2>
<a class="game" v-for="g in myGames" tabindex="-1" @click.prevent="go(g)" :href="`/reversi/${g.id}`">
<a class="game" v-for="g in myGames" tabindex="-1" @click.prevent="go(g)" :href="`/games/reversi/${g.id}`">
<mk-avatar class="avatar" :user="g.user1"/>
<mk-avatar class="avatar" :user="g.user2"/>
<span><b><mk-user-name :user="g.user1"/></b> vs <b><mk-user-name :user="g.user2"/></b></span>
@@ -36,7 +36,7 @@
</section>
<section v-if="games.length > 0">
<h2>{{ $t('all-games') }}</h2>
<a class="game" v-for="g in games" tabindex="-1" @click.prevent="go(g)" :href="`/reversi/${g.id}`">
<a class="game" v-for="g in games" tabindex="-1" @click.prevent="go(g)" :href="`/games/reversi/${g.id}`">
<mk-avatar class="avatar" :user="g.user1"/>
<mk-avatar class="avatar" :user="g.user2"/>
<span><b><mk-user-name :user="g.user1"/></b> vs <b><mk-user-name :user="g.user2"/></b></span>

View File

@@ -23,8 +23,8 @@ export default Vue.extend({
computed: {
popout(): string {
return this.game
? `${url}/reversi/${this.game.id}`
: `${url}/reversi`;
? `${url}/games/reversi/${this.game.id}`
: `${url}/games/reversi`;
}
}
});

View File

@@ -19,10 +19,10 @@ export default Vue.extend({
methods: {
nav(game, actualNav) {
if (actualNav) {
this.$router.push(`/reversi/${game.id}`);
this.$router.push(`/games/reversi/${game.id}`);
} else {
// TODO: https://github.com/vuejs/vue-router/issues/703
this.$router.push(`/reversi/${game.id}`);
this.$router.push(`/games/reversi/${game.id}`);
}
}
}

View File

@@ -50,8 +50,7 @@ export default Vue.extend({
text-align center
line-height 24px
font-size 0.8em
color #71afc7
background #eefaff
color var(--text)
border-radius 4px
> .action-form

View File

@@ -19,7 +19,7 @@
<li><router-link to="/i/notifications" :data-active="$route.name == 'notifications'"><i><fa :icon="['far', 'bell']" fixed-width/></i>{{ $t('notifications') }}<i v-if="hasUnreadNotification" class="circle"><fa icon="circle"/></i><i><fa icon="angle-right"/></i></router-link></li>
<li><router-link to="/i/messaging" :data-active="$route.name == 'messaging'"><i><fa :icon="['far', 'comments']" fixed-width/></i>{{ $t('@.messaging') }}<i v-if="hasUnreadMessagingMessage" class="circle"><fa icon="circle"/></i><i><fa icon="angle-right"/></i></router-link></li>
<li v-if="$store.getters.isSignedIn && ($store.state.i.isLocked || $store.state.i.carefulBot)"><router-link to="/i/received-follow-requests" :data-active="$route.name == 'received-follow-requests'"><i><fa :icon="['far', 'envelope']" fixed-width/></i>{{ $t('follow-requests') }}<i v-if="$store.getters.isSignedIn && $store.state.i.pendingReceivedFollowRequestsCount" class="circle"><fa icon="circle"/></i><i><fa icon="angle-right"/></i></router-link></li>
<li><router-link to="/reversi" :data-active="$route.name == 'reversi'"><i><fa icon="gamepad" fixed-width/></i>{{ $t('game') }}<i v-if="hasGameInvitation" class="circle"><fa icon="circle"/></i><i><fa icon="angle-right"/></i></router-link></li>
<li><router-link to="/games/reversi" :data-active="$route.name == 'reversi'"><i><fa icon="gamepad" fixed-width/></i>{{ $t('game') }}<i v-if="hasGameInvitation" class="circle"><fa icon="circle"/></i><i><fa icon="angle-right"/></i></router-link></li>
</ul>
<ul>
<li><router-link to="/i/widgets" :data-active="$route.name == 'widgets'"><i><fa :icon="['far', 'calendar-alt']" fixed-width/></i>{{ $t('widgets') }}<i><fa icon="angle-right"/></i></router-link></li>

View File

@@ -20,10 +20,10 @@ export default Vue.extend({
methods: {
nav(game, actualNav) {
if (actualNav) {
this.$router.push(`/reversi/${game.id}`);
this.$router.push(`/games/reversi/${game.id}`);
} else {
// TODO: https://github.com/vuejs/vue-router/issues/703
this.$router.push(`/reversi/${game.id}`);
this.$router.push(`/games/reversi/${game.id}`);
}
}
}

View File

@@ -375,7 +375,7 @@ main
max-width 600px
width 100%
> .signin-as
> .signed-in-as
margin 16px
padding 16px
text-align center

View File

@@ -892,7 +892,7 @@ export const test4: Map = {
]
};
// https://misskey.xyz/reversi/5aaabf7fe126e10b5216ea09 64
// https://misskey.xyz/games/reversi/5aaabf7fe126e10b5216ea09 64
export const test5: Map = {
name: 'Test5',
category: 'Test',

View File

@@ -98,7 +98,7 @@ export default async function renderNote(note: INote, dive = true): Promise<any>
if (text == null) text = '';
const url = `${config.url}/notes/${note._id}`;
// TODO: i18n
text += `\n\n[リモートで投票を見る](${url})`;
text += `\n[リモートで結果を表示](${url})`;
question = `${config.url}/questions/${note._id}`;
}
@@ -109,8 +109,10 @@ export default async function renderNote(note: INote, dive = true): Promise<any>
// Provides choices as text for AP
if (note.poll != null) {
const cs = note.poll.choices.map(c => `${c.id}: ${c.text}`);
apText += '\n';
apText += '\n----------------------------------------\n';
apText += cs.join('\n');
apText += '\n----------------------------------------\n';
apText += '番号を返信して投票';
}
if (quote) {

View File

@@ -122,7 +122,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
const followQuery = followings.map(f => ({
userId: f.id,
// リプライは含めない(ただし投稿者自身の投稿へのリプライ、自分の投稿へのリプライ、自分のリプライは含める)
/*// リプライは含めない(ただし投稿者自身の投稿へのリプライ、自分の投稿へのリプライ、自分のリプライは含める)
$or: [{
// リプライでない
replyId: null
@@ -137,7 +137,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}, { // または
// 自分(フォロワー)が送信したリプライ
userId: user._id
}]
}]*/
}));
const visibleQuery = user == null ? [{
@@ -169,7 +169,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
visibility: 'public',
// リプライでない
replyId: null,
//replyId: null,
// local
'_user.host': null

View File

@@ -97,7 +97,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
visibility: 'public',
// リプライでない
replyId: null,
//replyId: null,
// local
'_user.host': null

View File

@@ -120,7 +120,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
const followQuery = followings.map(f => ({
userId: f.id,
// ストーキングしてないならリプライは含めない(ただし投稿者自身の投稿へのリプライ、自分の投稿へのリプライ、自分のリプライは含める)
/*// リプライは含めない(ただし投稿者自身の投稿へのリプライ、自分の投稿へのリプライ、自分のリプライは含める)
$or: [{
// リプライでない
replyId: null
@@ -135,7 +135,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}, { // または
// 自分(フォロワー)が送信したリプライ
userId: user._id
}]
}]*/
}));
const visibleQuery = user == null ? [{

View File

@@ -133,7 +133,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
const listQuery = list.userIds.map(u => ({
userId: u,
// リプライは含めない(ただし投稿者自身の投稿へのリプライ、自分の投稿へのリプライ、自分のリプライは含める)
/*// リプライは含めない(ただし投稿者自身の投稿へのリプライ、自分の投稿へのリプライ、自分のリプライは含める)
$or: [{
// リプライでない
replyId: null
@@ -148,7 +148,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}, { // または
// 自分(フォロワー)が送信したリプライ
userId: user._id
}]
}]*/
}));
const visibleQuery = [{

View File

@@ -383,17 +383,11 @@ async function publish(user: IUser, note: INote, noteObj: any, reply: INote, ren
// Publish note to local and hybrid timeline stream
if (note.visibility != 'home') {
// Ignore if it is a reply
if (note.replyId == null) {
publishLocalTimelineStream(noteObj);
}
publishLocalTimelineStream(noteObj);
}
if (note.visibility == 'public') {
// Ignore if it is a reply
if (note.replyId == null) {
publishHybridTimelineStream(null, noteObj);
}
publishHybridTimelineStream(null, noteObj);
} else {
// Publish event to myself's stream
publishHybridTimelineStream(note.userId, noteObj);

View File

@@ -4,7 +4,6 @@ import Watching from '../../../models/note-watching';
import watch from '../../../services/note/watch';
import { publishNoteStream } from '../../../stream';
import notify from '../../../notify';
import createNote from '../../../services/note/create';
import { isLocalUser, IUser } from '../../../models/user';
export default (user: IUser, note: INote, choice: number) => new Promise(async (res, rej) => {