XMPP external components.
This commit is contained in:
38
server/lib/prosody/config/components.ts
Normal file
38
server/lib/prosody/config/components.ts
Normal file
@ -0,0 +1,38 @@
|
||||
interface ExternalComponent {
|
||||
name: string
|
||||
secret: string
|
||||
}
|
||||
|
||||
function parseExternalComponents (s: string, prosodyDomain: string): ExternalComponent[] {
|
||||
if (!s) {
|
||||
return []
|
||||
}
|
||||
let lines = s.split('\n')
|
||||
lines = lines.map(line => {
|
||||
return line.replace(/#.*$/, '')
|
||||
.replace(/^\s+/, '')
|
||||
.replace(/\s+$/, '')
|
||||
})
|
||||
lines = lines.filter(line => line !== '')
|
||||
|
||||
const r: ExternalComponent[] = []
|
||||
for (const line of lines) {
|
||||
const matches = line.match(/^([\w.]+)\s*:\s*(\w+)$/)
|
||||
if (matches) {
|
||||
let name = matches[1]
|
||||
if (!name.includes('.')) {
|
||||
name = name + '.' + prosodyDomain
|
||||
}
|
||||
r.push({
|
||||
name,
|
||||
secret: matches[2]
|
||||
})
|
||||
}
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
export {
|
||||
ExternalComponent,
|
||||
parseExternalComponents
|
||||
}
|
Reference in New Issue
Block a user