mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 05:12:17 +00:00
Compare commits
2 Commits
609e87d0ec
...
976526ab79
Author | SHA1 | Date | |
---|---|---|---|
976526ab79 | |||
cdc9ca1a72 |
@ -146,6 +146,7 @@ public class TroopInfo {
|
||||
public byte[] troopInfoExtByte;
|
||||
public String troopLevelMap;
|
||||
public String troopRemark;
|
||||
@Deprecated
|
||||
public String troopcode;
|
||||
public short troopface;
|
||||
public String troopmemo;
|
||||
@ -154,6 +155,7 @@ public class TroopInfo {
|
||||
public int trooptype;
|
||||
public String troopuin;
|
||||
public long udwCmdUinRingtoneID;
|
||||
@Deprecated
|
||||
public String uin;
|
||||
public int wClickBAFTipCount;
|
||||
public int wInsertBAFTipCount;
|
||||
|
@ -0,0 +1,45 @@
|
||||
package com.tencent.qqnt.trooplist;
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
|
||||
import com.tencent.mobileqq.data.troop.TroopInfo;
|
||||
import com.tencent.mobileqq.qroute.QRouteApi;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
|
||||
public interface ITroopListRepoApi extends QRouteApi {
|
||||
void fetchTroopLevelInfo(@NotNull String str, boolean z);
|
||||
|
||||
void fetchTroopList(boolean z);
|
||||
|
||||
//@NotNull
|
||||
//a<Boolean> getFetchTroopListResultLiveData();
|
||||
|
||||
@NotNull
|
||||
List<TroopInfo> getSortedValidTopTroopInfoFromCache();
|
||||
|
||||
@NotNull
|
||||
List<TroopInfo> getSortedValidTroopInfoFromCache();
|
||||
|
||||
@NotNull
|
||||
List<TroopInfo> getTopTroopListFromCache();
|
||||
|
||||
@Nullable
|
||||
TroopInfo getTroopInfoFromCache(@NotNull String str);
|
||||
|
||||
@NotNull
|
||||
List<TroopInfo> getTroopListFromCache();
|
||||
|
||||
//@Nullable
|
||||
//a<List<TroopInfo>> getTroopListLiveData();
|
||||
|
||||
void preloadTroopList();
|
||||
|
||||
void requestSetTroopTop(@NotNull LifecycleOwner lifecycleOwner, @NotNull String str, boolean z, @NotNull Function1<? super Boolean, Unit> function1);
|
||||
}
|
@ -19,6 +19,7 @@ import com.tencent.protofile.join_group_link.join_group_link
|
||||
import com.tencent.qphone.base.remote.ToServiceMsg
|
||||
import com.tencent.qqnt.kernel.nativeinterface.MemberInfo
|
||||
import com.tencent.qqnt.kernel.nativeinterface.MsgConstant
|
||||
import com.tencent.qqnt.trooplist.ITroopListRepoApi
|
||||
import com.tencent.qqnt.troopmemberlist.ITroopMemberListRepoApi
|
||||
import friendlist.stUinInfo
|
||||
import io.ktor.client.call.body
|
||||
@ -76,6 +77,7 @@ import moe.fuqiuluo.shamrock.tools.putBuf32Long
|
||||
import moe.fuqiuluo.shamrock.utils.FileUtils
|
||||
import moe.fuqiuluo.shamrock.utils.PlatformUtils
|
||||
import moe.fuqiuluo.shamrock.utils.PlatformUtils.QQ_9_0_71_VER
|
||||
import moe.fuqiuluo.shamrock.utils.PlatformUtils.QQ_9_0_80_VER
|
||||
import moe.fuqiuluo.shamrock.utils.PlatformUtils.QQ_9_0_8_VER
|
||||
import moe.fuqiuluo.shamrock.xposed.helper.AppRuntimeFetcher
|
||||
import moe.fuqiuluo.shamrock.xposed.helper.NTServiceFetcher
|
||||
@ -228,6 +230,7 @@ internal object GroupSvc: QQInterfaces() {
|
||||
}
|
||||
|
||||
suspend fun getGroupList(refresh: Boolean): Result<List<TroopInfo>> {
|
||||
if (PlatformUtils.getQQVersionCode() <= QQ_9_0_80_VER) {
|
||||
val service = app.getRuntimeService(ITroopInfoService::class.java, "all")
|
||||
|
||||
var troopList = service.allTroopList
|
||||
@ -239,6 +242,15 @@ internal object GroupSvc: QQInterfaces() {
|
||||
}
|
||||
}
|
||||
return Result.success(troopList)
|
||||
} else {
|
||||
val service = QRoute.api(ITroopListRepoApi::class.java)
|
||||
val troopList = service.troopListFromCache
|
||||
if (troopList == null || troopList.isEmpty() || refresh) {
|
||||
service.fetchTroopList(true)
|
||||
return Result.success(service.troopListFromCache)
|
||||
}
|
||||
return Result.success(troopList)
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun getNotJoinedGroupInfo(groupId: Long): Result<NotJoinedGroupInfo> {
|
||||
|
@ -161,7 +161,7 @@ internal object RichProtoSvc: QQInterfaces() {
|
||||
): String {
|
||||
val isNtServer = originalUrl.startsWith("/download")
|
||||
if (isNtServer) {
|
||||
val tmpRKey = NtV2RichMediaSvc.getTempNtRKey()
|
||||
val tmpRKey = getTempNtRKey()
|
||||
if (tmpRKey.isSuccess) {
|
||||
val tmpRKeyRsp = tmpRKey.getOrThrow()
|
||||
val tmpRKeyMap = hashMapOf<UInt, String>()
|
||||
@ -169,10 +169,10 @@ internal object RichProtoSvc: QQInterfaces() {
|
||||
tmpRKeyMap[rKeyInfo.type] = rKeyInfo.rkey
|
||||
}
|
||||
val rkey = tmpRKeyMap[when(chatType) {
|
||||
MsgConstant.KCHATTYPEDISC, MsgConstant.KCHATTYPEGROUP -> 10u
|
||||
MsgConstant.KCHATTYPEC2C -> 20u
|
||||
MsgConstant.KCHATTYPEGUILD -> 10u
|
||||
else -> 0u
|
||||
MsgConstant.KCHATTYPEDISC, MsgConstant.KCHATTYPEGROUP -> 20u
|
||||
MsgConstant.KCHATTYPEC2C -> 10u
|
||||
MsgConstant.KCHATTYPEGUILD -> 20u
|
||||
else -> 20u
|
||||
}]
|
||||
if (rkey != null) {
|
||||
return "https://$MULTIMEDIA_DOMAIN$originalUrl$rkey"
|
||||
@ -242,7 +242,7 @@ internal object RichProtoSvc: QQInterfaces() {
|
||||
tmpRKeyRsp.rkeys?.forEach { rKeyInfo ->
|
||||
tmpRKeyMap[rKeyInfo.type] = rKeyInfo.rkey
|
||||
}
|
||||
val rkey = tmpRKeyMap[10u]
|
||||
val rkey = tmpRKeyMap[20u]
|
||||
if (rkey != null) {
|
||||
return "https://$MULTIMEDIA_DOMAIN$originalUrl$rkey"
|
||||
}
|
||||
@ -293,7 +293,7 @@ internal object RichProtoSvc: QQInterfaces() {
|
||||
tmpRKeyRsp.rkeys?.forEach { rKeyInfo ->
|
||||
tmpRKeyMap[rKeyInfo.type] = rKeyInfo.rkey
|
||||
}
|
||||
val rkey = tmpRKeyMap[20u]
|
||||
val rkey = tmpRKeyMap[10u]
|
||||
if (rkey != null) {
|
||||
return "https://$MULTIMEDIA_DOMAIN$originalUrl$rkey"
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ import kotlin.random.Random
|
||||
internal object PlatformUtils {
|
||||
const val QQ_9_0_8_VER = 5540
|
||||
const val QQ_9_0_71_VER = 6702
|
||||
const val QQ_9_0_80_VER = 6869
|
||||
|
||||
fun getQUA(): String {
|
||||
return "V1_AND_SQ_${getQQVersion(MobileQQ.getContext())}_${getQQVersionCode()}_YYB_D"
|
||||
|
Reference in New Issue
Block a user