Fixed bugs
This commit is contained in:
parent
ec3b788a72
commit
c3802c72d1
@ -85,7 +85,7 @@ public class PrimaryController {
|
||||
destItems2.clear();
|
||||
} else {
|
||||
boolean added = false;
|
||||
if (supergroupInfo.getItem().canRestrictMembers()) {
|
||||
if (supergroupInfo.getItem().canRestrictMembers() || !REMOVE_MEMBERS_FROM_SOURCE_SUPERGROUP) {
|
||||
if (!srcItems2.contains(supergroupInfo.getItem().getBaseChatInfo())) {
|
||||
added |= srcItems2.add(supergroupInfo.getItem().getBaseChatInfo());
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ public class SettingsServiceImpl implements SettingsService {
|
||||
this.delayBetweenAdds.set(Duration.ofSeconds(seconds.getAsInt()));
|
||||
});
|
||||
}
|
||||
} catch (IOException e) {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
};
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import it.tdlight.jni.TdApi.AuthorizationStateReady;
|
||||
import it.tdlight.jni.TdApi.Chat;
|
||||
import it.tdlight.jni.TdApi.ChatMemberStatusAdministrator;
|
||||
import it.tdlight.jni.TdApi.ChatMemberStatusCreator;
|
||||
import it.tdlight.jni.TdApi.ChatMemberStatusMember;
|
||||
import it.tdlight.jni.TdApi.GetSupergroupFullInfo;
|
||||
import it.tdlight.jni.TdApi.Object;
|
||||
import it.tdlight.jni.TdApi.Supergroup;
|
||||
@ -104,16 +105,33 @@ public class TransferClient {
|
||||
|
||||
private Mono<Void> onUpdateSupergroup(Supergroup supergroup) {
|
||||
// Fast checks to ignore most unwanted infos
|
||||
if (!supergroup.isChannel
|
||||
&&
|
||||
(supergroup.status.getConstructor() == ChatMemberStatusAdministrator.CONSTRUCTOR
|
||||
|| supergroup.status.getConstructor() == ChatMemberStatusCreator.CONSTRUCTOR)) {
|
||||
if (supergroupInfos.put(supergroup.id, supergroup) == null) {
|
||||
return this
|
||||
.<SupergroupFullInfo>send(new GetSupergroupFullInfo(supergroup.id))
|
||||
.filter(TdResult::succeeded)
|
||||
.map(TdResult::result)
|
||||
.flatMap(supergroupFullInfo -> onUpdateSupergroupFullInfo(supergroup.id, supergroupFullInfo));
|
||||
if (!supergroup.isChannel) {
|
||||
boolean isRelevantSupergroup = false;
|
||||
|
||||
if (supergroup.status.getConstructor() == ChatMemberStatusAdministrator.CONSTRUCTOR
|
||||
|| supergroup.status.getConstructor() == ChatMemberStatusCreator.CONSTRUCTOR) {
|
||||
isRelevantSupergroup = true;
|
||||
} else if (!StaticSettings.requiresAdminPrivilegesOnSourceSupergroup()) {
|
||||
switch (supergroup.status.getConstructor()) {
|
||||
case ChatMemberStatusCreator.CONSTRUCTOR:
|
||||
case ChatMemberStatusAdministrator.CONSTRUCTOR:
|
||||
case ChatMemberStatusMember.CONSTRUCTOR:
|
||||
isRelevantSupergroup = true;
|
||||
break;
|
||||
default:
|
||||
isRelevantSupergroup = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isRelevantSupergroup) {
|
||||
if (supergroupInfos.put(supergroup.id, supergroup) == null) {
|
||||
|
||||
return this.<SupergroupFullInfo>send(new GetSupergroupFullInfo(supergroup.id))
|
||||
.filter(TdResult::succeeded)
|
||||
.map(TdResult::result)
|
||||
.flatMap(supergroupFullInfo -> onUpdateSupergroupFullInfo(supergroup.id, supergroupFullInfo));
|
||||
}
|
||||
}
|
||||
}
|
||||
return Mono.empty();
|
||||
@ -165,6 +183,16 @@ public class TransferClient {
|
||||
var adminStatus = (ChatMemberStatusAdministrator) baseInfo.status;
|
||||
var sgInfo = new SupergroupInfo(baseChatInfo, adminStatus.canRestrictMembers, adminStatus.canInviteUsers);
|
||||
return Optional.of(sgInfo);
|
||||
} else if (!StaticSettings.requiresAdminPrivilegesOnSourceSupergroup()) {
|
||||
switch (baseInfo.status.getConstructor()) {
|
||||
case ChatMemberStatusCreator.CONSTRUCTOR:
|
||||
case ChatMemberStatusAdministrator.CONSTRUCTOR:
|
||||
case ChatMemberStatusMember.CONSTRUCTOR:
|
||||
var sgInfo = new SupergroupInfo(baseChatInfo, false, false);
|
||||
return Optional.of(sgInfo);
|
||||
default:
|
||||
return Optional.empty();
|
||||
}
|
||||
} else {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user