Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
Mirai
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
Mirai
Commits
94c746a0
Commit
94c746a0
authored
Jan 22, 2020
by
Him188
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
f0840c33
67c79168
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
116 additions
and
13 deletions
+116
-13
.gitignore
.gitignore
+2
-1
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/image/ImagePacket.kt
...ai/qqandroid/network/protocol/packet/image/ImagePacket.kt
+107
-0
mirai-plugins/image-sender/src/main/java/net/mamoe/mirai/imageplugin/ImageProvider.kt
...rc/main/java/net/mamoe/mirai/imageplugin/ImageProvider.kt
+7
-12
plugins/image-sender-1.0.0-all.jar
plugins/image-sender-1.0.0-all.jar
+0
-0
No files found.
.gitignore
View file @
94c746a0
...
...
@@ -40,4 +40,5 @@ mirai.iml
local.properties
# Maven publishing credits
keys.properties
\ No newline at end of file
keys.properties
/plugins/
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/image/ImagePacket.kt
0 → 100644
View file @
94c746a0
package
net.mamoe.mirai.qqandroid.network.protocol.packet.image
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.serialization.SerialId
import
kotlinx.serialization.Serializable
import
net.mamoe.mirai.data.Packet
import
net.mamoe.mirai.qqandroid.QQAndroidBot
import
net.mamoe.mirai.qqandroid.network.protocol.packet.PacketFactory
import
net.mamoe.mirai.qqandroid.network.protocol.packet.login.PacketId
import
net.mamoe.mirai.utils.currentTimeSeconds
@UseExperimental
(
ExperimentalUnsignedTypes
::
class
)
internal
object
ImagePacket
:
PacketFactory
<
ImagePacket
.
RequestImgUrlResponse
>()
{
init
{
this
.
_id
=
PacketId
(
commandId
=
0
x0000
,
commandName
=
"LongConn.OffPicDown"
)
}
sealed
class
RequestImgUrlResponse
:
Packet
{
object
Success
:
RequestImgUrlResponse
()
}
fun
createCmd0x325Packet
(
req
:
ImgReq
,
networkType
:
Int
=
5
):
Cmd0x352Packet
{
if
(
req
is
UploadImgReq
)
return
Cmd0x352Packet
(
1
,
req
,
null
,
null
,
networkType
)
if
(
req
is
GetImgUrlReq
)
return
Cmd0x352Packet
(
2
,
null
,
req
,
null
,
networkType
)
error
(
"Unknown ImgReq"
)
}
@Serializable
internal
class
Cmd0x352Packet
(
@SerialId
(
1
)
val
subCommand
:
Int
,
//2是GetImgUrlReq 1是UploadImgReq
@SerialId
(
2
)
val
uploadImgReq
:
UploadImgReq
?
=
null
,
// optional
@SerialId
(
3
)
val
getImgUrlReq
:
GetImgUrlReq
?
=
null
,
// optional
@SerialId
(
4
)
val
deleteImgReq
:
String
?
=
""
,
// optional (没有做也不准备做, 没用)
@SerialId
(
10
)
val
networkType
:
Int
=
5
// 数据网络=5
)
interface
ImgReq
@Serializable
class
UploadImgReq
(
@SerialId
(
1
)
val
srcUni
:
Int
,
@SerialId
(
2
)
val
dstUni
:
Int
,
@SerialId
(
3
)
val
fileId
:
Int
,
@SerialId
(
4
)
val
fileMd5
:
ByteArray
,
@SerialId
(
5
)
val
fileSize
:
Int
,
@SerialId
(
6
)
val
fileName
:
String
,
@SerialId
(
7
)
val
srcTerm
:
Int
,
@SerialId
(
8
)
val
platformType
:
Int
,
@SerialId
(
9
)
val
innerIP
:
Int
=
0
,
@SerialId
(
10
)
val
addressBook
:
Int
=
0
,
//chatType == 1006为1 我觉得发0没问题
@SerialId
(
11
)
val
retry
:
Int
,
@SerialId
(
12
)
val
buType
:
Int
,
@SerialId
(
13
)
val
imgOriginal
:
Int
,
//是否为原图
@SerialId
(
14
)
val
imgWidth
:
Int
,
@SerialId
(
15
)
val
imgHeight
:
Int
,
@SerialId
(
16
)
val
imgType
:
Int
,
@SerialId
(
17
)
val
buildVer
:
String
=
"8.2.0.1296"
,
//版本号
@SerialId
(
18
)
val
fileIndex
:
ByteArray
,
@SerialId
(
19
)
val
fileStoreDays
:
Int
,
@SerialId
(
20
)
val
stepFlag
:
Int
,
@SerialId
(
21
)
val
rejectTryFast
:
Int
,
//bool
@SerialId
(
22
)
val
srvUpload
:
Int
,
@SerialId
(
23
)
val
transferUrl
:
ByteArray
)
:
ImgReq
@Serializable
class
GetImgUrlReq
(
@SerialId
(
1
)
val
srcUni
:
Int
,
@SerialId
(
2
)
val
dstUni
:
Int
,
@SerialId
(
3
)
val
fileResID
:
String
,
//UUID
/**
* UUID例子:
*/
@SerialId
(
4
)
val
urlFlag
:
Int
=
1
,
//5 unknown, 好像没用
@SerialId
(
6
)
val
urlType
:
Int
=
4
,
@SerialId
(
7
)
val
requestTerm
:
Int
=
5
,
//确定
@SerialId
(
8
)
val
requestPlatformType
:
Int
=
9
,
//确定
@SerialId
(
9
)
val
srcFileType
:
Int
=
1
,
//2=ftn,1=picplatform,255
@SerialId
(
10
)
val
innerIP
:
Int
=
0
,
//确定
@SerialId
(
11
)
val
addressBook
:
Int
=
0
,
//chatType == 1006为1 我觉得发0没问题
/**
* chattype
* 1008时为Troop
* 1 时为?
* 9999时为?
* 1036时为?
* 1006时为?
*/
@SerialId
(
12
)
val
buType
:
Int
=
1
,
//确定
@SerialId
(
13
)
val
buildVer
:
String
=
"8.2.0.1296"
,
//版本号
@SerialId
(
14
)
val
timestamp
:
Int
=
currentTimeSeconds
.
toInt
(),
//(pic_up_timestamp)
@SerialId
(
15
)
val
requestTransferType
:
Int
=
1
)
:
ImgReq
override
suspend
fun
ByteReadPacket
.
decode
(
bot
:
QQAndroidBot
):
RequestImgUrlResponse
{
TODO
(
"not implemented"
)
//To change body of created functions use File | Settings | File Templates.
}
}
mirai-plugins/image-sender/src/main/java/net/mamoe/mirai/imageplugin/ImageProvider.kt
View file @
94c746a0
...
...
@@ -14,21 +14,16 @@ class ImageProvider {
val
image
:
Deferred
<
Image
>
by
lazy
{
GlobalScope
.
async
{
//delay((Math.random() * 5000L).toLong())
class
Result
{
var
id
:
String
=
""
}
withTimeoutOrNull
(
5
*
1000
)
{
withContext
(
Dispatchers
.
IO
)
{
val
result
=
JSON
.
parseObject
(
Jsoup
.
connect
(
"http://dev.itxtech.org:10322/v2/randomImg.uue"
).
ignoreContentType
(
true
).
timeout
(
val
result
=
JSON
.
parseArray
(
Jsoup
.
connect
(
"https://yande.re/post.json?limit=1&page=${(Math.random() * 10000).toInt()}"
).
ignoreContentType
(
true
).
timeout
(
10
_0000
).
get
().
body
().
text
(),
Result
::
class
.
java
).
get
().
body
().
text
()
)
Jsoup
.
connect
(
"http://dev.itxtech.org:10322/img.uue?size=large&id=${result.id}"
)
Jsoup
.
connect
(
result
.
getJSONObject
(
0
).
getString
(
"jpeg_url"
))
.
userAgent
(
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; ja-jp) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"
)
.
timeout
(
10
_0000
)
.
ignoreContentType
(
true
)
...
...
@@ -36,7 +31,7 @@ class ImageProvider {
.
execute
()
.
bodyStream
()
}
}
?.
uploadAsImage
(
contact
)
?:
error
(
"Unable to download image"
)
}
?.
uploadAsImage
(
contact
)
?:
error
(
"Unable to download image
|连接这个图站需要你的网络在外网
"
)
}
}
...
...
plugins/image-sender-1.0.0-all.jar
0 → 100644
View file @
94c746a0
File added
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment