10000 Adds text channel from voice channels for congressus chat by alexscott · Pull Request #12 · PartiPirate/discord-bots · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Adds text channel from voice channels for congressus chat #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
2 changes: 1 addition & 1 deletion compile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ echo "Start compilation"
sudo mkdir -p "$PWD"/java-project/bin

sudo rm -rf "$PWD"/java-project/bin/*
sudo docker run --rm -v "$PWD"/java-project/:/usr/src/myapp/ -w /usr/src/myapp openjdk:8 javac -classpath lib/JDA-5.0.0-beta.4-withDependencies.jar:lib/json-20220924.0.0.jar:lib/slf4j-api-1.7.25.jar:lib/gradle-wrapper.jar:lib/unirest-java-1.3.0.jar:lib/org-apache-commons-logging.jar:lib/httpcore-4.4.7.jar:lib/jackson-annotations-2.9.1.jar:lib/base64-2.3.9.jar:lib/commons-io-2.6.jar:lib/httpclient-4.5.6.jar:lib/jackson-core-2.9.8.jar:lib/jackson-databind-2.9.8.jar:lib/jsoup-1.11.3.jar:lib/lava-common-1.1.0.jar:lib/lavaplayer-natives-1.3.13.jar:lib/lavaplayer-1.3.19.jar:lib/commons-text-1.8.jar:lib/commons-lang3-3.9.jar -sourcepath src -d bin/ $(find . -type f -name '*.java' | sed -e 's:java-project/::g')
sudo docker run --rm -v "$PWD"/java-project/:/usr/src/myapp/ -w /usr/src/myapp openjdk:8 javac -classpath lib/JDA-5.0.0-beta.10-withDependencies.jar:lib/json-20220924.0.0.jar:lib/slf4j-api-1.7.25.jar:lib/gradle-wrapper.jar:lib/unirest-java-1.3.0.jar:lib/org-apache-commons-logging.jar:lib/httpcore-4.4.7.jar:lib/jackson-annotations-2.9.1.jar:lib/base64-2.3.9.jar:lib/commons-io-2.6.jar:lib/httpclient-4.5.6.jar:lib/jackson-core-2.9.8.jar:lib/jackson-databind-2.9.8.jar:lib/jsoup-1.11.3.jar:lib/lava-common-1.1.0.jar:lib/lavaplayer-natives-1.3.13.jar:lib/lavaplayer-1.3.19.jar:lib/commons-text-1.8.jar:lib/commons-lang3-3.9.jar -sourcepath src -d bin/ $(find . -type f -name '*.java' | sed -e 's:java-project/::g')

echo "End compilation"

2 changes: 1 addition & 1 deletion java-project/.classpath
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@
<classpathentry kind="lib" path="lib/commons-text-1.8.jar"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.9.jar"/>
<classpathentry kind="lib" path="lib/spymemcached-2.8.4.jar"/>
<classpathentry kind="lib" path="lib/JDA-5.0.0-beta.6-withDependencies.jar"/>
<classpathentry kind="lib" path="lib/JDA-5.0.0-beta.10-withDependencies.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
2 changes: 1 addition & 1 deletion java-project/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ cat hosts >> /etc/hosts

echo additional hosts added

java -Dfile.encoding=UTF-8 -classpath bin:lib/JDA-5.0.0-beta.6-withDependencies.jar:lib/json-20220924.0.0.jar:lib/slf4j-api-1.7.25.jar:lib/gradle-wrapper.jar:lib/unirest-java-1.3.0.jar:lib/org-apache-commons-logging.jar:lib/httpcore-4.4.7.jar:lib/jackson-annotations-2.9.1.jar:lib/base64-2.3.9.jar:lib/commons-io-2.6.jar:lib/httpclient-4.5.6.jar:lib/jackson-core-2.9.8.jar:lib/jackson-databind-2.9.8.jar:lib/jsoup-1.11.3.jar:lib/lava-common-1.1.0.jar:lib/lavaplayer-natives-1.3.13.jar:lib/lavaplayer-1.3.19.jar:lib/commons-text-1.8.jar:lib/commons-lang3-3.9.jar fr.partipirate.discord.bots.congressus.CongressusBot $configuration
java -Dfile.encoding=UTF-8 -classpath bin:lib/JDA-5.0.0-beta.10-withDependencies.jar:lib/json-20220924.0.0.jar:lib/slf4j-api-1.7.25.jar:lib/gradle-wrapper.jar:lib/unirest-java-1.3.0.jar:lib/org-apache-commons-logging.jar:lib/httpcore-4.4.7.jar:lib/jackson-annotations-2.9.1.jar:lib/base64-2.3.9.jar:lib/commons-io-2.6.jar:lib/httpclient-4.5.6.jar:lib/jackson-core-2.9.8.jar:lib/jackson-databind-2.9.8.jar:lib/jsoup-1.11.3.jar:lib/lava-common-1.1.0.jar:lib/lavaplayer-natives-1.3.13.jar:lib/lavaplayer-1.3.19.jar:lib/commons-text-1.8.jar:lib/commons-lang3-3.9.jar fr.partipirate.discord.bots.congressus.CongressusBot $configuration
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,18 @@ public void doCommand(User user, MessageChannel channel, Guild guild, String[] c

// eb.setDescription("Text");
eb.addField("Horaire", StringEscapeUtils.unescapeHtml4(minMeeting.getString("meetingDatetime")), false);
eb.addField("Lieu", StringEscapeUtils.unescapeHtml4(minMeeting.getJSONObject("location").getString("type")), false);
if (minMeeting.getJSONObject("location").has("discord")) {
eb.addField(":hash:", StringEscapeUtils.unescapeHtml4(minMeeting.getJSONObject("location").getJSONObject("discord").getJSONObject("text").getString("title")), true);
eb.addField(":sound:", StringEscapeUtils.unescapeHtml4(minMeeting.getJSONObject("location").getJSONObject("discord").getJSONObject("vocal").getString("title")), true);
if (minMeeting.has("location")) {
if (minMeeting.getJSONObject("location").has("type")) {
eb.addField("Lieu", StringEscapeUtils.unescapeHtml4(minMeeting.getJSONObject("location").getString("type")), false);
}
if (minMeeting.getJSONObject("location").has("discord")) {
if (minMeeting.getJSONObject("location").getJSONObject("discord").has("text")) {
eb.addField(":hash:", StringEscapeUtils.unescapeHtml4(minMeeting.getJSONObject("location").getJSONObject("discord").getJSONObject("text").getString("title")), true);
}
if (minMeeting.getJSONObject("location").getJSONObject("discord").has("vocal")) {
eb.addField(":sound:", StringEscapeUtils.unescapeHtml4(minMeeting.getJSONObject("location").getJSONObject("discord").getJSONObject("vocal").getString("title")), true);
}
}
}

channel.sendMessageEmbeds(eb.build()).complete();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,13 @@ else if (commandParts.length > 1) {
members.addAll(guild.getMembersByName(search, true));
members.addAll(guild.getMembersByNickname(search, true));

// looking for accounts from ID
if (search.matches("<@\\d+>")) {
search = search.substring(2, search.length()-1);
System.out.println("Search for id "+search);
members.add(guild.getMemberById(search));
}

System.out.println("Found : " + members);

if (members.size() == 0) {
Expand Down Expand Up @@ -85,4 +92,4 @@ public void accept(List<Member> members) {
public String getCommandHelp() {
return "Permet de remettre à jour ses droits ou ceux d'autres personnes en les nommant.";
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,13 @@ public static String syncAgenda(Guild guild) {
JSONArray congressusMeetings = object.getJSONArray("result");
List<ScheduledEvent> discordEvents = guild.getScheduledEvents();

createMissingEvents(congressusMeetings, discordEvents, guild);
int errors = createMissingEvents(congressusMeetings, discordEvents, guild);

deleteOldEvents(congressusMeetings, discordEvents, guild);

return "La liste des événements a été mise à jour";
String msg = "La liste des événements a été mise à jour";
if (errors > 0) msg += " avec " + errors + " erreurs";
return msg;
}
catch (Exception e) {
for (StackTraceElement el : e.getStackTrace())
Expand All @@ -90,13 +92,24 @@ protected static ScheduledEvent getEvent(JSONObject meeting, List<ScheduledEvent
return null;
}

protected static void createMissingEvents(JSONArray congressusMeetings, List<ScheduledEvent> discordEvents,
protected static int createMissingEvents(JSONArray congressusMeetings, List<ScheduledEvent> discordEvents,
Guild guild) {
/* Create or update missing discord events */
/**
* Create or update missing discord events
*
* @return number of errors during creation
*/
int errors = 0;
for (int i = 0; i < congressusMeetings.length(); ++i) {
JSONObject meeting = congressusMeetings.getJSONObject(i);
try {
createEvent(meeting, discordEvents, guild);
} catch (Exception e) {
System.err.println("Erreur pendant la création de l'événement " + meeting.getString("meetingTitle"));
errors++;
}
}
return errors;
}

