You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

70 lines
2.2 KiB
JavaScript

//const appservicePort = 9000;
const roomId = '!MQClELEJFefiUVmsNw:imninja.net';
//const http = require('http');
const Cli = require('matrix-appservice-bridge').Cli;
const Bridge = require('matrix-appservice-bridge').Bridge;
const AppServiceRegistration = require('matrix-appservice-bridge').AppServiceRegistration;
const StateLookup = require('matrix-appservice-bridge').StateLookup;
let bridge;
let feedtracker;
//http.createServer((request, response) => {
// console.log('http online');
//}).listen(appservicePort);
const getFeeds = (client) => {
};
new Cli({
registrationPath: 'registration.yaml',
generateRegistration: (reg, callback) => {
reg.setId(AppServiceRegistration.generateToken());
reg.setHomeserverToken(AppServiceRegistration.generateToken());
reg.setAppServiceToken(AppServiceRegistration.generateToken());
reg.setSenderLocalpart('_rss');
reg.addRegexPattern('users', '@_rss_.*', true);
callback(reg);
},
bridgeConfig: {
schema: 'config.schema.yaml'
},
run: (port, config) => {
bridge = new Bridge({
homeserverUrl: config.homeserver,
domain: config.domain,
registration: config.registration,
controller: {
onUserQuery: (queriedUser) => {
return {};
},
onEvent: (request, context) => {
const event = request.getData();
// event.content.keywords etc.
if(event.type !== 'de.lubiland.feedrsser.config') {
return;
}
feedtracker.onEvent(event);
}
}
});
bridge.run(port, config);
feedtracker = new StateLookup({
client: bridge.getIntent('@_rss_test0r:imninja.net').client,
eventTypes: ['de.lubiland.feedrsser.config']
});
feedtracker.trackRoom(roomId).then(() => {
const asef = feedtracker.getState(roomId, 'de.lubiland.feedrsser.config');
});
//bridge.getIntent('@_rss_test0r:imninja.net').sendText(roomId, 'asef :)');
}
}).run();