MiraiQQ机器人学习笔记 —— 发送文件功能分析

前言

最近在学习Mirai(虽然以前也学了),然后在开发中遇到了文件发送的困惑

经过一点时间查阅文档,发现也没有那么难,算是第一次走进Mirai的源码分析了,特此记录下来。

分析

根据Mirai官方文档所示

完成发送文件的核心点就在于: RemoteFile (远程文件)接口

特地看看下面提供了那些可用的方法

    public suspend fun upload(file: File): FileMessage = file.toExternalResource().use { upload(it) }

发现一个跟文件上传有关的方法,我们根据IDE 进入相关使用类

可以看到,ExternalResource有对该方法的应用

可以看到Contact调用了UploadFile方法,我们继续看

可以看到,该Contact调用了RemoteFile的Upload方法,resolve()是用来获取子文件夹的。

既然知道如何实现的,那我们可以有几种办法调用上传文件

温馨提示

FileSupported接口

为什么要特地单独提出来这个接口,细心的小伙伴会发现。

Contact调用的uploadFile方法中是走FileSupported接口

FileSupported接口源码注释也有提到:支持文件操作的 Contact. 目前仅 Group.

目前不支持Friends,意味着不能给朋友发送文件

注:FileMessage的实现类仅仅是用来储存文件信息

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