當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript matrix-appservice-bridge.AppServiceRegistration類代碼示例

本文整理匯總了TypeScript中matrix-appservice-bridge.AppServiceRegistration的典型用法代碼示例。如果您正苦於以下問題:TypeScript AppServiceRegistration類的具體用法?TypeScript AppServiceRegistration怎麽用?TypeScript AppServiceRegistration使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了AppServiceRegistration類的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: generateRegistration

function generateRegistration(reg, callback)  {
    reg.setId(AppServiceRegistration.generateToken());
    reg.setHomeserverToken(AppServiceRegistration.generateToken());
    reg.setAppServiceToken(AppServiceRegistration.generateToken());
    reg.setSenderLocalpart("_discord_bot");
    reg.addRegexPattern("users", "@_discord_.*", true);
    reg.addRegexPattern("aliases", "#_discord_.*", true);
    reg.setRateLimited(false);
    reg.setProtocols(["discord"]);
    callback(reg);
}
開發者ID:Half-Shot,項目名稱:matrix-appservice-discord,代碼行數:11,代碼來源:discordas.ts

示例2: Error

    console.log(usage([
    {
        content: "A tool to fix channels of rooms already bridged " +
        "to matrix, to make sure their names, icons etc. are correctly.",
        header: "Fix bridged channels",
    },
    {
        header: "Options",
        optionList: optionDefinitions,
    },
    ]));
    process.exit(0);
}

const yamlConfig = yaml.safeLoad(fs.readFileSync("./discord-registration.yaml", "utf8"));
const registration = AppServiceRegistration.fromObject(yamlConfig);
const config = new DiscordBridgeConfig();
config.ApplyConfig(yaml.safeLoad(fs.readFileSync(options.config, "utf8")) as DiscordBridgeConfig);

if (registration === null) {
    throw new Error("Failed to parse registration file");
}

const botUserId = `@${registration.sender_localpart}:${config.bridge.domain}`;
const clientFactory = new ClientFactory({
    appServiceUserId: botUserId,
    token: registration.as_token,
    url: config.bridge.homeserverUrl,
});
const provisioner = new Provisioner();
const discordstore = new DiscordStore(config.database ? config.database.filename : "discord.db");
開發者ID:Half-Shot,項目名稱:matrix-appservice-discord,代碼行數:31,代碼來源:chanfix.ts

示例3: run

async function run(port: number, fileConfig: DiscordBridgeConfig) {
    const config = new DiscordBridgeConfig();
    config.ApplyConfig(fileConfig);
    Log.Configure(config.logging);
    log.info("Starting Discord AS");
    const yamlConfig = yaml.safeLoad(fs.readFileSync(cli.opts.registrationPath, "utf8"));
    const registration = AppServiceRegistration.fromObject(yamlConfig);
    if (registration === null) {
        throw new Error("Failed to parse registration file");
    }

    const botUserId = `@${registration.sender_localpart}:${config.bridge.domain}`;
    const clientFactory = new ClientFactory({
        appServiceUserId: botUserId,
        token: registration.as_token,
        url: config.bridge.homeserverUrl,
    });
    const provisioner = new Provisioner();
    // Warn and deprecate old config options.
    const discordstore = new DiscordStore(config.database);
    const discordbot = new DiscordBot(config, discordstore, provisioner);
    const roomhandler = new MatrixRoomHandler(discordbot, config, botUserId, provisioner);

    const bridge = new Bridge({
        clientFactory,
        controller: {
            // onUserQuery: userQuery,
            onAliasQueried: async (alias: string, roomId: string) => {
                try {
                    return await roomhandler.OnAliasQueried.bind(roomhandler)(alias, roomId);
                } catch (err) { log.error("Exception thrown while handling \"onAliasQueried\" event", err); }
            },
            onAliasQuery: async (alias: string, aliasLocalpart: string) => {
                try {
                    return await roomhandler.OnAliasQuery.bind(roomhandler)(alias, aliasLocalpart);
                } catch (err) { log.error("Exception thrown while handling \"onAliasQuery\" event", err); }
            },
            onEvent: async (request, context) => {
                try {
                    await request.outcomeFrom(Bluebird.resolve(roomhandler.OnEvent(request, context)));
                } catch (err) {
                    log.error("Exception thrown while handling \"onEvent\" event", err);
                }
            },
            onLog: (line, isError) => {
                log.verbose("matrix-appservice-bridge", line);
            },
            thirdPartyLookup: roomhandler.ThirdPartyLookup,
        },
        domain: config.bridge.domain,
        homeserverUrl: config.bridge.homeserverUrl,
        intentOptions: {
            clients: {
                dontJoin: true, // handled manually
            },
        },
        queue: {
            perRequest: true,
            type: "per_room",
        },
        registration,
        roomStore: config.database.roomStorePath,
        userStore: config.database.userStorePath,
        // To avoid out of order message sending.
    });
    provisioner.SetBridge(bridge);
    roomhandler.setBridge(bridge);
    discordbot.setBridge(bridge);
    discordbot.setRoomHandler(roomhandler);
    log.info("Initing bridge.");
    log.info(`Started listening on port ${port}.`);

    try {
        await bridge.run(port, config);
        log.info("Initing store.");
        await discordstore.init();
        log.info("Initing bot.");
        await discordbot.run();
        log.info("Discordbot started successfully.");
    } catch (err) {
        log.error(err);
        log.error("Failure during startup. Exiting.");
        process.exit(1);
    }
}
開發者ID:Half-Shot,項目名稱:matrix-appservice-discord,代碼行數:85,代碼來源:discordas.ts


注:本文中的matrix-appservice-bridge.AppServiceRegistration類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。