summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-10-09 15:08:31 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-10-09 15:08:31 +0900
commit136b13e7ca2163f37ee81a8981f0b2205e7303c9 (patch)
tree1f92e693afe46ee6ab7327814eaa386edce92b6a /src
parent:art: (diff)
downloadmisskey-136b13e7ca2163f37ee81a8981f0b2205e7303c9.tar.gz
misskey-136b13e7ca2163f37ee81a8981f0b2205e7303c9.tar.bz2
misskey-136b13e7ca2163f37ee81a8981f0b2205e7303c9.zip
Fix bug and refactor
Diffstat (limited to 'src')
-rw-r--r--src/client/app/common/scripts/stream.ts86
-rw-r--r--src/client/app/common/views/components/games/reversi/reversi.vue3
-rw-r--r--src/client/app/common/views/widgets/posts-monitor.vue3
-rw-r--r--src/client/app/common/views/widgets/server.cpu-memory.vue3
-rw-r--r--src/client/app/desktop/views/components/notifications.vue3
-rw-r--r--src/client/app/desktop/views/pages/admin/admin.cpu-memory.vue3
-rw-r--r--src/client/app/desktop/views/pages/deck/deck.notifications.vue3
-rw-r--r--src/client/app/mios.ts95
-rw-r--r--src/client/app/mobile/views/components/notifications.vue3
-rw-r--r--src/client/app/mobile/views/components/ui.vue3
10 files changed, 101 insertions, 104 deletions
diff --git a/src/client/app/common/scripts/stream.ts b/src/client/app/common/scripts/stream.ts
index e95306183e..98a7efaa4c 100644
--- a/src/client/app/common/scripts/stream.ts
+++ b/src/client/app/common/scripts/stream.ts
@@ -26,92 +26,6 @@ export default class Stream extends EventEmitter {
this.stream.addEventListener('open', this.onOpen);
this.stream.addEventListener('close', this.onClose);
this.stream.addEventListener('message', this.onMessage);
-
- if (user) {
- const main = this.useSharedConnection('main');
-
- // 自分の情報が更新されたとき
- main.on('meUpdated', i => {
- os.store.dispatch('mergeMe', i);
- });
-
- main.on('readAllNotifications', () => {
- os.store.dispatch('mergeMe', {
- hasUnreadNotification: false
- });
- });
-
- main.on('unreadNotification', () => {
- os.store.dispatch('mergeMe', {
- hasUnreadNotification: true
- });
- });
-
- main.on('readAllMessagingMessages', () => {
- os.store.dispatch('mergeMe', {
- hasUnreadMessagingMessage: false
- });
- });
-
- main.on('unreadMessagingMessage', () => {
- os.store.dispatch('mergeMe', {
- hasUnreadMessagingMessage: true
- });
- });
-
- main.on('unreadMention', () => {
- os.store.dispatch('mergeMe', {
- hasUnreadMentions: true
- });
- });
-
- main.on('readAllUnreadMentions', () => {
- os.store.dispatch('mergeMe', {
- hasUnreadMentions: false
- });
- });
-
- main.on('unreadSpecifiedNote', () => {
- os.store.dispatch('mergeMe', {
- hasUnreadSpecifiedNotes: true
- });
- });
-
- main.on('readAllUnreadSpecifiedNotes', () => {
- os.store.dispatch('mergeMe', {
- hasUnreadSpecifiedNotes: false
- });
- });
-
- main.on('clientSettingUpdated', x => {
- os.store.commit('settings/set', {
- key: x.key,
- value: x.value
- });
- });
-
- main.on('homeUpdated', x => {
- os.store.commit('settings/setHome', x);
- });
-
- main.on('mobileHomeUpdated', x => {
- os.store.commit('settings/setMobileHome', x);
- });
-
- main.on('widgetUpdated', x => {
- os.store.commit('settings/setWidget', {
- id: x.id,
- data: x.data
- });
- });
-
- // トークンが再生成されたとき
- // このままではMisskeyが利用できないので強制的にサインアウトさせる
- main.on('myTokenRegenerated', () => {
- alert('%i18n:common.my-token-regenerated%');
- os.signout();
- });
- }
}
public useSharedConnection = (channel: string): SharedConnection => {
diff --git a/src/client/app/common/views/components/games/reversi/reversi.vue b/src/client/app/common/views/components/games/reversi/reversi.vue
index f2156bc41b..7c9e1b6a5e 100644
--- a/src/client/app/common/views/components/games/reversi/reversi.vue
+++ b/src/client/app/common/views/components/games/reversi/reversi.vue
@@ -71,8 +71,7 @@ export default Vue.extend({
this.pingClock = setInterval(() => {
if (this.matching) {
- this.connection.send({
- type: 'ping',
+ this.connection.send('ping', {
id: this.matching.id
});
}
diff --git a/src/client/app/common/views/widgets/posts-monitor.vue b/src/client/app/common/views/widgets/posts-monitor.vue
index 1c70e6dbc4..cb307715d8 100644
--- a/src/client/app/common/views/widgets/posts-monitor.vue
+++ b/src/client/app/common/views/widgets/posts-monitor.vue
@@ -113,8 +113,7 @@ export default define({
this.connection.on('stats', this.onStats);
this.connection.on('statsLog', this.onStatsLog);
- this.connection.send({
- type: 'requestLog',
+ this.connection.send('requestLog',{
id: Math.random().toString()
});
},
diff --git a/src/client/app/common/views/widgets/server.cpu-memory.vue b/src/client/app/common/views/widgets/server.cpu-memory.vue
index 55aa1ea895..119a77af83 100644
--- a/src/client/app/common/views/widgets/server.cpu-memory.vue
+++ b/src/client/app/common/views/widgets/server.cpu-memory.vue
@@ -91,8 +91,7 @@ export default Vue.extend({
mounted() {
this.connection.on('stats', this.onStats);
this.connection.on('statsLog', this.onStatsLog);
- this.connection.send({
- type: 'requestLog',
+ this.connection.send('requestLog', {
id: Math.random().toString()
});
},
diff --git a/src/client/app/desktop/views/components/notifications.vue b/src/client/app/desktop/views/components/notifications.vue
index 95b8e1355a..a572f43adc 100644
--- a/src/client/app/desktop/views/components/notifications.vue
+++ b/src/client/app/desktop/views/components/notifications.vue
@@ -181,8 +181,7 @@ export default Vue.extend({
onNotification(notification) {
// TODO: ユーザーが画面を見てないと思われるとき(ブラウザやタブがアクティブじゃないなど)は送信しない
- this.connection.send({
- type: 'readNotification',
+ (this as any).os.stream.send('readNotification', {
id: notification.id
});
diff --git a/src/client/app/desktop/views/pages/admin/admin.cpu-memory.vue b/src/client/app/desktop/views/pages/admin/admin.cpu-memory.vue
index 63b24cea47..0f486df2d9 100644
--- a/src/client/app/desktop/views/pages/admin/admin.cpu-memory.vue
+++ b/src/client/app/desktop/views/pages/admin/admin.cpu-memory.vue
@@ -77,8 +77,7 @@ export default Vue.extend({
mounted() {
this.connection.on('stats', this.onStats);
this.connection.on('statsLog', this.onStatsLog);
- this.connection.send({
- type: 'requestLog',
+ this.connection.send('requestLog', {
id: Math.random().toString(),
length: 200
});
diff --git a/src/client/app/desktop/views/pages/deck/deck.notifications.vue b/src/client/app/desktop/views/pages/deck/deck.notifications.vue
index 29de691fe2..b68757b73f 100644
--- a/src/client/app/desktop/views/pages/deck/deck.notifications.vue
+++ b/src/client/app/desktop/views/pages/deck/deck.notifications.vue
@@ -113,8 +113,7 @@ export default Vue.extend({
onNotification(notification) {
// TODO: ユーザーが画面を見てないと思われるとき(ブラウザやタブがアクティブじゃないなど)は送信しない
- this.connection.send({
- type: 'readNotification',
+ (this as any).os.stream.send('readNotification', {
id: notification.id
});
diff --git a/src/client/app/mios.ts b/src/client/app/mios.ts
index 42171e71fa..558c53dcf1 100644
--- a/src/client/app/mios.ts
+++ b/src/client/app/mios.ts
@@ -212,7 +212,7 @@ export default class MiOS extends EventEmitter {
const fetched = () => {
this.emit('signedin');
- this.stream = new Stream(this);
+ this.initStream();
// Finish init
callback();
@@ -247,12 +247,103 @@ export default class MiOS extends EventEmitter {
// Finish init
callback();
- this.stream = new Stream(this);
+ this.initStream();
}
});
}
}
+ @autobind
+ private initStream() {
+ this.stream = new Stream(this);
+
+ if (this.store.getters.isSignedIn) {
+ const main = this.stream.useSharedConnection('main');
+
+ // 自分の情報が更新されたとき
+ main.on('meUpdated', i => {
+ this.store.dispatch('mergeMe', i);
+ });
+
+ main.on('readAllNotifications', () => {
+ this.store.dispatch('mergeMe', {
+ hasUnreadNotification: false
+ });
+ });
+
+ main.on('unreadNotification', () => {
+ this.store.dispatch('mergeMe', {
+ hasUnreadNotification: true
+ });
+ });
+
+ main.on('readAllMessagingMessages', () => {
+ this.store.dispatch('mergeMe', {
+ hasUnreadMessagingMessage: false
+ });
+ });
+
+ main.on('unreadMessagingMessage', () => {
+ this.store.dispatch('mergeMe', {
+ hasUnreadMessagingMessage: true
+ });
+ });
+
+ main.on('unreadMention', () => {
+ this.store.dispatch('mergeMe', {
+ hasUnreadMentions: true
+ });
+ });
+
+ main.on('readAllUnreadMentions', () => {
+ this.store.dispatch('mergeMe', {
+ hasUnreadMentions: false
+ });
+ });
+
+ main.on('unreadSpecifiedNote', () => {
+ this.store.dispatch('mergeMe', {
+ hasUnreadSpecifiedNotes: true
+ });
+ });
+
+ main.on('readAllUnreadSpecifiedNotes', () => {
+ this.store.dispatch('mergeMe', {
+ hasUnreadSpecifiedNotes: false
+ });
+ });
+
+ main.on('clientSettingUpdated', x => {
+ this.store.commit('settings/set', {
+ key: x.key,
+ value: x.value
+ });
+ });
+
+ main.on('homeUpdated', x => {
+ this.store.commit('settings/setHome', x);
+ });
+
+ main.on('mobileHomeUpdated', x => {
+ this.store.commit('settings/setMobileHome', x);
+ });
+
+ main.on('widgetUpdated', x => {
+ this.store.commit('settings/setWidget', {
+ id: x.id,
+ data: x.data
+ });
+ });
+
+ // トークンが再生成されたとき
+ // このままではMisskeyが利用できないので強制的にサインアウトさせる
+ main.on('myTokenRegenerated', () => {
+ alert('%i18n:common.my-token-regenerated%');
+ this.signout();
+ });
+ }
+ }
+
/**
* Register service worker
*/
diff --git a/src/client/app/mobile/views/components/notifications.vue b/src/client/app/mobile/views/components/notifications.vue
index e43ec41a37..1cdcad1e4a 100644
--- a/src/client/app/mobile/views/components/notifications.vue
+++ b/src/client/app/mobile/views/components/notifications.vue
@@ -98,8 +98,7 @@ export default Vue.extend({
onNotification(notification) {
// TODO: ユーザーが画面を見てないと思われるとき(ブラウザやタブがアクティブじゃないなど)は送信しない
- this.connection.send({
- type: 'readNotification',
+ (this as any).os.stream.send('readNotification', {
id: notification.id
});
diff --git a/src/client/app/mobile/views/components/ui.vue b/src/client/app/mobile/views/components/ui.vue
index b16c246b10..6f77f44454 100644
--- a/src/client/app/mobile/views/components/ui.vue
+++ b/src/client/app/mobile/views/components/ui.vue
@@ -58,8 +58,7 @@ export default Vue.extend({
methods: {
onNotification(notification) {
// TODO: ユーザーが画面を見てないと思われるとき(ブラウザやタブがアクティブじゃないなど)は送信しない
- this.connection.send({
- type: 'readNotification',
+ (this as any).os.stream.send('readNotification', {
id: notification.id
});