@tsudzuki 嗯嗯!好的,谢谢大佬呐
lhqm 发布的帖子
-
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki filename是用户传入的文件名字,我现在只是测试,所以说让用户自己传名字。之后我考虑再写个函数,直接把图片的mirai码里边那个ID切出来当名字。
-
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki 大佬大佬,下载图片是这么写嘛?另外还烦请大佬告诉一下存储的相对路径应该是怎么样的
频道内的执行过程if (msg=="#添加图片"){ //判断添加请求的发起者是否属于管理员 if (primer==sender.id ){ //TODO:操作员先输入描述和图片 subject.sendMessage("请在50分钟内发送图片名称") val fileName=nextMessage(3000_000).filterIsInstance<PlainText>()[0].content subject.sendMessage("请在50分钟内发送图片") val image=nextMessage(3000_000).filterIsInstance<Image>()[0] subject.sendMessage("图片正在处理") //TODO:下载图片 downLoadImage(image.queryUrl(),fileName) }else{ subject.sendMessage("您无权进行此操作") } }
下载类的执行过程
fun downLoadImageByUrl(url:String,fileName:String){ //通过url的字符串强行转为URL,然后获取到InputStream val str= URL(url) val uc=str.openConnection() val input=uc.getInputStream() //向输出文件写入名字和路径,然后写入字节流 val output= FileOutputStream(fileName) var j=0 j=input.read() while (j!=-1){ output.write(j); j=input.read() } input.close() output.close() } fun downLoadImage(url: String,fileName: String){ //开启一个协程来执行下载 GlobalScope.launch (context = Dispatchers.IO){ downLoadImageByUrl(url,fileName) } }
还有喔,那个logger我是这么写的,反正写在频道内,Android的控制台是没有任何输出的,我不知道是我写的有错还是Android有bug,我导的包是
net.mamoe.mirai.utils.info
-
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki 就是直接调用的logger.info(),唔,我用手机回的,传不上来图片,频道外边用这个方法都行,放频道里就没用了,给开发和管理增加了不小的难度🙃
-
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki 再次谢谢大佬的建议!不过这个相对路径应该怎么去写呢?协程的话我先自己去看看kotlin的协程吧!另外的话……Android的那个logger,我之前写在频道里测试,打印每一次别人说的话。就是只要有人在群里说话,他就会触发群频道嘛,但是logger没有任何输出……,只有在onenable的频道外边才有用……☹️
-
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki 嗯嗯!感谢大佬的纠正和回复!最近两天我又摸索了一下,大概就是以下问题:我选择下载图片然后发送,但是有几个问题:
1.基于Android平台开发的mirai-console插件,通过okhttp下载的图片,我应该如何来写图片的相对路径,来保证读写的正常实现?图片的相对路径会存到哪(试了但是失败了,没产生文件,我不知道该怎么搞)
2.IO流读写文件不能直接从主线程调用,只能创建新的线程,那么我应该怎样创建线程来调用,是方法体内写新线程直接用还是把线程写到另一个方法里来调用下载方法?
3.如何在固定一个时间,删除有些图片?有些图片是下载下来但是不会再用的,有些是一直循环利用的,那么我会把他们分开存放,就是如何清除不会再次利用的图片呢?
4.Android平台下的插件,频道内调用logger.info等方法,控制台不会有任何输出,我想在它下载图片或者有事件请求下载图片的时候在控制台告诉我一声(因为不想让机器人定向一个friend对象老是发消息给我,这个不知道大佬有没有好的解决方案)
以上就是我大概的疑点了,麻烦大佬指教了,谢谢大佬😙 -
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki 唔,我发现还是不行啊大佬,我删掉了重来吧...就从这里开始,我应该怎么构建和发送图片呢?烦请大佬耐心指点一下,不胜感激!!
-
不知道该怎么上传图片用于以后使用
mirai-consle用户,kotlin语言,不知道怎么上传图片然后用于下次使用,手动selectmessage和nextmessage然后获取图片并保存图片ID不行,翻遍了开发文档也没看到合适的方法,求教一下大佬们该怎么做哇