Implement reacting to stories

This commit is contained in:
AsamK 2022-10-30 14:41:02 +01:00
parent 207764e0be
commit fea19c9e20
9 changed files with 33 additions and 10 deletions

View file

@ -45,6 +45,9 @@ public class SendReactionCommand implements JsonRpcLocalCommand {
.type(long.class)
.help("Specify the timestamp of the message to which to react.");
subparser.addArgument("-r", "--remove").help("Remove a reaction.").action(Arguments.storeTrue());
subparser.addArgument("--story")
.help("React to a story instead of a normal message")
.action(Arguments.storeTrue());
}
@Override
@ -64,13 +67,15 @@ public class SendReactionCommand implements JsonRpcLocalCommand {
final var isRemove = Boolean.TRUE.equals(ns.getBoolean("remove"));
final var targetAuthor = ns.getString("target-author");
final var targetTimestamp = ns.getLong("target-timestamp");
final var isStory = Boolean.TRUE.equals(ns.getBoolean("story"));
try {
final var results = m.sendMessageReaction(emoji,
isRemove,
CommandUtil.getSingleRecipientIdentifier(targetAuthor, m.getSelfNumber()),
targetTimestamp,
recipientIdentifiers);
recipientIdentifiers,
isStory);
outputResult(outputWriter, results);
} catch (GroupNotFoundException | NotAGroupMemberException | GroupSendingNotAllowedException e) {
throw new UserErrorException(e.getMessage());

View file

@ -364,7 +364,8 @@ public class DbusManagerImpl implements Manager {
final boolean remove,
final RecipientIdentifier.Single targetAuthor,
final long targetSentTimestamp,
final Set<RecipientIdentifier> recipients
final Set<RecipientIdentifier> recipients,
final boolean isStory
) throws IOException, NotAGroupMemberException, GroupNotFoundException, GroupSendingNotAllowedException {
return handleMessage(recipients,
numbers -> signal.sendMessageReaction(emoji,

View file

@ -287,7 +287,8 @@ public class DbusSignalImpl implements Signal {
targetSentTimestamp,
getSingleRecipientIdentifiers(recipients, m.getSelfNumber()).stream()
.map(RecipientIdentifier.class::cast)
.collect(Collectors.toSet()));
.collect(Collectors.toSet()),
false);
checkSendMessageResults(results);
return results.timestamp();
} catch (IOException e) {
@ -485,7 +486,8 @@ public class DbusSignalImpl implements Signal {
remove,
getSingleRecipientIdentifier(targetAuthor, m.getSelfNumber()),
targetSentTimestamp,
Set.of(getGroupRecipientIdentifier(groupId)));
Set.of(getGroupRecipientIdentifier(groupId)),
false);
checkSendMessageResults(results);
return results.timestamp();
} catch (IOException e) {