提交 b11fd40e 编写于 作者: Huan (李卓桓)'s avatar Huan (李卓桓)

code clean

上级 b348b629
......@@ -298,17 +298,17 @@ export class Contact extends Accessory implements Sayable {
return `Contact<${identity}>`
}
public async say (text: string) : Promise<void>
public async say (file: FileBox) : Promise<void>
public async say (contact: Contact) : Promise<void>
public async say (url: UrlLink) : Promise<void>
public async say (mini: MiniProgram): Promise<void>
public async say (text: string) : Promise<void>
public async say (contact: Contact) : Promise<void>
public async say (file: FileBox) : Promise<void>
public async say (mini: MiniProgram) : Promise<void>
public async say (url: UrlLink) : Promise<void>
/**
* > Tips:
* This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/Chatie/wechaty/wiki/Puppet#3-puppet-compatible-table)
*
* @param {(string | Contact | FileBox | UrlLink | MiniProgram)} textOrContactOrFileOrUrlOrMini
* @param {(string | Contact | FileBox | UrlLink | MiniProgram)} something
* send text, Contact, or file to contact. </br>
* You can use {@link https://www.npmjs.com/package/file-box|FileBox} to send file
* @returns {Promise<void>}
......@@ -356,46 +356,52 @@ export class Contact extends Accessory implements Sayable {
* })
* await contact.say(miniProgram)
*/
public async say (textOrContactOrFileOrUrlOrMini: string | Contact | FileBox | UrlLink | MiniProgram): Promise<void> {
log.verbose('Contact', 'say(%s)', textOrContactOrFileOrUrlOrMini)
public async say (
something: string
| Contact
| FileBox
| MiniProgram
| UrlLink
): Promise<void> {
log.verbose('Contact', 'say(%s)', something)
if (typeof textOrContactOrFileOrUrlOrMini === 'string') {
if (typeof something === 'string') {
/**
* 1. Text
*/
await this.puppet.messageSendText({
contactId: this.id,
}, textOrContactOrFileOrUrlOrMini)
} else if (textOrContactOrFileOrUrlOrMini instanceof Contact) {
}, something)
} else if (something instanceof Contact) {
/**
* 2. Contact
*/
await this.puppet.messageSendContact({
contactId: this.id,
}, textOrContactOrFileOrUrlOrMini.id)
} else if (textOrContactOrFileOrUrlOrMini instanceof FileBox) {
}, something.id)
} else if (something instanceof FileBox) {
/**
* 3. File
*/
await this.puppet.messageSendFile({
contactId: this.id,
}, textOrContactOrFileOrUrlOrMini)
} else if (textOrContactOrFileOrUrlOrMini instanceof UrlLink) {
}, something)
} else if (something instanceof UrlLink) {
/**
* 4. Link Message
*/
await this.puppet.messageSendUrl({
contactId : this.id,
}, textOrContactOrFileOrUrlOrMini.payload)
} else if (textOrContactOrFileOrUrlOrMini instanceof MiniProgram) {
}, something.payload)
} else if (something instanceof MiniProgram) {
/**
* 5. Mini Program
*/
await this.puppet.messageSendMiniProgram({
contactId : this.id,
}, textOrContactOrFileOrUrlOrMini.payload)
}, something.payload)
} else {
throw new Error('unsupported arg: ' + textOrContactOrFileOrUrlOrMini)
throw new Error('unsupported arg: ' + something)
}
}
......
......@@ -374,12 +374,12 @@ export class Room extends Accessory implements Sayable {
return !!(this.payload)
}
public say (text: string) : Promise<void>
public say (text: string, ...mentionList: Contact[]) : Promise<void>
public say (file: FileBox) : Promise<void>
public say (url: UrlLink) : Promise<void>
public say (mini: MiniProgram) : Promise<void>
public say (textList: TemplateStringsArray, ...mentionList: Contact[]): Promise<void>
public say (text: string) : Promise<void>
public say (text: string, ...mentionList: Contact[]) : Promise<void>
public say (textList: TemplateStringsArray, ...mentionList: Contact[]) : Promise<void>
public say (file: FileBox) : Promise<void>
public say (url: UrlLink) : Promise<void>
public say (mini: MiniProgram) : Promise<void>
public say (...args: never[]): never
......@@ -445,18 +445,23 @@ export class Room extends Accessory implements Sayable {
* await room.say(miniProgram)
*/
public async say (
textOrListOrContactOrFileOrUrl : string | Contact | FileBox | UrlLink | MiniProgram | TemplateStringsArray,
...mentionList : Contact[]
something : string
| Contact
| FileBox
| MiniProgram
| TemplateStringsArray
| UrlLink,
...mentionList : Contact[]
): Promise<void> {
log.verbose('Room', 'say(%s, %s)',
textOrListOrContactOrFileOrUrl,
something,
mentionList.join(', '),
)
let text: string
if (typeof textOrListOrContactOrFileOrUrl === 'string') {
if (typeof something === 'string') {
if (mentionList.length > 0) {
const AT_SEPARATOR = FOUR_PER_EM_SPACE
......@@ -465,9 +470,9 @@ export class Room extends Accessory implements Sayable {
))
const mentionText = mentionAlias.join(AT_SEPARATOR)
text = mentionText + ' ' + textOrListOrContactOrFileOrUrl
text = mentionText + ' ' + something
} else {
text = textOrListOrContactOrFileOrUrl
text = something
}
const receiver = {
contactId : (mentionList.length && mentionList[0].id) || undefined,
......@@ -478,41 +483,41 @@ export class Room extends Accessory implements Sayable {
text,
mentionList.map(c => c.id),
)
} else if (textOrListOrContactOrFileOrUrl instanceof FileBox) {
} else if (something instanceof FileBox) {
/**
* 2. File Message
*/
await this.puppet.messageSendFile({
roomId: this.id,
}, textOrListOrContactOrFileOrUrl)
} else if (textOrListOrContactOrFileOrUrl instanceof Contact) {
}, something)
} else if (something instanceof Contact) {
/**
* 3. Contact Card
*/
await this.puppet.messageSendContact({
roomId: this.id,
}, textOrListOrContactOrFileOrUrl.id)
} else if (textOrListOrContactOrFileOrUrl instanceof UrlLink) {
}, something.id)
} else if (something instanceof UrlLink) {
/**
* 4. Link Message
*/
await this.puppet.messageSendUrl({
contactId : this.id,
}, textOrListOrContactOrFileOrUrl.payload)
} else if (textOrListOrContactOrFileOrUrl instanceof MiniProgram) {
}, something.payload)
} else if (something instanceof MiniProgram) {
/**
* 5. Mini Program
*/
await this.puppet.messageSendMiniProgram({
contactId : this.id,
}, textOrListOrContactOrFileOrUrl.payload)
} else if (textOrListOrContactOrFileOrUrl instanceof Array) {
}, something.payload)
} else if (something instanceof Array) {
await this.sayTemplateStringsArray(
textOrListOrContactOrFileOrUrl,
something,
...mentionList,
)
} else {
throw new Error('arg unsupported: ' + textOrListOrContactOrFileOrUrl)
throw new Error('arg unsupported: ' + something)
}
}
......
......@@ -983,11 +983,11 @@ export class Wechaty extends Accessory implements Sayable {
return user
}
public async say (text: string) : Promise<void>
public async say (contact: Contact) : Promise<void>
public async say (file: FileBox) : Promise<void>
public async say (url: UrlLink) : Promise<void>
public async say (mini: MiniProgram): Promise<void>
public async say (text: string) : Promise<void>
public async say (contact: Contact) : Promise<void>
public async say (file: FileBox) : Promise<void>
public async say (mini: MiniProgram) : Promise<void>
public async say (url: UrlLink) : Promise<void>
public async say (...args: never[]): Promise<never>
......@@ -996,7 +996,7 @@ export class Wechaty extends Accessory implements Sayable {
* > Tips:
* This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/Chatie/wechaty/wiki/Puppet#3-puppet-compatible-table)
*
* @param {(string | Contact | FileBox | UrlLink | MiniProgram)} textOrContactOrFileOrUrlOrMini
* @param {(string | Contact | FileBox | UrlLink | MiniProgram)} something
* send text, Contact, or file to bot. </br>
* You can use {@link https://www.npmjs.com/package/file-box|FileBox} to send file
*
......@@ -1045,23 +1045,16 @@ export class Wechaty extends Accessory implements Sayable {
* await bot.say(miniPayload)
*/
public async say (textOrContactOrFileOrUrlOrMini: string | Contact | FileBox | UrlLink | MiniProgram): Promise<void> {
log.verbose('Wechaty', 'say(%s)', textOrContactOrFileOrUrlOrMini)
// Make Typescript Happy:
if (typeof textOrContactOrFileOrUrlOrMini === 'string') {
await this.userSelf().say(textOrContactOrFileOrUrlOrMini)
} else if (textOrContactOrFileOrUrlOrMini instanceof Contact) {
await this.userSelf().say(textOrContactOrFileOrUrlOrMini)
} else if (textOrContactOrFileOrUrlOrMini instanceof FileBox) {
await this.userSelf().say(textOrContactOrFileOrUrlOrMini)
} else if (textOrContactOrFileOrUrlOrMini instanceof UrlLink) {
await this.userSelf().say(textOrContactOrFileOrUrlOrMini)
} else if (textOrContactOrFileOrUrlOrMini instanceof MiniProgram) {
await this.userSelf().say(textOrContactOrFileOrUrlOrMini)
} else {
throw new Error('unsupported: ' + textOrContactOrFileOrUrlOrMini)
}
public async say (
something: string
| Contact
| FileBox
| MiniProgram
| UrlLink
): Promise<void> {
log.verbose('Wechaty', 'say(%s)', something)
// huan: to make TypeScript happy
await this.userSelf().say(something as any)
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册