-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #107 from Softawii/feature/curupira-v2
Feature/curupira v2
- Loading branch information
Showing
29 changed files
with
788 additions
and
1,291 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
20 changes: 20 additions & 0 deletions
20
src/main/java/com/softawii/capivara/config/SpringContextProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package com.softawii.capivara.config; | ||
|
||
import com.softawii.curupira.v2.integration.ContextProvider; | ||
import org.springframework.context.ApplicationContext; | ||
import org.springframework.stereotype.Component; | ||
|
||
@Component | ||
public class SpringContextProvider implements ContextProvider { | ||
|
||
private final ApplicationContext context; | ||
|
||
public SpringContextProvider(ApplicationContext context) { | ||
this.context = context; | ||
} | ||
|
||
@Override | ||
public <T> T getInstance(Class<T> aClass) { | ||
return context.getBean(aClass); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
src/main/java/com/softawii/capivara/controller/SocialExceptionController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package com.softawii.capivara.controller; | ||
|
||
import com.softawii.capivara.exceptions.MissingPermissionsException; | ||
import com.softawii.curupira.v2.annotations.DiscordException; | ||
import com.softawii.curupira.v2.annotations.DiscordExceptions; | ||
import com.softawii.curupira.v2.annotations.LocaleType; | ||
import com.softawii.curupira.v2.localization.LocalizationManager; | ||
import net.dv8tion.jda.api.interactions.DiscordLocale; | ||
import net.dv8tion.jda.api.interactions.Interaction; | ||
import net.dv8tion.jda.api.interactions.callbacks.IReplyCallback; | ||
import org.springframework.stereotype.Component; | ||
|
||
@Component | ||
@DiscordExceptions(classes = SocialTwitterGroup.class) | ||
public class SocialExceptionController { | ||
|
||
private final MainExceptionController mainExceptionController; | ||
|
||
public SocialExceptionController(MainExceptionController mainExceptionController) { | ||
this.mainExceptionController = mainExceptionController; | ||
} | ||
|
||
@DiscordException(MissingPermissionsException.class) | ||
public void missingPermissions(Throwable throwable, Interaction interaction, LocalizationManager localization, @LocaleType DiscordLocale locale) { | ||
if (interaction instanceof IReplyCallback callback) { | ||
callback.reply(localization.getLocalizedString("social.error.missing_permissions", locale)).setEphemeral(true).queue(); | ||
} | ||
} | ||
|
||
@DiscordException(Throwable.class) | ||
public void generic(Throwable throwable, Interaction interaction, LocalizationManager localization, @LocaleType DiscordLocale locale) { | ||
if (interaction instanceof IReplyCallback callback) { | ||
callback.reply(localization.getLocalizedString("social.error.generic", locale)).setEphemeral(true).queue(); | ||
} | ||
|
||
this.mainExceptionController.handle(throwable, interaction); | ||
} | ||
} |
62 changes: 62 additions & 0 deletions
62
src/main/java/com/softawii/capivara/controller/SocialTwitterGroup.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
package com.softawii.capivara.controller; | ||
|
||
import com.softawii.capivara.exceptions.MissingPermissionsException; | ||
import com.softawii.capivara.services.TwitterParserConfigService; | ||
import com.softawii.curupira.v2.annotations.DiscordController; | ||
import com.softawii.curupira.v2.annotations.RequestInfo; | ||
import com.softawii.curupira.v2.annotations.commands.DiscordCommand; | ||
import com.softawii.curupira.v2.annotations.interactions.DiscordButton; | ||
import com.softawii.curupira.v2.api.TextLocaleResponse; | ||
import net.dv8tion.jda.api.Permission; | ||
import net.dv8tion.jda.api.entities.Guild; | ||
import net.dv8tion.jda.api.entities.Member; | ||
import net.dv8tion.jda.api.entities.channel.unions.MessageChannelUnion; | ||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; | ||
import net.dv8tion.jda.api.interactions.DiscordLocale; | ||
import net.dv8tion.jda.api.interactions.components.buttons.Button; | ||
import org.springframework.stereotype.Component; | ||
|
||
@Component | ||
@DiscordController(parent = "social", value = "twitter", description = "Twitter Controller", permissions = Permission.ADMINISTRATOR, | ||
resource = "social", locales = DiscordLocale.PORTUGUESE_BRAZILIAN) | ||
public class SocialTwitterGroup { | ||
public static final String deleteBotTwitterMessage = "twitter-bot-message-delete"; | ||
private final TwitterParserConfigService service; | ||
|
||
public SocialTwitterGroup(TwitterParserConfigService service) { | ||
this.service = service; | ||
} | ||
|
||
public static Button generateDeleteButton(long authorId) { | ||
return Button.danger(String.format("%s:%s", deleteBotTwitterMessage, authorId), "Apagar"); | ||
} | ||
|
||
@DiscordCommand(name = "enable", description = "Enable the automatic Twitter link transformation service") | ||
public TextLocaleResponse enable(Guild guild) { | ||
service.enable(guild.getIdLong()); | ||
return new TextLocaleResponse("social.twitter.enable.response", guild.getName()); | ||
} | ||
|
||
@DiscordCommand(name = "disable", description = "Disable the automatic Twitter link transformation service") | ||
public TextLocaleResponse disable(Guild guild) { | ||
service.disable(guild.getIdLong()); | ||
return new TextLocaleResponse("social.twitter.disable.response", guild.getName()); | ||
} | ||
|
||
@DiscordButton(name = deleteBotTwitterMessage, ephemeral = true) | ||
public TextLocaleResponse delete(ButtonInteractionEvent event, @RequestInfo Member member) throws MissingPermissionsException { | ||
// Format: ButtonID:Owner | ||
String ownerId = event.getComponentId().split(":")[1]; | ||
String messageOwner = member.getId(); | ||
|
||
MessageChannelUnion channel = event.getChannel(); | ||
|
||
if (!messageOwner.equals(ownerId)) { | ||
throw new MissingPermissionsException(); | ||
} | ||
|
||
channel.deleteMessageById(event.getMessageId()).queue(); | ||
return new TextLocaleResponse("twitter.delete.response"); | ||
} | ||
|
||
} |
Oops, something went wrong.