95 lines
1.6 KiB
JavaScript
95 lines
1.6 KiB
JavaScript
const Markup = require('./markup')
|
|
|
|
class Extra {
|
|
constructor (opts) {
|
|
this.load(opts)
|
|
}
|
|
|
|
load (opts = {}) {
|
|
return Object.assign(this, opts)
|
|
}
|
|
|
|
inReplyTo (messageId) {
|
|
this.reply_to_message_id = messageId
|
|
return this
|
|
}
|
|
|
|
notifications (value = true) {
|
|
this.disable_notification = !value
|
|
return this
|
|
}
|
|
|
|
webPreview (value = true) {
|
|
this.disable_web_page_preview = !value
|
|
return this
|
|
}
|
|
|
|
markup (markup) {
|
|
if (typeof markup === 'function') {
|
|
markup = markup(new Markup())
|
|
}
|
|
this.reply_markup = { ...markup }
|
|
return this
|
|
}
|
|
|
|
HTML (value = true) {
|
|
this.parse_mode = value ? 'HTML' : undefined
|
|
return this
|
|
}
|
|
|
|
markdown (value = true) {
|
|
this.parse_mode = value ? 'Markdown' : undefined
|
|
return this
|
|
}
|
|
|
|
markdownV2 (value = true) {
|
|
this.parse_mode = value ? 'MarkdownV2' : undefined
|
|
return this
|
|
}
|
|
|
|
caption (caption = '') {
|
|
this.caption = caption
|
|
return this
|
|
}
|
|
|
|
static inReplyTo (messageId) {
|
|
return new Extra().inReplyTo(messageId)
|
|
}
|
|
|
|
static notifications (value) {
|
|
return new Extra().notifications(value)
|
|
}
|
|
|
|
static webPreview (value) {
|
|
return new Extra().webPreview(value)
|
|
}
|
|
|
|
static load (opts) {
|
|
return new Extra(opts)
|
|
}
|
|
|
|
static markup (markup) {
|
|
return new Extra().markup(markup)
|
|
}
|
|
|
|
static HTML (value) {
|
|
return new Extra().HTML(value)
|
|
}
|
|
|
|
static markdown (value) {
|
|
return new Extra().markdown(value)
|
|
}
|
|
|
|
static markdownV2 (value) {
|
|
return new Extra().markdownV2(value)
|
|
}
|
|
|
|
static caption (caption) {
|
|
return new Extra().caption(caption)
|
|
}
|
|
}
|
|
|
|
Extra.Markup = Markup
|
|
|
|
module.exports = Extra
|