wip
This commit is contained in:
parent
d4085085b8
commit
cc35f2c186
|
@ -141,7 +141,7 @@ export default defineComponent({
|
|||
});
|
||||
}
|
||||
|
||||
this.connection = this.$root.stream.useSharedConnection('drive');
|
||||
this.connection = os.stream.useSharedConnection('drive');
|
||||
|
||||
this.connection.on('fileCreated', this.onStreamDriveFileCreated);
|
||||
this.connection.on('fileUpdated', this.onStreamDriveFileUpdated);
|
||||
|
|
|
@ -69,7 +69,7 @@ export default defineComponent({
|
|||
},
|
||||
|
||||
mounted() {
|
||||
this.connection = this.$root.stream.useSharedConnection('main');
|
||||
this.connection = os.stream.useSharedConnection('main');
|
||||
|
||||
this.connection.on('follow', this.onFollowChange);
|
||||
this.connection.on('unfollow', this.onFollowChange);
|
||||
|
|
|
@ -253,7 +253,7 @@ export default defineComponent({
|
|||
|
||||
async created() {
|
||||
if (this.$store.getters.isSignedIn) {
|
||||
this.connection = this.$root.stream;
|
||||
this.connection = os.stream;
|
||||
}
|
||||
|
||||
// plugin
|
||||
|
|
|
@ -104,7 +104,7 @@ export default defineComponent({
|
|||
if (!this.notification.isRead) {
|
||||
this.readObserver = new IntersectionObserver((entries, observer) => {
|
||||
if (!entries.some(entry => entry.isIntersecting)) return;
|
||||
this.$root.stream.send('readNotification', {
|
||||
os.stream.send('readNotification', {
|
||||
id: this.notification.id
|
||||
});
|
||||
entries.map(({ target }) => observer.unobserve(target));
|
||||
|
@ -112,7 +112,7 @@ export default defineComponent({
|
|||
|
||||
this.readObserver.observe(this.$el);
|
||||
|
||||
this.connection = this.$root.stream.useSharedConnection('main');
|
||||
this.connection = os.stream.useSharedConnection('main');
|
||||
this.connection.on('readAllNotifications', () => this.readObserver.unobserve(this.$el));
|
||||
}
|
||||
},
|
||||
|
|
|
@ -75,7 +75,7 @@ export default defineComponent({
|
|||
},
|
||||
|
||||
mounted() {
|
||||
this.connection = this.$root.stream.useSharedConnection('main');
|
||||
this.connection = os.stream.useSharedConnection('main');
|
||||
this.connection.on('notification', this.onNotification);
|
||||
},
|
||||
|
||||
|
@ -88,7 +88,7 @@ export default defineComponent({
|
|||
//
|
||||
const isMuted = !!this.allIncludeTypes && !this.allIncludeTypes.includes(notification.type);
|
||||
if (isMuted || document.visibilityState === 'visible') {
|
||||
this.$root.stream.send('readNotification', {
|
||||
os.stream.send('readNotification', {
|
||||
id: notification.id
|
||||
});
|
||||
}
|
||||
|
|
|
@ -20,14 +20,14 @@ export default defineComponent({
|
|||
},
|
||||
computed: {
|
||||
stream() {
|
||||
return this.$root.stream;
|
||||
return os.stream;
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.$root.stream.on('_disconnected_', this.onDisconnected);
|
||||
os.stream.on('_disconnected_', this.onDisconnected);
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.$root.stream.off('_disconnected_', this.onDisconnected);
|
||||
os.stream.off('_disconnected_', this.onDisconnected);
|
||||
},
|
||||
methods: {
|
||||
onDisconnected() {
|
||||
|
|
|
@ -88,36 +88,36 @@ export default defineComponent({
|
|||
this.query = {
|
||||
antennaId: this.antenna
|
||||
};
|
||||
this.connection = this.$root.stream.connectToChannel('antenna', {
|
||||
this.connection = os.stream.connectToChannel('antenna', {
|
||||
antennaId: this.antenna
|
||||
});
|
||||
this.connection.on('note', prepend);
|
||||
} else if (this.src == 'home') {
|
||||
endpoint = 'notes/timeline';
|
||||
this.connection = this.$root.stream.useSharedConnection('homeTimeline');
|
||||
this.connection = os.stream.useSharedConnection('homeTimeline');
|
||||
this.connection.on('note', prepend);
|
||||
|
||||
this.connection2 = this.$root.stream.useSharedConnection('main');
|
||||
this.connection2 = os.stream.useSharedConnection('main');
|
||||
this.connection2.on('follow', onChangeFollowing);
|
||||
this.connection2.on('unfollow', onChangeFollowing);
|
||||
} else if (this.src == 'local') {
|
||||
endpoint = 'notes/local-timeline';
|
||||
this.connection = this.$root.stream.useSharedConnection('localTimeline');
|
||||
this.connection = os.stream.useSharedConnection('localTimeline');
|
||||
this.connection.on('note', prepend);
|
||||
} else if (this.src == 'social') {
|
||||
endpoint = 'notes/hybrid-timeline';
|
||||
this.connection = this.$root.stream.useSharedConnection('hybridTimeline');
|
||||
this.connection = os.stream.useSharedConnection('hybridTimeline');
|
||||
this.connection.on('note', prepend);
|
||||
} else if (this.src == 'global') {
|
||||
endpoint = 'notes/global-timeline';
|
||||
this.connection = this.$root.stream.useSharedConnection('globalTimeline');
|
||||
this.connection = os.stream.useSharedConnection('globalTimeline');
|
||||
this.connection.on('note', prepend);
|
||||
} else if (this.src == 'list') {
|
||||
endpoint = 'notes/user-list-timeline';
|
||||
this.query = {
|
||||
listId: this.list
|
||||
};
|
||||
this.connection = this.$root.stream.connectToChannel('userList', {
|
||||
this.connection = os.stream.connectToChannel('userList', {
|
||||
listId: this.list
|
||||
});
|
||||
this.connection.on('note', prepend);
|
||||
|
@ -128,7 +128,7 @@ export default defineComponent({
|
|||
this.query = {
|
||||
channelId: this.channel
|
||||
};
|
||||
this.connection = this.$root.stream.connectToChannel('channel', {
|
||||
this.connection = os.stream.connectToChannel('channel', {
|
||||
channelId: this.channel
|
||||
});
|
||||
this.connection.on('note', prepend);
|
||||
|
|
|
@ -108,7 +108,7 @@ export default defineComponent({
|
|||
window.addEventListener('wheel', this.onWheel);
|
||||
|
||||
if (this.$store.getters.isSignedIn) {
|
||||
this.connection = this.$root.stream.useSharedConnection('main');
|
||||
this.connection = os.stream.useSharedConnection('main');
|
||||
this.connection.on('notification', this.onNotification);
|
||||
}
|
||||
},
|
||||
|
@ -162,7 +162,7 @@ export default defineComponent({
|
|||
}
|
||||
|
||||
if (document.visibilityState === 'visible') {
|
||||
this.$root.stream.send('readNotification', {
|
||||
os.stream.send('readNotification', {
|
||||
id: notification.id
|
||||
});
|
||||
|
||||
|
|
|
@ -202,7 +202,7 @@ export default defineComponent({
|
|||
document.documentElement.style.overflowY = 'scroll';
|
||||
|
||||
if (this.$store.getters.isSignedIn) {
|
||||
this.connection = this.$root.stream.useSharedConnection('main');
|
||||
this.connection = os.stream.useSharedConnection('main');
|
||||
this.connection.on('notification', this.onNotification);
|
||||
|
||||
if (this.$store.state.deviceUser.widgets.length === 0) {
|
||||
|
@ -331,7 +331,7 @@ export default defineComponent({
|
|||
return;
|
||||
}
|
||||
if (document.visibilityState === 'visible') {
|
||||
this.$root.stream.send('readNotification', {
|
||||
os.stream.send('readNotification', {
|
||||
id: notification.id
|
||||
});
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ import { deserialize } from '@syuilo/aiscript/built/serializer';
|
|||
|
||||
import VueHotkey from '@/scripts/hotkey';
|
||||
import Root from './root.vue';
|
||||
import Stream from '@/scripts/stream';
|
||||
import widgets from './widgets';
|
||||
import directives from './directives';
|
||||
import components from '@/components';
|
||||
|
@ -22,6 +21,7 @@ import { applyTheme, lightTheme } from '@/scripts/theme';
|
|||
import { isDeviceDarkmode } from '@/scripts/is-device-darkmode';
|
||||
import { createPluginEnv } from '@/scripts/aiscript/api';
|
||||
import { i18n, lang } from './i18n';
|
||||
import { stream } from '@/os';
|
||||
|
||||
console.info(`Misskey v${version}`);
|
||||
|
||||
|
@ -112,7 +112,7 @@ if (store.state.i != null) {
|
|||
if (i != null && i !== 'null') {
|
||||
try {
|
||||
const me = await fetchme(i);
|
||||
store.dispatch('login', me);
|
||||
await store.dispatch('login', me);
|
||||
} catch (e) {
|
||||
// Render the error screen
|
||||
// TODO: ちゃんとしたコンポーネントをレンダリングする(v10とかのトラブルシューティングゲーム付きのやつみたいな)
|
||||
|
@ -122,11 +122,9 @@ if (store.state.i != null) {
|
|||
}
|
||||
//#endregion
|
||||
|
||||
const stream = new Stream(store.state.i);
|
||||
stream.init(store.state.i);
|
||||
|
||||
const app = createApp(Root, {
|
||||
stream
|
||||
});
|
||||
const app = createApp(Root);
|
||||
|
||||
app.use(store);
|
||||
app.use(router);
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
import { defineAsyncComponent } from 'vue';
|
||||
import Stream from '@/scripts/stream';
|
||||
import { store } from './store';
|
||||
|
||||
export const stream = new Stream();
|
||||
|
||||
export function api(endpoint: string, data: Record<string, any> = {}, token?: string | null | undefined) {
|
||||
return store.dispatch('api', { endpoint, data, token });
|
||||
}
|
||||
|
|
|
@ -234,7 +234,7 @@ export default defineComponent({
|
|||
stats: null,
|
||||
serverInfo: null,
|
||||
connection: null,
|
||||
queueConnection: this.$root.stream.useSharedConnection('queueStats'),
|
||||
queueConnection: os.stream.useSharedConnection('queueStats'),
|
||||
memUsage: 0,
|
||||
chartCpuMem: null,
|
||||
chartNet: null,
|
||||
|
@ -499,7 +499,7 @@ export default defineComponent({
|
|||
os.api('admin/server-info', {}).then(res => {
|
||||
this.serverInfo = res;
|
||||
|
||||
this.connection = this.$root.stream.useSharedConnection('serverStats');
|
||||
this.connection = os.stream.useSharedConnection('serverStats');
|
||||
this.connection.on('stats', this.onStats);
|
||||
this.connection.on('statsLog', this.onStatsLog);
|
||||
this.connection.send('requestLog', {
|
||||
|
|
|
@ -38,7 +38,7 @@ export default defineComponent({
|
|||
|
||||
data() {
|
||||
return {
|
||||
connection: this.$root.stream.useSharedConnection('queueStats'),
|
||||
connection: os.stream.useSharedConnection('queueStats'),
|
||||
faExchangeAlt, faTrashAlt
|
||||
}
|
||||
},
|
||||
|
|
|
@ -63,7 +63,7 @@ export default defineComponent({
|
|||
},
|
||||
|
||||
mounted() {
|
||||
this.connection = this.$root.stream.useSharedConnection('messagingIndex');
|
||||
this.connection = os.stream.useSharedConnection('messagingIndex');
|
||||
|
||||
this.connection.on('message', this.onMessage);
|
||||
this.connection.on('read', this.onRead);
|
||||
|
|
|
@ -107,7 +107,7 @@ export default defineComponent({
|
|||
this.group = group;
|
||||
}
|
||||
|
||||
this.connection = this.$root.stream.connectToChannel('messaging', {
|
||||
this.connection = os.stream.connectToChannel('messaging', {
|
||||
otherparty: this.user ? this.user.id : undefined,
|
||||
group: this.group ? this.group.id : undefined,
|
||||
});
|
||||
|
|
|
@ -23,10 +23,6 @@ export default defineComponent({
|
|||
},
|
||||
|
||||
props: {
|
||||
// TODO: propで渡すとvueによって無駄なobserveがされるのでどうにかする
|
||||
stream: {
|
||||
|
||||
},
|
||||
isMobile: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
|
|
|
@ -8,16 +8,13 @@ import { wsUrl } from '@/config';
|
|||
*/
|
||||
export default class Stream extends EventEmitter {
|
||||
private stream: ReconnectingWebsocket;
|
||||
public state: 'initializing' | 'reconnecting' | 'connected';
|
||||
public state: 'initializing' | 'reconnecting' | 'connected' = 'initializing';
|
||||
private sharedConnectionPools: Pool[] = [];
|
||||
private sharedConnections: SharedConnection[] = [];
|
||||
private nonSharedConnections: NonSharedConnection[] = [];
|
||||
|
||||
constructor(user) {
|
||||
super();
|
||||
|
||||
this.state = 'initializing';
|
||||
|
||||
@autobind
|
||||
public init(user): void {
|
||||
this.stream = new ReconnectingWebsocket(wsUrl + (user ? `?i=${user.token}` : ''), '', { minReconnectionDelay: 1 }); // https://github.com/pladaria/reconnecting-websocket/issues/91
|
||||
this.stream.addEventListener('open', this.onOpen);
|
||||
this.stream.addEventListener('close', this.onClose);
|
||||
|
|
|
@ -50,7 +50,7 @@ export default defineComponent({
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
this.connection = this.$root.stream.useSharedConnection('main');
|
||||
this.connection = os.stream.useSharedConnection('main');
|
||||
|
||||
this.connection.on('driveFileCreated', this.onDriveFileCreated);
|
||||
|
||||
|
|
Loading…
Reference in New Issue