mirror of
https://github.com/paricafe/misskey.git
synced 2024-11-25 01:36:43 -06:00
Improve streaming API
This commit is contained in:
parent
9c0e990568
commit
6012e98ae6
17 changed files with 20 additions and 0 deletions
|
@ -9,6 +9,7 @@ export default abstract class Channel {
|
|||
public id: string;
|
||||
public abstract readonly chName: string;
|
||||
public static readonly shouldShare: boolean;
|
||||
public static readonly requireCredential: boolean;
|
||||
|
||||
protected get user() {
|
||||
return this.connection.user;
|
||||
|
|
|
@ -4,6 +4,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'apLog';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = false;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'drive';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = true;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -10,6 +10,7 @@ import Channel from '../../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'gamesReversiGame';
|
||||
public static shouldShare = false;
|
||||
public static requireCredential = false;
|
||||
|
||||
private gameId: mongo.ObjectID;
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import Channel from '../../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'gamesReversi';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = true;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -7,6 +7,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'globalTimeline';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = false;
|
||||
|
||||
private mutedUserIds: string[] = [];
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'hashtag';
|
||||
public static shouldShare = false;
|
||||
public static requireCredential = false;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -7,6 +7,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'homeTimeline';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = true;
|
||||
|
||||
private mutedUserIds: string[] = [];
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'hybridTimeline';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = true;
|
||||
|
||||
private mutedUserIds: string[] = [];
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'localTimeline';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = false;
|
||||
|
||||
private mutedUserIds: string[] = [];
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'main';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = true;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'messagingIndex';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = true;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -5,6 +5,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'messaging';
|
||||
public static shouldShare = false;
|
||||
public static requireCredential = true;
|
||||
|
||||
private otherpartyId: string;
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ const ev = new Xev();
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'notesStats';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = false;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -7,6 +7,7 @@ const ev = new Xev();
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'serverStats';
|
||||
public static shouldShare = true;
|
||||
public static requireCredential = false;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import Channel from '../channel';
|
|||
export default class extends Channel {
|
||||
public readonly chName = 'userList';
|
||||
public static shouldShare = false;
|
||||
public static requireCredential = false;
|
||||
|
||||
@autobind
|
||||
public async init(params: any) {
|
||||
|
|
|
@ -173,6 +173,10 @@ export default class Connection {
|
|||
*/
|
||||
@autobind
|
||||
public connectChannel(id: string, params: any, channel: string, pong = false) {
|
||||
if ((channels as any)[channel].requireCredential && this.user == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 共有可能チャンネルに接続しようとしていて、かつそのチャンネルに既に接続していたら無意味なので無視
|
||||
if ((channels as any)[channel].shouldShare && this.channels.some(c => c.chName === channel)) {
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue