Skip to content
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

Change the "mirror" command to completely mirror gCLI #942

Closed
wants to merge 27 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
89ba30b
Change the "mirror" command to completely mirror gCLI instead of prev…
libraryaddict Jul 30, 2022
8f945d6
Partially revert "Change the "mirror" command to completely mirror gC…
libraryaddict Jul 31, 2022
bcddeb8
Use the existing mirror code, but ensure html is logged
libraryaddict Aug 1, 2022
a854e18
Merge branch 'main' into mirror-gcli
libraryaddict Aug 1, 2022
cb4dbc1
Create MirrorCommandTest.java
jaadams5 Aug 2, 2022
14a0f01
Update MirrorCommandTest.java
jaadams5 Aug 2, 2022
b567aad
Works
jaadams5 Aug 2, 2022
df9de9e
Merge branch 'mirror' into pr/942
jaadams5 Aug 2, 2022
abdb936
Update RequestLogger.java
jaadams5 Aug 2, 2022
7151b7a
tweaks
jaadams5 Aug 3, 2022
bb0e5c1
Add printList tests
libraryaddict Aug 4, 2022
f6f1560
Merge branch 'main' into pr/942
jaadams5 Aug 4, 2022
1450402
Update RequestLogger.java
jaadams5 Aug 4, 2022
fd392f4
Update MirrorCommandTest.java
jaadams5 Aug 4, 2022
f544e4b
Lint etc.
jaadams5 Aug 4, 2022
3473688
Use equals comparison instead of contains
libraryaddict Aug 5, 2022
3b91237
Stop mirror logging after each test as well
libraryaddict Aug 5, 2022
26da8e8
Initial
jaadams5 Aug 5, 2022
2a7b5d1
Update MirrorCommandTest.java
jaadams5 Aug 5, 2022
25d67b4
Merge branch 'main' into MirrorTest
jaadams5 Aug 9, 2022
b3bdbb7
Update MirrorCommandTest.java
jaadams5 Aug 9, 2022
4051670
Update MirrorCommandTest.java
jaadams5 Aug 9, 2022
80cbfef
Merge branch 'main' into MirrorTest
jaadams5 Aug 10, 2022
eca35f7
Update MirrorCommandTest.java
jaadams5 Aug 10, 2022
ec03f4d
Merge branch 'main' into MirrorTest
jaadams5 Aug 10, 2022
e9f3827
Merge branch 'main' into MirrorTest
jaadams5 Aug 11, 2022
8042682
Merge branch 'MirrorTest' into pr/942
jaadams5 Aug 11, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
77 changes: 38 additions & 39 deletions src/net/sourceforge/kolmafia/RequestLogger.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public void println(final String line) {
RequestLogger.printLine(line);
}

public static final void printList(final List<?> printing, final PrintStream ostream) {
public static void printList(final List<?> printing, final PrintStream ostream) {
if (printing == null || ostream == null) {
return;
}
Expand All @@ -56,7 +56,7 @@ public static final void printList(final List<?> printing, final PrintStream ost
ostream.println(
printing.stream()
.filter(Objects::nonNull)
.map(o -> o.toString())
.map(Object::toString)
.collect(Collectors.joining(KoLConstants.LINE_BREAK)));
return;
}
Expand All @@ -69,34 +69,33 @@ public static final void printList(final List<?> printing, final PrintStream ost
return;
}

printLine(buffer.toString(), false);

buffer.setLength(0);
SkillDatabase.generateSkillList(buffer, true);
KoLConstants.commandBuffer.append(buffer.toString());
RequestLogger.mirrorStream.println(buffer);
}

public static final void printList(final List<?> printing) {
public static void printList(final List<?> printing) {
RequestLogger.printList(printing, INSTANCE);
}

public static final void printLine() {
public static void printLine() {
RequestLogger.printLine(MafiaState.CONTINUE, "", true);
}

public static final void printLine(final String message) {
public static void printLine(final String message) {
RequestLogger.printLine(MafiaState.CONTINUE, message, true);
}

public static final void printLine(final String message, final boolean addToBuffer) {
public static void printLine(final String message, final boolean addToBuffer) {
RequestLogger.printLine(MafiaState.CONTINUE, message, addToBuffer);
}

public static final void printLine(final MafiaState state, final String message) {
public static void printLine(final MafiaState state, final String message) {
RequestLogger.printLine(state, message, true);
}

public static final void printLine(final MafiaState state, String message, boolean addToBuffer) {
public static void printLine(final MafiaState state, String message, boolean addToBuffer) {
if (message == null) {
return;
}
Expand All @@ -108,16 +107,15 @@ public static final void printLine(final MafiaState state, String message, boole
}

RequestLogger.previousUpdateString = message;

RequestLogger.outputStream.println(message);
RequestLogger.mirrorStream.println(message);
RequestLogger.debugStream.println(message);

if (StaticEntity.backtraceTrigger != null && message.contains(StaticEntity.backtraceTrigger)) {
StaticEntity.printStackTrace("Backtrace triggered by message");
}

if (!addToBuffer) {
RequestLogger.mirrorStream.println(message);
return;
}

Expand Down Expand Up @@ -171,10 +169,11 @@ public static final void printLine(final MafiaState state, String message, boole

colorBuffer.append(KoLConstants.LINE_BREAK);
KoLConstants.commandBuffer.append(colorBuffer.toString());
RequestLogger.mirrorStream.println(colorBuffer);
RelayServer.addStatusMessage(colorBuffer.toString());
}

public static final PrintStream openStream(
public static PrintStream openStream(
final String filename, final PrintStream originalStream, boolean hasLocation) {
if (!hasLocation && KoLCharacter.getUserName().isEmpty()) {
return NullStream.INSTANCE;
Expand All @@ -194,37 +193,37 @@ public static final PrintStream openStream(
return LogStream.openStream(filename, false);
}

public static final void closeStream(final PrintStream stream) {
public static void closeStream(final PrintStream stream) {
try {
stream.close();
} catch (Exception e) {
}
}

public static final void openCustom(PrintStream out) {
public static void openCustom(PrintStream out) {
RequestLogger.outputStream = out;
}

public static final void closeCustom() {
public static void closeCustom() {
RequestLogger.closeStream(RequestLogger.outputStream);
RequestLogger.outputStream = KoLmafiaTUI.outputStream;
}

public static final void openMirror(final String location) {
public static void openMirror(final String location) {
RequestLogger.mirrorStream =
RequestLogger.openStream(location, RequestLogger.mirrorStream, true);
}

public static final void closeMirror() {
public static void closeMirror() {
RequestLogger.closeStream(RequestLogger.mirrorStream);
RequestLogger.mirrorStream = NullStream.INSTANCE;
}

public static final PrintStream getSessionStream() {
public static PrintStream getSessionStream() {
return RequestLogger.sessionStream;
}

public static final void openSessionLog() {
public static void openSessionLog() {
RequestLogger.sessionStream =
RequestLogger.openStream(
KoLConstants.SESSIONS_DIRECTORY
Expand All @@ -236,32 +235,32 @@ public static final void openSessionLog() {
false);
}

public static final void closeSessionLog() {
public static void closeSessionLog() {
RequestLogger.closeStream(RequestLogger.sessionStream);
RequestLogger.sessionStream = NullStream.INSTANCE;
}

public static final void updateSessionLog() {
public static void updateSessionLog() {
RequestLogger.sessionStream.println();
}

public static final void updateSessionLog(final String line) {
public static void updateSessionLog(final String line) {
if (StaticEntity.backtraceTrigger != null && line.contains(StaticEntity.backtraceTrigger)) {
StaticEntity.printStackTrace("Backtrace triggered by session log message");
}

RequestLogger.sessionStream.println(line);
}

public static final boolean isDebugging() {
public static boolean isDebugging() {
return RequestLogger.debugStream != NullStream.INSTANCE;
}

public static final PrintStream getDebugStream() {
public static PrintStream getDebugStream() {
return RequestLogger.debugStream;
}

public static final void openDebugLog() {
public static void openDebugLog() {
RequestLogger.debugStream =
RequestLogger.openStream(
"DEBUG_" + KoLConstants.DAILY_FORMAT.format(new Date()) + ".txt",
Expand All @@ -270,66 +269,66 @@ public static final void openDebugLog() {
NamedListenerRegistry.fireChange("(debug)");
}

public static final void closeDebugLog() {
public static void closeDebugLog() {
RequestLogger.closeStream(RequestLogger.debugStream);
RequestLogger.debugStream = NullStream.INSTANCE;
NamedListenerRegistry.fireChange("(debug)");
}

public static final void updateDebugLog() {
public static void updateDebugLog() {
RequestLogger.debugStream.println();
}

public static final void updateDebugLog(final String line) {
public static void updateDebugLog(final String line) {
if (StaticEntity.backtraceTrigger != null && line.contains(StaticEntity.backtraceTrigger)) {
StaticEntity.printStackTrace("Backtrace triggered by debug log message");
}

RequestLogger.debugStream.println(line);
}

public static final void updateDebugLog(final Throwable t) {
public static void updateDebugLog(final Throwable t) {
t.printStackTrace(RequestLogger.debugStream);
}

public static final void updateDebugLog(final Object o) {
public static void updateDebugLog(final Object o) {
RequestLogger.debugStream.println(o.toString());
}

public static final boolean isTracing() {
public static boolean isTracing() {
return RequestLogger.traceStream != NullStream.INSTANCE;
}

public static final PrintStream getTraceStream() {
public static PrintStream getTraceStream() {
return RequestLogger.traceStream;
}

public static final void openTraceStream() {
public static void openTraceStream() {
RequestLogger.traceStream =
RequestLogger.openStream(
"TRACE_" + KoLConstants.DAILY_FORMAT.format(new Date()) + ".txt",
RequestLogger.traceStream,
true);
}

public static final void closeTraceStream() {
public static void closeTraceStream() {
RequestLogger.closeStream(RequestLogger.traceStream);
RequestLogger.traceStream = NullStream.INSTANCE;
}

private static final StringBuilder traceBuffer = new StringBuilder();

public static final synchronized void trace(String message) {
public static synchronized void trace(String message) {
if (RequestLogger.isTracing()) {
traceBuffer.setLength(0);
traceBuffer.append((new Date()).getTime());
traceBuffer.append(": ");
traceBuffer.append(message);
RequestLogger.traceStream.println(traceBuffer.toString());
RequestLogger.traceStream.println(traceBuffer);
}
}

public static final void registerRequest(final GenericRequest request, final String urlString) {
public static void registerRequest(final GenericRequest request, final String urlString) {
try {
RequestLogger.doRegister(request, urlString);
} catch (Exception e) {
Expand Down Expand Up @@ -1584,7 +1583,7 @@ private static void doRegister(final GenericRequest request, final String urlStr
RequestLogger.updateSessionLog(urlString);
}

public static final void registerLocation(final String location) {
public static void registerLocation(final String location) {
String message = "[" + KoLAdventure.getAdventureCount() + "] " + location;

RequestLogger.printLine();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,20 @@ public MirrorLogCommand() {

@Override
public void run(final String command, String parameters) {
if (command.indexOf("end") != -1
|| command.indexOf("stop") != -1
|| command.indexOf("close") != -1
if (command.contains("end")
|| command.contains("stop")
|| command.contains("close")
|| parameters.length() == 0
|| parameters.equals("end")
|| parameters.equals("stop")
|| parameters.equals("close")) {
RequestLogger.closeMirror();
KoLmafia.updateDisplay("Mirror stream closed.");
} else {
if (!parameters.endsWith(".txt")) {
if (!parameters.endsWith(".txt")
&& !((parameters.endsWith(".html") || parameters.endsWith(".htm")))) {
parameters += ".txt";
}

RequestLogger.openMirror(parameters);
}
}
Expand Down