1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +08:00

client: fix electron qq url

This commit is contained in:
wdvxdr 2023-02-11 20:14:09 +08:00
parent 841fef387a
commit 481c830f56
11 changed files with 107 additions and 91 deletions

View File

@ -447,7 +447,7 @@ type C346ReqBody struct {
ClientType int32 `protobuf:"varint,102,opt"` ClientType int32 `protobuf:"varint,102,opt"`
FlagSupportMediaplatform uint32 `protobuf:"varint,200,opt"` FlagSupportMediaplatform uint32 `protobuf:"varint,200,opt"`
ApplyCopyToReq *ApplyCopyToReq `protobuf:"bytes,90000,opt"` ApplyCopyToReq *ApplyCopyToReq `protobuf:"bytes,90000,opt"`
//ApplyCleanTrafficReq applyCleanTrafficReq = 90001; empty message // ApplyCleanTrafficReq applyCleanTrafficReq = 90001; empty message
ApplyGetTrafficReq *ApplyGetTrafficReq `protobuf:"bytes,90002,opt"` ApplyGetTrafficReq *ApplyGetTrafficReq `protobuf:"bytes,90002,opt"`
ExtensionReq *ExtensionReq `protobuf:"bytes,99999,opt"` ExtensionReq *ExtensionReq `protobuf:"bytes,99999,opt"`
_ [0]func() _ [0]func()

View File

@ -213,8 +213,8 @@ type GroupMemberInfo struct {
Lev []byte `protobuf:"bytes,13,opt"` Lev []byte `protobuf:"bytes,13,opt"`
Join int64 `protobuf:"varint,14,opt"` Join int64 `protobuf:"varint,14,opt"`
LastSpeak int64 `protobuf:"varint,15,opt"` LastSpeak int64 `protobuf:"varint,15,opt"`
//repeated CustomEntry customEnties = 16; // repeated CustomEntry customEnties = 16;
//repeated GBarInfo gbarConcerned = 17; // repeated GBarInfo gbarConcerned = 17;
GbarTitle []byte `protobuf:"bytes,18,opt"` GbarTitle []byte `protobuf:"bytes,18,opt"`
GbarUrl []byte `protobuf:"bytes,19,opt"` GbarUrl []byte `protobuf:"bytes,19,opt"`
GbarCnt int32 `protobuf:"varint,20,opt"` GbarCnt int32 `protobuf:"varint,20,opt"`
@ -230,8 +230,8 @@ type GroupMemberInfo struct {
ConcernType int32 `protobuf:"varint,30,opt"` ConcernType int32 `protobuf:"varint,30,opt"`
SpecialTitle []byte `protobuf:"bytes,31,opt"` SpecialTitle []byte `protobuf:"bytes,31,opt"`
SpecialTitleExpireTime int32 `protobuf:"varint,32,opt"` SpecialTitleExpireTime int32 `protobuf:"varint,32,opt"`
//FlowersEntry flowerEntry = 33; // FlowersEntry flowerEntry = 33;
//TeamEntry teamEntry = 34; // TeamEntry teamEntry = 34;
PhoneNum []byte `protobuf:"bytes,35,opt"` PhoneNum []byte `protobuf:"bytes,35,opt"`
Job []byte `protobuf:"bytes,36,opt"` Job []byte `protobuf:"bytes,36,opt"`
MedalId int32 `protobuf:"varint,37,opt"` MedalId int32 `protobuf:"varint,37,opt"`

View File

@ -37,13 +37,13 @@ type SendMessageRequest struct {
MsgSeq proto.Option[int32] `protobuf:"varint,4,opt"` MsgSeq proto.Option[int32] `protobuf:"varint,4,opt"`
MsgRand proto.Option[int32] `protobuf:"varint,5,opt"` MsgRand proto.Option[int32] `protobuf:"varint,5,opt"`
SyncCookie []byte `protobuf:"bytes,6,opt"` SyncCookie []byte `protobuf:"bytes,6,opt"`
//MsgComm.AppShareInfo? appShare = 7; // MsgComm.AppShareInfo? appShare = 7;
MsgVia proto.Option[int32] `protobuf:"varint,8,opt"` MsgVia proto.Option[int32] `protobuf:"varint,8,opt"`
DataStatist proto.Option[int32] `protobuf:"varint,9,opt"` DataStatist proto.Option[int32] `protobuf:"varint,9,opt"`
//MultiMsgAssist? multiMsgAssist = 10; // MultiMsgAssist? multiMsgAssist = 10;
//PbInputNotifyInfo? inputNotifyInfo = 11; // PbInputNotifyInfo? inputNotifyInfo = 11;
MsgCtrl *MsgCtrl `protobuf:"bytes,12,opt"` MsgCtrl *MsgCtrl `protobuf:"bytes,12,opt"`
//ImReceipt.ReceiptReq? receiptReq = 13; // ImReceipt.ReceiptReq? receiptReq = 13;
MultiSendSeq proto.Option[int32] `protobuf:"varint,14,opt"` MultiSendSeq proto.Option[int32] `protobuf:"varint,14,opt"`
} }
@ -208,52 +208,52 @@ type Elem struct {
NotOnlineImage *NotOnlineImage `protobuf:"bytes,4,opt"` NotOnlineImage *NotOnlineImage `protobuf:"bytes,4,opt"`
TransElemInfo *TransElem `protobuf:"bytes,5,opt"` TransElemInfo *TransElem `protobuf:"bytes,5,opt"`
MarketFace *MarketFace `protobuf:"bytes,6,opt"` MarketFace *MarketFace `protobuf:"bytes,6,opt"`
//ElemFlags elemFlags = 7; // ElemFlags elemFlags = 7;
CustomFace *CustomFace `protobuf:"bytes,8,opt"` CustomFace *CustomFace `protobuf:"bytes,8,opt"`
ElemFlags2 *ElemFlags2 `protobuf:"bytes,9,opt"` ElemFlags2 *ElemFlags2 `protobuf:"bytes,9,opt"`
//FunFace funFace = 10; // FunFace funFace = 10;
//SecretFileMsg secretFile = 11; // SecretFileMsg secretFile = 11;
RichMsg *RichMsg `protobuf:"bytes,12,opt"` RichMsg *RichMsg `protobuf:"bytes,12,opt"`
GroupFile *GroupFile `protobuf:"bytes,13,opt"` GroupFile *GroupFile `protobuf:"bytes,13,opt"`
//PubGroup pubGroup = 14; // PubGroup pubGroup = 14;
//MarketTrans marketTrans = 15; // MarketTrans marketTrans = 15;
ExtraInfo *ExtraInfo `protobuf:"bytes,16,opt"` ExtraInfo *ExtraInfo `protobuf:"bytes,16,opt"`
//ShakeWindow? shakeWindow = 17; // ShakeWindow? shakeWindow = 17;
//PubAccount? pubAccount = 18; // PubAccount? pubAccount = 18;
VideoFile *VideoFile `protobuf:"bytes,19,opt"` VideoFile *VideoFile `protobuf:"bytes,19,opt"`
//TipsInfo? tipsInfo = 20; // TipsInfo? tipsInfo = 20;
AnonGroupMsg *AnonymousGroupMessage `protobuf:"bytes,21,opt"` AnonGroupMsg *AnonymousGroupMessage `protobuf:"bytes,21,opt"`
//QQLiveOld? qqLiveOld = 22; // QQLiveOld? qqLiveOld = 22;
//LifeOnlineAccount? lifeOnline = 23; // LifeOnlineAccount? lifeOnline = 23;
QQWalletMsg *QQWalletMsg `protobuf:"bytes,24,opt"` QQWalletMsg *QQWalletMsg `protobuf:"bytes,24,opt"`
//CrmElem? crmElem = 25; // CrmElem? crmElem = 25;
//ConferenceTipsInfo? conferenceTipsInfo = 26; // ConferenceTipsInfo? conferenceTipsInfo = 26;
//RedBagInfo? redbagInfo = 27; // RedBagInfo? redbagInfo = 27;
//LowVersionTips? lowVersionTips = 28; // LowVersionTips? lowVersionTips = 28;
//bytes bankcodeCtrlInfo = 29; // bytes bankcodeCtrlInfo = 29;
//NearByMessageType? nearByMsg = 30; // NearByMessageType? nearByMsg = 30;
CustomElem *CustomElem `protobuf:"bytes,31,opt"` CustomElem *CustomElem `protobuf:"bytes,31,opt"`
//LocationInfo? locationInfo = 32; // LocationInfo? locationInfo = 32;
//PubAccInfo? pubAccInfo = 33; // PubAccInfo? pubAccInfo = 33;
//SmallEmoji? smallEmoji = 34; // SmallEmoji? smallEmoji = 34;
//FSJMessageElem? fsjMsgElem = 35; // FSJMessageElem? fsjMsgElem = 35;
//ArkAppElem? arkApp = 36; // ArkAppElem? arkApp = 36;
GeneralFlags *GeneralFlags `protobuf:"bytes,37,opt"` GeneralFlags *GeneralFlags `protobuf:"bytes,37,opt"`
//CustomFace? hcFlashPic = 38; // CustomFace? hcFlashPic = 38;
//DeliverGiftMsg? deliverGiftMsg = 39; // DeliverGiftMsg? deliverGiftMsg = 39;
//BitAppMsg? bitappMsg = 40; // BitAppMsg? bitappMsg = 40;
//OpenQQData? openQqData = 41; // OpenQQData? openQqData = 41;
//ApolloActMsg? apolloMsg = 42; // ApolloActMsg? apolloMsg = 42;
//GroupPubAccountInfo? groupPubAccInfo = 43; // GroupPubAccountInfo? groupPubAccInfo = 43;
//BlessingMessage? blessMsg = 44; // BlessingMessage? blessMsg = 44;
SrcMsg *SourceMsg `protobuf:"bytes,45,opt"` SrcMsg *SourceMsg `protobuf:"bytes,45,opt"`
//LolaMsg? lolaMsg = 46; // LolaMsg? lolaMsg = 46;
//GroupBusinessMsg? groupBusinessMsg = 47; // GroupBusinessMsg? groupBusinessMsg = 47;
//WorkflowNotifyMsg? msgWorkflowNotify = 48; // WorkflowNotifyMsg? msgWorkflowNotify = 48;
//PatsElem? patElem = 49; // PatsElem? patElem = 49;
//GroupPostElem? groupPostElem = 50; // GroupPostElem? groupPostElem = 50;
LightApp *LightAppElem `protobuf:"bytes,51,opt"` LightApp *LightAppElem `protobuf:"bytes,51,opt"`
//EIMInfo? eimInfo = 52; // EIMInfo? eimInfo = 52;
CommonElem *CommonElem `protobuf:"bytes,53,opt"` CommonElem *CommonElem `protobuf:"bytes,53,opt"`
_ [0]func() _ [0]func()
} }
@ -431,32 +431,32 @@ type OnlineImage struct {
} }
type NotOnlineImage struct { type NotOnlineImage struct {
FilePath proto.Option[string] `protobuf:"bytes,1,opt"` FilePath proto.Option[string] `protobuf:"bytes,1,opt"`
FileLen proto.Option[int32] `protobuf:"varint,2,opt"` FileLen proto.Option[int32] `protobuf:"varint,2,opt"`
DownloadPath proto.Option[string] `protobuf:"bytes,3,opt"` DownloadPath proto.Option[string] `protobuf:"bytes,3,opt"`
OldVerSendFile []byte `protobuf:"bytes,4,opt"` OldVerSendFile []byte `protobuf:"bytes,4,opt"`
ImgType proto.Option[int32] `protobuf:"varint,5,opt"` ImgType proto.Option[int32] `protobuf:"varint,5,opt"`
PreviewsImage []byte `protobuf:"bytes,6,opt"` PreviewsImage []byte `protobuf:"bytes,6,opt"`
PicMd5 []byte `protobuf:"bytes,7,opt"` PicMd5 []byte `protobuf:"bytes,7,opt"`
PicHeight proto.Option[int32] `protobuf:"varint,8,opt"` PicHeight proto.Option[int32] `protobuf:"varint,8,opt"`
PicWidth proto.Option[int32] `protobuf:"varint,9,opt"` PicWidth proto.Option[int32] `protobuf:"varint,9,opt"`
ResId proto.Option[string] `protobuf:"bytes,10,opt"` ResId proto.Option[string] `protobuf:"bytes,10,opt"`
Flag []byte `protobuf:"bytes,11,opt"` Flag []byte `protobuf:"bytes,11,opt"`
ThumbUrl proto.Option[string] `protobuf:"bytes,12,opt"` ThumbUrl proto.Option[string] `protobuf:"bytes,12,opt"`
Original proto.Option[int32] `protobuf:"varint,13,opt"` Original proto.Option[int32] `protobuf:"varint,13,opt"`
BigUrl proto.Option[string] `protobuf:"bytes,14,opt"` BigUrl proto.Option[string] `protobuf:"bytes,14,opt"`
OrigUrl proto.Option[string] `protobuf:"bytes,15,opt"` OrigUrl proto.Option[string] `protobuf:"bytes,15,opt"`
BizType proto.Option[int32] `protobuf:"varint,16,opt"` BizType proto.Option[int32] `protobuf:"varint,16,opt"`
Result proto.Option[int32] `protobuf:"varint,17,opt"` Result proto.Option[int32] `protobuf:"varint,17,opt"`
Index proto.Option[int32] `protobuf:"varint,18,opt"` Index proto.Option[int32] `protobuf:"varint,18,opt"`
OpFaceBuf []byte `protobuf:"bytes,19,opt"` OpFaceBuf []byte `protobuf:"bytes,19,opt"`
OldPicMd5 proto.Option[bool] `protobuf:"varint,20,opt"` OldPicMd5 proto.Option[bool] `protobuf:"varint,20,opt"`
ThumbWidth proto.Option[int32] `protobuf:"varint,21,opt"` ThumbWidth proto.Option[int32] `protobuf:"varint,21,opt"`
ThumbHeight proto.Option[int32] `protobuf:"varint,22,opt"` ThumbHeight proto.Option[int32] `protobuf:"varint,22,opt"`
FileId proto.Option[int32] `protobuf:"varint,23,opt"` FileId proto.Option[int32] `protobuf:"varint,23,opt"`
ShowLen proto.Option[int32] `protobuf:"varint,24,opt"` ShowLen proto.Option[int32] `protobuf:"varint,24,opt"`
DownloadLen proto.Option[int32] `protobuf:"varint,25,opt"` DownloadLen proto.Option[int32] `protobuf:"varint,25,opt"`
PbReserve []byte `protobuf:"bytes,29,opt"` PbReserve *NotOnlineImage_PbReserve `protobuf:"bytes,29,opt"`
} }
type NotOnlineFile struct { type NotOnlineFile struct {
@ -886,3 +886,9 @@ type ElemFlags2_Inst struct {
InstId proto.Option[uint32] `protobuf:"varint,2,opt"` InstId proto.Option[uint32] `protobuf:"varint,2,opt"`
_ [0]func() _ [0]func()
} }
// TODO: find this message
type NotOnlineImage_PbReserve struct {
Url proto.Option[string] `protobuf:"bytes,30,opt"`
_ [0]func()
}

View File

@ -455,7 +455,12 @@ message NotOnlineImage {
optional int32 fileId = 23; optional int32 fileId = 23;
optional int32 showLen = 24; optional int32 showLen = 24;
optional int32 downloadLen = 25; optional int32 downloadLen = 25;
optional bytes pbReserve = 29;
// TODO: find this message
message PbReserve {
optional string url = 30;
}
optional PbReserve pbReserve = 29;
} }
message NotOnlineFile { message NotOnlineFile {

View File

@ -73,7 +73,7 @@ type FeedsRspBody struct {
RetCode proto.Option[int32] `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
//repeated C8639group_file_common.FeedsResult feedsResultList = 4; // repeated C8639group_file_common.FeedsResult feedsResultList = 4;
SvrbusyWaitTime proto.Option[uint32] `protobuf:"varint,5,opt"` SvrbusyWaitTime proto.Option[uint32] `protobuf:"varint,5,opt"`
_ [0]func() _ [0]func()
} }

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-golite. DO NOT EDIT. // Code generated by protoc-gen-golite. DO NOT EDIT.
// source: pb/oidb/oidb0xd79.proto // source: pb/oidb/oidb0xD79.proto
package oidb package oidb

View File

@ -18,7 +18,7 @@ type EACRspBody struct {
Wording proto.Option[string] `protobuf:"bytes,1,opt"` Wording proto.Option[string] `protobuf:"bytes,1,opt"`
DigestUin proto.Option[uint64] `protobuf:"varint,2,opt"` DigestUin proto.Option[uint64] `protobuf:"varint,2,opt"`
DigestTime proto.Option[uint32] `protobuf:"varint,3,opt"` DigestTime proto.Option[uint32] `protobuf:"varint,3,opt"`
//optional DigestMsg msg = 4; // optional DigestMsg msg = 4;
ErrorCode proto.Option[uint32] `protobuf:"varint,10,opt"` ErrorCode proto.Option[uint32] `protobuf:"varint,10,opt"`
_ [0]func() _ [0]func()
} }

View File

@ -67,7 +67,7 @@ type AccountSearchRecord struct {
ArticleCreateTime proto.Option[string] `protobuf:"bytes,25,opt"` ArticleCreateTime proto.Option[string] `protobuf:"bytes,25,opt"`
ArticleAuthor proto.Option[string] `protobuf:"bytes,26,opt"` ArticleAuthor proto.Option[string] `protobuf:"bytes,26,opt"`
AccountId proto.Option[uint64] `protobuf:"varint,27,opt"` AccountId proto.Option[uint64] `protobuf:"varint,27,opt"`
//repeated Label groupLabels = 30; // repeated Label groupLabels = 30;
VideoAccount proto.Option[uint32] `protobuf:"varint,31,opt"` VideoAccount proto.Option[uint32] `protobuf:"varint,31,opt"`
VideoArticle proto.Option[uint32] `protobuf:"varint,32,opt"` VideoArticle proto.Option[uint32] `protobuf:"varint,32,opt"`
UinPrivilege proto.Option[int32] `protobuf:"varint,33,opt"` UinPrivilege proto.Option[int32] `protobuf:"varint,33,opt"`
@ -87,7 +87,7 @@ type AccountSearch struct {
UserLocation *Location `protobuf:"bytes,10,opt"` UserLocation *Location `protobuf:"bytes,10,opt"`
LocationGroup proto.Option[bool] `protobuf:"varint,11,opt"` LocationGroup proto.Option[bool] `protobuf:"varint,11,opt"`
Filtertype proto.Option[int32] `protobuf:"varint,12,opt"` Filtertype proto.Option[int32] `protobuf:"varint,12,opt"`
//repeated C33304record recommendList = 13; // repeated C33304record recommendList = 13;
HotwordRecord *Hotwordrecord `protobuf:"bytes,14,opt"` HotwordRecord *Hotwordrecord `protobuf:"bytes,14,opt"`
ArticleMoreUrl proto.Option[string] `protobuf:"bytes,15,opt"` ArticleMoreUrl proto.Option[string] `protobuf:"bytes,15,opt"`
ResultItems []*ResultItem `protobuf:"bytes,16,rep"` ResultItems []*ResultItem `protobuf:"bytes,16,rep"`

View File

@ -4,7 +4,7 @@
package qweb package qweb
type GetAppInfoByIdReq struct { type GetAppInfoByIdReq struct {
//CommonExt ExtInfo = 1; // CommonExt ExtInfo = 1;
AppId string `protobuf:"bytes,2,opt"` AppId string `protobuf:"bytes,2,opt"`
NeedVersionInfo int32 `protobuf:"varint,3,opt"` NeedVersionInfo int32 `protobuf:"varint,3,opt"`
_ [0]func() _ [0]func()

View File

@ -153,7 +153,6 @@ func (e *FriendImageElement) Pack() []*msg.Elem {
PicMd5: e.Md5, PicMd5: e.Md5,
DownloadPath: proto.Some(e.ImageId), DownloadPath: proto.Some(e.ImageId),
Original: proto.Int32(1), Original: proto.Int32(1),
PbReserve: []byte{0x78, 0x02},
} }
if e.Flash { if e.Flash {

View File

@ -514,25 +514,31 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
return []IMessageElement{face} return []IMessageElement{face}
} }
if elem.NotOnlineImage != nil { if elem.NotOnlineImage != nil {
var img string img := elem.NotOnlineImage
if elem.NotOnlineImage.OrigUrl.Unwrap() != "" {
img = "https://c2cpicdw.qpic.cn" + elem.NotOnlineImage.OrigUrl.Unwrap() var url string
} else { switch {
img = "https://c2cpicdw.qpic.cn/offpic_new/0" case img.PbReserve != nil && img.PbReserve.Url.Unwrap() != "":
downloadPath := elem.NotOnlineImage.ResId.Unwrap() url = fmt.Sprintf("https://c2cpicdw.qpic.cn%s&spec=0&rf=naio", img.PbReserve.Url.Unwrap())
if elem.NotOnlineImage.DownloadPath.Unwrap() != "" { case img.OrigUrl.Unwrap() != "":
downloadPath = elem.NotOnlineImage.DownloadPath.Unwrap() url = "https://c2cpicdw.qpic.cn" + img.OrigUrl.Unwrap()
default:
url = "https://c2cpicdw.qpic.cn/offpic_new/0"
downloadPath := img.ResId.Unwrap()
if img.DownloadPath.Unwrap() != "" {
downloadPath = img.DownloadPath.Unwrap()
} }
if !strings.HasPrefix(downloadPath, "/") { if !strings.HasPrefix(downloadPath, "/") {
img += "/" url += "/"
} }
img += downloadPath + "/0?term=3" url += downloadPath + "/0?term=3"
} }
res = append(res, &FriendImageElement{ res = append(res, &FriendImageElement{
ImageId: elem.NotOnlineImage.FilePath.Unwrap(), ImageId: img.FilePath.Unwrap(),
Size: elem.NotOnlineImage.FileLen.Unwrap(), Size: img.FileLen.Unwrap(),
Url: img, Url: url,
Md5: elem.NotOnlineImage.PicMd5, Md5: img.PicMd5,
}) })
} }
if elem.QQWalletMsg != nil && elem.QQWalletMsg.AioBody != nil { if elem.QQWalletMsg != nil && elem.QQWalletMsg.AioBody != nil {