# aardio 范例: 微信 iLink 机器人 - 下载接收到的媒体文件



```aardio
//微信 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);
	}
}

```

