aardio 文档
aardio 范例: 微信 iLink 机器人 - 下载接收到的媒体文件
//微信 iLink 机器人 - 下载接收到的媒体文件
import web.rest.iLinkClient.login;
var bot = web.rest.iLinkClient.login()
if(!bot) return;
import console;
console.log("✅ 机器人已上线,正在监听微信消息 ...");
console.log("💡 给我发送图片、文件或视频,aardio 将自动下载保存。");
// 消息监听循环
while(true){
var updateRes, err, errCode = bot.getUpdates();
if(updateRes && updateRes.msgs){
for i, fromMsg in updateRes.msgs {
// 遍历消息中的所有项目
var itemList = fromMsg.item_list;
if(!itemList) continue;
for(itemIndex=1; #itemList; 1){
var item = itemList[itemIndex];
var mediaType = "";
var media;
var fileName = "";
if(item.text_item && item.text_item.text){
console.log("📩 文本: " + item.text_item.text);
}
elseif(item.image_item && item.image_item.media){
mediaType = "图片";
media = item.image_item.media;
fileName = "weixin-image-" + itemIndex + ".jpg";
}
elseif(item.video_item && item.video_item.media){
mediaType = "视频";
media = item.video_item.media;
fileName = "weixin-video-" + itemIndex + ".mp4";
}
elseif(item.file_item && item.file_item.media){
mediaType = "文件";
media = item.file_item.media;
fileName = item.file_item.file_name || ("weixin-file-" + itemIndex);
}
elseif(item.voice_item && item.voice_item.media){
mediaType = "语音";
media = item.voice_item.media;
fileName = "weixin-voice-" + itemIndex + ".silk";
}
if(media){
var savePath = io.fullpath("/downloads/") + fileName;
console.log("📥 正在下载" + mediaType + " → " + savePath);
var ok, err, errCode = bot.downloadMedia(media, savePath);
if(ok){
console.log("✅ " + mediaType + "已保存: " + savePath);
// 回复用户
bot.sendMessage(fromMsg, "🤖 已收到你的" + mediaType + ",已保存到本地。");
}
else {
console.log("❌ 下载" + mediaType + "失败: " + (err || ""));
}
}
}
}
}
elseif(!updateRes){
if(errCode && errCode < 0){
console.log("⚠️ 业务错误: " + (err || "") + " (" + errCode + "),3秒后重试...");
if(errCode == -14){
var bot = web.rest.iLinkClient.login()
if(!bot) return;
}
}
elseif(errCode){
console.log("⚠️ 网络错误: " + (err || "") + " (" + errCode + "),3秒后重试...");
}
thread.delay(1000);
}
}
Markdown 格式