Warning: session_start(): open(/var/lib/php/sessions/sess_bp0dub6r4djs5nhhh4oj57mi3k, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
!include once #1026298 // DynTalkBot2 for JDA 4.0
standardBot1 RolesExporter {
init {
myName = "HyperCubes";
preprocessAtSelfToMyName = true;
}
sync S processSimplifiedLine(S s, O... _) null {
try answer super.processSimplifiedLine(s, _);
if null (s = dropMyPrefixOrNull(s)) null;
optPar long channelID;
optPar Message msg;
Message.Attachment attachment = msg == null ? null : first(msg.getAttachments());
if (attachment != null) {
File file = prepareCacheProgramFile(guildID + "/" + attachment.getFileName());
print("Downloading attachment: " + file);
deleteFile(file);
if (!attachment.downloadToFile(file)) ret "Couldn't download attachment";
O json;
try {
json = decodeJson(loadTextFile(file));
} catch e {
ret "Not a JSON file";
}
O diff = JsonDiff.diff(makeData(), json);
ret "Differences: " + structForUser(diff);
}
}
Map makeData() {
L allRoles = map(guild.getRoles(),
r -> litorderedmap(
"name" := r.getName(),
"id" := r.getIdLong(),
"permissions" := r.getPermissionsRaw()));
L members = map(guild.getMembers(),
m -> litorderedmap(
"nickName" := m.getNickname(),
"effectiveName" := m.getEffectiveName(),
"userName" := m.getUser().getName(),
"id" := m.getIdLong(),
"isOwner" := trueOrNull(m.isOwner()),
"roles" := map(m.getRoles(),
r -> litorderedmap("name" := r.getName(), "id" := r.getIdLong()))));
ret litorderedmap(
dataType := "members and roles for guild",
dateExported := dateWithSecondsGMT(),
guild := litorderedmap(
name := guild.getName(),
id := guild.getIdLong()),
+allRoles,
+members);
}
}