mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
: 友人およびグループのメンバーシップ要求の処理
This commit is contained in:
parent
040b132836
commit
3e27c64e84
@ -0,0 +1,186 @@
|
||||
package com.tencent.mobileqq.relation.api;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.widget.TextView;
|
||||
import com.tencent.common.app.AppInterface;
|
||||
import com.tencent.mobileqq.data.MessageRecord;
|
||||
import com.tencent.mobileqq.data.PhoneContact;
|
||||
import com.tencent.mobileqq.qroute.QRouteApi;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import tencent.mobileim.structmsg.*;
|
||||
|
||||
public interface IAddFriendTempApi extends QRouteApi {
|
||||
public static final int ENTER_FROM_CONTACT_TAB = 1;
|
||||
|
||||
public static final int ENTER_FROM_DEFAULT = 0;
|
||||
|
||||
public static final int ENTER_FROM_MESSAGE_TAB = 2;
|
||||
|
||||
public static final int ENTER_FROM_NEW_FRIEND = 3;
|
||||
|
||||
public static final int ENTER_FROM_NEW_FRIEND_MORE = 4;
|
||||
|
||||
// void addBatchQIMFriends(List<QIMNotifyAddFriend> paramList, AppInterface paramAppInterface);
|
||||
|
||||
void addFriendToFriendList(AppInterface paramAppInterface, String paramString1, int paramInt1, int paramInt2, String paramString2, boolean paramBoolean1, boolean paramBoolean2, long paramLong);
|
||||
|
||||
void addListener(Object paramObject, AppInterface paramAppInterface);
|
||||
|
||||
void cancelMayKnowRecommend(String paramString, AppInterface paramAppInterface);
|
||||
|
||||
// void changeStructMsgActions(structmsg.StructMsg paramStructMsg, int paramInt1, String paramString, int paramInt2);
|
||||
|
||||
// boolean changeStructMsgActionsWhenFail(structmsg.StructMsg paramStructMsg, int paramInt, String paramString1, String paramString2);
|
||||
|
||||
void checkReadContactPermission(Runnable paramRunnable, AppInterface paramAppInterface);
|
||||
|
||||
void checkUpdate(AppInterface paramAppInterface, String paramString);
|
||||
|
||||
void clearAllSystemMsg(AppInterface paramAppInterface);
|
||||
|
||||
void clickQIMSource(Context paramContext, MessageRecord paramMessageRecord, AppInterface paramAppInterface);
|
||||
|
||||
Intent composeReturnIntent(Class<?> paramClass, String paramString, Activity paramActivity);
|
||||
|
||||
void deleteAllSuspiciousMsg(AppInterface paramAppInterface);
|
||||
|
||||
// void deleteQIMNotifyAddFriendData(QIMNotifyAddFriend paramQIMNotifyAddFriend, AppInterface paramAppInterface);
|
||||
|
||||
boolean enableCheckPermission();
|
||||
|
||||
void followUser(String paramString, boolean paramBoolean);
|
||||
|
||||
Intent getAddRequestIntent(Context paramContext);
|
||||
|
||||
Intent getBindNumberIntent(Context paramContext);
|
||||
|
||||
Intent getChatActivityIntent(Context paramContext);
|
||||
|
||||
// ArrayList<MayKnowRecommend> getConnectionsPersonLocal(int paramInt, AppInterface paramAppInterface);
|
||||
|
||||
void getConnectionsPersonRemoteNextPage(int paramInt, AppInterface paramAppInterface);
|
||||
|
||||
// ArrayList<a> getConnectionsTabInfoListLocal(AppInterface paramAppInterface);
|
||||
|
||||
void getDiscussInfo(long paramLong, AppInterface paramAppInterface);
|
||||
|
||||
String getDiscussionNameCanNull(AppInterface paramAppInterface, String paramString);
|
||||
|
||||
int getForwardSelectionRequest();
|
||||
|
||||
Intent getFriendProfileMoreInfoIntent(Context paramContext);
|
||||
|
||||
int getMayKnowLoadConnectionBizTypeFirstLoad();
|
||||
|
||||
int getMayKnowPersonNum(AppInterface paramAppInterface);
|
||||
|
||||
boolean getMayKnowRecommendRemoteFromNewFrd(AppInterface paramAppInterface);
|
||||
|
||||
String getQIMNewFriendSource(AppInterface paramAppInterface);
|
||||
|
||||
// ArrayList<s> getQIMNotifyAddFriendsMsg(boolean paramBoolean, AppInterface paramAppInterface);
|
||||
|
||||
String getQQInfoFromQQUin(long paramLong1, long paramLong2, AppInterface paramAppInterface);
|
||||
|
||||
HashMap<String, String> getQidianExternal(HashMap<String, Object> paramHashMap);
|
||||
|
||||
// String getRecommendLabelString(List<MayKnowRecommend.MayKnowRecommendLabel> paramList);
|
||||
|
||||
int getRequestForSetting();
|
||||
|
||||
int getSizeSmall();
|
||||
|
||||
void getSuspiciousFriendsUnreadNum(AppInterface paramAppInterface);
|
||||
|
||||
int getTypeSetConnectionsSwitch();
|
||||
|
||||
Object getValue(String paramString1, String paramString2, int paramInt1, int paramInt2);
|
||||
|
||||
void gotoFriendSettingBrowser(Context paramContext);
|
||||
|
||||
boolean hasQidianExternal(HashMap<String, Object> paramHashMap);
|
||||
|
||||
boolean hasQimSource(AppInterface paramAppInterface);
|
||||
|
||||
void insertCommonHobbyIfNeeded(AppInterface paramAppInterface, String paramString);
|
||||
|
||||
boolean isMayKnowConnectionsUserClosed(AppInterface paramAppInterface);
|
||||
|
||||
boolean isNewFrdMiniCardSwitchOn(AppInterface paramAppInterface);
|
||||
|
||||
boolean isPhoneContactEnabled(AppInterface paramAppInterface);
|
||||
|
||||
boolean isQidianMaster(AppInterface paramAppInterface, String paramString);
|
||||
|
||||
boolean isStudyMode(AppInterface paramAppInterface);
|
||||
|
||||
boolean isSuspiciousSwitchOpen();
|
||||
|
||||
// void jumpToMoveGroup(Activity paramActivity, QBaseFragment paramQBaseFragment, String paramString, int paramInt1, int paramInt2);
|
||||
|
||||
void jumpToNewFriendMoreSysMsgSuspiciousFragment(Context paramContext);
|
||||
|
||||
void jumpToNewFriendMoreSysMsgSuspiciousFragment(Context paramContext, Intent paramIntent, int paramInt);
|
||||
|
||||
void jumpToQidianProfile(String paramString, Activity paramActivity);
|
||||
|
||||
void jumpToSplash(Activity paramActivity);
|
||||
|
||||
void launchPluginBroadcastWhenToggleSwitch(String paramString, AppInterface paramAppInterface, boolean paramBoolean);
|
||||
|
||||
void loadConnectionsTabData(AppInterface paramAppInterface, int paramInt1, int paramInt2);
|
||||
|
||||
void markQIMNotifyAddFriendsRead(AppInterface paramAppInterface);
|
||||
|
||||
// void openSecCheckWebForFragment(AppInterface paramAppInterface, Context paramContext, QBaseFragment paramQBaseFragment, int paramInt, String paramString1, String paramString2);
|
||||
|
||||
// void recordStartExpose(MayKnowRecommend paramMayKnowRecommend, int paramInt1, int paramInt2, int paramInt3, AppInterface paramAppInterface);
|
||||
|
||||
// void recordStopExpose(MayKnowRecommend paramMayKnowRecommend, int paramInt1, int paramInt2, int paramInt3, AppInterface paramAppInterface);
|
||||
|
||||
void removeListener(Object paramObject, AppInterface paramAppInterface);
|
||||
|
||||
void reportExtendFriend(int paramInt, String paramString, Intent paramIntent);
|
||||
|
||||
void reportRecommend(AppInterface paramAppInterface, String paramString1, String paramString2, int paramInt1, int paramInt2, String paramString3, int paramInt3, byte[] paramArrayOfbyte, String paramString4, int paramInt4);
|
||||
|
||||
void reportRecommendExpose(AppInterface paramAppInterface, int paramInt1, ArrayList<String> paramArrayList1, ArrayList<String> paramArrayList2, ArrayList<Integer> paramArrayList, ArrayList<byte[]> paramArrayList3, int paramInt2);
|
||||
|
||||
void sendAddFriendNoticeForBaby(AppInterface paramAppInterface, Intent paramIntent);
|
||||
|
||||
// void sendDelSingleSystemMsg(structmsg.StructMsg paramStructMsg, String paramString, int paramInt, long paramLong, AppInterface paramAppInterface);
|
||||
|
||||
void sendFriendSystemMsgAction(int msg_type, long msg_seq, long req_uin, int sub_type, int src_id, int sub_src_id, int group_msg_type, structmsg$SystemMsgActionInfo action_info, int system_msg_action_type, structmsg$StructMsg paramStructMsg, boolean isUncommonlyUsedFrd, AppInterface paramAppInterface);
|
||||
|
||||
void sendFriendSystemMsgReadedReport(AppInterface paramAppInterface);
|
||||
|
||||
void sendGetNextFriendSystemMsg(AppInterface paramAppInterface);
|
||||
|
||||
void sendPokeMsg(AppInterface paramAppInterface, Context paramContext, String paramString);
|
||||
|
||||
void setConnectionsSwitch(boolean paramBoolean, AppInterface paramAppInterface);
|
||||
|
||||
boolean shouldShowMayKnowInNewFriend(AppInterface paramAppInterface);
|
||||
|
||||
// void startAddContactsPage(Context paramContext, int paramInt1, int paramInt2, LaunchMode paramLaunchMode, @Nullable Bundle paramBundle);
|
||||
|
||||
void startAddContactsPageForResult(Activity paramActivity, int paramInt1, int paramInt2, int paramInt3);
|
||||
|
||||
void startAddRequestPage(Context paramContext, Intent paramIntent);
|
||||
|
||||
void startAddRequestPageForResult(Activity paramActivity, Intent paramIntent, int paramInt);
|
||||
|
||||
void startAddRequestSuspiciousPage(Context paramContext, Intent paramIntent);
|
||||
|
||||
void startContactBindFromOther(AppInterface paramAppInterface, int paramInt1, int paramInt2, Intent paramIntent);
|
||||
|
||||
void startContactBindFromOther(AppInterface paramAppInterface, int paramInt, ArrayList<PhoneContact> paramArrayList);
|
||||
|
||||
void startRemarkAfterAgree(Activity paramActivity, int paramInt, String paramString, long paramLong, Bundle paramBundle);
|
||||
|
||||
void updateCustomNoteTxt(TextView paramTextView, int paramInt1, int paramInt2);
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
|
||||
public final class structmsg$AddFrdSNInfo extends MessageMicro<structmsg$AddFrdSNInfo> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBUInt32Field uint32_not_see_dynamic = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_set_sn = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16 }, new String[] { "uint32_not_see_dynamic", "uint32_set_sn" }, new Object[] { integer, integer }, structmsg$AddFrdSNInfo.class);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,54 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
|
||||
public final class structmsg$FlagInfo extends MessageMicro<structmsg$FlagInfo> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBUInt32Field FrdMsg_Discuss2ManyChat = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field FrdMsg_GetBusiCard = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field FrdMsg_NeedWaitingMsg = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field FrdMsg_uint32_need_all_unread_msg = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_GetC2cInviteJoinGroup = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_GetDisbandedByAdmin = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_GetOfficialAccount = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_GetPayInGroup = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_HiddenGrp = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_Kick_Admin = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_NeedAutoAdminWording = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_NotAllowJoinGrp_InviteNotFrd = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_WordingDown = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_get_quit_pay_group_msg_flag = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_get_transfer_group_msg_flag = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_mask_invite_auto_join = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field GrpMsg_support_invite_auto_join = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] {
|
||||
8, 16, 24, 32, 40, 48, 56, 64, 72, 80,
|
||||
88, 96, 104, 112, 120, 128, 136 }, new String[] {
|
||||
"GrpMsg_Kick_Admin", "GrpMsg_HiddenGrp", "GrpMsg_WordingDown", "FrdMsg_GetBusiCard", "GrpMsg_GetOfficialAccount", "GrpMsg_GetPayInGroup", "FrdMsg_Discuss2ManyChat", "GrpMsg_NotAllowJoinGrp_InviteNotFrd", "FrdMsg_NeedWaitingMsg", "FrdMsg_uint32_need_all_unread_msg",
|
||||
"GrpMsg_NeedAutoAdminWording", "GrpMsg_get_transfer_group_msg_flag", "GrpMsg_get_quit_pay_group_msg_flag", "GrpMsg_support_invite_auto_join", "GrpMsg_mask_invite_auto_join", "GrpMsg_GetDisbandedByAdmin", "GrpMsg_GetC2cInviteJoinGroup" }, new Object[] {
|
||||
integer, integer, integer, integer, integer, integer, integer, integer, integer, integer,
|
||||
integer, integer, integer, integer, integer, integer, integer }, structmsg$FlagInfo.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
|
||||
public final class structmsg$FriendInfo extends MessageMicro<structmsg$FriendInfo> {
|
||||
static final FieldMap __fieldMap__ = MessageMicro.initFieldMap(new int[] { 10, 18 }, new String[] { "msg_joint_friend", "msg_blacklist" }, new Object[] { "", "" }, structmsg$FriendInfo.class);
|
||||
|
||||
public final PBStringField msg_blacklist = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_joint_friend = PBField.initString("");
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
|
||||
public final class structmsg$GroupInfo extends MessageMicro<structmsg$GroupInfo> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBUInt32Field display_action = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field group_auth_type = PBField.initUInt32(0);
|
||||
|
||||
public final PBStringField msg_alert = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_detail_alert = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_other_admin_done = PBField.initString("");
|
||||
|
||||
public final PBUInt32Field uint32_app_privilege_flag = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16, 26, 34, 42, 48 }, new String[] { "group_auth_type", "display_action", "msg_alert", "msg_detail_alert", "msg_other_admin_done", "uint32_app_privilege_flag" }, new Object[] { integer, integer, "", "", "", integer }, structmsg$GroupInfo.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$MsgInviteExt extends MessageMicro<structmsg$MsgInviteExt> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBUInt32Field uint32_src_type = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_wait_state = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt64Field uint64_src_code = PBField.initUInt64(0L);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16, 24 }, new String[] { "uint32_src_type", "uint64_src_code", "uint32_wait_state" }, new Object[] { integer, Long.valueOf(0L), integer }, structmsg$MsgInviteExt.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$MsgPayGroupExt extends MessageMicro<structmsg$MsgPayGroupExt> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBUInt64Field uint64_join_grp_time = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field uint64_quit_grp_time = PBField.initUInt64(0L);
|
||||
|
||||
static {
|
||||
Long long_ = Long.valueOf(0L);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16 }, new String[] { "uint64_join_grp_time", "uint64_quit_grp_time" }, new Object[] { long_, long_ }, structmsg$MsgPayGroupExt.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$ReqNextSystemMsg extends MessageMicro<structmsg$ReqNextSystemMsg> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBEnumField checktype = PBField.initEnum(1);
|
||||
|
||||
public structmsg$FlagInfo flag = new structmsg$FlagInfo();
|
||||
|
||||
public final PBUInt64Field following_friend_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field following_group_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field friend_msg_type_flag = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt32Field language = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field msg_num = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_need_uid = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_req_msg_type = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field version = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
Long long_ = Long.valueOf(0L);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16, 24, 32, 42, 48, 56, 64, 72, 128 }, new String[] { "msg_num", "following_friend_seq", "following_group_seq", "checktype", "flag", "language", "version", "friend_msg_type_flag", "uint32_req_msg_type", "uint32_need_uid" }, new Object[] { integer, long_, long_, Integer.valueOf(1), null, integer, integer, long_, integer, integer }, structmsg$ReqNextSystemMsg.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$ReqSystemMsgAction extends MessageMicro<structmsg$ReqSystemMsgAction> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public structmsg$SystemMsgActionInfo action_info = new structmsg$SystemMsgActionInfo();
|
||||
|
||||
public final PBUInt32Field group_msg_type = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field language = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt64Field msg_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBEnumField msg_type = PBField.initEnum(1);
|
||||
|
||||
public final PBUInt64Field req_uin = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt32Field src_id = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field sub_src_id = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field sub_type = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
Long long_ = Long.valueOf(0L);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16, 24, 32, 40, 48, 56, 66, 72 }, new String[] { "msg_type", "msg_seq", "req_uin", "sub_type", "src_id", "sub_src_id", "group_msg_type", "action_info", "language" }, new Object[] { Integer.valueOf(1), long_, long_, integer, integer, integer, integer, null, integer }, structmsg$ReqSystemMsgAction.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBBoolField;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$ReqSystemMsgNew extends MessageMicro<structmsg$ReqSystemMsgNew> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBEnumField checktype = PBField.initEnum(1);
|
||||
|
||||
public structmsg$FlagInfo flag = new structmsg$FlagInfo();
|
||||
|
||||
public final PBUInt64Field friend_msg_type_flag = PBField.initUInt64(0L);
|
||||
|
||||
public final PBBoolField is_get_frd_ribbon = PBField.initBool(true);
|
||||
|
||||
public final PBBoolField is_get_grp_ribbon = PBField.initBool(true);
|
||||
|
||||
public final PBUInt32Field language = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt64Field latest_friend_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field latest_group_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt32Field msg_num = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_need_uid = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_req_msg_type = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field version = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
Long long_ = Long.valueOf(0L);
|
||||
Boolean bool = Boolean.TRUE;
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] {
|
||||
8, 16, 24, 32, 40, 50, 56, 64, 72, 80,
|
||||
88, 128 }, new String[] {
|
||||
"msg_num", "latest_friend_seq", "latest_group_seq", "version", "checktype", "flag", "language", "is_get_frd_ribbon", "is_get_grp_ribbon", "friend_msg_type_flag",
|
||||
"uint32_req_msg_type", "uint32_need_uid" }, new Object[] {
|
||||
integer, long_, long_, integer, Integer.valueOf(1), null, integer, bool, bool, long_,
|
||||
integer, integer }, structmsg$ReqSystemMsgNew.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$ReqSystemMsgRead extends MessageMicro<structmsg$ReqSystemMsgRead> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBEnumField checktype = PBField.initEnum(1);
|
||||
|
||||
public final PBUInt64Field latest_friend_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field latest_group_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt32Field type = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_req_msg_type = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Long long_ = Long.valueOf(0L);
|
||||
Integer integer = Integer.valueOf(0);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16, 24, 32, 40 }, new String[] { "latest_friend_seq", "latest_group_seq", "type", "checktype", "uint32_req_msg_type" }, new Object[] { long_, long_, integer, Integer.valueOf(1), integer }, structmsg$ReqSystemMsgRead.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
|
||||
public final class structmsg$RspHead extends MessageMicro<structmsg$RspHead> {
|
||||
static final FieldMap __fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 18 }, new String[] { "result", "msg_fail" }, new Object[] { Integer.valueOf(0), "" }, structmsg$RspHead.class);
|
||||
|
||||
public final PBStringField msg_fail = PBField.initString("");
|
||||
|
||||
public final PBInt32Field result = PBField.initInt32(0);
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.ByteStringMicro;
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBBytesField;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBRepeatMessageField;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$RspNextSystemMsg extends MessageMicro<structmsg$RspNextSystemMsg> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBStringField bytes_game_nick = PBField.initString("");
|
||||
|
||||
public final PBBytesField bytes_undecid_for_qim = PBField.initBytes(ByteStringMicro.EMPTY);
|
||||
|
||||
public final PBEnumField checktype = PBField.initEnum(1);
|
||||
|
||||
public final PBUInt64Field following_friend_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field following_group_seq = PBField.initUInt64(0L);
|
||||
|
||||
public structmsg$RspHead head = new structmsg$RspHead();
|
||||
|
||||
public final PBRepeatMessageField<structmsg$StructMsg> msgs = PBField.initRepeatMessage(structmsg$StructMsg.class);
|
||||
|
||||
public final PBUInt32Field uint32_un_read_count3 = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Long long_ = Long.valueOf(0L);
|
||||
ByteStringMicro byteStringMicro = ByteStringMicro.EMPTY;
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 10, 18, 24, 32, 40, 802, 810, 816 }, new String[] { "head", "msgs", "following_friend_seq", "following_group_seq", "checktype", "bytes_game_nick", "bytes_undecid_for_qim", "uint32_un_read_count3" }, new Object[] { null, null, long_, long_, Integer.valueOf(1), "", byteStringMicro, Integer.valueOf(0) }, structmsg$RspNextSystemMsg.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
|
||||
public final class structmsg$RspSystemMsgAction extends MessageMicro<structmsg$RspSystemMsgAction> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public structmsg$RspHead head = new structmsg$RspHead();
|
||||
|
||||
public final PBStringField msg_detail = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_invalid_decided = PBField.initString("");
|
||||
|
||||
public final PBUInt32Field remark_result = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field type = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 10, 18, 24, 42, 48 }, new String[] { "head", "msg_detail", "type", "msg_invalid_decided", "remark_result" }, new Object[] { null, "", integer, "", integer }, structmsg$RspSystemMsgAction.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.ByteStringMicro;
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBBytesField;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBRepeatMessageField;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$RspSystemMsgNew extends MessageMicro<structmsg$RspSystemMsgNew> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBStringField bytes_game_nick = PBField.initString("");
|
||||
|
||||
public final PBBytesField bytes_undecid_for_qim = PBField.initBytes(ByteStringMicro.EMPTY);
|
||||
|
||||
public final PBEnumField checktype = PBField.initEnum(1);
|
||||
|
||||
public final PBUInt64Field following_friend_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field following_group_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBRepeatMessageField<structmsg$StructMsg> friendmsgs = PBField.initRepeatMessage(structmsg$StructMsg.class);
|
||||
|
||||
public final PBRepeatMessageField<structmsg$StructMsg> groupmsgs = PBField.initRepeatMessage(structmsg$StructMsg.class);
|
||||
|
||||
public final PBStringField grp_msg_display = PBField.initString("");
|
||||
|
||||
public structmsg$RspHead head = new structmsg$RspHead();
|
||||
|
||||
public final PBUInt64Field latest_friend_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field latest_group_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBStringField msg_display = PBField.initString("");
|
||||
|
||||
public structmsg$StructMsg msg_ribbon_friend = new structmsg$StructMsg();
|
||||
|
||||
public structmsg$StructMsg msg_ribbon_group = new structmsg$StructMsg();
|
||||
|
||||
public final PBUInt32Field uint32_has_suspicious_flag = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_over = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field uint32_un_read_count3 = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field unread_friend_count = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field unread_group_count = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
Long long_ = Long.valueOf(0L);
|
||||
ByteStringMicro byteStringMicro = ByteStringMicro.EMPTY;
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] {
|
||||
10, 16, 24, 32, 40, 48, 56, 74, 82, 90,
|
||||
98, 106, 114, 120, 160, 802, 810, 816, 824 }, new String[] {
|
||||
"head", "unread_friend_count", "unread_group_count", "latest_friend_seq", "latest_group_seq", "following_friend_seq", "following_group_seq", "friendmsgs", "groupmsgs", "msg_ribbon_friend",
|
||||
"msg_ribbon_group", "msg_display", "grp_msg_display", "uint32_over", "checktype", "bytes_game_nick", "bytes_undecid_for_qim", "uint32_un_read_count3", "uint32_has_suspicious_flag" }, new Object[] {
|
||||
null, integer, integer, long_, long_, long_, long_, null, null, null,
|
||||
null, "", "", integer, Integer.valueOf(1), "", byteStringMicro, integer, integer }, structmsg$RspSystemMsgNew.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
|
||||
public final class structmsg$RspSystemMsgRead extends MessageMicro<structmsg$RspSystemMsgRead> {
|
||||
static final FieldMap __fieldMap__ = MessageMicro.initFieldMap(new int[] { 10, 16, 24 }, new String[] { "head", "type", "checktype" }, new Object[] { null, Integer.valueOf(0), Integer.valueOf(1) }, structmsg$RspSystemMsgRead.class);
|
||||
|
||||
public final PBEnumField checktype = PBField.initEnum(1);
|
||||
|
||||
public structmsg$RspHead head = new structmsg$RspHead();
|
||||
|
||||
public final PBUInt32Field type = PBField.initUInt32(0);
|
||||
}
|
||||
|
@ -0,0 +1,31 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$StructMsg extends MessageMicro<structmsg$StructMsg> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public structmsg$SystemMsg msg = new structmsg$SystemMsg();
|
||||
|
||||
public final PBUInt64Field msg_seq = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field msg_time = PBField.initUInt64(0L);
|
||||
|
||||
public final PBEnumField msg_type = PBField.initEnum(1);
|
||||
|
||||
public final PBUInt64Field req_uin = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt32Field uint32_unread_flag = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field version = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
Long long_ = Long.valueOf(0L);
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16, 24, 32, 40, 48, 402 }, new String[] { "version", "msg_type", "msg_seq", "msg_time", "req_uin", "uint32_unread_flag", "msg" }, new Object[] { integer, Integer.valueOf(1), long_, long_, long_, integer, null }, structmsg$StructMsg.class);
|
||||
}
|
||||
}
|
@ -0,0 +1,186 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.ByteStringMicro;
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBBytesField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBRepeatMessageField;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$SystemMsg extends MessageMicro<structmsg$SystemMsg> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public final PBUInt64Field action_uin = PBField.initUInt64(0L);
|
||||
|
||||
public final PBStringField action_uin_nick;
|
||||
|
||||
public final PBBytesField action_uin_qq_nick;
|
||||
|
||||
public final PBBytesField action_uin_remark;
|
||||
|
||||
public final PBRepeatMessageField<structmsg$SystemMsgAction> actions = PBField.initRepeatMessage(structmsg$SystemMsgAction.class);
|
||||
|
||||
public final PBUInt64Field actor_uin = PBField.initUInt64(0L);
|
||||
|
||||
public final PBStringField actor_uin_nick;
|
||||
|
||||
public final PBBytesField bytes_addtion;
|
||||
|
||||
public final PBBytesField bytes_game_msg;
|
||||
|
||||
public final PBBytesField bytes_game_nick;
|
||||
|
||||
public final PBBytesField bytes_name_more;
|
||||
|
||||
public final PBBytesField bytes_source_desc;
|
||||
|
||||
public final PBBytesField bytes_transparent_group_notify;
|
||||
|
||||
public final PBBytesField bytes_warning_tips;
|
||||
|
||||
public final PBUInt32Field card_switch;
|
||||
|
||||
public final PBUInt64Field clone_uin = PBField.initUInt64(0L);
|
||||
|
||||
public final PBStringField clone_uin_nick;
|
||||
|
||||
public final PBBytesField eim_group_id_name;
|
||||
|
||||
public structmsg$FriendInfo friend_info = new structmsg$FriendInfo();
|
||||
|
||||
public final PBUInt64Field group_code = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt32Field group_ext_flag;
|
||||
|
||||
public structmsg$GroupInfo group_info = new structmsg$GroupInfo();
|
||||
|
||||
public final PBUInt32Field group_inviter_role = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field group_msg_type = PBField.initUInt32(0);
|
||||
|
||||
public final PBStringField group_name;
|
||||
|
||||
public final PBStringField msg_actor_describe = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_additional = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_additional_list = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_decided = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_describe = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_detail;
|
||||
|
||||
public structmsg$MsgInviteExt msg_invite_extinfo = new structmsg$MsgInviteExt();
|
||||
|
||||
public structmsg$MsgPayGroupExt msg_pay_group_extinfo = new structmsg$MsgPayGroupExt();
|
||||
|
||||
public final PBStringField msg_qna;
|
||||
|
||||
public final PBStringField msg_source = PBField.initString("");
|
||||
|
||||
public final PBStringField msg_title = PBField.initString("");
|
||||
|
||||
public final PBBytesField pic_url;
|
||||
|
||||
public final PBUInt32Field relation = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field req_uin_age;
|
||||
|
||||
public final PBBytesField req_uin_business_card;
|
||||
|
||||
public final PBInt32Field req_uin_faceid;
|
||||
|
||||
public final PBUInt32Field req_uin_gender;
|
||||
|
||||
public final PBStringField req_uin_nick;
|
||||
|
||||
public final PBBytesField req_uin_pre_remark;
|
||||
|
||||
public final PBUInt32Field reqsubtype = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field src_id = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field sub_src_id = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt32Field sub_type = PBField.initUInt32(0);
|
||||
|
||||
public final PBStringField uid;
|
||||
|
||||
public final PBUInt32Field uint32_c2c_invite_join_group_flag;
|
||||
|
||||
public final PBUInt32Field uint32_doubt_flag;
|
||||
|
||||
public final PBUInt32Field uint32_group_flagext3;
|
||||
|
||||
public final PBUInt32Field uint32_source_flag = PBField.initUInt32(0);
|
||||
|
||||
public final PBUInt64Field uint64_discuss_uin = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field uint64_eim_group_id = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt64Field uint64_group_owner_uin;
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
Long long_ = Long.valueOf(0L);
|
||||
ByteStringMicro byteStringMicro = ByteStringMicro.EMPTY;
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] {
|
||||
8, 18, 26, 34, 42, 50, 56, 64, 74, 80,
|
||||
88, 96, 104, 114, 122, 128, 138, 146, 152, 160,
|
||||
168, 176, 184, 194, 202, 208, 218, 226, 232, 240,
|
||||
248, 258, 266, 274, 282, 400, 410, 418, 426, 434,
|
||||
442, 456, 466, 474, 482, 490, 506, 514, 522, 530,
|
||||
536, 544, 552, 808, 866, 882 }, new String[] {
|
||||
"sub_type", "msg_title", "msg_describe", "msg_additional", "msg_source", "msg_decided", "src_id", "sub_src_id", "actions", "group_code",
|
||||
"action_uin", "group_msg_type", "group_inviter_role", "friend_info", "group_info", "actor_uin", "msg_actor_describe", "msg_additional_list", "relation", "reqsubtype",
|
||||
"clone_uin", "uint64_discuss_uin", "uint64_eim_group_id", "msg_invite_extinfo", "msg_pay_group_extinfo", "uint32_source_flag", "bytes_game_nick", "bytes_game_msg", "uint32_group_flagext3", "uint64_group_owner_uin",
|
||||
"uint32_doubt_flag", "bytes_warning_tips", "bytes_name_more", "bytes_addtion", "bytes_transparent_group_notify", "req_uin_faceid", "req_uin_nick", "group_name", "action_uin_nick", "msg_qna",
|
||||
"msg_detail", "group_ext_flag", "actor_uin_nick", "pic_url", "clone_uin_nick", "req_uin_business_card", "eim_group_id_name", "req_uin_pre_remark", "action_uin_qq_nick", "action_uin_remark",
|
||||
"req_uin_gender", "req_uin_age", "uint32_c2c_invite_join_group_flag", "card_switch", "bytes_source_desc", "uid" }, new Object[] {
|
||||
integer, "", "", "", "", "", integer, integer, null, long_,
|
||||
long_, integer, integer, null, null, long_, "", "", integer, integer,
|
||||
long_, long_, long_, null, null, integer, byteStringMicro, byteStringMicro, integer, long_,
|
||||
integer, byteStringMicro, byteStringMicro, byteStringMicro, byteStringMicro, integer, "", "", "", "",
|
||||
"", integer, "", byteStringMicro, "", byteStringMicro, byteStringMicro, byteStringMicro, byteStringMicro, byteStringMicro,
|
||||
integer, integer, integer, integer, byteStringMicro, "" }, structmsg$SystemMsg.class);
|
||||
}
|
||||
|
||||
public structmsg$SystemMsg() {
|
||||
ByteStringMicro byteStringMicro = ByteStringMicro.EMPTY;
|
||||
this.bytes_game_nick = PBField.initBytes(byteStringMicro);
|
||||
this.bytes_game_msg = PBField.initBytes(byteStringMicro);
|
||||
this.uint32_group_flagext3 = PBField.initUInt32(0);
|
||||
this.uint64_group_owner_uin = PBField.initUInt64(0L);
|
||||
this.uint32_doubt_flag = PBField.initUInt32(0);
|
||||
this.bytes_warning_tips = PBField.initBytes(byteStringMicro);
|
||||
this.bytes_name_more = PBField.initBytes(byteStringMicro);
|
||||
this.bytes_addtion = PBField.initBytes(byteStringMicro);
|
||||
this.bytes_transparent_group_notify = PBField.initBytes(byteStringMicro);
|
||||
this.req_uin_faceid = PBField.initInt32(0);
|
||||
this.req_uin_nick = PBField.initString("");
|
||||
this.group_name = PBField.initString("");
|
||||
this.action_uin_nick = PBField.initString("");
|
||||
this.msg_qna = PBField.initString("");
|
||||
this.msg_detail = PBField.initString("");
|
||||
this.group_ext_flag = PBField.initUInt32(0);
|
||||
this.actor_uin_nick = PBField.initString("");
|
||||
this.pic_url = PBField.initBytes(byteStringMicro);
|
||||
this.clone_uin_nick = PBField.initString("");
|
||||
this.req_uin_business_card = PBField.initBytes(byteStringMicro);
|
||||
this.eim_group_id_name = PBField.initBytes(byteStringMicro);
|
||||
this.req_uin_pre_remark = PBField.initBytes(byteStringMicro);
|
||||
this.action_uin_qq_nick = PBField.initBytes(byteStringMicro);
|
||||
this.action_uin_remark = PBField.initBytes(byteStringMicro);
|
||||
this.req_uin_gender = PBField.initUInt32(0);
|
||||
this.req_uin_age = PBField.initUInt32(0);
|
||||
this.uint32_c2c_invite_join_group_flag = PBField.initUInt32(0);
|
||||
this.card_switch = PBField.initUInt32(0);
|
||||
this.bytes_source_desc = PBField.initBytes(byteStringMicro);
|
||||
this.uid = PBField.initString("");
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
|
||||
public final class structmsg$SystemMsgAction extends MessageMicro<structmsg$SystemMsgAction> {
|
||||
static final FieldMap __fieldMap__ = MessageMicro.initFieldMap(new int[] { 10, 18, 24, 34, 42 }, new String[] { "name", "result", "action", "action_info", "detail_name" }, new Object[] { "", "", Integer.valueOf(0), null, "" }, structmsg$SystemMsgAction.class);
|
||||
|
||||
public final PBUInt32Field action = PBField.initUInt32(0);
|
||||
|
||||
public structmsg$SystemMsgActionInfo action_info = new structmsg$SystemMsgActionInfo();
|
||||
|
||||
public final PBStringField detail_name = PBField.initString("");
|
||||
|
||||
public final PBStringField name = PBField.initString("");
|
||||
|
||||
public final PBStringField result = PBField.initString("");
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package tencent.mobileim.structmsg;
|
||||
|
||||
import com.tencent.mobileqq.pb.ByteStringMicro;
|
||||
import com.tencent.mobileqq.pb.MessageMicro;
|
||||
import com.tencent.mobileqq.pb.PBBoolField;
|
||||
import com.tencent.mobileqq.pb.PBBytesField;
|
||||
import com.tencent.mobileqq.pb.PBEnumField;
|
||||
import com.tencent.mobileqq.pb.PBField;
|
||||
import com.tencent.mobileqq.pb.PBStringField;
|
||||
import com.tencent.mobileqq.pb.PBUInt32Field;
|
||||
import com.tencent.mobileqq.pb.PBUInt64Field;
|
||||
|
||||
public final class structmsg$SystemMsgActionInfo extends MessageMicro<structmsg$SystemMsgActionInfo> {
|
||||
static final FieldMap __fieldMap__;
|
||||
|
||||
public structmsg$AddFrdSNInfo addFrdSNInfo = new structmsg$AddFrdSNInfo();
|
||||
|
||||
public final PBBoolField blacklist = PBField.initBool(false);
|
||||
|
||||
public final PBUInt64Field group_code = PBField.initUInt64(0L);
|
||||
|
||||
public final PBUInt32Field group_id = PBField.initUInt32(0);
|
||||
|
||||
public final PBStringField msg = PBField.initString("");
|
||||
|
||||
public final PBStringField remark = PBField.initString("");
|
||||
|
||||
public final PBBytesField sig = PBField.initBytes(ByteStringMicro.EMPTY);
|
||||
|
||||
public final PBEnumField type = PBField.initEnum(1);
|
||||
|
||||
public final PBUInt32Field uint32_req_msg_type = PBField.initUInt32(0);
|
||||
|
||||
static {
|
||||
Integer integer = Integer.valueOf(0);
|
||||
ByteStringMicro byteStringMicro = ByteStringMicro.EMPTY;
|
||||
Boolean bool = Boolean.FALSE;
|
||||
__fieldMap__ = MessageMicro.initFieldMap(new int[] { 8, 16, 26, 402, 408, 418, 424, 434, 440 }, new String[] { "type", "group_code", "sig", "msg", "group_id", "remark", "blacklist", "addFrdSNInfo", "uint32_req_msg_type" }, new Object[] { Integer.valueOf(1), Long.valueOf(0L), byteStringMicro, "", integer, "", bool, null, integer }, structmsg$SystemMsgActionInfo.class);
|
||||
}
|
||||
}
|
@ -1,19 +1,30 @@
|
||||
@file:OptIn(DelicateCoroutinesApi::class)
|
||||
@file:Suppress("IllegalIdentifier")
|
||||
package moe.fuqiuluo.qqinterface.servlet
|
||||
|
||||
import com.tencent.common.app.AppInterface
|
||||
import com.tencent.mobileqq.data.Friends
|
||||
import com.tencent.mobileqq.friend.api.IFriendDataService
|
||||
import com.tencent.mobileqq.friend.api.IFriendHandlerService
|
||||
import com.tencent.mobileqq.qroute.QRoute
|
||||
import com.tencent.mobileqq.relation.api.IAddFriendTempApi
|
||||
import kotlinx.coroutines.DelicateCoroutinesApi
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import moe.fuqiuluo.qqinterface.servlet.BaseSvc
|
||||
import moe.fuqiuluo.shamrock.tools.slice
|
||||
import moe.fuqiuluo.shamrock.xposed.helper.AppRuntimeFetcher
|
||||
import mqq.app.AppRuntime
|
||||
import mqq.app.MobileQQ
|
||||
import tencent.mobileim.structmsg.`structmsg$FlagInfo`
|
||||
import tencent.mobileim.structmsg.`structmsg$ReqSystemMsgNew`
|
||||
import tencent.mobileim.structmsg.`structmsg$RspSystemMsgNew`
|
||||
import kotlin.coroutines.resume
|
||||
import tencent.mobileim.structmsg.`structmsg$SystemMsgActionInfo` as ActionInfo
|
||||
import tencent.mobileim.structmsg.`structmsg$AddFrdSNInfo` as AddFrdSNInfo
|
||||
import tencent.mobileim.structmsg.`structmsg$StructMsg` as StructMsg
|
||||
|
||||
internal object FriendSvc: BaseSvc() {
|
||||
|
||||
@ -28,6 +39,64 @@ internal object FriendSvc: BaseSvc() {
|
||||
return Result.success(service.allFriends)
|
||||
}
|
||||
|
||||
// ProfileService.Pb.ReqSystemMsgAction.Friend
|
||||
fun requestFriendRequest(msgSeq: Long, uin: Long, remark: String = "", approve: Boolean? = true, notSee: Boolean? = false) {
|
||||
val app = AppRuntimeFetcher.appRuntime
|
||||
if (app !is AppInterface)
|
||||
throw RuntimeException("AppRuntime cannot cast to AppInterface")
|
||||
val service = QRoute.api(IAddFriendTempApi::class.java)
|
||||
val action = ActionInfo()
|
||||
action.type.set(if (approve != false) 2 else 3)
|
||||
action.group_id.set(0)
|
||||
action.remark.set(remark)
|
||||
val snInfo = AddFrdSNInfo()
|
||||
snInfo.uint32_not_see_dynamic.set(if (notSee != false) 1 else 0)
|
||||
snInfo.uint32_set_sn.set(0)
|
||||
action.addFrdSNInfo.set(snInfo)
|
||||
service.sendFriendSystemMsgAction(1, msgSeq, uin, 1, 2004, 11, 0, action, 0, StructMsg(), false,
|
||||
app
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun requestFriendSystemMsgNew(msgNum: Int, latestFriendSeq: Long, latestGroupSeq: Long): List<StructMsg>? {
|
||||
val req = `structmsg$ReqSystemMsgNew`()
|
||||
req.msg_num.set(msgNum)
|
||||
req.latest_friend_seq.set(latestFriendSeq)
|
||||
req.latest_group_seq.set(latestGroupSeq)
|
||||
req.version.set(1000)
|
||||
req.checktype.set(2)
|
||||
val flag = `structmsg$FlagInfo`()
|
||||
// flag.GrpMsg_Kick_Admin.set(1)
|
||||
// flag.GrpMsg_HiddenGrp.set(1)
|
||||
// flag.GrpMsg_WordingDown.set(1)
|
||||
flag.FrdMsg_GetBusiCard.set(1)
|
||||
// flag.GrpMsg_GetOfficialAccount.set(1)
|
||||
// flag.GrpMsg_GetPayInGroup.set(1)
|
||||
flag.FrdMsg_Discuss2ManyChat.set(1)
|
||||
// flag.GrpMsg_NotAllowJoinGrp_InviteNotFrd.set(1)
|
||||
flag.FrdMsg_NeedWaitingMsg.set(1)
|
||||
flag.FrdMsg_uint32_need_all_unread_msg.set(1)
|
||||
// flag.GrpMsg_NeedAutoAdminWording.set(1)
|
||||
// flag.GrpMsg_get_transfer_group_msg_flag.set(1)
|
||||
// flag.GrpMsg_get_quit_pay_group_msg_flag.set(1)
|
||||
// flag.GrpMsg_support_invite_auto_join.set(1)
|
||||
// flag.GrpMsg_mask_invite_auto_join.set(1)
|
||||
// flag.GrpMsg_GetDisbandedByAdmin.set(1)
|
||||
flag.GrpMsg_GetC2cInviteJoinGroup.set(1)
|
||||
req.flag.set(flag)
|
||||
req.is_get_frd_ribbon.set(false)
|
||||
req.is_get_grp_ribbon.set(false)
|
||||
req.friend_msg_type_flag.set(1)
|
||||
req.uint32_req_msg_type.set(1)
|
||||
req.uint32_need_uid.set(1)
|
||||
val respBuffer = sendBufferAW("ProfileService.Pb.ReqSystemMsgNew.Friend", true, req.toByteArray())
|
||||
?: return ArrayList()
|
||||
val msg = `structmsg$RspSystemMsgNew`()
|
||||
msg.mergeFrom(respBuffer.slice(4))
|
||||
return msg.friendmsgs.get()
|
||||
}
|
||||
|
||||
|
||||
private suspend fun requestFriendList(runtime: AppRuntime, dataService: IFriendDataService): Boolean {
|
||||
val service = runtime.getRuntimeService(IFriendHandlerService::class.java, "all")
|
||||
service.requestFriendList(true, 0)
|
||||
|
@ -8,6 +8,8 @@ import com.tencent.mobileqq.app.QQAppInterface
|
||||
import com.tencent.mobileqq.data.troop.TroopInfo
|
||||
import com.tencent.mobileqq.data.troop.TroopMemberInfo
|
||||
import com.tencent.mobileqq.pb.ByteStringMicro
|
||||
import com.tencent.mobileqq.qroute.QRoute
|
||||
import com.tencent.mobileqq.relation.api.IAddFriendTempApi
|
||||
import com.tencent.mobileqq.troop.api.ITroopInfoService
|
||||
import com.tencent.mobileqq.troop.api.ITroopMemberInfoService
|
||||
import com.tencent.protofile.join_group_link.join_group_link
|
||||
@ -23,6 +25,9 @@ import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.coroutines.withTimeoutOrNull
|
||||
import moe.fuqiuluo.proto.ProtoUtils
|
||||
import moe.fuqiuluo.proto.asInt
|
||||
import moe.fuqiuluo.proto.asList
|
||||
import moe.fuqiuluo.proto.asLong
|
||||
import moe.fuqiuluo.proto.asUtf8String
|
||||
import moe.fuqiuluo.proto.protobufOf
|
||||
import moe.fuqiuluo.shamrock.helper.LogCenter
|
||||
@ -40,7 +45,10 @@ import java.lang.reflect.Method
|
||||
import java.lang.reflect.Modifier
|
||||
import java.nio.ByteBuffer
|
||||
import kotlin.coroutines.resume
|
||||
|
||||
import tencent.mobileim.structmsg.`structmsg$ReqSystemMsgNew` as ReqSystemMsgNew
|
||||
import tencent.mobileim.structmsg.`structmsg$FlagInfo` as FlagInfo
|
||||
import tencent.mobileim.structmsg.`structmsg$RspSystemMsgNew` as RspSystemMsgNew
|
||||
import tencent.mobileim.structmsg.`structmsg$StructMsg` as StructMsg
|
||||
internal object GroupSvc: BaseSvc() {
|
||||
private val RefreshTroopMemberInfoLock by lazy {
|
||||
Mutex()
|
||||
@ -573,4 +581,88 @@ internal object GroupSvc: BaseSvc() {
|
||||
Result.failure(Exception("获取群成员信息失败"))
|
||||
}
|
||||
}
|
||||
|
||||
// ProfileService.Pb.ReqSystemMsgAction.Group
|
||||
suspend fun requestGroupRequest(msgSeq: Long, uin: Long, gid: Long, msg: String? = "", approve: Boolean? = true, notSee: Boolean? = false): Result<String>{
|
||||
// val app = AppRuntimeFetcher.appRuntime
|
||||
// if (app !is AppInterface)
|
||||
// throw RuntimeException("AppRuntime cannot cast to AppInterface")
|
||||
// val service = QRoute.api(IAddFriendTempApi::class.java)
|
||||
// val action = `structmsg$SystemMsgActionInfo`()
|
||||
// action.type.set(if (approve != false) 11 else 12)
|
||||
// action.group_code.set(gid)
|
||||
// action.msg.set(msg)
|
||||
// val snInfo = `structmsg$AddFrdSNInfo`()
|
||||
// snInfo.uint32_not_see_dynamic.set(if (notSee != false) 1 else 0)
|
||||
//// snInfo.uint32_set_sn.set(0)
|
||||
// action.addFrdSNInfo.set(snInfo)
|
||||
// service.sendFriendSystemMsgAction(2, msgSeq * 1000, uin, 1, 2, 30024, 1, action, 0, `structmsg$StructMsg`(), false,
|
||||
// app
|
||||
// )
|
||||
// 实在找不到接口了 发pb吧
|
||||
val buffer = protobufOf(
|
||||
1 to 2,
|
||||
2 to msgSeq,
|
||||
3 to uin,
|
||||
4 to 1,
|
||||
5 to 2,
|
||||
6 to 30024,
|
||||
7 to 1,
|
||||
8 to mapOf(
|
||||
1 to if (approve != false) 11 else 12,
|
||||
2 to gid
|
||||
),
|
||||
9 to 1000
|
||||
).toByteArray()
|
||||
val respBuffer = sendBufferAW("ProfileService.Pb.ReqSystemMsgAction.Group", true, buffer)
|
||||
?: return Result.failure(Exception("操作失败"))
|
||||
val result = ProtoUtils.decodeFromByteArray(respBuffer.slice(4))
|
||||
return if (result.has(1, 1)) {
|
||||
if (result[1, 1].asInt == 0) {
|
||||
Result.success(result[2].asUtf8String)
|
||||
} else {
|
||||
Result.failure(Exception(result[2].asUtf8String))
|
||||
}
|
||||
} else {
|
||||
Result.failure(Exception("操作失败"))
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun requestGroupSystemMsgNew(msgNum: Int, latestFriendSeq: Long, latestGroupSeq: Long): List<StructMsg>? {
|
||||
val req = ReqSystemMsgNew()
|
||||
req.msg_num.set(msgNum)
|
||||
req.latest_friend_seq.set(latestFriendSeq)
|
||||
req.latest_group_seq.set(latestGroupSeq)
|
||||
req.version.set(1000)
|
||||
req.checktype.set(3)
|
||||
val flag = FlagInfo()
|
||||
flag.GrpMsg_Kick_Admin.set(1)
|
||||
flag.GrpMsg_HiddenGrp.set(1)
|
||||
flag.GrpMsg_WordingDown.set(1)
|
||||
// flag.FrdMsg_GetBusiCard.set(1)
|
||||
flag.GrpMsg_GetOfficialAccount.set(1)
|
||||
flag.GrpMsg_GetPayInGroup.set(1)
|
||||
flag.FrdMsg_Discuss2ManyChat.set(1)
|
||||
flag.GrpMsg_NotAllowJoinGrp_InviteNotFrd.set(1)
|
||||
flag.FrdMsg_NeedWaitingMsg.set(1)
|
||||
// flag.FrdMsg_uint32_need_all_unread_msg.set(1)
|
||||
flag.GrpMsg_NeedAutoAdminWording.set(1)
|
||||
flag.GrpMsg_get_transfer_group_msg_flag.set(1)
|
||||
flag.GrpMsg_get_quit_pay_group_msg_flag.set(1)
|
||||
flag.GrpMsg_support_invite_auto_join.set(1)
|
||||
flag.GrpMsg_mask_invite_auto_join.set(1)
|
||||
flag.GrpMsg_GetDisbandedByAdmin.set(1)
|
||||
flag.GrpMsg_GetC2cInviteJoinGroup.set(1)
|
||||
req.flag.set(flag)
|
||||
req.is_get_frd_ribbon.set(false)
|
||||
req.is_get_grp_ribbon.set(false)
|
||||
req.friend_msg_type_flag.set(1)
|
||||
req.uint32_req_msg_type.set(1)
|
||||
req.uint32_need_uid.set(1)
|
||||
val respBuffer = sendBufferAW("ProfileService.Pb.ReqSystemMsgNew.Group", true, req.toByteArray())
|
||||
?: return ArrayList()
|
||||
val msg = RspSystemMsgNew()
|
||||
msg.mergeFrom(respBuffer.slice(4))
|
||||
return msg.groupmsgs.get()
|
||||
}
|
||||
}
|
@ -63,6 +63,7 @@ internal object HTTPServer {
|
||||
otherAction()
|
||||
guildAction()
|
||||
testAction()
|
||||
requestRouter()
|
||||
if (ShamrockConfig.isDev()) {
|
||||
qsign()
|
||||
obtainProtocolData()
|
||||
|
@ -40,6 +40,9 @@ internal object ActionManager {
|
||||
DeleteGroupFile, GetGroupFileSystemInfo, GetGroupRootFiles, GetGroupSubFiles,
|
||||
GetGroupFileUrl, UploadPrivateFile,
|
||||
|
||||
//REQUEST ACTION
|
||||
SetFriendAddRequest, SetGroupAddRequest,
|
||||
|
||||
// GUILD
|
||||
GetGuildServiceProfile,
|
||||
|
||||
|
@ -0,0 +1,36 @@
|
||||
package moe.fuqiuluo.shamrock.remote.action.handlers
|
||||
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import moe.fuqiuluo.qqinterface.servlet.FriendSvc
|
||||
import moe.fuqiuluo.qqinterface.servlet.GroupSvc
|
||||
import moe.fuqiuluo.shamrock.remote.action.ActionSession
|
||||
import moe.fuqiuluo.shamrock.remote.action.IActionHandler
|
||||
import moe.fuqiuluo.shamrock.tools.EmptyJsonString
|
||||
|
||||
internal object SetFriendAddRequest: IActionHandler() {
|
||||
override suspend fun internalHandle(session: ActionSession): String {
|
||||
val flag = session.getString("flag")
|
||||
val approve = session.getBoolean("approve")
|
||||
val remark = session.getStringOrNull("remark")
|
||||
val notSeen = session.getBoolean("notSeen")
|
||||
return invoke(flag, approve, remark, notSeen, session.echo)
|
||||
}
|
||||
|
||||
operator fun invoke(flag: String, approve: Boolean? = true, remark: String? = "", notSeen: Boolean? = false, echo: JsonElement = EmptyJsonString): String {
|
||||
val flags = flag.split(";")
|
||||
val ts = flags[0].toLong()
|
||||
// val src = flags[1].toInt()
|
||||
// val subSrc = flags[2].toInt()
|
||||
val applier = flags[3].toLong()
|
||||
return try {
|
||||
FriendSvc.requestFriendRequest(ts, applier, remark ?: "", approve, notSeen)
|
||||
ok("成功", echo)
|
||||
} catch (err: Throwable) {
|
||||
err.printStackTrace()
|
||||
error("失败:${err.message}", echo)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun path(): String = "set_friend_add_request"
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package moe.fuqiuluo.shamrock.remote.action.handlers
|
||||
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import moe.fuqiuluo.qqinterface.servlet.FriendSvc
|
||||
import moe.fuqiuluo.qqinterface.servlet.GroupSvc
|
||||
import moe.fuqiuluo.shamrock.remote.action.ActionSession
|
||||
import moe.fuqiuluo.shamrock.remote.action.IActionHandler
|
||||
import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeSubType
|
||||
import moe.fuqiuluo.shamrock.tools.EmptyJsonString
|
||||
|
||||
internal object SetGroupAddRequest: IActionHandler() {
|
||||
override suspend fun internalHandle(session: ActionSession): String {
|
||||
val flag = session.getString("flag")
|
||||
val approve = session.getBoolean("approve")
|
||||
val remark = session.getStringOrNull("reason")
|
||||
val notSeen = session.getBoolean("notSeen")
|
||||
val subType = session.getString("sub_type")
|
||||
return invoke(flag, approve, subType, remark, notSeen, session.echo)
|
||||
}
|
||||
|
||||
suspend operator fun invoke(flag: String, approve: Boolean? = true, subType: String, remark: String? = "", notSeen: Boolean? = false, echo: JsonElement = EmptyJsonString): String {
|
||||
val flags = flag.split(";")
|
||||
val ts = flags[0].toLong()
|
||||
val groupCode = flags[1].toLong()
|
||||
val applier = flags[2].toLong()
|
||||
return try {
|
||||
val result = GroupSvc.requestGroupRequest(ts, applier, groupCode, remark ?: "", approve, notSeen)
|
||||
if (result.isSuccess) {
|
||||
ok(result.getOrNull(), echo)
|
||||
} else {
|
||||
logic(result.getOrNull() ?: "", echo)
|
||||
}
|
||||
} catch (err: Throwable) {
|
||||
err.printStackTrace()
|
||||
error("失败:${err.message}", echo)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun path(): String = "set_group_add_request"
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package moe.fuqiuluo.shamrock.remote.api
|
||||
|
||||
import io.ktor.http.ContentType
|
||||
import io.ktor.server.application.call
|
||||
import io.ktor.server.response.respondText
|
||||
import io.ktor.server.routing.Routing
|
||||
import moe.fuqiuluo.shamrock.remote.action.handlers.SetFriendAddRequest
|
||||
import moe.fuqiuluo.shamrock.remote.action.handlers.SetGroupAddRequest
|
||||
import moe.fuqiuluo.shamrock.tools.fetchOrNull
|
||||
import moe.fuqiuluo.shamrock.tools.fetchOrThrow
|
||||
import moe.fuqiuluo.shamrock.tools.getOrPost
|
||||
|
||||
fun Routing.requestRouter() {
|
||||
getOrPost("/set_friend_add_request") {
|
||||
val flag = fetchOrThrow("flag")
|
||||
val approve = fetchOrNull("approve")?.toBooleanStrict() ?: true
|
||||
val remark = fetchOrNull("remark")
|
||||
val notSeen = fetchOrNull("not_seen")?.toBooleanStrict() ?: false
|
||||
|
||||
call.respondText(
|
||||
SetFriendAddRequest(flag, approve, remark, notSeen),
|
||||
ContentType.Application.Json
|
||||
)
|
||||
}
|
||||
|
||||
getOrPost("/set_group_add_request") {
|
||||
val flag = fetchOrThrow("flag")
|
||||
val approve = fetchOrNull("approve")?.toBooleanStrict() ?: true
|
||||
val remark = fetchOrNull("reason")
|
||||
val subType = fetchOrNull("sub_type")
|
||||
val notSeen = fetchOrNull("not_seen")?.toBooleanStrict() ?: false
|
||||
|
||||
call.respondText(
|
||||
SetGroupAddRequest(flag, approve, subType ?: "add", remark, notSeen),
|
||||
ContentType.Application.Json
|
||||
)
|
||||
}
|
||||
|
||||
}
|
@ -10,6 +10,8 @@ import io.ktor.server.request.uri
|
||||
import io.ktor.server.response.respond
|
||||
import io.ktor.util.AttributeKey
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import moe.fuqiuluo.shamrock.helper.Level
|
||||
import moe.fuqiuluo.shamrock.helper.LogCenter
|
||||
import moe.fuqiuluo.shamrock.remote.entries.CommonResult
|
||||
import moe.fuqiuluo.shamrock.remote.entries.ErrorCatch
|
||||
import moe.fuqiuluo.shamrock.remote.entries.Status
|
||||
@ -55,6 +57,7 @@ fun Application.statusPages() {
|
||||
val echo = if (call.attributes.contains(ECHO_KEY)) {
|
||||
call.attributes[ECHO_KEY]
|
||||
} else null
|
||||
LogCenter.log(cause.stackTraceToString(), Level.ERROR)
|
||||
call.respond(CommonResult(
|
||||
status = "failed",
|
||||
retcode = Status.InternalHandlerError.code,
|
||||
|
@ -317,6 +317,7 @@ internal object GlobalEventTransmitter: BaseSvc() {
|
||||
operator: Long,
|
||||
reason: String,
|
||||
groupCode: Long,
|
||||
flag: String,
|
||||
subType: NoticeSubType
|
||||
): Boolean {
|
||||
pushNotice(NoticeEvent(
|
||||
@ -327,7 +328,8 @@ internal object GlobalEventTransmitter: BaseSvc() {
|
||||
operatorId = operator,
|
||||
tip = reason,
|
||||
groupId = groupCode,
|
||||
subType = subType
|
||||
subType = subType,
|
||||
flag = flag
|
||||
))
|
||||
return true
|
||||
}
|
||||
@ -367,7 +369,7 @@ internal object GlobalEventTransmitter: BaseSvc() {
|
||||
return true
|
||||
}
|
||||
|
||||
suspend fun transFriendApply(time: Long, operation: Long, tipText: String): Boolean {
|
||||
suspend fun transFriendApply(time: Long, operation: Long, tipText: String, flag: String): Boolean {
|
||||
pushNotice(NoticeEvent(
|
||||
time = time,
|
||||
selfId = app.longAccountUin,
|
||||
@ -375,7 +377,8 @@ internal object GlobalEventTransmitter: BaseSvc() {
|
||||
type = NoticeType.FriendApply,
|
||||
operatorId = operation,
|
||||
userId = operation,
|
||||
tip = tipText
|
||||
tip = tipText,
|
||||
flag = flag
|
||||
))
|
||||
return true
|
||||
}
|
||||
|
@ -58,6 +58,7 @@ internal data class NoticeEvent(
|
||||
@SerialName("target_id") val target: Long = 0,
|
||||
@SerialName("file") val file: GroupFileMsg? = null,
|
||||
@SerialName("private_file") val privateFile: PrivateFileMsg? = null,
|
||||
@SerialName("flag") val flag: String? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
|
@ -1,6 +1,7 @@
|
||||
@file:OptIn(DelicateCoroutinesApi::class)
|
||||
package moe.fuqiuluo.shamrock.remote.service.listener
|
||||
|
||||
import com.arthenica.smartexception.ThrowableWrapper
|
||||
import com.tencent.qqnt.kernel.nativeinterface.MsgConstant
|
||||
import kotlinx.coroutines.DelicateCoroutinesApi
|
||||
import moe.fuqiuluo.shamrock.helper.ContactHelper
|
||||
@ -19,6 +20,8 @@ import moe.fuqiuluo.proto.ProtoUtils
|
||||
import moe.fuqiuluo.proto.asByteArray
|
||||
import moe.fuqiuluo.proto.asList
|
||||
import moe.fuqiuluo.proto.asULong
|
||||
import moe.fuqiuluo.qqinterface.servlet.FriendSvc.requestFriendSystemMsgNew
|
||||
import moe.fuqiuluo.qqinterface.servlet.GroupSvc.requestGroupSystemMsgNew
|
||||
import moe.fuqiuluo.shamrock.helper.MessageHelper
|
||||
import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeSubType
|
||||
import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeType
|
||||
@ -114,9 +117,19 @@ internal object PrimitiveListener {
|
||||
if (applier == 0L) {
|
||||
applier = pb[4, 3, 8].asLong
|
||||
}
|
||||
val msg_time = pb[1, 3, 2, 1, 9].asLong
|
||||
val src = pb[1, 3, 2, 1, 7].asInt
|
||||
val subSrc = pb[1, 3, 2, 1, 8].asInt
|
||||
val reqs = requestFriendSystemMsgNew(20, 0, 0)
|
||||
val req = reqs?.first {
|
||||
it.msg_time.get() == msg_time
|
||||
}
|
||||
val seq = req?.msg_seq?.get()
|
||||
val flag = "$seq;$src;$subSrc;$applier"
|
||||
|
||||
LogCenter.log("来自$applier 的好友申请:$msg ($source)")
|
||||
if(!GlobalEventTransmitter.PrivateNoticeTransmitter
|
||||
.transFriendApply(msgTime, applier, msg)) {
|
||||
.transFriendApply(msgTime, applier, msg, flag)) {
|
||||
LogCenter.log("好友申请推送失败!", Level.WARN)
|
||||
}
|
||||
}
|
||||
@ -324,22 +337,51 @@ internal object PrimitiveListener {
|
||||
val applierUid = pb[1, 3, 2, 3].asUtf8String
|
||||
val reason = pb[1, 3, 2, 5].asUtf8String
|
||||
val applier = ContactHelper.getUinByUidAsync(applierUid).toLong()
|
||||
LogCenter.log("入群申请($groupCode) $applier: \"$reason\"")
|
||||
val msg_time = pb[1, 2, 6].asLong
|
||||
|
||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||
.transGroupApply(time, applier, reason, groupCode, NoticeSubType.Add)) {
|
||||
LogCenter.log("$msg_time 入群申请($groupCode) $applier: \"$reason\"")
|
||||
try {
|
||||
val reqs = requestGroupSystemMsgNew(20, 0, 0)
|
||||
val req = reqs?.first {
|
||||
it.msg_time.get() == msg_time
|
||||
}
|
||||
val seq = req?.msg_seq?.get()
|
||||
val flag = "$seq;$groupCode;$applierUid"
|
||||
if(!seq?.let {
|
||||
GlobalEventTransmitter.GroupNoticeTransmitter
|
||||
.transGroupApply(it, applier, reason, groupCode, flag, NoticeSubType.Add)
|
||||
}!!) {
|
||||
LogCenter.log("入群申请推送失败!", Level.WARN)
|
||||
}
|
||||
} catch (err: Throwable) {
|
||||
LogCenter.log("入群申请推送失败!", Level.WARN)
|
||||
LogCenter.log(err.stackTraceToString(), Level.ERROR)
|
||||
}
|
||||
|
||||
}
|
||||
528 -> {
|
||||
val groupCode = pb[1, 3, 2, 2, 3].asULong
|
||||
val applierUid = pb[1, 3, 2, 2, 5].asUtf8String
|
||||
val applier = ContactHelper.getUinByUidAsync(applierUid).toLong()
|
||||
val msg_time = pb[1, 2, 6].asLong
|
||||
LogCenter.log("邀请入群申请($groupCode): $applier")
|
||||
try {
|
||||
val reqs = requestGroupSystemMsgNew(20, 0, 0)
|
||||
val req = reqs?.first {
|
||||
it.msg_time.get() == msg_time
|
||||
}
|
||||
val seq = req?.msg_seq?.get()
|
||||
val flag = "$seq;$groupCode;$applierUid"
|
||||
if(!seq?.let {
|
||||
GlobalEventTransmitter.GroupNoticeTransmitter
|
||||
.transGroupApply(it, applier, "", groupCode, flag, NoticeSubType.Invite)
|
||||
}!!) {
|
||||
LogCenter.log("邀请入群申请推送失败!", Level.WARN)
|
||||
}
|
||||
|
||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||
.transGroupApply(time, applier, "", groupCode, NoticeSubType.Invite)) {
|
||||
} catch (err: Throwable) {
|
||||
LogCenter.log("邀请入群申请推送失败!", Level.WARN)
|
||||
LogCenter.log(err.stackTraceToString(), Level.ERROR)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user