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