Files
wehub-resource-sync d5f55b5f9c
Coverage / build (push) Has been cancelled
Docker / Build (push) Has been cancelled
Docker / Publish (push) Has been cancelled
Node.js CI / build (16, macos-latest) (push) Has been cancelled
Node.js CI / build (16, ubuntu-latest) (push) Has been cancelled
Node.js CI / build (16, windows-latest) (push) Has been cancelled
NPM / Build (22) (push) Has been cancelled
NPM / Pack (push) Has been cancelled
NPM / Publish (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:40:42 +08:00

93 lines
2.1 KiB
TypeScript

import PUPPET from 'wechaty-puppet'
import { FileBox } from 'file-box'
import {
WechatyBuilder,
} from '../src/mods/mod.js'
const bot = WechatyBuilder.build({
name : 'video-post-bot',
})
async function testVideoPost () {
const contact = await bot.Contact.find({ id: 'xxx' })
const room = await bot.Room.find({ id: 'xxx' })
if (!contact || !room) {
return
}
const post = await bot.Post.builder()
.add('hello, world')
.add(FileBox.fromQRCode('qr'))
.add(await bot.UrlLink.create('https://wechaty.js.org'))
.build()
await bot.say(post)
bot.on('message', async message => {
// if (message.type() !== message.type.Post) {
// return
// }
// forward video post
await message.forward(contact)
/**
* Video Post
*/
const post2 = await message.toPost()
const counter = post2.counter()
console.info('total tap(like) number:', counter.taps && counter.taps[PUPPET.types.Tap.Like])
console.info('total children number:', counter.descendant)
/**
* Comment
*/
// reply comment
await post2.reply('xxxx')
await post2.reply(FileBox.fromQRCode('qrimage'))
for await (const descendant of post.descendants({ contactId: message.wechaty.currentUser.id })) {
console.info(descendant)
}
/**
* Like
*/
// like message
await post.like(true)
// await post.tap(PostTapType.Like, true)
// check whether we have liked this post
const liked = await post.like()
console.info('liked date:', liked)
// const liked = await post.tap(PostTapType.Like)
// cancel like
await post.like(false)
// await post.tap(PostTapType.Like, false)
// list all likers
for await (const tap of post.taps()) {
console.info('Taper -------')
console.info('taper:', tap.contact)
console.info('date:', tap.date)
console.info('type:', tap.type)
}
for await (const like of post.likes()) {
console.info('-------')
console.info('liker:', like.contact)
console.info('date:', like.date)
console.info('type:', like.type)
}
})
}
void testVideoPost()