@jsxc/jsxc
Version:
Real-time XMPP chat application with video calls, file transfer and encrypted communication
48 lines (38 loc) • 1.42 kB
text/typescript
import { AbstractPlugin, IMetaData } from '../../plugin/AbstractPlugin';
import PluginAPI from '../../plugin/PluginAPI';
import { PubSubService } from './services/PubSubService';
import LocalService from './services/LocalService';
import BookmarkProvider from './BookmarkProvider';
import Translation from '@util/Translation';
const MIN_VERSION = '4.0.0';
const MAX_VERSION = '99.0.0';
export default class BookmarksPlugin extends AbstractPlugin {
public static getId(): string {
return 'bookmarks';
}
public static getName(): string {
return 'Bookmarks';
}
public static getMetaData(): IMetaData {
return {
description: Translation.t('setting-bookmarks-enable'),
xeps: [
{
id: 'XEP-0048',
name: 'Bookmarks',
version: '1.1',
},
],
};
}
constructor(pluginAPI: PluginAPI) {
super(MIN_VERSION, MAX_VERSION, pluginAPI);
let contactManager = pluginAPI.getContactManager();
let provider = new BookmarkProvider(contactManager, pluginAPI.createMultiUserContact.bind(pluginAPI));
provider.registerService(new LocalService(pluginAPI.getStorage()));
//@TODO test if pubsub is available
let pubSub = new PubSubService(pluginAPI.getConnection());
provider.registerService(pubSub);
pluginAPI.registerContactProvider(provider);
}
}