protected static GuildChannel getDiscordChannel(JSONObject meeting, Guild guild) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,16 @@ public boolean canReceiveUser() {
return this.recording;
}

private String getFullUser(User user) {
String username = user.getName();
// for compatibility with old accounts
String discriminator = user.getDiscriminator();
if (!discriminator.equals("0000")) {
username += "." + discriminator;
}
return username;
}

@Override
public void handleCombinedAudio(CombinedAudio combinedAudio) {
byte[] data = combinedAudio.getAudioData(1.0);
Expand All @@ -129,7 +139,7 @@ public void handleCombinedAudio(CombinedAudio combinedAudio) {
for (Member member : voicedChannel.getMembers()) {
User user = member.getUser();

String userFileName = getFilename(user.getName() + "." + user.getDiscriminator() + ".pcm");
String userFileName = getFilename(getFullUser(user) + ".pcm");
if (userFileName.equals(filename)) {
boolean isSpeaking = false;
for (User speakingUser : combinedAudio.getUsers()) {
Expand Down Expand Up @@ -169,7 +179,7 @@ public void handleUserAudio(UserAudio userAudio) {
}

private void addUserAudioData(User user, byte[] data) {
String userFileName = getFilename(user.getName() + "." + user.getDiscriminator() + ".pcm");
String userFileName = getFilename(getFullUser(user) + ".pcm");
try {
FileOutputStream userFis = userFileOutputStreams.get(userFileName);
if (userFis == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,28 @@ public ExternalChatHandler() {

@Override
public void onMessageUpdate(MessageUpdateEvent event) {
if (event.isFromType(ChannelType.TEXT)) {
if (event.isFromType(ChannelType.TEXT) || event.isFromType(ChannelType.VOICE)) {
handleMessage(event.getAuthor(), event.getChannel(), event.getMessage());
}
}

@Override
public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT)) {
if (event.isFromType(ChannelType.TEXT) || event.isFromType(ChannelType.VOICE)) {
handleMessage(event.getAuthor(), event.getChannel(), event.getMessage());
}
}

private String getFullUser(User user) {
String username = user.getName();
// for compatibility with old accounts
String discriminator = user.getDiscriminator();
if (!discriminator.equals("0000")) {
username += "#" + discriminator;
}
return username;
}

private void handleMessage(User author, Channel textChannel, Message sourceMessage) {
String message = sourceMessage.getContentRaw();

Expand All @@ -43,7 +53,7 @@ private void handleMessage(User author, Channel textChannel, Message sourceMessa
}

try {
String user = author.getName() + "#" + author.getDiscriminator();
String user = getFullUser(author);
user = URLEncoder.encode(user, java.nio.charset.StandardCharsets.UTF_8.toString());

String channel = URLEncoder.encode(textChannel.getName(), java.nio.charset.StandardCharsets.UTF_8.toString());
Expand Down Expand Up @@ -95,4 +105,4 @@ private void handleMessage(User author, Channel textChannel, Message sourceMessa
catch (Exception e) {
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,13 @@ public void onUserUpdateOnlineStatus(UserUpdateOnlineStatusEvent event) {
}

private String getFullUser(User user) {
return user.getName() + "#" + user.getDiscriminator();
String username = user.getName();
// for compatibility with old accounts
String discriminator = user.getDiscriminator();
if (!discriminator.equals("0000")) {
username += "#" + discriminator;
}
return username;
}

private boolean isWarnedUser(User user) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void onUserUpdateOnlineStatus(UserUpdateOnlineStatusEvent event) {

if (member.getOnlineStatus() == OnlineStatus.ONLINE && event.getOldOnlineStatus() == OnlineStatus.OFFLINE) {
// if (!member.getEffectiveName().equals("farlistener")) return; // test only
System.out.println("Test permissions on " + event.getUser().getName() + "#" + event.getUser().getDiscriminator());
System.out.println("Test permissions on " + getFullUser(event.getUser()));
updateMember(member);
}
}
Expand All @@ -85,7 +85,7 @@ private List<String> getMemberGroups(Member member, boolean doWarn) {
List<String> groups = new ArrayList<>();

try {
String nickname = member.getUser().getName() + "#" + member.getUser().getDiscriminator();
String nickname = getFullUser(member.getUser());
nickname = URLEncoder.encode(nickname, java.nio.charset.StandardCharsets.UTF_8.toString());

String getMemberUrl = PersonaeHelper.getUrl("do_getMember") + "&nickname=" + nickname;
Expand Down Expand Up @@ -231,7 +231,18 @@ private boolean isWarnedUser(User user) {
}

private String getFullUser(User user) {
return user.getName() + "#" + user.getDiscriminator();
/**
* Get unique full user name
* for migrated accounts, it's only the name
* for old accounts, it's name with discriminator
*/
String username = user.getName();
// for compatibility with old accounts
String discriminator = user.getDiscriminator();
if (!discriminator.equals("0000")) {
username += "#" + discriminator;
}
return username;
}

private void warnUser(User user) {
Expand Down
0