UNPKG

@jsxc/jsxc

Version:

Real-time XMPP chat application with video calls, file transfer and encrypted communication

48 lines (38 loc) 1.42 kB
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); } }