From 23f0d533c6306726c2b91afe2db8c3d89e5621e7 Mon Sep 17 00:00:00 2001 From: Jafea7 Date: Tue, 6 May 2025 14:29:17 +1000 Subject: [PATCH] Convert Logback calls to Slf4j --- .../java/ctbrec/ui/CamrecApplication.java | 52 +++++----- .../java/ctbrec/ui/ClipboardListener.java | 11 +-- .../java/ctbrec/ui/DesktopIntegration.java | 27 +++-- .../src/main/java/ctbrec/ui/FileDownload.java | 12 +-- client/src/main/java/ctbrec/ui/Launcher.java | 12 +-- .../java/ctbrec/ui/RecordUntilDialog.java | 11 +-- .../ui/StreamSourceSelectionDialog.java | 14 +-- client/src/main/java/ctbrec/ui/TipDialog.java | 11 +-- .../src/main/java/ctbrec/ui/TokenLabel.java | 10 +- client/src/main/java/ctbrec/ui/TrayIcon.java | 17 ++-- .../ui/action/CheckModelAccountAction.java | 11 +-- .../ctbrec/ui/action/EditNotesAction.java | 12 +-- .../ctbrec/ui/action/ModelMassEditAction.java | 12 +-- .../ctbrec/ui/action/SetPortraitAction.java | 16 ++- .../ctbrec/ui/action/SetStopDateAction.java | 12 +-- .../ui/action/SetThumbAsPortraitAction.java | 11 +-- .../action/SwitchStreamResolutionAction.java | 10 +- .../main/java/ctbrec/ui/action/TipAction.java | 12 +-- .../ui/controls/AbstractFileSelectionBox.java | 12 +-- .../ctbrec/ui/controls/DateTimePicker.java | 10 +- .../ui/controls/SearchPopoverTreeList.java | 12 +-- .../ctbrec/ui/controls/StreamPreview.java | 25 +++-- .../main/java/ctbrec/ui/controls/Wizard.java | 8 +- .../table/StatePersistingTableView.java | 12 +-- .../ctbrec/ui/menu/FollowUnfollowHandler.java | 14 +-- .../ctbrec/ui/menu/ForcePriorityHandler.java | 16 ++- .../ctbrec/ui/menu/ModelMenuContributor.java | 15 ++- .../ctbrec/ui/menu/PauseResumeHandler.java | 16 ++- .../AbstractPostProcessingPaneFactory.java | 10 +- .../ui/settings/ActionSettingsPanel.java | 11 +-- .../ui/settings/CtbrecPreferencesStorage.java | 15 ++- .../ctbrec/ui/settings/FontSettingsPane.java | 14 +-- .../java/ctbrec/ui/settings/SettingsTab.java | 14 ++- .../ctbrec/ui/sites/AbstractConfigUI.java | 12 +-- .../bonga/BongaCamsElectronLoginDialog.java | 20 ++-- .../ui/sites/bonga/BongaCamsSiteUi.java | 14 ++- .../sites/bonga/BongaCamsUpdateService.java | 11 +-- .../sites/cam4/Cam4ElectronLoginDialog.java | 24 +++-- .../sites/cam4/Cam4FollowedUpdateService.java | 11 +-- .../java/ctbrec/ui/sites/cam4/Cam4SiteUi.java | 11 +-- .../ui/sites/cam4/Cam4UpdateService.java | 10 +- .../ChaturbateElectronLoginDialog.java | 18 ++-- .../ui/sites/chaturbate/ChaturbateSiteUi.java | 13 +-- .../sites/dreamcam/DreamcamUpdateService.java | 9 +- .../ui/sites/fc2live/Fc2LiveSiteUi.java | 12 +-- .../ui/sites/fc2live/Fc2UpdateService.java | 10 +- .../flirt4free/Flirt4FreeUpdateService.java | 14 ++- .../myfreecams/FriendsUpdateService.java | 12 +-- .../showup/ShowupElectronLoginDialog.java | 20 ++-- .../ctbrec/ui/sites/showup/ShowupSiteUi.java | 16 ++- .../streamate/StreamateFollowedService.java | 13 +-- .../streamate/StreamateUpdateService.java | 11 +-- .../StripchatElectronLoginDialog.java | 12 +-- .../ui/sites/stripchat/StripchatSiteUi.java | 12 +-- .../stripchat/StripchatUpdateService.java | 15 ++- .../java/ctbrec/ui/tabs/RecordingsTab.java | 31 +++--- .../main/java/ctbrec/ui/tabs/ThumbCell.java | 15 ++- .../java/ctbrec/ui/tabs/ThumbOverviewTab.java | 16 ++- .../ui/tabs/ThumbOverviewTabSearchTask.java | 14 +-- .../ui/tabs/recorded/RecordLaterTab.java | 12 +-- .../ui/tabs/recorded/RecordedModelsTab.java | 12 +-- common/src/main/java/ctbrec/Hmac.java | 10 +- .../main/java/ctbrec/LoggingInterceptor.java | 19 ++-- common/src/main/java/ctbrec/OS.java | 14 +-- .../java/ctbrec/event/EventBusHolder.java | 14 ++- .../main/java/ctbrec/event/EventHandler.java | 20 ++-- .../java/ctbrec/event/ExecuteProgram.java | 16 ++- .../main/java/ctbrec/io/CookieJarImpl.java | 24 ++--- common/src/main/java/ctbrec/io/IoUtils.java | 19 ++-- .../ctbrec/io/ProcessStreamRedirector.java | 11 +-- .../main/java/ctbrec/io/StreamRedirector.java | 13 +-- .../java/ctbrec/recorder/OnlineMonitor.java | 31 +++--- .../recorder/RecordingPreconditions.java | 18 ++-- .../java/ctbrec/recorder/RemoteRecorder.java | 57 +++++------ .../download/VideoLengthDetector.java | 16 ++- .../recorder/download/dash/DashDownload.java | 35 +++---- .../recorder/download/dash/FfmpegMuxer.java | 18 ++-- .../download/hls/AbstractHlsDownload.java | 52 +++++----- .../download/hls/FfmpegHlsDownload.java | 42 ++++---- .../recorder/download/hls/HlsDownload.java | 23 ++--- .../ctbrec/recorder/download/hls/Hlsdl.java | 27 +++-- .../recorder/download/hls/HlsdlDownload.java | 27 +++-- .../download/hls/MergedFfmpegHlsDownload.java | 28 +++--- .../download/hls/SegmentDownload.java | 16 ++- .../ctbrec/recorder/postprocessing/Copy.java | 10 +- .../postprocessing/CreateContactSheet.java | 14 +-- .../ctbrec/recorder/postprocessing/Move.java | 10 +- .../ctbrec/recorder/postprocessing/Remux.java | 14 +-- .../recorder/postprocessing/Rename.java | 10 +- .../recorder/postprocessing/Script.java | 15 ++- .../java/ctbrec/servlet/SearchServlet.java | 9 +- .../java/ctbrec/sites/bonga/BongaCams.java | 11 +-- .../sites/bonga/BongaCamsHttpClient.java | 10 +- .../ctbrec/sites/cam4/Cam4HttpClient.java | 19 ++-- .../java/ctbrec/sites/cam4/Cam4WsClient.java | 29 +++--- .../java/ctbrec/sites/camsoda/Camsoda.java | 10 +- .../sites/camsoda/CamsodaHttpClient.java | 10 +- .../sites/dreamcam/DreamcamDownload.java | 44 ++++----- .../ctbrec/sites/dreamcam/DreamcamModel.java | 12 +-- .../ctbrec/sites/fc2live/Fc2HlsDownload.java | 10 +- .../sites/fc2live/Fc2HlsdlDownload.java | 13 +-- .../ctbrec/sites/fc2live/Fc2HttpClient.java | 21 ++-- .../sites/fc2live/Fc2MergedHlsDownload.java | 10 +- .../flirt4free/Flirt4FreeHttpClient.java | 12 +-- .../sites/mfc/DashStreamSourceProvider.java | 11 +-- .../sites/mfc/HlsStreamSourceProvider.java | 13 +-- .../ctbrec/sites/mfc/MyFreeCamsClient.java | 99 +++++++++---------- .../sites/mfc/MyFreeCamsHttpClient.java | 15 ++- .../ctbrec/sites/mfc/MyFreeCamsModel.java | 19 ++-- .../java/ctbrec/sites/mfc/ServerConfig.java | 11 +-- .../main/java/ctbrec/sites/showup/Showup.java | 10 +- .../sites/showup/ShowupWebrtcDownload.java | 34 +++---- .../ctbrec/sites/streamate/Streamate.java | 13 +-- .../streamate/StreamateWebsocketClient.java | 15 ++- .../sites/stripchat/StripchatHttpClient.java | 23 +++-- .../sites/xlovecam/XloveCamHttpClient.java | 18 ++-- .../sites/xlovecam/XloveCamModelLoader.java | 10 +- .../server/AbstractCtbrecServlet.java | 10 +- .../ctbrec/recorder/server/ConfigServlet.java | 20 ++-- .../ctbrec/recorder/server/HlsServlet.java | 17 ++-- .../ctbrec/recorder/server/HttpServer.java | 43 ++++---- 121 files changed, 885 insertions(+), 1216 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/CamrecApplication.java b/client/src/main/java/ctbrec/ui/CamrecApplication.java index bb680d7a..24ac80fc 100644 --- a/client/src/main/java/ctbrec/ui/CamrecApplication.java +++ b/client/src/main/java/ctbrec/ui/CamrecApplication.java @@ -1,5 +1,7 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.eventbus.Subscribe; import ctbrec.Config; @@ -55,9 +57,6 @@ import javafx.scene.paint.Color; import javafx.stage.Stage; import javafx.stage.WindowEvent; import lombok.Data; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.awt.*; import java.io.File; import java.io.FileOutputStream; @@ -76,10 +75,9 @@ import static ctbrec.event.Event.Type.*; import static javafx.scene.control.TabPane.TabDragPolicy.FIXED; import static javafx.scene.control.TabPane.TabDragPolicy.REORDER; +@Slf4j public class CamrecApplication extends Application { - static final Logger LOG = LoggerFactory.getLogger(CamrecApplication.class); - private Config config; private Recorder recorder; private OnlineMonitor onlineMonitor; @@ -148,18 +146,18 @@ public class CamrecApplication extends Application { @Subscribe public void trayActionRequest(Map evt) { if (Objects.equals("shutdown", evt.get("event"))) { - LOG.debug("Shutdown request from tray icon"); + log.debug("Shutdown request from tray icon"); try { Platform.runLater(() -> { primaryStage.show(); shutdown(); }); } catch (Exception ex) { - LOG.error(ex.getMessage(), ex); + log.error(ex.getMessage(), ex); } } if (Objects.equals("stage_restored", evt.get("event"))) { - LOG.debug("Main stage restored"); + log.debug("Main stage restored"); Platform.runLater(() -> { if (tabPane.getSelectionModel().getSelectedItem() instanceof TabSelectionListener listener) { listener.selected(); @@ -203,7 +201,7 @@ public class CamrecApplication extends Application { site.init(); } } catch (Exception e) { - LOG.error("Error while initializing site {}", site.getName(), e); + log.error("Error while initializing site {}", site.getName(), e); } }); } @@ -214,13 +212,13 @@ public class CamrecApplication extends Application { } private void logEnvironment() { - LOG.debug("OS:\t{} {}", System.getProperty("os.name"), System.getProperty("os.version")); - LOG.debug("Java:\t{} {} {}", System.getProperty("java.vendor"), System.getProperty("java.vm.name"), System.getProperty("java.version")); - LOG.debug("JavaFX:\t{} ({})", System.getProperty("javafx.version"), System.getProperty("javafx.runtime.version")); + log.debug("OS:\t{} {}", System.getProperty("os.name"), System.getProperty("os.version")); + log.debug("Java:\t{} {} {}", System.getProperty("java.vendor"), System.getProperty("java.vm.name"), System.getProperty("java.version")); + log.debug("JavaFX:\t{} ({})", System.getProperty("javafx.version"), System.getProperty("javafx.runtime.version")); } private void createGui(Stage primaryStage) throws IOException { - LOG.debug("Creating GUI"); + log.debug("Creating GUI"); DesktopIntegration.setRecorder(recorder); DesktopIntegration.setPrimaryStage(primaryStage); CamrecApplication.title = "CTB Recorder " + Version.getVersion().toDisplayString(); @@ -288,10 +286,10 @@ public class CamrecApplication extends Application { }); if (config.getSettings().startMinimized) { - LOG.info("Minimize to tray on start"); + log.info("Minimize to tray on start"); DesktopIntegration.minimizeToTray(primaryStage); } else { - LOG.info("Showing primary stage"); + log.info("Showing primary stage"); primaryStage.show(); } primaryStage.setOnCloseRequest(createShutdownHandler()); @@ -326,7 +324,7 @@ public class CamrecApplication extends Application { l.selected(); } } catch (Exception e) { - LOG.error("Error switching tabs", e); + log.error("Error switching tabs", e); } } @@ -365,7 +363,7 @@ public class CamrecApplication extends Application { } } } catch (InvalidKeyException | NoSuchAlgorithmException | IOException ex) { - LOG.warn("Couldn't check, if recordings are running"); + log.warn("Couldn't check, if recordings are running"); } } @@ -394,7 +392,7 @@ public class CamrecApplication extends Application { try { Config.getInstance().save(); clearHttpCache(); - LOG.info("Shutdown complete. Goodbye!"); + log.info("Shutdown complete. Goodbye!"); Platform.runLater(() -> { primaryStage.close(); shutdownInfo.close(); @@ -423,13 +421,13 @@ public class CamrecApplication extends Application { private void clearHttpCache() throws IOException { try { File httpCacheDir = new File(config.getConfigDir(), "cache"); - LOG.debug("Deleting http cache {}", httpCacheDir); + log.debug("Deleting http cache {}", httpCacheDir); HttpClientCacheProvider.getCache(config).evictAll(); HttpClientCacheProvider.getCache(config).close(); IoUtils.deleteDirectory(httpCacheDir); - LOG.debug("Cache has been deleted"); + log.debug("Cache has been deleted"); } catch (Exception e) { - LOG.info("The HTTP cache was not completely deleted: {}", e.getLocalizedMessage()); + log.info("The HTTP cache was not completely deleted: {}", e.getLocalizedMessage()); } } @@ -437,9 +435,9 @@ public class CamrecApplication extends Application { for (EventHandlerConfiguration eventHandlerConfig : Config.getInstance().getSettings().eventHandlers) { var handler = new EventHandler(eventHandlerConfig); EventBusHolder.register(handler); - LOG.debug("Registered event handler for {} {}", eventHandlerConfig.getEvent(), eventHandlerConfig.getName()); + log.debug("Registered event handler for {} {}", eventHandlerConfig.getEvent(), eventHandlerConfig.getName()); } - LOG.debug("Alert System registered"); + log.debug("Alert System registered"); } private void registerActiveRecordingsCounter() { @@ -456,7 +454,7 @@ public class CamrecApplication extends Application { Platform.runLater(() -> primaryStage.setTitle(windowTitle)); updateStatus(); } catch (Exception e) { - LOG.warn("Couldn't update window title", e); + log.warn("Couldn't update window title", e); } } } @@ -502,7 +500,7 @@ public class CamrecApplication extends Application { + " -fx-control-inner-background-alt: derive(-fx-base, 95%);\n" + "}"; fos.write(content.getBytes(StandardCharsets.UTF_8)); } catch (Exception e) { - LOG.error("Couldn't write stylesheet for user defined color theme"); + log.error("Couldn't write stylesheet for user defined color theme"); } } @@ -550,7 +548,7 @@ public class CamrecApplication extends Application { try { recorder = new SimplifiedLocalRecorder(config, sites); } catch (IOException e) { - LOG.error("Couldn't initialize recorder", e); + log.error("Couldn't initialize recorder", e); Alert alert = new AutosizeAlert(Alert.AlertType.ERROR, primaryStage.getScene()); alert.setTitle("Whoopsie"); alert.setContentText("Couldn't initialize recorder: " + e.getLocalizedMessage()); @@ -565,7 +563,7 @@ public class CamrecApplication extends Application { try { Config.init(sites); } catch (Exception e) { - LOG.error("Couldn't load settings", e); + log.error("Couldn't load settings", e); Alert alert = new AutosizeAlert(Alert.AlertType.ERROR, primaryStage.getScene()); alert.setTitle("Whoopsie"); alert.setContentText("Couldn't load settings. Falling back to defaults. A backup of your settings has been created."); diff --git a/client/src/main/java/ctbrec/ui/ClipboardListener.java b/client/src/main/java/ctbrec/ui/ClipboardListener.java index 7643edd5..931ed75b 100644 --- a/client/src/main/java/ctbrec/ui/ClipboardListener.java +++ b/client/src/main/java/ctbrec/ui/ClipboardListener.java @@ -1,22 +1,19 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.List; import java.util.Objects; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.recorder.Recorder; import ctbrec.sites.Site; import javafx.application.Platform; import javafx.scene.input.Clipboard; +@Slf4j public class ClipboardListener implements Runnable { - - private static final Logger LOG = LoggerFactory.getLogger(ClipboardListener.class); private Recorder recorder; private List sites; private Clipboard systemClipboard; @@ -43,7 +40,7 @@ public class ClipboardListener implements Runnable { addModelIfUrlMatches(url); } } catch (Exception e) { - LOG.error("Error in clipboard polling loop", e); + log.error("Error in clipboard polling loop", e); } }); } diff --git a/client/src/main/java/ctbrec/ui/DesktopIntegration.java b/client/src/main/java/ctbrec/ui/DesktopIntegration.java index 440faeee..7d4f45e3 100644 --- a/client/src/main/java/ctbrec/ui/DesktopIntegration.java +++ b/client/src/main/java/ctbrec/ui/DesktopIntegration.java @@ -1,5 +1,7 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.OS; import ctbrec.StringUtil; @@ -12,22 +14,17 @@ import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.awt.*; import java.awt.TrayIcon.MessageType; import java.io.File; import java.io.IOException; import java.net.URI; +@Slf4j public class DesktopIntegration { private DesktopIntegration() { } - - private static final Logger LOG = LoggerFactory.getLogger(DesktopIntegration.class); - private static Recorder recorder; private static Stage primaryStage; private static TrayIcon trayIcon; @@ -42,7 +39,7 @@ public class DesktopIntegration { rt.exec(cmdline); return; } catch (Exception e) { - LOG.debug("Couldn't open URL with user-defined {} {}", cmdline, uri); + log.debug("Couldn't open URL with user-defined {} {}", cmdline, uri); } } @@ -51,7 +48,7 @@ public class DesktopIntegration { CamrecApplication.hostServices.showDocument(uri); return; } catch (Exception e) { - LOG.debug("Couldn't open URL with host services {}", uri); + log.debug("Couldn't open URL with host services {}", uri); } // opening with HostServices failed, now try Desktop @@ -59,7 +56,7 @@ public class DesktopIntegration { Desktop.getDesktop().browse(new URI(uri)); return; } catch (Exception e) { - LOG.debug("Couldn't open URL with Desktop {}", uri); + log.debug("Couldn't open URL with Desktop {}", uri); } // try external helpers @@ -70,7 +67,7 @@ public class DesktopIntegration { pb.start(); return; } catch (IOException e) { - LOG.debug("Couldn't open URL with {} {}", helper, uri); + log.debug("Couldn't open URL with {} {}", helper, uri); } } } @@ -112,7 +109,7 @@ public class DesktopIntegration { Desktop.getDesktop().open(f); return; } catch (Exception e) { - LOG.debug("Couldn't open file with Desktop {}", f); + log.debug("Couldn't open file with Desktop {}", f); } // try external helpers @@ -123,7 +120,7 @@ public class DesktopIntegration { pb.start(); return; } catch (IOException e) { - LOG.debug("Couldn't open file with {} {}", helper, f); + log.debug("Couldn't open file with {} {}", helper, f); } } @@ -171,7 +168,7 @@ public class DesktopIntegration { } catch (NullPointerException e) { // can happen at start, ignore } catch (IOException e1) { - LOG.error("Notification failed", e1); + log.error("Notification failed", e1); } } @@ -188,7 +185,7 @@ public class DesktopIntegration { createTrayIcon(primaryStage); trayIcon.displayMessage(header, msg, MessageType.INFO); } else { - LOG.error("SystemTray notifications not supported by this OS"); + log.error("SystemTray notifications not supported by this OS"); } } @@ -209,7 +206,7 @@ public class DesktopIntegration { } return created; } else { - LOG.error("SystemTray notifications not supported by this OS"); + log.error("SystemTray notifications not supported by this OS"); return false; } } diff --git a/client/src/main/java/ctbrec/ui/FileDownload.java b/client/src/main/java/ctbrec/ui/FileDownload.java index 748fec7e..04c1ab12 100644 --- a/client/src/main/java/ctbrec/ui/FileDownload.java +++ b/client/src/main/java/ctbrec/ui/FileDownload.java @@ -1,22 +1,18 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.io.HttpClient; import ctbrec.recorder.ProgressListener; import okhttp3.Request; +@Slf4j public class FileDownload { - - private static final Logger LOG = LoggerFactory.getLogger(FileDownload.class); - private HttpClient httpClient; private ProgressListener downloadListener; @@ -26,7 +22,7 @@ public class FileDownload { } public void start(URL url, File target) throws IOException { - LOG.trace("Downloading file {} to {}", url, target); + log.trace("Downloading file {} to {}", url, target); var request = new Request.Builder().url(url).addHeader("connection", "keep-alive").build(); var response = httpClient.execute(request); var fileSize = Long.parseLong(response.header("Content-Length", String.valueOf(Long.MAX_VALUE))); diff --git a/client/src/main/java/ctbrec/ui/Launcher.java b/client/src/main/java/ctbrec/ui/Launcher.java index 691d14ff..a01271a1 100644 --- a/client/src/main/java/ctbrec/ui/Launcher.java +++ b/client/src/main/java/ctbrec/ui/Launcher.java @@ -1,20 +1,16 @@ package ctbrec.ui; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import lombok.extern.slf4j.Slf4j; import ctbrec.Java; +@Slf4j public class Launcher { - - private static final Logger LOG = LoggerFactory.getLogger(Launcher.class); - public static void main(String[] args) { int javaVersion = Java.version(); if(javaVersion == 0) { - LOG.warn("Unknown Java version {}. App might not work as expected", javaVersion); + log.warn("Unknown Java version {}. App might not work as expected", javaVersion); } else if (javaVersion < 10) { - LOG.error("Your Java version ({}) is too old. Please update to Java 10 or newer", javaVersion); + log.error("Your Java version ({}) is too old. Please update to Java 10 or newer", javaVersion); System.exit(1); } System.setProperty("awt.useSystemAAFontSettings","lcd"); diff --git a/client/src/main/java/ctbrec/ui/RecordUntilDialog.java b/client/src/main/java/ctbrec/ui/RecordUntilDialog.java index 1f307ab7..301356a4 100644 --- a/client/src/main/java/ctbrec/ui/RecordUntilDialog.java +++ b/client/src/main/java/ctbrec/ui/RecordUntilDialog.java @@ -1,5 +1,7 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.SubsequentAction.*; import java.time.Instant; @@ -7,9 +9,6 @@ import java.time.LocalDateTime; import java.time.ZoneId; import ctbrec.Config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Model; import ctbrec.SubsequentAction; import ctbrec.ui.controls.DateTimePicker; @@ -24,10 +23,8 @@ import javafx.scene.control.ToggleGroup; import javafx.scene.layout.GridPane; import javafx.scene.layout.VBox; +@Slf4j public class RecordUntilDialog { - - private static final Logger LOG = LoggerFactory.getLogger(RecordUntilDialog.class); - private final Node source; private final Model model; private final GridPane gridPane = new GridPane(); @@ -85,7 +82,7 @@ public class RecordUntilDialog { boolean confirmed = Dialogs.showCustomInput(source.getScene(), "Stop Recording of " + model.getDisplayName() + " at", gridPane); if (confirmed) { SubsequentAction action = getSubsequentAction(); - LOG.info("Stop at {} and {}", datePicker.getDateTimeValue(), action); + log.info("Stop at {} and {}", datePicker.getDateTimeValue(), action); var stopAt = Instant.from(datePicker.getDateTimeValue().atZone(ZoneId.systemDefault())); model.setRecordUntil(stopAt); model.setRecordUntilSubsequentAction(action); diff --git a/client/src/main/java/ctbrec/ui/StreamSourceSelectionDialog.java b/client/src/main/java/ctbrec/ui/StreamSourceSelectionDialog.java index bb5b87d8..4fcf957c 100644 --- a/client/src/main/java/ctbrec/ui/StreamSourceSelectionDialog.java +++ b/client/src/main/java/ctbrec/ui/StreamSourceSelectionDialog.java @@ -1,12 +1,10 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutionException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.GlobalThreadPool; import ctbrec.Model; import ctbrec.recorder.download.StreamSource; @@ -20,10 +18,8 @@ import javafx.scene.control.ChoiceDialog; import javafx.scene.image.Image; import javafx.stage.Stage; +@Slf4j public class StreamSourceSelectionDialog extends ChoiceDialog { - - private static final Logger LOG = LoggerFactory.getLogger(StreamSourceSelectionDialog.class); - public static final StreamSource BEST = new BestStreamSource(); public static final StreamSource LOADING = new LoadingStreamSource(); private Scene parent; @@ -66,9 +62,9 @@ public class StreamSourceSelectionDialog extends ChoiceDialog { loadStreamSources.get(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Couldn't fetch available stream sources", e); + log.error("Couldn't fetch available stream sources", e); } catch (ExecutionException e) { - LOG.error("Couldn't fetch available stream sources", e); + log.error("Couldn't fetch available stream sources", e); } boolean confirmed = Dialogs.showConfirmDialog("Error loading stream resolutions", "Do you want to add the model anyway?", "Stream resolutions unknown", parent); diff --git a/client/src/main/java/ctbrec/ui/TipDialog.java b/client/src/main/java/ctbrec/ui/TipDialog.java index bd2cfd00..3c806c7d 100644 --- a/client/src/main/java/ctbrec/ui/TipDialog.java +++ b/client/src/main/java/ctbrec/ui/TipDialog.java @@ -1,12 +1,10 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import java.text.DecimalFormat; import java.util.Objects; import java.util.concurrent.ExecutionException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.GlobalThreadPool; import ctbrec.sites.Site; import javafx.application.Platform; @@ -17,9 +15,8 @@ import javafx.scene.control.ButtonType; import javafx.scene.control.TextInputDialog; import javafx.stage.Stage; +@Slf4j public class TipDialog extends TextInputDialog { - - private static final Logger LOG = LoggerFactory.getLogger(TipDialog.class); private Site site; private Scene parent; @@ -84,7 +81,7 @@ public class TipDialog extends TextInputDialog { } private void handleExcetion(Exception e) { - LOG.error("Couldn't retrieve account balance", e); + log.error("Couldn't retrieve account balance", e); showErrorDialog(e); } diff --git a/client/src/main/java/ctbrec/ui/TokenLabel.java b/client/src/main/java/ctbrec/ui/TokenLabel.java index d09d8793..07090306 100644 --- a/client/src/main/java/ctbrec/ui/TokenLabel.java +++ b/client/src/main/java/ctbrec/ui/TokenLabel.java @@ -1,5 +1,7 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import com.google.common.eventbus.Subscribe; import ctbrec.GlobalThreadPool; import ctbrec.event.EventBusHolder; @@ -8,17 +10,13 @@ import javafx.application.Platform; import javafx.concurrent.Task; import javafx.scene.control.Label; import javafx.scene.control.Tooltip; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.text.DecimalFormat; import java.util.Map; import java.util.Objects; import java.util.concurrent.ExecutionException; +@Slf4j public class TokenLabel extends Label { - - private static final Logger LOG = LoggerFactory.getLogger(TokenLabel.class); private double tokens = -1; private final Site site; @@ -85,7 +83,7 @@ public class TokenLabel extends Label { } private void handleException(Exception e) { - LOG.error("Couldn't retrieve account balance", e); + log.error("Couldn't retrieve account balance", e); Platform.runLater(() -> { setText("Tokens: error"); setTooltip(new Tooltip(e.getMessage())); diff --git a/client/src/main/java/ctbrec/ui/TrayIcon.java b/client/src/main/java/ctbrec/ui/TrayIcon.java index 133cac10..7cb842ee 100644 --- a/client/src/main/java/ctbrec/ui/TrayIcon.java +++ b/client/src/main/java/ctbrec/ui/TrayIcon.java @@ -1,14 +1,13 @@ package ctbrec.ui; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.event.EventBusHolder; import ctbrec.recorder.Recorder; import ctbrec.ui.controls.Dialogs; import javafx.application.Platform; import javafx.stage.Stage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; @@ -26,10 +25,8 @@ import static java.awt.Font.BOLD; import static java.awt.RenderingHints.KEY_ANTIALIASING; import static java.awt.RenderingHints.VALUE_ANTIALIAS_ON; +@Slf4j public class TrayIcon { - - private static final Logger LOG = LoggerFactory.getLogger(TrayIcon.class); - private final Stage stage; private final Recorder recorder; private SystemTray tray; @@ -60,7 +57,7 @@ public class TrayIcon { try { tray.add(awtTrayIcon); } catch (AWTException e) { - LOG.error("Couldn't add tray icon", e); + log.error("Couldn't add tray icon", e); } awtTrayIcon.addMouseListener(new MouseAdapter() { @Override @@ -73,7 +70,7 @@ public class TrayIcon { } return true; } else { - LOG.error("SystemTray notifications not supported by this OS"); + log.error("SystemTray notifications not supported by this OS"); return false; } } @@ -113,7 +110,7 @@ public class TrayIcon { Platform.runLater(() -> { stage.setX(Config.getInstance().getSettings().windowX); stage.setY(Config.getInstance().getSettings().windowY); - LOG.debug("Restoring window location {},{}", stage.getX(), stage.getY()); + log.debug("Restoring window location {},{}", stage.getX(), stage.getY()); stage.setIconified(false); stage.show(); stage.toFront(); @@ -146,7 +143,7 @@ public class TrayIcon { awtTrayIcon.setImage(createImage(activeRecordings)); } } catch (IOException e) { - LOG.error("Couldn't update tray icon image", e); + log.error("Couldn't update tray icon image", e); } } diff --git a/client/src/main/java/ctbrec/ui/action/CheckModelAccountAction.java b/client/src/main/java/ctbrec/ui/action/CheckModelAccountAction.java index 47fad1c1..09daa608 100644 --- a/client/src/main/java/ctbrec/ui/action/CheckModelAccountAction.java +++ b/client/src/main/java/ctbrec/ui/action/CheckModelAccountAction.java @@ -1,14 +1,12 @@ package ctbrec.ui.action; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.GlobalThreadPool; import ctbrec.Model; import ctbrec.recorder.Recorder; @@ -16,9 +14,8 @@ import ctbrec.ui.controls.Dialogs; import javafx.application.Platform; import javafx.scene.control.Button; +@Slf4j public class CheckModelAccountAction { - private static final Logger LOG = LoggerFactory.getLogger(CheckModelAccountAction.class); - private Button b; private Recorder recorder; @@ -78,7 +75,7 @@ public class CheckModelAccountAction { deletedAccounts.add(modelToCheck); } } catch (IOException e) { - LOG.warn("Couldn't check, if model account still exists", e); + log.warn("Couldn't check, if model account still exists", e); } } } diff --git a/client/src/main/java/ctbrec/ui/action/EditNotesAction.java b/client/src/main/java/ctbrec/ui/action/EditNotesAction.java index 8202f17e..0c8f274a 100644 --- a/client/src/main/java/ctbrec/ui/action/EditNotesAction.java +++ b/client/src/main/java/ctbrec/ui/action/EditNotesAction.java @@ -1,20 +1,18 @@ package ctbrec.ui.action; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.notes.ModelNotesService; import ctbrec.ui.CamrecApplication; import ctbrec.ui.controls.Dialogs; import javafx.scene.Cursor; import javafx.scene.Node; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.Optional; +@Slf4j public class EditNotesAction { - private static final Logger LOG = LoggerFactory.getLogger(EditNotesAction.class); - private final Node source; private final Model model; private final Runnable callback; @@ -39,14 +37,14 @@ public class EditNotesAction { notesService.removeModelNotes(model.getUrl()); } } catch (IOException e) { - LOG.warn("Couldn't save config", e); + log.warn("Couldn't save config", e); } }); if (callback != null) { try { callback.run(); } catch (Exception e) { - LOG.error("Error while executing callback", e); + log.error("Error while executing callback", e); } } } catch (Exception e) { diff --git a/client/src/main/java/ctbrec/ui/action/ModelMassEditAction.java b/client/src/main/java/ctbrec/ui/action/ModelMassEditAction.java index b342f18b..bda173f0 100644 --- a/client/src/main/java/ctbrec/ui/action/ModelMassEditAction.java +++ b/client/src/main/java/ctbrec/ui/action/ModelMassEditAction.java @@ -1,15 +1,13 @@ package ctbrec.ui.action; + +import lombok.extern.slf4j.Slf4j; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.function.Consumer; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.GlobalThreadPool; import ctbrec.Model; import ctbrec.ui.controls.Dialogs; @@ -17,10 +15,8 @@ import javafx.application.Platform; import javafx.scene.Cursor; import javafx.scene.Node; +@Slf4j public class ModelMassEditAction { - - private static final Logger LOG = LoggerFactory.getLogger(ModelMassEditAction.class); - protected List models; protected Consumer action; protected Node source; @@ -64,7 +60,7 @@ public class ModelMassEditAction { } } if (ex != null) { - LOG.error("Error while executing model mass edit", ex); + log.error("Error while executing model mass edit", ex); Dialogs.showError(source.getScene(), "Error", "Error while execution action", ex); } Platform.runLater(() -> source.setCursor(Cursor.DEFAULT)); diff --git a/client/src/main/java/ctbrec/ui/action/SetPortraitAction.java b/client/src/main/java/ctbrec/ui/action/SetPortraitAction.java index 1bccd140..b6c75171 100644 --- a/client/src/main/java/ctbrec/ui/action/SetPortraitAction.java +++ b/client/src/main/java/ctbrec/ui/action/SetPortraitAction.java @@ -1,5 +1,7 @@ package ctbrec.ui.action; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.StringUtil; import ctbrec.ui.CamrecApplication; @@ -10,9 +12,6 @@ import javafx.scene.Cursor; import javafx.scene.Node; import javafx.scene.control.Label; import javafx.scene.layout.GridPane; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; @@ -20,9 +19,8 @@ import java.io.IOException; import java.util.Arrays; import java.util.function.Consumer; +@Slf4j public class SetPortraitAction extends AbstractPortraitAction { - private static final Logger LOG = LoggerFactory.getLogger(SetPortraitAction.class); - private final Consumer callback; public SetPortraitAction(Node source, Model selectedModel, Consumer callback) { @@ -50,7 +48,7 @@ public class SetPortraitAction extends AbstractPortraitAction { if (StringUtil.isBlank(selectedFile)) { removePortrait(model.getUrl()); } else { - LOG.debug("User selected {}", selectedFile); + log.debug("User selected {}", selectedFile); boolean success = processImageFile(selectedFile); if (success) { try { @@ -79,7 +77,7 @@ public class SetPortraitAction extends AbstractPortraitAction { try { callback.accept(model); } catch (Exception e) { - LOG.error("Error while executing callback", e); + log.error("Error while executing callback", e); } } } @@ -91,12 +89,12 @@ public class SetPortraitAction extends AbstractPortraitAction { BufferedImage portrait = convertToScaledJpg(croppedImage); boolean success = store(model.getUrl(), portrait); if (!success) { - LOG.debug("Available formats: {}", Arrays.toString(ImageIO.getWriterFormatNames())); + log.debug("Available formats: {}", Arrays.toString(ImageIO.getWriterFormatNames())); throw new IOException("No suitable writer found for image format " + FORMAT); } return success; } catch (IOException e) { - LOG.error("Error while changing portrait image", e); + log.error("Error while changing portrait image", e); Dialogs.showError("Set Portrait", "Couldn't change portrait image: ", e); return false; } diff --git a/client/src/main/java/ctbrec/ui/action/SetStopDateAction.java b/client/src/main/java/ctbrec/ui/action/SetStopDateAction.java index e373f204..39fcf0c5 100644 --- a/client/src/main/java/ctbrec/ui/action/SetStopDateAction.java +++ b/client/src/main/java/ctbrec/ui/action/SetStopDateAction.java @@ -1,13 +1,11 @@ package ctbrec.ui.action; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.concurrent.CompletableFuture; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.GlobalThreadPool; import ctbrec.Model; import ctbrec.recorder.Recorder; @@ -18,10 +16,8 @@ import javafx.application.Platform; import javafx.scene.Cursor; import javafx.scene.Node; +@Slf4j public class SetStopDateAction { - - private static final Logger LOG = LoggerFactory.getLogger(SetStopDateAction.class); - private Node source; private Model model; private Recorder recorder; @@ -48,7 +44,7 @@ public class SetStopDateAction { }, GlobalThreadPool.get()).whenComplete((r, e) -> { Platform.runLater(() -> source.setCursor(Cursor.DEFAULT)); if (e != null) { - LOG.error("Error", e); + log.error("Error", e); } }); } diff --git a/client/src/main/java/ctbrec/ui/action/SetThumbAsPortraitAction.java b/client/src/main/java/ctbrec/ui/action/SetThumbAsPortraitAction.java index 308f00f0..140c3a1e 100644 --- a/client/src/main/java/ctbrec/ui/action/SetThumbAsPortraitAction.java +++ b/client/src/main/java/ctbrec/ui/action/SetThumbAsPortraitAction.java @@ -1,5 +1,7 @@ package ctbrec.ui.action; + +import lombok.extern.slf4j.Slf4j; import ctbrec.GlobalThreadPool; import ctbrec.Model; import ctbrec.ui.controls.Dialogs; @@ -8,15 +10,10 @@ import javafx.embed.swing.SwingFXUtils; import javafx.scene.Cursor; import javafx.scene.Node; import javafx.scene.image.Image; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.awt.image.BufferedImage; +@Slf4j public class SetThumbAsPortraitAction extends AbstractPortraitAction { - - private static final Logger LOG = LoggerFactory.getLogger(SetThumbAsPortraitAction.class); - private final Image image; public SetThumbAsPortraitAction(Node source, Model model, Image image) { @@ -35,7 +32,7 @@ public class SetThumbAsPortraitAction extends AbstractPortraitAction { store(model.getUrl(), portrait); firePortraitChanged(); } catch (Exception e) { - LOG.error("Error while changing portrait image", e); + log.error("Error while changing portrait image", e); Platform.runLater(() -> Dialogs.showError("Set Portrait", "Couldn't change portrait image: ", e)); } finally { Platform.runLater(() -> source.setCursor(Cursor.DEFAULT)); diff --git a/client/src/main/java/ctbrec/ui/action/SwitchStreamResolutionAction.java b/client/src/main/java/ctbrec/ui/action/SwitchStreamResolutionAction.java index c8a438c6..d9955742 100644 --- a/client/src/main/java/ctbrec/ui/action/SwitchStreamResolutionAction.java +++ b/client/src/main/java/ctbrec/ui/action/SwitchStreamResolutionAction.java @@ -1,5 +1,7 @@ package ctbrec.ui.action; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; @@ -8,9 +10,6 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import org.eclipse.jetty.io.RuntimeIOException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.GlobalThreadPool; import ctbrec.Model; import ctbrec.recorder.Recorder; @@ -22,9 +21,8 @@ import javafx.application.Platform; import javafx.scene.Cursor; import javafx.scene.Node; +@Slf4j public class SwitchStreamResolutionAction { - private static final Logger LOG = LoggerFactory.getLogger(SwitchStreamResolutionAction.class); - private Node source; private Model selectedModel; private Recorder recorder; @@ -54,7 +52,7 @@ public class SwitchStreamResolutionAction { try { recorder.switchStreamSource(selectedModel); } catch (InvalidKeyException | NoSuchAlgorithmException | IllegalStateException | IOException e) { - LOG.error(couldntSwitchHeaderText, e); + log.error(couldntSwitchHeaderText, e); Dialogs.showError(source.getScene(), "Couldn't switch stream resolution", "Error while switching stream resolution", e); } } diff --git a/client/src/main/java/ctbrec/ui/action/TipAction.java b/client/src/main/java/ctbrec/ui/action/TipAction.java index 1270b850..269f0918 100644 --- a/client/src/main/java/ctbrec/ui/action/TipAction.java +++ b/client/src/main/java/ctbrec/ui/action/TipAction.java @@ -1,15 +1,13 @@ package ctbrec.ui.action; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.ui.controls.Dialogs.*; import java.io.IOException; import java.text.DecimalFormat; import java.util.HashMap; import java.util.Map; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Model; import ctbrec.event.EventBusHolder; import ctbrec.ui.SiteUiFactory; @@ -17,10 +15,8 @@ import ctbrec.ui.TipDialog; import javafx.scene.Cursor; import javafx.scene.Node; +@Slf4j public class TipAction { - - private static final Logger LOG = LoggerFactory.getLogger(TipAction.class); - private Model model; private Node source; @@ -47,7 +43,7 @@ public class TipAction { event.put("amount", tokens.doubleValue()); EventBusHolder.BUS.post(event); } catch (IOException ex) { - LOG.error("An error occurred while sending tip", ex); + log.error("An error occurred while sending tip", ex); showError(source.getScene(), "Couldn't send tip", "An error occurred while sending tip:", ex); } catch (Exception ex) { showError(source.getScene(), "Couldn't send tip", "You entered an invalid amount of tokens", ex); diff --git a/client/src/main/java/ctbrec/ui/controls/AbstractFileSelectionBox.java b/client/src/main/java/ctbrec/ui/controls/AbstractFileSelectionBox.java index b43daa62..a55342b2 100644 --- a/client/src/main/java/ctbrec/ui/controls/AbstractFileSelectionBox.java +++ b/client/src/main/java/ctbrec/ui/controls/AbstractFileSelectionBox.java @@ -1,12 +1,10 @@ package ctbrec.ui.controls; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.IOException; import java.util.Objects; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.StringUtil; import ctbrec.ui.AutosizeAlert; import javafx.beans.property.SimpleStringProperty; @@ -26,10 +24,8 @@ import javafx.scene.layout.Priority; import javafx.scene.paint.Color; import javafx.stage.FileChooser; +@Slf4j public abstract class AbstractFileSelectionBox extends HBox { - - private static final Logger LOG = LoggerFactory.getLogger(AbstractFileSelectionBox.class); - private final StringProperty fileProperty = new SimpleStringProperty(); private final Tooltip validationError = new Tooltip(); protected TextField fileInput; @@ -151,7 +147,7 @@ public abstract class AbstractFileSelectionBox extends HBox { try { fileInput.setText(program.getCanonicalPath()); } catch (IOException e1) { - LOG.error("Couldn't determine path", e1); + log.error("Couldn't determine path", e1); var alert = new AutosizeAlert(Alert.AlertType.ERROR, getScene()); alert.setTitle("Whoopsie"); alert.setContentText("Couldn't determine path"); diff --git a/client/src/main/java/ctbrec/ui/controls/DateTimePicker.java b/client/src/main/java/ctbrec/ui/controls/DateTimePicker.java index 5814a516..95262769 100644 --- a/client/src/main/java/ctbrec/ui/controls/DateTimePicker.java +++ b/client/src/main/java/ctbrec/ui/controls/DateTimePicker.java @@ -1,14 +1,12 @@ package ctbrec.ui.controls; + +import lombok.extern.slf4j.Slf4j; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.scene.control.DatePicker; @@ -25,8 +23,8 @@ import javafx.util.StringConverter; * license Apache 2.0 * */ +@Slf4j public class DateTimePicker extends DatePicker { - private static final Logger LOG = LoggerFactory.getLogger(DateTimePicker.class); public static final String DefaultFormat = "yyyy-MM-dd HH:mm"; private DateTimeFormatter formatter; @@ -56,7 +54,7 @@ public class DateTimePicker extends DatePicker { dateTimeValue.set(LocalDateTime.of(newValue, time)); } } - LOG.debug("{} {}", newValue, dateTimeValue); + log.debug("{} {}", newValue, dateTimeValue); }); editorProperty().get().textProperty().addListener((obs, ov, nv) -> { diff --git a/client/src/main/java/ctbrec/ui/controls/SearchPopoverTreeList.java b/client/src/main/java/ctbrec/ui/controls/SearchPopoverTreeList.java index 4f05ad2a..87ad9561 100644 --- a/client/src/main/java/ctbrec/ui/controls/SearchPopoverTreeList.java +++ b/client/src/main/java/ctbrec/ui/controls/SearchPopoverTreeList.java @@ -31,6 +31,8 @@ */ package ctbrec.ui.controls; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.GlobalThreadPool; import ctbrec.Model; @@ -52,9 +54,6 @@ import javafx.scene.input.ContextMenuEvent; import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; import javafx.scene.shape.Rectangle; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.net.URL; import java.util.List; import java.util.Objects; @@ -63,9 +62,8 @@ import java.util.Optional; /** * Popover page that displays a list of samples and sample categories for a given SampleCategory. */ +@Slf4j public class SearchPopoverTreeList extends PopoverTreeList implements Popover.Page { - private static final Logger LOG = LoggerFactory.getLogger(SearchPopoverTreeList.class); - private Popover popover; private Recorder recorder; @@ -195,9 +193,9 @@ public class SearchPopoverTreeList extends PopoverTreeList implements Pop get(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.warn("Search failed: {}", e.getMessage()); + log.warn("Search failed: {}", e.getMessage()); } catch (Exception e) { - LOG.warn("Search failed: {}", e.getMessage()); + log.warn("Search failed: {}", e.getMessage()); } Platform.runLater(() -> setCursor(Cursor.DEFAULT)); } diff --git a/client/src/main/java/ctbrec/ui/controls/StreamPreview.java b/client/src/main/java/ctbrec/ui/controls/StreamPreview.java index 66c21239..aa867f31 100644 --- a/client/src/main/java/ctbrec/ui/controls/StreamPreview.java +++ b/client/src/main/java/ctbrec/ui/controls/StreamPreview.java @@ -1,5 +1,7 @@ package ctbrec.ui.controls; + +import lombok.extern.slf4j.Slf4j; import java.io.InterruptedIOException; import java.util.Collections; import java.util.List; @@ -7,10 +9,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.GlobalThreadPool; import ctbrec.Model; @@ -27,9 +25,8 @@ import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; +@Slf4j public class StreamPreview extends StackPane { - private static final Logger LOG = LoggerFactory.getLogger(StreamPreview.class); - private ImageView preview = new ImageView(); private MediaView videoPreview; private MediaPlayer videoPlayer; @@ -69,7 +66,7 @@ public class StreamPreview extends StackPane { return; } running = true; - LOG.debug("Starting preview stream for model {}", model); + log.debug("Starting preview stream for model {}", model); progressIndicator.setVisible(true); if(model.getPreview() != null) { try { @@ -91,9 +88,9 @@ public class StreamPreview extends StackPane { List sources = model.getStreamSources(); Collections.sort(sources); StreamSource best = sources.get(0); - LOG.debug("StreamSource {}", best); + log.debug("StreamSource {}", best); checkInterrupt(); - LOG.debug("Preview url for {} is {}", model.getName(), best.getMediaPlaylistUrl()); + log.debug("Preview url for {} is {}", model.getName(), best.getMediaPlaylistUrl()); video = new Media(best.getMediaPlaylistUrl()); video.setOnError(() -> onError(videoPlayer)); if(videoPlayer != null) { @@ -121,12 +118,12 @@ public class StreamPreview extends StackPane { if(e.getMessage().equals("Stream url unknown")) { // fine hls url for mfc not known yet } else { - LOG.warn("Couldn't start preview video: {}", e.getMessage()); + log.warn("Couldn't start preview video: {}", e.getMessage()); } showTestImage(); } catch (HttpException e) { if(e.getResponseCode() != 404) { - LOG.warn("Couldn't start preview video: {}", e.getMessage()); + log.warn("Couldn't start preview video: {}", e.getMessage()); } showTestImage(); } catch (InterruptedException | InterruptedIOException e) { @@ -136,11 +133,11 @@ public class StreamPreview extends StackPane { if(e.getCause() instanceof InterruptedException || e.getCause() instanceof InterruptedIOException) { // future has been canceled, that's fine } else { - LOG.warn("Couldn't start preview video: {}", e.getMessage()); + log.warn("Couldn't start preview video: {}", e.getMessage()); } showTestImage(); } catch (Exception e) { - LOG.warn("Couldn't start preview video: {}", e.getMessage()); + log.warn("Couldn't start preview video: {}", e.getMessage()); showTestImage(); } }); @@ -169,7 +166,7 @@ public class StreamPreview extends StackPane { } private void onError(MediaPlayer videoPlayer) { - LOG.error("Error while starting preview stream", videoPlayer.getError()); + log.error("Error while starting preview stream", videoPlayer.getError()); showTestImage(); } diff --git a/client/src/main/java/ctbrec/ui/controls/Wizard.java b/client/src/main/java/ctbrec/ui/controls/Wizard.java index 00a6a807..361fd32f 100644 --- a/client/src/main/java/ctbrec/ui/controls/Wizard.java +++ b/client/src/main/java/ctbrec/ui/controls/Wizard.java @@ -1,8 +1,6 @@ package ctbrec.ui.controls; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import lombok.extern.slf4j.Slf4j; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; @@ -12,9 +10,9 @@ import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; +@Slf4j public class Wizard extends BorderPane { - private static final transient Logger LOG = LoggerFactory.getLogger(Wizard.class); private Pane[] pages; private StackPane stack; private Stage stage; @@ -90,7 +88,7 @@ public class Wizard extends BorderPane { prev.setDisable(page == 0); next.setDisable(page == pages.length - 1); finish.setDisable(page != pages.length - 1); - LOG.debug("Setting border"); + log.debug("Setting border"); pages[page].setStyle( "-fx-background-color: -fx-inner-border, -fx-background;"+ "-fx-background-insets: 0 0 -1 0, 0, 1, 2;"); diff --git a/client/src/main/java/ctbrec/ui/controls/table/StatePersistingTableView.java b/client/src/main/java/ctbrec/ui/controls/table/StatePersistingTableView.java index 49bd44db..2db63a75 100644 --- a/client/src/main/java/ctbrec/ui/controls/table/StatePersistingTableView.java +++ b/client/src/main/java/ctbrec/ui/controls/table/StatePersistingTableView.java @@ -1,25 +1,21 @@ package ctbrec.ui.controls.table; + +import lombok.extern.slf4j.Slf4j; import java.time.Duration; import java.time.Instant; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.StringUtil; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; +@Slf4j public class StatePersistingTableView extends TableView { - - private static final Logger LOG = LoggerFactory.getLogger(StatePersistingTableView.class); - private Instant initialized; private TableViewStateStore stateStore; @@ -135,7 +131,7 @@ public class StatePersistingTableView extends TableView { try { r.run(); } catch (Exception e) { - LOG.error("Couldn't safe table view state with prefix {}", stateStore.getName(), e); + log.error("Couldn't safe table view state with prefix {}", stateStore.getName(), e); } } } diff --git a/client/src/main/java/ctbrec/ui/menu/FollowUnfollowHandler.java b/client/src/main/java/ctbrec/ui/menu/FollowUnfollowHandler.java index 3adfb9a4..15dee2df 100644 --- a/client/src/main/java/ctbrec/ui/menu/FollowUnfollowHandler.java +++ b/client/src/main/java/ctbrec/ui/menu/FollowUnfollowHandler.java @@ -1,10 +1,8 @@ package ctbrec.ui.menu; + +import lombok.extern.slf4j.Slf4j; import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Model; import ctbrec.recorder.Recorder; import ctbrec.ui.action.AbstractModelAction.Result; @@ -13,10 +11,8 @@ import ctbrec.ui.action.TriConsumer; import ctbrec.ui.action.UnfollowAction; import javafx.scene.Node; +@Slf4j public class FollowUnfollowHandler { - - private static final Logger LOG = LoggerFactory.getLogger(FollowUnfollowHandler.class); - private Node source; private Recorder recorder; private TriConsumer callback; @@ -32,7 +28,7 @@ public class FollowUnfollowHandler { r.stream().filter(rs -> rs.getThrowable() == null).map(Result::getModel).forEach(m -> callback.accept(m, true, true)); r.stream().filter(rs -> rs.getThrowable() != null).map(Result::getModel).forEach(m -> callback.accept(m, true, false)); }).exceptionally(ex -> { - LOG.error("Couldn't follow model", ex); + log.error("Couldn't follow model", ex); return null; }); } @@ -42,7 +38,7 @@ public class FollowUnfollowHandler { r.stream().filter(rs -> rs.getThrowable() == null).map(Result::getModel).forEach(m -> callback.accept(m, false, true)); r.stream().filter(rs -> rs.getThrowable() != null).map(Result::getModel).forEach(m -> callback.accept(m, false, false)); }).exceptionally(ex -> { - LOG.error("Couldn't unfollow model", ex); + log.error("Couldn't unfollow model", ex); return null; }); } diff --git a/client/src/main/java/ctbrec/ui/menu/ForcePriorityHandler.java b/client/src/main/java/ctbrec/ui/menu/ForcePriorityHandler.java index 809c73dc..409ef812 100644 --- a/client/src/main/java/ctbrec/ui/menu/ForcePriorityHandler.java +++ b/client/src/main/java/ctbrec/ui/menu/ForcePriorityHandler.java @@ -1,20 +1,16 @@ package ctbrec.ui.menu; + +import lombok.extern.slf4j.Slf4j; import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Model; import ctbrec.recorder.Recorder; import ctbrec.ui.action.ForcePriorityAction; import ctbrec.ui.action.ResumePriorityAction; import javafx.scene.Node; +@Slf4j public class ForcePriorityHandler { - - private static final Logger LOG = LoggerFactory.getLogger(ForcePriorityHandler.class); - private Node source; private Recorder recorder; private Runnable callback; @@ -28,7 +24,7 @@ public class ForcePriorityHandler { protected void forcePriority(List selectedModels) { new ForcePriorityAction(source, selectedModels, recorder).execute() .exceptionally(ex -> { - LOG.error("Error while forcing ignore priority", ex); + log.error("Error while forcing ignore priority", ex); return null; }).whenComplete((r, ex) -> executeCallback()); } @@ -36,7 +32,7 @@ public class ForcePriorityHandler { protected void resumePriority(List selectedModels) { new ResumePriorityAction(source, selectedModels, recorder).execute() .exceptionally(ex -> { - LOG.error("Error while resuming respecting priority", ex); + log.error("Error while resuming respecting priority", ex); return null; }).whenComplete((r, ex) -> executeCallback()); } @@ -45,7 +41,7 @@ public class ForcePriorityHandler { try { callback.run(); } catch (Exception e) { - LOG.error("Error while executing menu callback", e); + log.error("Error while executing menu callback", e); } } } diff --git a/client/src/main/java/ctbrec/ui/menu/ModelMenuContributor.java b/client/src/main/java/ctbrec/ui/menu/ModelMenuContributor.java index 455d24c4..2a37675d 100644 --- a/client/src/main/java/ctbrec/ui/menu/ModelMenuContributor.java +++ b/client/src/main/java/ctbrec/ui/menu/ModelMenuContributor.java @@ -1,5 +1,7 @@ package ctbrec.ui.menu; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.ModelGroup; @@ -18,9 +20,6 @@ import javafx.scene.control.SeparatorMenuItem; import javafx.scene.control.TabPane; import javafx.scene.input.Clipboard; import javafx.scene.input.ClipboardContent; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.net.URLEncoder; import java.util.List; import java.util.Optional; @@ -28,10 +27,8 @@ import java.util.function.Consumer; import static java.nio.charset.StandardCharsets.UTF_8; +@Slf4j public class ModelMenuContributor { - - private static final Logger LOG = LoggerFactory.getLogger(ModelMenuContributor.class); - private final Config config; private final Recorder recorder; private final Node source; @@ -431,7 +428,7 @@ public class ModelMenuContributor { new StartRecordingAction(source, models, recorder).execute() .whenComplete((r, ex) -> { if (ex != null) { - LOG.error("Error while starting recordings", ex); + log.error("Error while starting recordings", ex); } r.stream().map(Result::getModel).forEach(startStopCallback); }); @@ -443,7 +440,7 @@ public class ModelMenuContributor { new StopRecordingAction(source, models, recorder).execute() .whenComplete((r, ex) -> { if (ex != null) { - LOG.error("Error while stopping recordings", ex); + log.error("Error while stopping recordings", ex); } r.stream().map(Result::getModel).forEach(startStopCallback); }); @@ -465,7 +462,7 @@ public class ModelMenuContributor { try { callback.run(); } catch (Exception e) { - LOG.error("Error while executing menu callback", e); + log.error("Error while executing menu callback", e); } } } diff --git a/client/src/main/java/ctbrec/ui/menu/PauseResumeHandler.java b/client/src/main/java/ctbrec/ui/menu/PauseResumeHandler.java index d6aae631..9cad7fe5 100644 --- a/client/src/main/java/ctbrec/ui/menu/PauseResumeHandler.java +++ b/client/src/main/java/ctbrec/ui/menu/PauseResumeHandler.java @@ -1,20 +1,16 @@ package ctbrec.ui.menu; + +import lombok.extern.slf4j.Slf4j; import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Model; import ctbrec.recorder.Recorder; import ctbrec.ui.action.PauseAction; import ctbrec.ui.action.ResumeAction; import javafx.scene.Node; +@Slf4j public class PauseResumeHandler { - - private static final Logger LOG = LoggerFactory.getLogger(PauseResumeHandler.class); - private Node source; private Recorder recorder; private Runnable callback; @@ -28,7 +24,7 @@ public class PauseResumeHandler { protected void pause(List selectedModels) { new PauseAction(source, selectedModels, recorder).execute() .exceptionally(ex -> { - LOG.error("Error while pausing recordings", ex); + log.error("Error while pausing recordings", ex); return null; }).whenComplete((r, ex) -> executeCallback()); } @@ -36,7 +32,7 @@ public class PauseResumeHandler { protected void resume(List selectedModels) { new ResumeAction(source, selectedModels, recorder).execute() .exceptionally(ex -> { - LOG.error("Error while resuming recordings", ex); + log.error("Error while resuming recordings", ex); return null; }).whenComplete((r, ex) -> executeCallback()); } @@ -45,7 +41,7 @@ public class PauseResumeHandler { try { callback.run(); } catch (Exception e) { - LOG.error("Error while executing menu callback", e); + log.error("Error while executing menu callback", e); } } } diff --git a/client/src/main/java/ctbrec/ui/settings/AbstractPostProcessingPaneFactory.java b/client/src/main/java/ctbrec/ui/settings/AbstractPostProcessingPaneFactory.java index edd2842f..b43a0ac6 100644 --- a/client/src/main/java/ctbrec/ui/settings/AbstractPostProcessingPaneFactory.java +++ b/client/src/main/java/ctbrec/ui/settings/AbstractPostProcessingPaneFactory.java @@ -1,5 +1,7 @@ package ctbrec.ui.settings; + +import lombok.extern.slf4j.Slf4j; import ctbrec.recorder.postprocessing.PostProcessor; import ctbrec.ui.controls.DirectorySelectionBox; import ctbrec.ui.controls.ProgramSelectionBox; @@ -10,16 +12,12 @@ import javafx.scene.Node; import javafx.scene.control.*; import javafx.scene.layout.HBox; import javafx.util.converter.NumberStringConverter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.HashSet; import java.util.Set; +@Slf4j public abstract class AbstractPostProcessingPaneFactory { - - private static final Logger LOG = LoggerFactory.getLogger(AbstractPostProcessingPaneFactory.class); private PostProcessor pp; Set> properties = new HashSet<>(); @@ -36,7 +34,7 @@ public abstract class AbstractPostProcessingPaneFactory { for (Property property : properties) { String key = property.getName(); Object value = preferences.getSetting(key).get().getProperty().getValue(); - LOG.debug("{}={}", key, value); + log.debug("{}={}", key, value); pp.getConfig().put(key, value.toString()); } } diff --git a/client/src/main/java/ctbrec/ui/settings/ActionSettingsPanel.java b/client/src/main/java/ctbrec/ui/settings/ActionSettingsPanel.java index d751e6cf..76da01ef 100644 --- a/client/src/main/java/ctbrec/ui/settings/ActionSettingsPanel.java +++ b/client/src/main/java/ctbrec/ui/settings/ActionSettingsPanel.java @@ -1,5 +1,7 @@ package ctbrec.ui.settings; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.Recording; @@ -35,9 +37,6 @@ import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.Window; import org.mapstruct.factory.Mappers; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -52,8 +51,8 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +@Slf4j public class ActionSettingsPanel extends GridPane { - private static final Logger LOG = LoggerFactory.getLogger(ActionSettingsPanel.class); private ListView actionTable; private final TextField name = new TextField(); @@ -123,7 +122,7 @@ public class ActionSettingsPanel extends GridPane { try { Config.getInstance().save(); } catch (IOException e) { - LOG.error("Couldn't save config", e); + log.error("Couldn't save config", e); } } @@ -203,7 +202,7 @@ public class ActionSettingsPanel extends GridPane { EventBusHolder.register(handler); Config.getInstance().getSettings().eventHandlers.add(config); actionTable.getItems().add(config); - LOG.debug("Registered event handler for {} {}", config.getEvent(), config.getName()); + log.debug("Registered event handler for {} {}", config.getEvent(), config.getName()); } private void validateSettings() { diff --git a/client/src/main/java/ctbrec/ui/settings/CtbrecPreferencesStorage.java b/client/src/main/java/ctbrec/ui/settings/CtbrecPreferencesStorage.java index ac025bf0..5d57db54 100644 --- a/client/src/main/java/ctbrec/ui/settings/CtbrecPreferencesStorage.java +++ b/client/src/main/java/ctbrec/ui/settings/CtbrecPreferencesStorage.java @@ -1,5 +1,7 @@ package ctbrec.ui.settings; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.time.LocalTime; @@ -7,10 +9,6 @@ import java.time.LocalTime; import java.util.List; import java.util.Objects; import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.Settings; import ctbrec.StringUtil; @@ -48,9 +46,8 @@ import javafx.scene.control.ToggleGroup; import javafx.scene.layout.HBox; import javafx.util.converter.NumberStringConverter; +@Slf4j public class CtbrecPreferencesStorage implements PreferencesStorage { - - private static final Logger LOG = LoggerFactory.getLogger(CtbrecPreferencesStorage.class); public static final String PATTERN_NOT_A_DIGIT = "[^\\d]"; public static final String COULDNT_SAVE_MSG = "Couldn't save config setting"; @@ -142,7 +139,7 @@ public class CtbrecPreferencesStorage implements PreferencesStorage { try { r.run(); } catch (RuntimeException e) { - LOG.warn("Error while calling \"restart required\" callback", e); + log.warn("Error while calling \"restart required\" callback", e); } }); } @@ -331,7 +328,7 @@ public class CtbrecPreferencesStorage implements PreferencesStorage { } } comboBox.valueProperty().addListener((obs, oldV, newV) -> saveValue(() -> { - LOG.debug("Saving setting {}", setting.getKey()); + log.debug("Saving setting {}", setting.getKey()); if (setIfChanged(setting.getKey(), setting.getConverter() != null ? setting.getConverter().convertFrom(newV) : newV)) { if (setting.doesNeedRestart()) { runRestartRequiredCallback(); @@ -379,7 +376,7 @@ public class CtbrecPreferencesStorage implements PreferencesStorage { try { exe.run(); } catch (Exception e) { - LOG.error(COULDNT_SAVE_MSG, e); + log.error(COULDNT_SAVE_MSG, e); } } diff --git a/client/src/main/java/ctbrec/ui/settings/FontSettingsPane.java b/client/src/main/java/ctbrec/ui/settings/FontSettingsPane.java index 03b76bbd..93431af0 100644 --- a/client/src/main/java/ctbrec/ui/settings/FontSettingsPane.java +++ b/client/src/main/java/ctbrec/ui/settings/FontSettingsPane.java @@ -1,13 +1,11 @@ package ctbrec.ui.settings; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.ui.controls.Dialogs; import javafx.collections.FXCollections; @@ -18,10 +16,8 @@ import javafx.scene.control.ListCell; import javafx.scene.layout.HBox; import javafx.scene.text.Font; +@Slf4j public class FontSettingsPane extends HBox { - - private static final Logger LOG = LoggerFactory.getLogger(FontSettingsPane.class); - private ComboBox fontFaceCombo; private ComboBox fontSizeCombo; @@ -78,7 +74,7 @@ public class FontSettingsPane extends HBox { Files.writeString(getFontCssFile().toPath(), css); settingsTab.showRestartRequired(); } catch (IOException e) { - LOG.error("Couldn't write font file", e); + log.error("Couldn't write font file", e); Dialogs.showError(getScene(), "Error saving configuration", "The font stylesheet file couldn't be written", e); } } @@ -94,7 +90,7 @@ public class FontSettingsPane extends HBox { Files.delete(getFontCssFile().toPath()); settingsTab.showRestartRequired(); } catch (IOException e) { - LOG.error("Couldn't delete font file", e); + log.error("Couldn't delete font file", e); Dialogs.showError(getScene(), "Error resetting font configuration", "The font stylesheet file couldn't be deleted", e); } }); diff --git a/client/src/main/java/ctbrec/ui/settings/SettingsTab.java b/client/src/main/java/ctbrec/ui/settings/SettingsTab.java index 9aae0215..f3ef962b 100644 --- a/client/src/main/java/ctbrec/ui/settings/SettingsTab.java +++ b/client/src/main/java/ctbrec/ui/settings/SettingsTab.java @@ -1,5 +1,7 @@ package ctbrec.ui.settings; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.GlobalThreadPool; import ctbrec.Hmac; @@ -36,9 +38,6 @@ import javafx.scene.layout.*; import javafx.scene.paint.Color; import javafx.util.Duration; import lombok.Getter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -49,9 +48,8 @@ import static ctbrec.Settings.ProxyType.*; import static ctbrec.Settings.SplitStrategy.*; import static java.util.Optional.ofNullable; +@Slf4j public class SettingsTab extends Tab implements TabSelectionListener { - - private static final Logger LOG = LoggerFactory.getLogger(SettingsTab.class); public static final int CHECKBOX_MARGIN = 6; private static final long MiB = 1024 * 1024L; // NOSONAR private static final long GiB = 1024 * MiB; // NOSONAR @@ -438,7 +436,7 @@ public class SettingsTab extends Tab implements TabSelectionListener { try { DocServer.start(); } catch (Exception ex) { - LOG.error("Couldn't start documentation server", ex); + log.error("Couldn't start documentation server", ex); } }).start(); DesktopIntegration.open(url); @@ -456,7 +454,7 @@ public class SettingsTab extends Tab implements TabSelectionListener { try { s.getGui().disableProperty().bind(bindTo); } catch (Exception e) { - LOG.error("Couldn't bind disableProperty of {}", s.getName(), e); + log.error("Couldn't bind disableProperty of {}", s.getName(), e); } } @@ -537,7 +535,7 @@ public class SettingsTab extends Tab implements TabSelectionListener { try { Config.getInstance().save(); } catch (IOException e) { - LOG.error("Couldn't save config", e); + log.error("Couldn't save config", e); } }); } diff --git a/client/src/main/java/ctbrec/ui/sites/AbstractConfigUI.java b/client/src/main/java/ctbrec/ui/sites/AbstractConfigUI.java index 889f4acb..810333e6 100644 --- a/client/src/main/java/ctbrec/ui/sites/AbstractConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/AbstractConfigUI.java @@ -1,21 +1,17 @@ package ctbrec.ui.sites; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; +@Slf4j public abstract class AbstractConfigUI implements ConfigUI { - - private static final Logger LOG = LoggerFactory.getLogger(AbstractConfigUI.class); - protected void save() { try { Config.getInstance().save(); } catch (IOException e) { - LOG.error("Couldn't save config"); + log.error("Couldn't save config"); } } } diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java index 3f0b8468..6f68d65a 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.bonga; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.sites.bonga.BongaCams; import ctbrec.ui.ExternalBrowser; @@ -8,9 +10,6 @@ import okhttp3.Cookie.Builder; import okhttp3.CookieJar; import okhttp3.HttpUrl; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.MalformedURLException; // import java.net.URL; @@ -20,9 +19,8 @@ import java.util.Collections; import java.util.Objects; import java.util.function.Consumer; +@Slf4j public class BongaCamsElectronLoginDialog { - - private static final Logger LOG = LoggerFactory.getLogger(BongaCamsElectronLoginDialog.class); public static final String DOMAIN = "bongacams.com"; private BongaCams site; private CookieJar cookieJar; @@ -50,7 +48,7 @@ public class BongaCamsElectronLoginDialog { private final Consumer msgHandler = line -> { if (!line.startsWith("{")) { - LOG.error("Didn't received a JSON object {}", line); + log.error("Didn't received a JSON object {}", line); } else { var json = new JSONObject(line); if (json.has("url")) { @@ -79,9 +77,9 @@ public class BongaCamsElectronLoginDialog { } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.warn("Couldn't auto fill username and password for BongaCams", e); + log.warn("Couldn't auto fill username and password for BongaCams", e); } catch (Exception e) { - LOG.warn("Couldn't auto fill username and password for BongaCams", e); + log.warn("Couldn't auto fill username and password for BongaCams", e); } } @@ -118,11 +116,11 @@ public class BongaCamsElectronLoginDialog { browser.close(); } } catch (MalformedURLException e) { - LOG.error("Couldn't parse new url {}", url, e); + log.error("Couldn't parse new url {}", url, e); } catch (IOException e) { - LOG.error("Couldn't send shutdown request to external browser", e); + log.error("Couldn't send shutdown request to external browser", e); } catch (URISyntaxException e) { - LOG.error("Invalid URL: " + url); + log.error("Invalid URL: " + url); } } } diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsSiteUi.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsSiteUi.java index 82c0fff9..2c303631 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsSiteUi.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsSiteUi.java @@ -1,19 +1,17 @@ package ctbrec.ui.sites.bonga; + +import lombok.extern.slf4j.Slf4j; import ctbrec.sites.bonga.BongaCams; import ctbrec.sites.bonga.BongaCamsHttpClient; import ctbrec.ui.controls.Dialogs; import ctbrec.ui.sites.AbstractSiteUi; import ctbrec.ui.sites.ConfigUI; import ctbrec.ui.tabs.TabProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; +@Slf4j public class BongaCamsSiteUi extends AbstractSiteUi { - - private static final Logger LOG = LoggerFactory.getLogger(BongaCamsSiteUi.class); private final BongaCams bongaCams; private BongaCamsTabProvider tabProvider; private BongaCamsConfigUI configUi; @@ -48,16 +46,16 @@ public class BongaCamsSiteUi extends AbstractSiteUi { try { new BongaCamsElectronLoginDialog(bongaCams, bongaCams.getHttpClient().getCookieJar()); } catch (Exception e1) { - LOG.error("Error logging in with external browser", e1); + log.error("Error logging in with external browser", e1); Dialogs.showError("Login error", "Couldn't login to " + bongaCams.getName(), e1); } BongaCamsHttpClient httpClient = (BongaCamsHttpClient) bongaCams.getHttpClient(); boolean loggedIn = httpClient.checkLoginSuccess(); if (loggedIn) { - LOG.info("Logged in. User ID is {}", httpClient.getUserId()); + log.info("Logged in. User ID is {}", httpClient.getUserId()); } else { - LOG.info("Login failed"); + log.info("Login failed"); } return loggedIn; } diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsUpdateService.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsUpdateService.java index f7c014a3..af4bdfad 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsUpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.bonga; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.StringUtil; @@ -11,9 +13,6 @@ import javafx.concurrent.Task; import okhttp3.Request; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -21,10 +20,8 @@ import java.util.Locale; import static ctbrec.io.HttpConstants.*; +@Slf4j public class BongaCamsUpdateService extends PaginatedScheduledService { - - private static final Logger LOG = LoggerFactory.getLogger(BongaCamsUpdateService.class); - private final BongaCams bongaCams; private final String url; private final boolean requiresLogin; @@ -55,7 +52,7 @@ public class BongaCamsUpdateService extends PaginatedScheduledService { private List loadModelList() throws IOException { String pageUrl = url + ((page - 1) * 72); - LOG.debug("Fetching page {}", pageUrl); + log.debug("Fetching page {}", pageUrl); var request = new Request.Builder() .url(pageUrl) .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ElectronLoginDialog.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ElectronLoginDialog.java index 0551ba38..746eefd3 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ElectronLoginDialog.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ElectronLoginDialog.java @@ -1,14 +1,13 @@ package ctbrec.ui.sites.cam4; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.util.Collections; import java.util.Optional; import java.util.function.Consumer; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.sites.cam4.Cam4; import ctbrec.ui.ExternalBrowser; @@ -17,9 +16,8 @@ import okhttp3.Cookie.Builder; import okhttp3.CookieJar; import okhttp3.HttpUrl; +@Slf4j public class Cam4ElectronLoginDialog { - - private static final Logger LOG = LoggerFactory.getLogger(Cam4ElectronLoginDialog.class); public static final String DOMAIN = "cam4.com"; public static final String URL = Cam4.BASE_URI; private CookieJar cookieJar; @@ -50,7 +48,7 @@ public class Cam4ElectronLoginDialog { private Consumer msgHandler = line -> { if(!line.startsWith("{")) { - LOG.error("Didn't received a JSON object {}", line); + log.error("Didn't received a JSON object {}", line); } else { var json = new JSONObject(line); safeCookies(json); @@ -81,12 +79,12 @@ public class Cam4ElectronLoginDialog { private void checkIfLoggedIn() { try { browser.executeJavaScript("document.querySelector('a[id*=\"mainHeader_userMenuContent-logout\"]').text").thenAccept(r -> { - LOG.debug("Result from browser is {}", r); + log.debug("Result from browser is {}", r); // found the logout button, we can close the browser, the login was successful closeBrowser(); }).exceptionally(ex -> null); } catch (IOException e) { - LOG.error("Check, if logged in failed", e); + log.error("Check, if logged in failed", e); } } @@ -99,7 +97,7 @@ public class Cam4ElectronLoginDialog { + "if (cookieButton) { cookieButton.click(); }"); dialogsClicked = true; } catch (Exception e) { - LOG.warn("Couldn't click on cookie and age acknowlegde buttons for Cam4", e); + log.warn("Couldn't click on cookie and age acknowlegde buttons for Cam4", e); } } } @@ -132,7 +130,7 @@ public class Cam4ElectronLoginDialog { + "if (loginButton) { loginButton.click(); }"); loginDialogOpened = true; } catch (Exception e) { - LOG.warn("Couldn't open login dialog for Cam4", e); + log.warn("Couldn't open login dialog for Cam4", e); } } } @@ -150,7 +148,7 @@ public class Cam4ElectronLoginDialog { browser.executeJavaScript("document.querySelector('input[id*=\"loginFrom_passwordInput\"]').value = '" + password + "');"); } } catch (Exception e) { - LOG.warn("Couldn't auto fill username and password for Cam4", e); + log.warn("Couldn't auto fill username and password for Cam4", e); } } @@ -159,7 +157,7 @@ public class Cam4ElectronLoginDialog { try { browser.executeJavaScript("document.querySelector('button[id*=\"loginFrom_submitButton\"]').click();"); } catch (Exception e) { - LOG.warn("Couldn't click on login button for Cam4", e); + log.warn("Couldn't click on login button for Cam4", e); } } @@ -187,7 +185,7 @@ public class Cam4ElectronLoginDialog { Optional.ofNullable(loginChecker).ifPresent(Thread::interrupt); browser.close(); } catch(IOException e) { - LOG.error("Couldn't send close request to browser", e); + log.error("Couldn't send close request to browser", e); } } } diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4FollowedUpdateService.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4FollowedUpdateService.java index 53ec2131..c9fd3b53 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4FollowedUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4FollowedUpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.cam4; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.io.HttpException; import ctbrec.sites.cam4.Cam4; @@ -9,9 +11,6 @@ import ctbrec.ui.tabs.PaginatedScheduledService; import javafx.concurrent.Task; import okhttp3.Request; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -19,10 +18,8 @@ import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +@Slf4j public class Cam4FollowedUpdateService extends PaginatedScheduledService { - - private static final Logger LOG = LoggerFactory.getLogger(Cam4FollowedUpdateService.class); - private final Cam4 site; private boolean showOnline = true; @@ -55,7 +52,7 @@ public class Cam4FollowedUpdateService extends PaginatedScheduledService { // login first SiteUiFactory.getUi(site).login(); String url = site.getBaseUrl() + "/directoryCams?directoryJson=true&online=" + showOnline + "&url=true&friends=true&favorites=true&resultsPerPage=90"; - LOG.debug("Fetching page {}", url); + log.debug("Fetching page {}", url); Request req = new Request.Builder().url(url).build(); try (var response = site.getHttpClient().execute(req)) { if (response.isSuccessful()) { diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4SiteUi.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4SiteUi.java index 24224b60..1cc38389 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4SiteUi.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4SiteUi.java @@ -1,10 +1,8 @@ package ctbrec.ui.sites.cam4; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.sites.cam4.Cam4; import ctbrec.sites.cam4.Cam4HttpClient; import ctbrec.ui.controls.Dialogs; @@ -12,9 +10,8 @@ import ctbrec.ui.sites.AbstractSiteUi; import ctbrec.ui.sites.ConfigUI; import ctbrec.ui.tabs.TabProvider; +@Slf4j public class Cam4SiteUi extends AbstractSiteUi { - private static final Logger LOG = LoggerFactory.getLogger(Cam4SiteUi.class); - private final Cam4 cam4; private Cam4TabProvider tabProvider; private Cam4ConfigUI configUi; @@ -49,7 +46,7 @@ public class Cam4SiteUi extends AbstractSiteUi { try { new Cam4ElectronLoginDialog(cam4.getHttpClient().getCookieJar()); } catch (Exception e1) { - LOG.error("Error logging in with external browser", e1); + log.error("Error logging in with external browser", e1); Dialogs.showError("Login error", "Couldn't login to " + cam4.getName(), e1); } Cam4HttpClient httpClient = (Cam4HttpClient) cam4.getHttpClient(); diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4UpdateService.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4UpdateService.java index c45836de..cc5d2ebd 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4UpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4UpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.cam4; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.StringUtil; @@ -12,9 +14,6 @@ import javafx.concurrent.Task; import okhttp3.Request; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -27,9 +26,8 @@ import static ctbrec.Model.State.ONLINE; import static ctbrec.io.HttpConstants.ACCEPT_LANGUAGE; import static ctbrec.io.HttpConstants.USER_AGENT; +@Slf4j public class Cam4UpdateService extends PaginatedScheduledService { - - private static final Logger LOG = LoggerFactory.getLogger(Cam4UpdateService.class); private String url; private final Cam4 site; private final boolean loginRequired; @@ -57,7 +55,7 @@ public class Cam4UpdateService extends PaginatedScheduledService { return Collections.emptyList(); } else { String pageUrl = Cam4UpdateService.this.url + "&page=" + page; - LOG.debug("Fetching page {}", pageUrl); + log.debug("Fetching page {}", pageUrl); if (loginRequired) { SiteUiFactory.getUi(site).login(); } diff --git a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateElectronLoginDialog.java b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateElectronLoginDialog.java index d9b0e673..a4f08a2b 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateElectronLoginDialog.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateElectronLoginDialog.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.chaturbate; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.sites.chaturbate.Chaturbate; import ctbrec.ui.ExternalBrowser; @@ -8,9 +10,6 @@ import okhttp3.Cookie.Builder; import okhttp3.CookieJar; import okhttp3.HttpUrl; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; @@ -18,9 +17,8 @@ import java.util.Collections; import java.util.Objects; import java.util.function.Consumer; +@Slf4j public class ChaturbateElectronLoginDialog { - - private static final Logger LOG = LoggerFactory.getLogger(ChaturbateElectronLoginDialog.class); public static final String DOMAIN = "chaturbate.com"; private Chaturbate site; private CookieJar cookieJar; @@ -49,7 +47,7 @@ public class ChaturbateElectronLoginDialog { private final Consumer msgHandler = line -> { if (!line.startsWith("{")) { - LOG.error("Didn't received a JSON object {}", line); + log.error("Didn't received a JSON object {}", line); } else { var json = new JSONObject(line); if (json.has("url")) { @@ -76,9 +74,9 @@ public class ChaturbateElectronLoginDialog { browser.executeJavaScript("document.querySelector('form[action*=login]').submit()"); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.warn("Couldn't auto fill username and password for Chaturbate", e); + log.warn("Couldn't auto fill username and password for Chaturbate", e); } catch (Exception e) { - LOG.warn("Couldn't auto fill username and password for Chaturbate", e); + log.warn("Couldn't auto fill username and password for Chaturbate", e); } } @@ -113,9 +111,9 @@ public class ChaturbateElectronLoginDialog { browser.close(); } } catch (MalformedURLException e) { - LOG.error("Couldn't parse new url {}", url, e); + log.error("Couldn't parse new url {}", url, e); } catch (IOException e) { - LOG.error("Couldn't send shutdown request to external browser", e); + log.error("Couldn't send shutdown request to external browser", e); } } } diff --git a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateSiteUi.java b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateSiteUi.java index 90d84740..cfce79be 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateSiteUi.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateSiteUi.java @@ -1,20 +1,17 @@ package ctbrec.ui.sites.chaturbate; + +import lombok.extern.slf4j.Slf4j; import ctbrec.sites.chaturbate.Chaturbate; import ctbrec.sites.chaturbate.ChaturbateHttpClient; import ctbrec.ui.controls.Dialogs; import ctbrec.ui.sites.AbstractSiteUi; import ctbrec.ui.sites.ConfigUI; import ctbrec.ui.tabs.TabProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; +@Slf4j public class ChaturbateSiteUi extends AbstractSiteUi { - - private static final Logger LOG = LoggerFactory.getLogger(ChaturbateSiteUi.class); - private final Chaturbate chaturbate; private ChaturbateTabProvider tabProvider; private ChaturbateConfigUi configUi; @@ -45,7 +42,7 @@ public class ChaturbateSiteUi extends AbstractSiteUi { try { automaticLogin = chaturbate.login(); } catch (Exception e) { - LOG.debug("Automatic login failed", e); + log.debug("Automatic login failed", e); } if (automaticLogin) { return true; @@ -54,7 +51,7 @@ public class ChaturbateSiteUi extends AbstractSiteUi { try { new ChaturbateElectronLoginDialog(chaturbate, chaturbate.getHttpClient().getCookieJar()); } catch (Exception e1) { - LOG.error("Error logging in with external browser", e1); + log.error("Error logging in with external browser", e1); Dialogs.showError("Login error", "Couldn't login to " + chaturbate.getName(), e1); } diff --git a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamUpdateService.java b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamUpdateService.java index 213cdada..40034a51 100644 --- a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamUpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.dreamcam; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import ctbrec.Config; @@ -17,11 +19,8 @@ import okhttp3.Request; import okhttp3.Response; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +@Slf4j public class DreamcamUpdateService extends PaginatedScheduledService { - private static final Logger LOG = LoggerFactory.getLogger(DreamcamUpdateService.class); // private static final String API_URL = "https://api.dreamcam.co.kr/v1/live"; private static final int modelsPerPage = 64; private Dreamcam site; @@ -46,7 +45,7 @@ public class DreamcamUpdateService extends PaginatedScheduledService { int offset = (getPage() - 1) * modelsPerPage; int limit = modelsPerPage; String paginatedUrl = url + "&offset=" + offset + "&limit=" + limit; - LOG.debug("Fetching page {}", paginatedUrl); + log.debug("Fetching page {}", paginatedUrl); Request req = new Request.Builder() .url(paginatedUrl) .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) diff --git a/client/src/main/java/ctbrec/ui/sites/fc2live/Fc2LiveSiteUi.java b/client/src/main/java/ctbrec/ui/sites/fc2live/Fc2LiveSiteUi.java index e9efaa37..9926bfd7 100644 --- a/client/src/main/java/ctbrec/ui/sites/fc2live/Fc2LiveSiteUi.java +++ b/client/src/main/java/ctbrec/ui/sites/fc2live/Fc2LiveSiteUi.java @@ -1,10 +1,8 @@ package ctbrec.ui.sites.fc2live; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.GlobalThreadPool; import ctbrec.Model; import ctbrec.sites.fc2live.Fc2Live; @@ -16,8 +14,8 @@ import ctbrec.ui.sites.AbstractSiteUi; import ctbrec.ui.sites.ConfigUI; import ctbrec.ui.tabs.TabProvider; +@Slf4j public class Fc2LiveSiteUi extends AbstractSiteUi { - private static final Logger LOG = LoggerFactory.getLogger(Fc2LiveSiteUi.class); private final Fc2Live fc2live; private Fc2TabProvider tabProvider; private Fc2LiveConfigUI configUi; @@ -58,7 +56,7 @@ public class Fc2LiveSiteUi extends AbstractSiteUi { } try { m.openWebsocket(); - LOG.debug("Starting player for {}", model); + log.debug("Starting player for {}", model); Player.play(model, false); } catch (InterruptedException e) { Thread.currentThread().interrupt(); @@ -73,7 +71,7 @@ public class Fc2LiveSiteUi extends AbstractSiteUi { } private void handleException(Exception e) { - LOG.error("Error playing the stream", e); + log.error("Error playing the stream", e); Dialogs.showError("Player", "Error playing the stream", e); } } diff --git a/client/src/main/java/ctbrec/ui/sites/fc2live/Fc2UpdateService.java b/client/src/main/java/ctbrec/ui/sites/fc2live/Fc2UpdateService.java index 6a1893e7..de004fff 100644 --- a/client/src/main/java/ctbrec/ui/sites/fc2live/Fc2UpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/fc2live/Fc2UpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.fc2live; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import java.io.IOException; @@ -9,9 +11,6 @@ import java.util.Locale; import java.util.stream.Collectors; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.Model; import ctbrec.io.HttpException; @@ -22,9 +21,8 @@ import javafx.concurrent.Task; import okhttp3.Request; import okhttp3.RequestBody; +@Slf4j public class Fc2UpdateService extends PaginatedScheduledService { - private static final Logger LOG = LoggerFactory.getLogger(Fc2UpdateService.class); - private String url; private Fc2Live fc2live; private int modelsPerPage = 30; @@ -49,7 +47,7 @@ public class Fc2UpdateService extends PaginatedScheduledService { .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) .header(X_REQUESTED_WITH, XML_HTTP_REQUEST) .build(); - LOG.debug("Fetching page {}", url); + log.debug("Fetching page {}", url); try (var resp = fc2live.getHttpClient().execute(req)) { if (resp.isSuccessful()) { List models = new ArrayList<>(); diff --git a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeUpdateService.java b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeUpdateService.java index 8644211c..dd65f5bd 100644 --- a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeUpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.flirt4free; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.io.HttpException; @@ -10,9 +12,6 @@ import javafx.concurrent.Task; import okhttp3.Request; import org.json.JSONObject; import org.jsoup.nodes.Entities; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -22,9 +21,8 @@ import java.util.regex.Pattern; import static ctbrec.io.HttpClient.gunzipBody; import static ctbrec.io.HttpConstants.*; +@Slf4j public class Flirt4FreeUpdateService extends PaginatedScheduledService { - - private static final Logger LOG = LoggerFactory.getLogger(Flirt4FreeUpdateService.class); private static final int MODELS_PER_PAGE = 50; private final String url; private final Flirt4Free flirt4Free; @@ -41,7 +39,7 @@ public class Flirt4FreeUpdateService extends PaginatedScheduledService { return new Task<>() { @Override public List call() throws IOException { - LOG.debug("Fetching page {}", url); + log.debug("Fetching page {}", url); var request = new Request.Builder() .url(url) .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) @@ -65,14 +63,14 @@ public class Flirt4FreeUpdateService extends PaginatedScheduledService { if (m.find()) { var data = new JSONObject(m.group(1)); var modelData = data.getJSONArray("models"); - LOG.debug("Found {} models", modelData.length()); + log.debug("Found {} models", modelData.length()); for (var i = 0; i < modelData.length(); i++) { var modelJson = modelData.getJSONObject(i); try { Flirt4FreeModel model = parseModel(modelJson); models.add(model); } catch (Exception e) { - LOG.warn("Couldn't parse model {}", modelJson); + log.warn("Couldn't parse model {}", modelJson); } } return models.stream() diff --git a/client/src/main/java/ctbrec/ui/sites/myfreecams/FriendsUpdateService.java b/client/src/main/java/ctbrec/ui/sites/myfreecams/FriendsUpdateService.java index c4914f5f..39b935f6 100644 --- a/client/src/main/java/ctbrec/ui/sites/myfreecams/FriendsUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/myfreecams/FriendsUpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.myfreecams; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.StringUtil; @@ -10,9 +12,6 @@ import javafx.concurrent.Task; import okhttp3.Request; import okhttp3.Response; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -21,9 +20,8 @@ import java.util.List; import static ctbrec.io.HttpConstants.REFERER; import static ctbrec.io.HttpConstants.USER_AGENT; +@Slf4j public class FriendsUpdateService extends PaginatedScheduledService { - - private static final Logger LOG = LoggerFactory.getLogger(FriendsUpdateService.class); private final MyFreeCams myFreeCams; private Mode mode = Mode.ONLINE; @@ -55,7 +53,7 @@ public class FriendsUpdateService extends PaginatedScheduledService { var body = resp.body().string().substring(4); parseModels(body, models); } else { - LOG.error("Couldn't load friends list {} {}", resp.code(), resp.message()); + log.error("Couldn't load friends list {} {}", resp.code(), resp.message()); } } boolean filterOnline = mode == Mode.ONLINE; @@ -102,7 +100,7 @@ public class FriendsUpdateService extends PaginatedScheduledService { models.add(model); } } catch (Exception e) { - LOG.info("Exception getting friends list. Response was: {}", body, e); + log.info("Exception getting friends list. Response was: {}", body, e); } } diff --git a/client/src/main/java/ctbrec/ui/sites/showup/ShowupElectronLoginDialog.java b/client/src/main/java/ctbrec/ui/sites/showup/ShowupElectronLoginDialog.java index 45f3a93d..4cd3a12d 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupElectronLoginDialog.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupElectronLoginDialog.java @@ -1,13 +1,12 @@ package ctbrec.ui.sites.showup; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.util.Collections; import java.util.function.Consumer; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.sites.showup.Showup; import ctbrec.ui.ExternalBrowser; @@ -16,9 +15,8 @@ import okhttp3.Cookie.Builder; import okhttp3.CookieJar; import okhttp3.HttpUrl; +@Slf4j public class ShowupElectronLoginDialog { - - private static final Logger LOG = LoggerFactory.getLogger(ShowupElectronLoginDialog.class); public static final String DOMAIN = "showup.tv"; public static final String URL = Showup.BASE_URL; private CookieJar cookieJar; @@ -52,7 +50,7 @@ public class ShowupElectronLoginDialog { var json = new JSONObject(line); if(json.has("url")) { var url = json.getString("url"); - LOG.debug(url); + log.debug(url); if(url.contains("/site/accept_rules")) { try { Thread.sleep(500); @@ -62,9 +60,9 @@ public class ShowupElectronLoginDialog { } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.warn("Couldn't auto fill username and password for Showup", e); + log.warn("Couldn't auto fill username and password for Showup", e); } catch (Exception e) { - LOG.warn("Couldn't auto fill username and password for Showup", e); + log.warn("Couldn't auto fill username and password for Showup", e); } } else if (url.equals(URL + '/') && firstCall) { firstCall = false; @@ -84,9 +82,9 @@ public class ShowupElectronLoginDialog { return; } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.warn("Couldn't auto fill username and password for Showup", e); + log.warn("Couldn't auto fill username and password for Showup", e); } catch (Exception e) { - LOG.warn("Couldn't auto fill username and password for Showup", e); + log.warn("Couldn't auto fill username and password for Showup", e); } } @@ -111,7 +109,7 @@ public class ShowupElectronLoginDialog { b.secure(); } Cookie c = b.build(); - LOG.debug("Adding cookie {}={}", c.name(), c.value()); + log.debug("Adding cookie {}={}", c.name(), c.value()); cookieJar.saveFromResponse(HttpUrl.parse(Showup.BASE_URL), Collections.singletonList(c)); } } diff --git a/client/src/main/java/ctbrec/ui/sites/showup/ShowupSiteUi.java b/client/src/main/java/ctbrec/ui/sites/showup/ShowupSiteUi.java index 6a75bf9a..58352024 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupSiteUi.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupSiteUi.java @@ -1,10 +1,8 @@ package ctbrec.ui.sites.showup; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.sites.showup.Showup; import ctbrec.sites.showup.ShowupHttpClient; import ctbrec.ui.controls.Dialogs; @@ -12,10 +10,8 @@ import ctbrec.ui.sites.AbstractSiteUi; import ctbrec.ui.sites.ConfigUI; import ctbrec.ui.tabs.TabProvider; +@Slf4j public class ShowupSiteUi extends AbstractSiteUi { - - private static final Logger LOG = LoggerFactory.getLogger(ShowupSiteUi.class); - private final Showup site; private ConfigUI configUi; private TabProvider tabProvider; @@ -50,16 +46,16 @@ public class ShowupSiteUi extends AbstractSiteUi { try { new ShowupElectronLoginDialog(site.getHttpClient().getCookieJar()); } catch (Exception e1) { - LOG.error("Error logging in with external browser", e1); + log.error("Error logging in with external browser", e1); Dialogs.showError("Login error", "Couldn't login to " + site.getName(), e1); } ShowupHttpClient httpClient = (ShowupHttpClient) site.getHttpClient(); boolean loggedIn = httpClient.checkLoginSuccess(); if (loggedIn) { - LOG.info("Logged in"); + log.info("Logged in"); } else { - LOG.info("Login failed"); + log.info("Login failed"); } return loggedIn; } diff --git a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateFollowedService.java b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateFollowedService.java index 5a470779..be5489b3 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateFollowedService.java +++ b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateFollowedService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.streamate; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.io.HttpException; @@ -10,9 +12,6 @@ import ctbrec.ui.tabs.PaginatedScheduledService; import javafx.concurrent.Task; import okhttp3.Request; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.*; @@ -22,10 +21,8 @@ import static ctbrec.Model.State.ONLINE; import static ctbrec.io.HttpConstants.*; import static ctbrec.sites.streamate.Streamate.NAIAD_URL; +@Slf4j public class StreamateFollowedService extends PaginatedScheduledService { - - private static final Logger LOG = LoggerFactory.getLogger(StreamateFollowedService.class); - private static final int MODELS_PER_PAGE = 48; private final Streamate streamate; private final StreamateHttpClient httpClient; @@ -46,12 +43,12 @@ public class StreamateFollowedService extends PaginatedScheduledService { try { httpClient.login(); } catch (Exception e) { - LOG.debug("Login was not successful"); + log.debug("Login was not successful"); return Collections.emptyList(); } String saKey = httpClient.getSaKey(); String pageUrl = url + "&from=" + ((page - 1) * MODELS_PER_PAGE) + "&size=" + MODELS_PER_PAGE; - LOG.debug("Fetching page {}", pageUrl); + log.debug("Fetching page {}", pageUrl); String smxxx = UUID.randomUUID() + "G0211569057409"; String smtid = Optional.ofNullable(httpClient.getCookieValue("smtid")).orElse(smxxx); String smeid = Optional.ofNullable(httpClient.getCookieValue("smeid")).orElse(smxxx); diff --git a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateUpdateService.java b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateUpdateService.java index b6ce4ff3..4062366b 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateUpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.streamate; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.io.HttpException; import ctbrec.sites.streamate.Streamate; @@ -8,9 +10,6 @@ import ctbrec.sites.streamate.StreamateModel; import ctbrec.ui.tabs.PaginatedScheduledService; import javafx.concurrent.Task; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.*; @@ -18,10 +17,8 @@ import static ctbrec.ErrorMessages.HTTP_RESPONSE_BODY_IS_NULL; import static ctbrec.Model.State.*; import static ctbrec.io.HttpConstants.ORIGIN; +@Slf4j public class StreamateUpdateService extends PaginatedScheduledService { - - private static final Logger LOG = LoggerFactory.getLogger(StreamateUpdateService.class); - private static final int MODELS_PER_PAGE = 48; private final Streamate streamate; private final StreamateHttpClient httpClient; @@ -41,7 +38,7 @@ public class StreamateUpdateService extends PaginatedScheduledService { int from = (page - 1) * MODELS_PER_PAGE; String saKey = httpClient.getSaKey(); String pageUrl = url + "&from=" + from + "&size=" + MODELS_PER_PAGE; - LOG.debug("Fetching page {}", pageUrl); + log.debug("Fetching page {}", pageUrl); String smxxx = UUID.randomUUID() + "G0211569057409"; String smtid = Optional.ofNullable(httpClient.getCookieValue("smtid")).orElse(smxxx); String smeid = Optional.ofNullable(httpClient.getCookieValue("smeid")).orElse(smxxx); diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatElectronLoginDialog.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatElectronLoginDialog.java index bebaa408..6b1e8306 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatElectronLoginDialog.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatElectronLoginDialog.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.stripchat; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.sites.stripchat.Stripchat; import ctbrec.ui.ExternalBrowser; @@ -8,16 +10,12 @@ import okhttp3.Cookie.Builder; import okhttp3.CookieJar; import okhttp3.HttpUrl; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.Collections; import java.util.function.Consumer; +@Slf4j public class StripchatElectronLoginDialog { - - private static final Logger LOG = LoggerFactory.getLogger(StripchatElectronLoginDialog.class); public static final String DOMAIN = Stripchat.getDomain(); public static final String URL = Stripchat.getBaseUri(); private CookieJar cookieJar; @@ -67,7 +65,7 @@ public class StripchatElectronLoginDialog { browser.executeJavaScript("document.querySelector('#recaptcha-checkbox-border').click();"); browser.executeJavaScript("document.querySelector('*[class~=btn-login]').addEventListener('click', function() {window.setTimeout(function() {location.reload()}, 2000)});"); } catch (Exception e) { - LOG.warn("Couldn't auto fill username and password for Stripchat", e); + log.warn("Couldn't auto fill username and password for Stripchat", e); } } @@ -95,7 +93,7 @@ public class StripchatElectronLoginDialog { try { browser.close(); } catch (IOException e) { - LOG.error("Couldn't send close request to browser", e); + log.error("Couldn't send close request to browser", e); } } } diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatSiteUi.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatSiteUi.java index 3621d921..9dad9b66 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatSiteUi.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatSiteUi.java @@ -1,10 +1,8 @@ package ctbrec.ui.sites.stripchat; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.sites.stripchat.Stripchat; import ctbrec.sites.stripchat.StripchatHttpClient; import ctbrec.ui.controls.Dialogs; @@ -12,10 +10,8 @@ import ctbrec.ui.sites.AbstractSiteUi; import ctbrec.ui.sites.ConfigUI; import ctbrec.ui.tabs.TabProvider; +@Slf4j public class StripchatSiteUi extends AbstractSiteUi { - - private static final Logger LOG = LoggerFactory.getLogger(StripchatSiteUi.class); - private StripchatTabProvider tabProvider; private StripchatConfigUI configUi; private Stripchat site; @@ -50,7 +46,7 @@ public class StripchatSiteUi extends AbstractSiteUi { try { new StripchatElectronLoginDialog(site.getHttpClient().getCookieJar()); } catch (Exception e1) { - LOG.error("Error logging in with external browser", e1); + log.error("Error logging in with external browser", e1); Dialogs.showError("Login error", "Couldn't login to " + site.getName(), e1); } diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatUpdateService.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatUpdateService.java index e119f2a9..701a23a7 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatUpdateService.java @@ -1,5 +1,7 @@ package ctbrec.ui.sites.stripchat; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.io.HttpException; @@ -9,9 +11,6 @@ import ctbrec.ui.SiteUiFactory; import javafx.concurrent.Task; import okhttp3.Request; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -20,10 +19,8 @@ import java.util.Locale; import static ctbrec.io.HttpConstants.*; +@Slf4j public class StripchatUpdateService extends AbstractStripchatUpdateService { - - private static final Logger LOG = LoggerFactory.getLogger(StripchatUpdateService.class); - private final String url; private final boolean loginRequired; private final Stripchat stripchat; @@ -46,7 +43,7 @@ public class StripchatUpdateService extends AbstractStripchatUpdateService { int offset = (getPage() - 1) * modelsPerPage; int limit = modelsPerPage; String paginatedUrl = url + "&offset=" + offset + "&limit=" + limit; - LOG.debug("Fetching page {}", paginatedUrl); + log.debug("Fetching page {}", paginatedUrl); if (loginRequired) { SiteUiFactory.getUi(stripchat).login(); } @@ -90,12 +87,12 @@ public class StripchatUpdateService extends AbstractStripchatUpdateService { model.setDescription(description.toString()); models.add(model); } catch (Exception e) { - LOG.warn("Couldn't parse one of the models: {}", jsonModel, e); + log.warn("Couldn't parse one of the models: {}", jsonModel, e); } } return models; } else { - LOG.debug("Response was not successful: {}", json); + log.debug("Response was not successful: {}", json); return Collections.emptyList(); } } diff --git a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java index 6e1aa55f..c6ea4a87 100644 --- a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java @@ -1,5 +1,7 @@ package ctbrec.ui.tabs; + +import lombok.extern.slf4j.Slf4j; import ctbrec.*; import ctbrec.Recording.State; import ctbrec.event.EventBusHolder; @@ -43,9 +45,6 @@ import javafx.scene.layout.StackPane; import javafx.scene.text.Font; import javafx.stage.FileChooser; import javafx.util.Duration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; @@ -67,11 +66,9 @@ import static ctbrec.Recording.State.*; import static javafx.scene.control.ButtonType.NO; import static javafx.scene.control.ButtonType.YES; +@Slf4j public class RecordingsTab extends Tab implements TabSelectionListener, ShutdownListener { private static final String ERROR_WHILE_DOWNLOADING_RECORDING = "Error while downloading recording"; - - private static final Logger LOG = LoggerFactory.getLogger(RecordingsTab.class); - private ScheduledService> updateService; private final Config config; private final ModelNotesService modelNotesService; @@ -168,7 +165,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown try { modelNts = modelNotesService.loadModelNotes(cdf.getValue().getModel().getUrl()).orElse(""); } catch (IOException e) { - LOG.warn("Could not load model notes", e); + log.warn("Could not load model notes", e); modelNts = ""; } return new SimpleStringProperty(modelNts); @@ -309,7 +306,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown updateUsedSpaceDisplay(); }); updateService.setOnFailed(event -> { - LOG.info("Couldn't get list of recordings from recorder", event.getSource().getException()); + log.info("Couldn't get list of recordings from recorder", event.getSource().getException()); var autosizeAlert = new AutosizeAlert(AlertType.ERROR, getTabPane().getScene()); autosizeAlert.setTitle("Whoopsie!"); autosizeAlert.setHeaderText("Recordings not available"); @@ -389,7 +386,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown // recordings dir does not exist Platform.runLater(() -> spaceLeft.setTooltip(new Tooltip("Recordings directory does not exist"))); } catch (IOException e) { - LOG.error("Couldn't update free space", e); + log.error("Couldn't update free space", e); } } }; @@ -687,7 +684,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown recorder.rerunPostProcessing(rec.getDelegate()); } catch (IOException | InvalidKeyException | NoSuchAlgorithmException | IllegalStateException e1) { showErrorDialog("Error while starting post-processing", "The post-processing could not be started", e1); - LOG.error("Error while starting post-processing", e1); + log.error("Error while starting post-processing", e1); } } }); @@ -695,7 +692,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown private void download(Recording recording) { try { - LOG.debug("Path {}", recording.getAbsoluteFile()); + log.debug("Path {}", recording.getAbsoluteFile()); String filename = proposeTargetFilename(recording); var chooser = new FileChooser(); chooser.setInitialFileName(filename); @@ -742,19 +739,19 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown var url = new URL(hlsBase + '/' + recording.getId() + "/playlist.m3u8"); var download = new RecordingDownload(CamrecApplication.httpClient); download.init(config, recording.getModel(), Instant.now(), Executors.newSingleThreadExecutor()); - LOG.info("Downloading {}", url); + log.info("Downloading {}", url); download.downloadFinishedRecording(url.toString(), target, createDownloadListener(recording), recording.getSizeInByte()); } } catch (FileNotFoundException e) { showErrorDialog(ERROR_WHILE_DOWNLOADING_RECORDING, "The target file couldn't be created", e); - LOG.error(ERROR_WHILE_DOWNLOADING_RECORDING, e); + log.error(ERROR_WHILE_DOWNLOADING_RECORDING, e); } catch (InterruptedException e) { Thread.currentThread().interrupt(); showErrorDialog(ERROR_WHILE_DOWNLOADING_RECORDING, "The recording could not be downloaded", e); - LOG.error(ERROR_WHILE_DOWNLOADING_RECORDING, e); + log.error(ERROR_WHILE_DOWNLOADING_RECORDING, e); } catch (Exception e) { showErrorDialog(ERROR_WHILE_DOWNLOADING_RECORDING, "The recording could not be downloaded", e); - LOG.error(ERROR_WHILE_DOWNLOADING_RECORDING, e); + log.error(ERROR_WHILE_DOWNLOADING_RECORDING, e); } finally { Platform.runLater(() -> { recording.setStatus(FINISHED); @@ -772,7 +769,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown return progress -> Platform.runLater(() -> { if (progress == 100) { recording.setStatus(FINISHED); - LOG.debug("Download finished for recording {} - {}", recording.getId(), recording.getAbsoluteFile()); + log.debug("Download finished for recording {} - {}", recording.getId(), recording.getAbsoluteFile()); } else { recording.setStatus(DOWNLOADING); } @@ -846,7 +843,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown deleted.add(r); } catch (Exception e1) { exceptions.add(e1); - LOG.error("Error while deleting recording", e1); + log.error("Error while deleting recording", e1); } } if (!exceptions.isEmpty()) { diff --git a/client/src/main/java/ctbrec/ui/tabs/ThumbCell.java b/client/src/main/java/ctbrec/ui/tabs/ThumbCell.java index 3a662939..0ff7a2ae 100644 --- a/client/src/main/java/ctbrec/ui/tabs/ThumbCell.java +++ b/client/src/main/java/ctbrec/ui/tabs/ThumbCell.java @@ -1,5 +1,7 @@ package ctbrec.ui.tabs; + +import lombok.extern.slf4j.Slf4j; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; @@ -49,9 +51,6 @@ import javafx.scene.text.TextAlignment; import javafx.util.Duration; import okhttp3.Request; import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.io.InputStream; import java.util.List; @@ -68,10 +67,10 @@ import static ctbrec.Model.State.ONLINE; import static ctbrec.io.HttpConstants.*; import static ctbrec.ui.Icon.*; +@Slf4j public class ThumbCell extends StackPane { private static final String ERROR = "Error"; - private static final Logger LOG = LoggerFactory.getLogger(ThumbCell.class); private static final Duration ANIMATION_DURATION = new Duration(250); private static final Image imgRecordIndicator = new Image(MEDIA_RECORD_16.url()); @@ -390,7 +389,7 @@ public class ThumbCell extends StackPane { throw new HttpException(resp.code(), resp.message()); } } catch (IOException e) { - LOG.warn("Error loading thumbnail: {} {}", url, e.getLocalizedMessage()); + log.warn("Error loading thumbnail: {} {}", url, e.getLocalizedMessage()); } }; } @@ -469,7 +468,7 @@ public class ThumbCell extends StackPane { } setRecording(recording); } catch (Exception e1) { - LOG.error("Couldn't pause/resume recording", e1); + log.error("Couldn't pause/resume recording", e1); Platform.runLater(() -> { Alert alert = new AutosizeAlert(Alert.AlertType.ERROR, getScene()); alert.setTitle(ERROR); @@ -508,7 +507,7 @@ public class ThumbCell extends StackPane { } } } catch (Exception e1) { - LOG.error("Couldn't follow/unfollow model {}", model.getName(), e1); + log.error("Couldn't follow/unfollow model {}", model.getName(), e1); String msg = "I/O error while following/unfollowing model " + model.getName() + ": "; Dialogs.showError(getScene(), "Couldn't follow/unfollow model", msg, e1); return false; @@ -627,7 +626,7 @@ public class ThumbCell extends StackPane { try { return model.getStreamResolution(false); } catch (ExecutionException e) { - LOG.trace("Error loading stream resolution for model {}: {}", model, e.getLocalizedMessage()); + log.trace("Error loading stream resolution for model {}: {}", model, e.getLocalizedMessage()); return new int[2]; } } diff --git a/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java b/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java index c4eb4001..100a82ea 100644 --- a/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java @@ -1,5 +1,7 @@ package ctbrec.ui.tabs; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.GlobalThreadPool; import ctbrec.Model; @@ -36,9 +38,6 @@ import javafx.scene.image.ImageView; import javafx.scene.input.*; import javafx.scene.layout.*; import javafx.util.Duration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.SocketTimeoutException; import java.util.*; @@ -46,9 +45,8 @@ import java.util.concurrent.*; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; +@Slf4j public class ThumbOverviewTab extends Tab implements TabSelectionListener { - private static final Logger LOG = LoggerFactory.getLogger(ThumbOverviewTab.class); - protected static BlockingQueue queue = new LinkedBlockingQueue<>(); static ExecutorService threadPool = new ThreadPoolExecutor(2, 2, 10, TimeUnit.MINUTES, queue, createThreadFactory()); @@ -617,14 +615,14 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { protected void onFail(WorkerStateEvent event) { if (event.getSource().getException() != null) { if (event.getSource().getException() instanceof SocketTimeoutException) { - LOG.debug("Fetching model list timed out"); + log.debug("Fetching model list timed out"); errorLabel.setText("Timeout while updating"); } else { - LOG.error("Couldn't update model list", event.getSource().getException()); + log.error("Couldn't update model list", event.getSource().getException()); errorLabel.setText("Error while updating " + event.getSource().getException().getLocalizedMessage()); } } else { - LOG.error("Couldn't update model list {}", event.getEventType()); + log.error("Couldn't update model list {}", event.getEventType()); errorLabel.setText("Couldn't update model list " + event.getEventType()); } grid.getChildren().removeAll(progressIndicator, noResultsFound, errorLabel); @@ -718,7 +716,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { } return !tokensMissing; } catch (NumberFormatException | ExecutionException | IOException e) { - LOG.error("Error while filtering model list", e); + log.error("Error while filtering model list", e); return false; } } diff --git a/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTabSearchTask.java b/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTabSearchTask.java index 92dbfa93..fc6707ef 100644 --- a/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTabSearchTask.java +++ b/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTabSearchTask.java @@ -1,13 +1,11 @@ package ctbrec.ui.tabs; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.ui.controls.Dialogs.*; import java.io.IOException; import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Model; import ctbrec.sites.Site; import ctbrec.ui.SiteUiFactory; @@ -16,10 +14,8 @@ import ctbrec.ui.controls.SearchPopoverTreeList; import javafx.application.Platform; import javafx.concurrent.Task; +@Slf4j public class ThumbOverviewTabSearchTask extends Task> { - - private static final Logger LOG = LoggerFactory.getLogger(ThumbOverviewTabSearchTask.class); - private final Site site; private final SearchPopover popover; private final SearchPopoverTreeList popoverTreeList; @@ -50,14 +46,14 @@ public class ThumbOverviewTabSearchTask extends Task> { @Override protected void failed() { - LOG.error("Search failed", getException()); + log.error("Search failed", getException()); } @Override protected void succeeded() { Platform.runLater(() -> { List models = getValue(); - LOG.debug("Search result {} {}", isCancelled(), models); + log.debug("Search result {} {}", isCancelled(), models); if(models.isEmpty()) { popover.hide(); } else { diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java index ceace6b7..a007ef25 100644 --- a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java @@ -1,5 +1,7 @@ package ctbrec.ui.tabs.recorded; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.recorder.Recorder; @@ -17,18 +19,14 @@ import javafx.concurrent.WorkerStateEvent; import javafx.geometry.Insets; import javafx.scene.layout.BorderPane; import javafx.util.Duration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.function.Predicate; +@Slf4j public class RecordLaterTab extends AbstractRecordedModelsTab { - private static final Logger LOG = LoggerFactory.getLogger(RecordLaterTab.class); - private ScheduledService> updateService; public RecordLaterTab(String title, Recorder recorder, List sites) { @@ -72,7 +70,7 @@ public class RecordLaterTab extends AbstractRecordedModelsTab { updateService = createUpdateService(); updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(2))); updateService.setOnSucceeded(this::onUpdateSuccess); - updateService.setOnFailed(event -> LOG.info("Couldn't get list of models from recorder", event.getSource().getException())); + updateService.setOnFailed(event -> log.info("Couldn't get list of models from recorder", event.getSource().getException())); } private void onUpdateSuccess(WorkerStateEvent event) { @@ -117,7 +115,7 @@ public class RecordLaterTab extends AbstractRecordedModelsTab { return new Task<>() { @Override public List call() { - LOG.trace("Updating models marked for later recording"); + log.trace("Updating models marked for later recording"); return recorder.getModels().stream().filter(Model::isMarkedForLaterRecording).map(JavaFxModel::new).toList(); } }; diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordedModelsTab.java b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordedModelsTab.java index c1ee1018..a14974b8 100644 --- a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordedModelsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordedModelsTab.java @@ -1,5 +1,7 @@ package ctbrec.ui.tabs.recorded; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.Recording; @@ -30,9 +32,6 @@ import javafx.scene.layout.HBox; import javafx.util.Callback; import javafx.util.Duration; import javafx.util.converter.NumberStringConverter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; @@ -48,9 +47,8 @@ import java.util.function.Predicate; import static ctbrec.Recording.State.RECORDING; +@Slf4j public class RecordedModelsTab extends AbstractRecordedModelsTab { - private static final Logger LOG = LoggerFactory.getLogger(RecordedModelsTab.class); - private ScheduledService> updateService; private volatile boolean cellEditing = false; @@ -232,7 +230,7 @@ public class RecordedModelsTab extends AbstractRecordedModelsTab { updateService = createUpdateService(); updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(2))); updateService.setOnSucceeded(this::onUpdateSuccess); - updateService.setOnFailed(event -> LOG.info("Couldn't get list of models from recorder", event.getSource().getException())); + updateService.setOnFailed(event -> log.info("Couldn't get list of models from recorder", event.getSource().getException())); } private void onUpdateSuccess(WorkerStateEvent event) { @@ -311,7 +309,7 @@ public class RecordedModelsTab extends AbstractRecordedModelsTab { return new Task<>() { @Override public List call() throws InvalidKeyException, NoSuchAlgorithmException, IOException { - LOG.trace("Updating recorded models"); + log.trace("Updating recorded models"); List recordings = recorder.getRecordings(); List onlineModels = recorder.getOnlineModels(); return recorder.getModels().stream().filter(Predicate.not(Model::isMarkedForLaterRecording)).map(JavaFxModel::new).peek(fxm -> { // NOSONAR diff --git a/common/src/main/java/ctbrec/Hmac.java b/common/src/main/java/ctbrec/Hmac.java index d532f279..5a7eedd6 100644 --- a/common/src/main/java/ctbrec/Hmac.java +++ b/common/src/main/java/ctbrec/Hmac.java @@ -1,8 +1,6 @@ package ctbrec; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import lombok.extern.slf4j.Slf4j; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.security.InvalidKeyException; @@ -12,15 +10,13 @@ import java.util.Base64; import static java.nio.charset.StandardCharsets.UTF_8; +@Slf4j public class Hmac { private Hmac() { } - - private static final Logger LOG = LoggerFactory.getLogger(Hmac.class); - public static byte[] generateKey() { - LOG.debug("Generating HMAC key"); + log.debug("Generating HMAC key"); SecureRandom random = new SecureRandom(); byte[] key = new byte[32]; random.nextBytes(key); diff --git a/common/src/main/java/ctbrec/LoggingInterceptor.java b/common/src/main/java/ctbrec/LoggingInterceptor.java index 0960e1e8..0c038af8 100644 --- a/common/src/main/java/ctbrec/LoggingInterceptor.java +++ b/common/src/main/java/ctbrec/LoggingInterceptor.java @@ -1,34 +1,31 @@ package ctbrec; + +import lombok.extern.slf4j.Slf4j; import kotlin.Pair; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; +@Slf4j public class LoggingInterceptor implements Interceptor { - - private static final Logger LOG = LoggerFactory.getLogger(LoggingInterceptor.class); - @Override public Response intercept(Chain chain) throws IOException { long t1 = System.nanoTime(); Request request = chain.request(); - LOG.debug("OkHttp Sending request {} on {}", request.url(), chain.connection()); + log.debug("OkHttp Sending request {} on {}", request.url(), chain.connection()); for (Pair header : request.headers()) { - LOG.debug("{}: {}", header.getFirst(), header.getSecond()); + log.debug("{}: {}", header.getFirst(), header.getSecond()); } if (request.method().equalsIgnoreCase("POST")) { - LOG.debug("Body: {}", request.body()); + log.debug("Body: {}", request.body()); } Response response = chain.proceed(request); long t2 = System.nanoTime(); - LOG.debug("OkHttp Received {} response for {} in {}ms", response.code(), response.request().url(), (t2 - t1) / 1e6d); + log.debug("OkHttp Received {} response for {} in {}ms", response.code(), response.request().url(), (t2 - t1) / 1e6d); for (Pair header : response.headers()) { - LOG.debug("{}: {}", header.getFirst(), header.getSecond()); + log.debug("{}: {}", header.getFirst(), header.getSecond()); } return response; } diff --git a/common/src/main/java/ctbrec/OS.java b/common/src/main/java/ctbrec/OS.java index b97ebb61..a7282df1 100644 --- a/common/src/main/java/ctbrec/OS.java +++ b/common/src/main/java/ctbrec/OS.java @@ -1,5 +1,7 @@ package ctbrec; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.net.URI; import java.net.URISyntaxException; @@ -7,14 +9,8 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; import java.util.Map.Entry; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +@Slf4j public class OS { - - private static final Logger LOG = LoggerFactory.getLogger(OS.class); - private static final String USER_HOME = "user.home"; private static final String OS_NAME = "os.name"; private static final String CTBREC = "ctbrec"; @@ -100,7 +96,7 @@ public class OS { default: throw new UnsupportedOperatingSystemException(System.getProperty(OS_NAME)); } - LOG.debug("Browser command: {}", Arrays.toString(cmd)); + log.debug("Browser command: {}", Arrays.toString(cmd)); return cmd; } catch (URISyntaxException e) { throw new ForkProcessException(e); @@ -135,7 +131,7 @@ public class OS { default: throw new UnsupportedOperatingSystemException(System.getProperty(OS_NAME)); } - LOG.debug("FFmpeg command: {}", Arrays.toString(cmd)); + log.debug("FFmpeg command: {}", Arrays.toString(cmd)); return cmd; } catch (URISyntaxException e) { throw new ForkProcessException(e); diff --git a/common/src/main/java/ctbrec/event/EventBusHolder.java b/common/src/main/java/ctbrec/event/EventBusHolder.java index 12e265ac..2bb02fa0 100644 --- a/common/src/main/java/ctbrec/event/EventBusHolder.java +++ b/common/src/main/java/ctbrec/event/EventBusHolder.java @@ -1,18 +1,16 @@ package ctbrec.event; + +import lombok.extern.slf4j.Slf4j; import java.util.HashMap; import java.util.Map; import java.util.UUID; import java.util.concurrent.Executors; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.google.common.eventbus.AsyncEventBus; import com.google.common.eventbus.EventBus; +@Slf4j public class EventBusHolder { - private static final Logger LOG = LoggerFactory.getLogger(EventBusHolder.class); private static Map handlers = new HashMap<>(); private EventBusHolder() {} @@ -27,11 +25,11 @@ public class EventBusHolder { public static void register(EventHandler handler) { if(handlers.containsKey(handler.getId())) { - LOG.warn("EventHandler with ID {} is already registered", handler.getId()); + log.warn("EventHandler with ID {} is already registered", handler.getId()); } else { BUS.register(handler); handlers.put(handler.getId(), handler); - LOG.debug("EventHandler with ID {} has been added", handler.getId()); + log.debug("EventHandler with ID {} has been added", handler.getId()); } } @@ -40,7 +38,7 @@ public class EventBusHolder { if(handler != null) { BUS.unregister(handler); handlers.remove(id); - LOG.debug("EventHandler with ID {} has been removed", id); + log.debug("EventHandler with ID {} has been removed", id); } } } diff --git a/common/src/main/java/ctbrec/event/EventHandler.java b/common/src/main/java/ctbrec/event/EventHandler.java index 6c329382..f8ce4e85 100644 --- a/common/src/main/java/ctbrec/event/EventHandler.java +++ b/common/src/main/java/ctbrec/event/EventHandler.java @@ -1,14 +1,13 @@ package ctbrec.event; + +import lombok.extern.slf4j.Slf4j; import com.google.common.eventbus.Subscribe; import ctbrec.Config; import ctbrec.event.Event.Type; import ctbrec.event.EventHandlerConfiguration.ActionConfiguration; import ctbrec.event.EventHandlerConfiguration.PredicateConfiguration; import lombok.EqualsAndHashCode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collections; @@ -17,9 +16,8 @@ import java.util.function.Consumer; import java.util.function.Predicate; @EqualsAndHashCode(of = "id") +@Slf4j public class EventHandler { - private static final Logger LOG = LoggerFactory.getLogger(EventHandler.class); - private List predicates = new ArrayList<>(); private final List actions; private String id; @@ -48,7 +46,7 @@ public class EventHandler { @Subscribe public void reactToEvent(Event evt) { if (Config.getInstance().getSettings().eventsSuspended) { - LOG.debug("Events are suspended. Ignoring {}", evt); + log.debug("Events are suspended. Ignoring {}", evt); return; } @@ -65,7 +63,7 @@ public class EventHandler { } } } catch (Exception e) { - LOG.error("Error while processing event", e); + log.error("Error while processing event", e); } } @@ -77,7 +75,7 @@ public class EventHandler { @SuppressWarnings("unchecked") Class cls = (Class) Class.forName(pc.getType()); if (cls == null) { - LOG.warn("Ignoring unknown action {}", cls); + log.warn("Ignoring unknown action {}", cls); continue; } EventPredicate predicate = cls.getDeclaredConstructor().newInstance(); @@ -85,7 +83,7 @@ public class EventHandler { predicateList.add(predicate); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { - LOG.warn("Error while creating action {} {}", pc.getType(), pc.getConfiguration(), e); + log.warn("Error while creating action {} {}", pc.getType(), pc.getConfiguration(), e); } } return predicateList; @@ -98,14 +96,14 @@ public class EventHandler { @SuppressWarnings("unchecked") Class cls = (Class) Class.forName(ac.getType()); if (cls == null) { - LOG.warn("Ignoring unknown action {}", cls); + log.warn("Ignoring unknown action {}", cls); continue; } Action action = cls.getDeclaredConstructor().newInstance(); action.configure(ac); actionList.add(action); } catch (Exception e) { - LOG.warn("Error while creating action {} {}", ac.getType(), ac.getConfiguration(), e); + log.warn("Error while creating action {} {}", ac.getType(), ac.getConfiguration(), e); } } return actionList; diff --git a/common/src/main/java/ctbrec/event/ExecuteProgram.java b/common/src/main/java/ctbrec/event/ExecuteProgram.java index 4c9caebc..683f1b2d 100644 --- a/common/src/main/java/ctbrec/event/ExecuteProgram.java +++ b/common/src/main/java/ctbrec/event/ExecuteProgram.java @@ -1,18 +1,14 @@ package ctbrec.event; + +import lombok.extern.slf4j.Slf4j; import java.util.Arrays; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.OS; import ctbrec.event.EventHandlerConfiguration.ActionConfiguration; import ctbrec.io.StreamRedirector; +@Slf4j public class ExecuteProgram extends Action { - - private static final transient Logger LOG = LoggerFactory.getLogger(ExecuteProgram.class); - private String executable; public ExecuteProgram() { @@ -33,7 +29,7 @@ public class ExecuteProgram extends Action { String[] cmd = new String[args.length+1]; cmd[0] = executable; System.arraycopy(args, 0, cmd, 1, args.length); - LOG.debug("Executing {}", Arrays.toString(cmd)); + log.debug("Executing {}", Arrays.toString(cmd)); process = rt.exec(cmd, OS.getEnvironment()); // create threads, which read stdout and stderr of the player process. these are needed, @@ -48,9 +44,9 @@ public class ExecuteProgram extends Action { err.start(); process.waitFor(); - LOG.debug("Executing {} finished", executable); + log.debug("Executing {} finished", executable); } catch (Exception e) { - LOG.error("Error while executing {}", executable, e); + log.error("Error while executing {}", executable, e); } } diff --git a/common/src/main/java/ctbrec/io/CookieJarImpl.java b/common/src/main/java/ctbrec/io/CookieJarImpl.java index 59ec056a..444cc43d 100644 --- a/common/src/main/java/ctbrec/io/CookieJarImpl.java +++ b/common/src/main/java/ctbrec/io/CookieJarImpl.java @@ -1,5 +1,7 @@ package ctbrec.io; + +import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -10,18 +12,12 @@ import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Objects; import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import okhttp3.Cookie; import okhttp3.CookieJar; import okhttp3.HttpUrl; +@Slf4j public class CookieJarImpl implements CookieJar { - - private static final Logger LOG = LoggerFactory.getLogger(CookieJarImpl.class); - private final HashMap> cookieStore = new HashMap<>(); @Override @@ -35,7 +31,7 @@ public class CookieJarImpl implements CookieJar { String name = oldCookie.name(); for (Cookie newCookie : cookies) { if(newCookie.name().equalsIgnoreCase(name)) { - LOG.trace("Replacing cookie {} {} -> {} [{}]", oldCookie.name(), oldCookie.value(), newCookie.value(), oldCookie.domain()); + log.trace("Replacing cookie {} {} -> {} [{}]", oldCookie.name(), oldCookie.value(), newCookie.value(), oldCookie.domain()); iterator.remove(); break; } @@ -43,17 +39,17 @@ public class CookieJarImpl implements CookieJar { } cookiesForUrl.addAll(cookies); cookieStore.put(host, cookiesForUrl); - LOG.trace("Adding cookie: {} for {}", cookiesForUrl, host); + log.trace("Adding cookie: {} for {}", cookiesForUrl, host); } else { cookieStore.put(host, cookies); - LOG.trace("Storing cookie: {} for {}", cookies, host); + log.trace("Storing cookie: {} for {}", cookies, host); } } @Override public List loadForRequest(HttpUrl url) { - LOG.debug("Loading cookies for {}", url); + log.debug("Loading cookies for {}", url); String host = getDomain(url); List cookies = cookieStore.get(host); List result = new ArrayList<>(); @@ -62,8 +58,8 @@ public class CookieJarImpl implements CookieJar { addCookieToResult(url, result, cookie); } } - LOG.trace("Cookies for {}", url); - Optional.ofNullable(result).ifPresent(cookiez -> cookiez.forEach(c -> LOG.trace("Cookies for {}: {}", url, c))); + log.trace("Cookies for {}", url); + Optional.ofNullable(result).ifPresent(cookiez -> cookiez.forEach(c -> log.trace("Cookies for {}: {}", url, c))); return result; } @@ -107,7 +103,7 @@ public class CookieJarImpl implements CookieJar { Cookie cookie = iterator.next(); if(Objects.equals(cookie.name(), name)) { iterator.remove(); - LOG.debug("Removed cookie \"{}\" for {}", name, url); + log.debug("Removed cookie \"{}\" for {}", name, url); return; } } diff --git a/common/src/main/java/ctbrec/io/IoUtils.java b/common/src/main/java/ctbrec/io/IoUtils.java index a34811d3..221c6f25 100644 --- a/common/src/main/java/ctbrec/io/IoUtils.java +++ b/common/src/main/java/ctbrec/io/IoUtils.java @@ -1,9 +1,8 @@ package ctbrec.io; -import ctbrec.Config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; +import ctbrec.Config; import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -11,10 +10,8 @@ import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; import java.util.EnumSet; +@Slf4j public class IoUtils { - - private static final Logger LOG = LoggerFactory.getLogger(IoUtils.class); - private IoUtils() { } @@ -25,7 +22,7 @@ public class IoUtils { return; } if (parent.exists()) { - LOG.debug("Deleting empty directory {}", parent.getAbsolutePath()); + log.debug("Deleting empty directory {}", parent.getAbsolutePath()); Files.delete(parent.toPath()); } parent = parent.getParentFile(); @@ -44,11 +41,11 @@ public class IoUtils { deleteDirectory(file); } else { try { - LOG.trace("Deleting {}", file.getAbsolutePath()); + log.trace("Deleting {}", file.getAbsolutePath()); Files.delete(file.toPath()); } catch (Exception e) { deletedAllFiles = false; - LOG.debug("Couldn't delete {}", file, e); + log.debug("Couldn't delete {}", file, e); } } } @@ -78,7 +75,7 @@ public class IoUtils { } }); } catch (IOException e) { - LOG.error("Couldn't determine size of directory {}", dir, e); + log.error("Couldn't determine size of directory {}", dir, e); } return size[0]; } @@ -88,7 +85,7 @@ public class IoUtils { try { outputStream.close(); } catch (IOException e) { - LOG.error(errorMsg, e); + log.error(errorMsg, e); } } } diff --git a/common/src/main/java/ctbrec/io/ProcessStreamRedirector.java b/common/src/main/java/ctbrec/io/ProcessStreamRedirector.java index 61486ad4..3f3668c9 100644 --- a/common/src/main/java/ctbrec/io/ProcessStreamRedirector.java +++ b/common/src/main/java/ctbrec/io/ProcessStreamRedirector.java @@ -1,18 +1,15 @@ package ctbrec.io; + +import lombok.extern.slf4j.Slf4j; import static java.util.concurrent.TimeUnit.*; import java.io.InputStream; import java.io.OutputStream; import java.util.Objects; import java.util.concurrent.ScheduledExecutorService; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +@Slf4j public class ProcessStreamRedirector implements Runnable { - private static final Logger LOG = LoggerFactory.getLogger(ProcessStreamRedirector.class); - private InputStream in; private OutputStream out; private boolean keepGoing = true; @@ -39,7 +36,7 @@ public class ProcessStreamRedirector implements Runnable { } } catch (Exception e) { if (!Objects.equals(e.getMessage(), "Stream Closed")) { - LOG.debug("Error while reading from process output stream: {}", e.getLocalizedMessage(), e); + log.debug("Error while reading from process output stream: {}", e.getLocalizedMessage(), e); } keepGoing = false; } diff --git a/common/src/main/java/ctbrec/io/StreamRedirector.java b/common/src/main/java/ctbrec/io/StreamRedirector.java index 7e4cdcf4..a2be4370 100644 --- a/common/src/main/java/ctbrec/io/StreamRedirector.java +++ b/common/src/main/java/ctbrec/io/StreamRedirector.java @@ -1,14 +1,11 @@ package ctbrec.io; + +import lombok.extern.slf4j.Slf4j; import java.io.InputStream; import java.io.OutputStream; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +@Slf4j public class StreamRedirector implements Runnable { - private static final Logger LOG = LoggerFactory.getLogger(StreamRedirector.class); - private InputStream in; private OutputStream out; @@ -26,9 +23,9 @@ public class StreamRedirector implements Runnable { while(in != null && (length = in.read(buffer)) >= 0) { out.write(buffer, 0, length); } - LOG.trace("Stream redirect thread ended"); + log.trace("Stream redirect thread ended"); } catch(Exception e) { - LOG.warn("Couldn't redirect stream: {}", e.getLocalizedMessage()); + log.warn("Couldn't redirect stream: {}", e.getLocalizedMessage()); } } } diff --git a/common/src/main/java/ctbrec/recorder/OnlineMonitor.java b/common/src/main/java/ctbrec/recorder/OnlineMonitor.java index 7ceaab31..b6510fcd 100644 --- a/common/src/main/java/ctbrec/recorder/OnlineMonitor.java +++ b/common/src/main/java/ctbrec/recorder/OnlineMonitor.java @@ -1,5 +1,7 @@ package ctbrec.recorder; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.event.EventBusHolder; @@ -7,9 +9,6 @@ import ctbrec.event.ModelIsOnlineEvent; import ctbrec.event.ModelStateChangedEvent; import ctbrec.io.HttpException; import ctbrec.sites.chaturbate.ChaturbateModel; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.InterruptedIOException; import java.net.SocketTimeoutException; import java.time.Duration; @@ -23,8 +22,8 @@ import java.util.concurrent.*; import static ctbrec.Model.State.OFFLINE; import static ctbrec.Model.State.UNCHECKED; +@Slf4j public class OnlineMonitor extends Thread { - private static final Logger LOG = LoggerFactory.getLogger(OnlineMonitor.class); private static final boolean IGNORE_CACHE = true; private volatile boolean running = false; @@ -59,7 +58,7 @@ public class OnlineMonitor extends Thread { Duration timeCheckTook = Duration.between(begin, end); suspendUntilNextIteration(models, timeCheckTook); } - LOG.debug("{} terminated", getName()); + log.debug("{} terminated", getName()); } private void removeDeletedModels(List models) { @@ -90,12 +89,12 @@ public class OnlineMonitor extends Thread { try { future.get(timeout.toMillis(), TimeUnit.MILLISECONDS); } catch (InterruptedException e) { - LOG.debug("Online check interrupted for model {}", future.getModel(), e); + log.debug("Online check interrupted for model {}", future.getModel(), e); Thread.currentThread().interrupt(); } catch (ExecutionException e) { - LOG.info("Error while checking online state for model {}", future.getModel(), e); + log.info("Error while checking online state for model {}", future.getModel(), e); } catch (TimeoutException e) { - LOG.debug("Online check didn't finish after {}ms for model {}", timeout.toMillis(), future.getModel()); + log.debug("Online check didn't finish after {}ms for model {}", timeout.toMillis(), future.getModel()); } } } @@ -130,19 +129,19 @@ public class OnlineMonitor extends Thread { } else { state = model.getOnlineState(false); } - LOG.debug("Model online state: {} {}", model.getName(), state); + log.debug("Model online state: {} {}", model.getName(), state); setModelStateNotified(model, state); } catch (HttpException e) { - LOG.error("Couldn't check if model {} is online. HTTP Response: {} - {}", model.getName(), e.getResponseCode(), e.getResponseMessage()); + log.error("Couldn't check if model {} is online. HTTP Response: {} - {}", model.getName(), e.getResponseCode(), e.getResponseMessage()); } catch (SocketTimeoutException e) { - LOG.error("Couldn't check if model {} is online. Request timed out", model.getName()); + log.error("Couldn't check if model {} is online. Request timed out", model.getName()); } catch (InterruptedException | InterruptedIOException e) { Thread.currentThread().interrupt(); if (running) { - LOG.error("Couldn't check if model {} is online", model.getName(), e); + log.error("Couldn't check if model {} is online", model.getName(), e); } } catch (Exception e) { - LOG.error("Couldn't check if model {} is online", model.getName(), e); + log.error("Couldn't check if model {} is online", model.getName(), e); } return model; }); @@ -150,18 +149,18 @@ public class OnlineMonitor extends Thread { } private void suspendUntilNextIteration(List models, Duration timeCheckTook) { - LOG.debug("Online check for {} models took {} seconds", models.size(), timeCheckTook.getSeconds()); + log.debug("Online check for {} models took {} seconds", models.size(), timeCheckTook.getSeconds()); long sleepTime = config.getSettings().onlineCheckIntervalInSecs; if (timeCheckTook.getSeconds() < sleepTime) { try { if (running) { long millis = TimeUnit.SECONDS.toMillis(sleepTime - timeCheckTook.getSeconds()); - LOG.trace("Sleeping {}ms", millis); + log.trace("Sleeping {}ms", millis); Thread.sleep(millis); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.trace("Sleep interrupted"); + log.trace("Sleep interrupted"); } } } diff --git a/common/src/main/java/ctbrec/recorder/RecordingPreconditions.java b/common/src/main/java/ctbrec/recorder/RecordingPreconditions.java index 66482995..788b6d8c 100644 --- a/common/src/main/java/ctbrec/recorder/RecordingPreconditions.java +++ b/common/src/main/java/ctbrec/recorder/RecordingPreconditions.java @@ -1,13 +1,12 @@ package ctbrec.recorder; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.ModelGroup; import ctbrec.Recording; import ctbrec.recorder.download.RecordingProcess; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.google.common.collect.Comparators; import java.io.IOException; @@ -21,9 +20,8 @@ import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; +@Slf4j public class RecordingPreconditions { - - private static final Logger LOG = LoggerFactory.getLogger(RecordingPreconditions.class); public static final boolean IGNORE_CACHE = true; private final Config config; @@ -37,7 +35,7 @@ public class RecordingPreconditions { } void check(Model model) throws IOException, InvalidKeyException, NoSuchAlgorithmException, ExecutionException { - LOG.debug("Checking preconditions for model {}", model); + log.debug("Checking preconditions for model {}", model); ensureRecorderIsActive(); ensureNotInTimeoutPeriod(); ensureModelIsNotSuspended(model); @@ -98,7 +96,7 @@ public class RecordingPreconditions { if (!downloadSlotAvailable()) { long now = System.currentTimeMillis(); if ((now - lastPreconditionMessage) > TimeUnit.MINUTES.toMillis(1)) { - LOG.info("The number of downloads is maxed out"); + log.info("The number of downloads is maxed out"); lastPreconditionMessage = now; } // check, if we can stop a recording for a model with lower priority @@ -106,7 +104,7 @@ public class RecordingPreconditions { if (lowerPrioRecordingProcess.isPresent()) { RecordingProcess download = lowerPrioRecordingProcess.get().getRecordingProcess(); Model lowerPrioModel = download.getModel(); - LOG.info("Stopping recording for {}. Prio {} < {}", lowerPrioModel.getName(), lowerPrioModel.getPriority(), model.getPriority()); + log.info("Stopping recording for {}. Prio {} < {}", lowerPrioModel.getName(), lowerPrioModel.getPriority(), model.getPriority()); recorder.stopRecordingProcess(lowerPrioRecordingProcess.get()); } else { throw new PreconditionNotMetException("Other models have higher prio, not starting recording for " + model.getName()); @@ -186,7 +184,7 @@ public class RecordingPreconditions { throw new PreconditionNotMetException(otherModel.get() + "'s online state has not been checked yet"); } } else { - LOG.warn("Model for url {} was not found", modelUrl); + log.warn("Model for url {} was not found", modelUrl); } } } @@ -255,7 +253,7 @@ public class RecordingPreconditions { } catch (PreconditionNotMetException e) { // precondition for other model not met } catch (IOException e) { - LOG.warn("Couldn't check if preconditions of other model from group are met. Assuming she's offline", e); + log.warn("Couldn't check if preconditions of other model from group are met. Assuming she's offline", e); } return false; } diff --git a/common/src/main/java/ctbrec/recorder/RemoteRecorder.java b/common/src/main/java/ctbrec/recorder/RemoteRecorder.java index ad2adcdd..e89a01a3 100644 --- a/common/src/main/java/ctbrec/recorder/RemoteRecorder.java +++ b/common/src/main/java/ctbrec/recorder/RemoteRecorder.java @@ -1,6 +1,8 @@ package ctbrec.recorder; + +import lombok.extern.slf4j.Slf4j; import com.fasterxml.jackson.databind.ObjectMapper; import ctbrec.*; import ctbrec.event.EventBusHolder; @@ -24,9 +26,6 @@ import okhttp3.RequestBody; import okhttp3.Response; import org.json.JSONObject; import org.mapstruct.factory.Mappers; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.security.InvalidKeyException; @@ -37,13 +36,11 @@ import java.util.*; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; +@Slf4j public class RemoteRecorder implements Recorder { private static final String SUCCESS = "success"; private static final String COULDNT_SEND_REQUEST_SERVER_HTTP_STATUS = "Couldn't send request to server. Response {} - {}"; - - private static final Logger LOG = LoggerFactory.getLogger(RemoteRecorder.class); - public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); private static final String LOG_MSG_SENDING_REQUERST = "Sending request to recording server: {}"; @@ -79,10 +76,10 @@ public class RemoteRecorder implements Recorder { @Override public void addModel(Model model) throws IOException, InvalidKeyException, NoSuchAlgorithmException { - LOG.trace("Model marked: {}", model.isMarkedForLaterRecording()); - LOG.trace("Model paused: {}", model.isSuspended()); - LOG.trace("Model until: {}", model.getRecordUntil().equals(Instant.ofEpochMilli(Model.RECORD_INDEFINITELY)) ? "no limit" : model.getRecordUntil()); - LOG.trace("Model after: {}", model.getRecordUntilSubsequentAction()); + log.trace("Model marked: {}", model.isMarkedForLaterRecording()); + log.trace("Model paused: {}", model.isSuspended()); + log.trace("Model until: {}", model.getRecordUntil().equals(Instant.ofEpochMilli(Model.RECORD_INDEFINITELY)) ? "no limit" : model.getRecordUntil()); + log.trace("Model after: {}", model.getRecordUntilSubsequentAction()); sendRequest("start", model); findModel(model).ifPresent(cachedModel -> { cachedModel.setSuspended(model.isSuspended()); @@ -107,7 +104,7 @@ public class RemoteRecorder implements Recorder { private Optional sendRequest(String action) throws IOException, InvalidKeyException, NoSuchAlgorithmException { String msg = "{\"action\": \"" + action + "\"}"; - LOG.trace(LOG_MSG_SENDING_REQUERST, msg); + log.trace(LOG_MSG_SENDING_REQUERST, msg); RequestBody requestBody = RequestBody.Companion.create(msg, JSON); Request.Builder builder = new Request.Builder().url(getRecordingEndpoint()).post(requestBody); addHmacIfNeeded(msg, builder); @@ -117,7 +114,7 @@ public class RemoteRecorder implements Recorder { if (response.isSuccessful()) { return Optional.of(responseBody); } else { - LOG.error(COULDNT_SEND_REQUEST_SERVER_HTTP_STATUS, response.code(), responseBody); + log.error(COULDNT_SEND_REQUEST_SERVER_HTTP_STATUS, response.code(), responseBody); return Optional.empty(); } } @@ -125,7 +122,7 @@ public class RemoteRecorder implements Recorder { private void sendRequest(String action, Model model) throws IOException, InvalidKeyException, NoSuchAlgorithmException { String payload = mapper.writeValueAsString(new ModelRequest(action, model)); - LOG.trace(LOG_MSG_SENDING_REQUERST, payload); + log.trace(LOG_MSG_SENDING_REQUERST, payload); RequestBody body = RequestBody.Companion.create(payload, JSON); Request.Builder builder = new Request.Builder().url(getRecordingEndpoint()).post(body); addHmacIfNeeded(payload, builder); @@ -148,7 +145,7 @@ public class RemoteRecorder implements Recorder { String msg = mapper.writeValueAsString(recReq); RequestBody body = RequestBody.Companion.create(msg, JSON); Request.Builder builder = new Request.Builder().url(getRecordingEndpoint()).post(body); - LOG.trace(LOG_MSG_SENDING_REQUERST, msg); + log.trace(LOG_MSG_SENDING_REQUERST, msg); addHmacIfNeeded(msg, builder); Request request = builder.build(); try (Response response = client.execute(request)) { @@ -170,7 +167,7 @@ public class RemoteRecorder implements Recorder { private void sendRequest(String action, ModelGroup modelGroup) throws IOException, InvalidKeyException, NoSuchAlgorithmException { String payload = mapper.writeValueAsString(new ModelGroupRequest(action, modelGroup)); - LOG.trace(LOG_MSG_SENDING_REQUERST, payload); + log.trace(LOG_MSG_SENDING_REQUERST, payload); RequestBody body = RequestBody.Companion.create(payload, JSON); Request.Builder builder = new Request.Builder().url(getRecordingEndpoint()).post(body); addHmacIfNeeded(payload, builder); @@ -283,11 +280,11 @@ public class RemoteRecorder implements Recorder { try { updateModelGroups(body); } catch (IOException e) { - LOG.error("Error while loading model groups from server", e); + log.error("Error while loading model groups from server", e); } }); } catch (IOException | InvalidKeyException | NoSuchAlgorithmException e) { - LOG.error("Error while loading model groups from server", e); + log.error("Error while loading model groups from server", e); } } @@ -318,11 +315,11 @@ public class RemoteRecorder implements Recorder { noSpaceLeftDetected = false; } } else { - LOG.error(COULDNT_SYNCHRONIZE_WITH_SERVER_HTTP_STATUS, response.code(), json); + log.error(COULDNT_SYNCHRONIZE_WITH_SERVER_HTTP_STATUS, response.code(), json); } } } catch (IOException | InvalidKeyException | NoSuchAlgorithmException | IllegalStateException e) { - LOG.error(COULDNT_SYNCHRONIZE_WITH_SERVER, e); + log.error(COULDNT_SYNCHRONIZE_WITH_SERVER, e); } } @@ -348,14 +345,14 @@ public class RemoteRecorder implements Recorder { } lastSync = Instant.now(); } else { - LOG.error(SERVER_RETURNED_ERROR, resp.status, resp.msg); + log.error(SERVER_RETURNED_ERROR, resp.status, resp.msg); } } else { - LOG.error(COULDNT_SYNCHRONIZE_WITH_SERVER_HTTP_STATUS, response.code(), json); + log.error(COULDNT_SYNCHRONIZE_WITH_SERVER_HTTP_STATUS, response.code(), json); } } } catch (IOException | InvalidKeyException | NoSuchAlgorithmException | IllegalStateException e) { - LOG.error(COULDNT_SYNCHRONIZE_WITH_SERVER, e); + log.error(COULDNT_SYNCHRONIZE_WITH_SERVER, e); } } @@ -380,14 +377,14 @@ public class RemoteRecorder implements Recorder { } } } else { - LOG.error(SERVER_RETURNED_ERROR, resp.status, resp.msg); + log.error(SERVER_RETURNED_ERROR, resp.status, resp.msg); } } else { - LOG.error(COULDNT_SYNCHRONIZE_WITH_SERVER_HTTP_STATUS, response.code(), json); + log.error(COULDNT_SYNCHRONIZE_WITH_SERVER_HTTP_STATUS, response.code(), json); } } } catch (IOException | InvalidKeyException | NoSuchAlgorithmException | IllegalStateException e) { - LOG.error(COULDNT_SYNCHRONIZE_WITH_SERVER, e); + log.error(COULDNT_SYNCHRONIZE_WITH_SERVER, e); } } @@ -448,14 +445,14 @@ public class RemoteRecorder implements Recorder { } } } else { - LOG.error(SERVER_RETURNED_ERROR, resp.status, resp.msg); + log.error(SERVER_RETURNED_ERROR, resp.status, resp.msg); } } else { - LOG.error(COULDNT_SYNCHRONIZE_WITH_SERVER_HTTP_STATUS, response.code(), json); + log.error(COULDNT_SYNCHRONIZE_WITH_SERVER_HTTP_STATUS, response.code(), json); } } } catch (IOException | InvalidKeyException | NoSuchAlgorithmException | IllegalStateException e) { - LOG.error(COULDNT_SYNCHRONIZE_WITH_SERVER, e); + log.error(COULDNT_SYNCHRONIZE_WITH_SERVER, e); } } @@ -629,7 +626,7 @@ public class RemoteRecorder implements Recorder { public void rerunPostProcessing(Recording recording) throws IOException, InvalidKeyException, NoSuchAlgorithmException { RecordingRequest recReq = new RecordingRequest("rerunPostProcessing", recording); String msg = mapper.writeValueAsString(recReq); - LOG.debug(msg); + log.debug(msg); RequestBody body = RequestBody.Companion.create(msg, JSON); Request.Builder builder = new Request.Builder().url(getRecordingEndpoint()).post(body); addHmacIfNeeded(msg, builder); @@ -706,7 +703,7 @@ public class RemoteRecorder implements Recorder { @Override public void markForLaterRecording(Model model, boolean mark) throws InvalidKeyException, NoSuchAlgorithmException, IOException { model.setMarkedForLaterRecording(mark); - LOG.info("Marking model {} {}", model, mark); + log.info("Marking model {} {}", model, mark); if (mark) { sendRequest("markForLater", model); } else { diff --git a/common/src/main/java/ctbrec/recorder/download/VideoLengthDetector.java b/common/src/main/java/ctbrec/recorder/download/VideoLengthDetector.java index a6d356bb..2d7f1ee3 100644 --- a/common/src/main/java/ctbrec/recorder/download/VideoLengthDetector.java +++ b/common/src/main/java/ctbrec/recorder/download/VideoLengthDetector.java @@ -1,11 +1,10 @@ package ctbrec.recorder.download; + +import lombok.extern.slf4j.Slf4j; import ctbrec.OS; import ctbrec.io.DevNull; import ctbrec.io.StreamRedirector; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -14,9 +13,8 @@ import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; +@Slf4j public class VideoLengthDetector { - private static final Logger LOG = LoggerFactory.getLogger(VideoLengthDetector.class); - private VideoLengthDetector() { } @@ -37,7 +35,7 @@ public class VideoLengthDetector { "-" }; String[] cmdline = OS.getFFmpegCommand(args); - LOG.debug("Command line: {}", Arrays.toString(cmdline)); + log.debug("Command line: {}", Arrays.toString(cmdline)); Process ffmpeg = Runtime.getRuntime().exec(cmdline, new String[0], videoFile.getParentFile()); int exitCode; ByteArrayOutputStream stdErrBuffer = new ByteArrayOutputStream(); @@ -46,16 +44,16 @@ public class VideoLengthDetector { stdout.start(); stderr.start(); exitCode = ffmpeg.waitFor(); - LOG.debug("FFmpeg exited with code {}", exitCode); + log.debug("FFmpeg exited with code {}", exitCode); stdout.join(); stderr.join(); String ffmpegStderr = stdErrBuffer.toString(); return parseDuration(ffmpegStderr); } catch (IOException | ProcessExitedUncleanException e) { - LOG.error("Error in FFMpeg thread", e); + log.error("Error in FFMpeg thread", e); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.info("Interrupted while waiting for ffmpeg", e); + log.info("Interrupted while waiting for ffmpeg", e); } return Duration.ZERO.minusSeconds(1); } diff --git a/common/src/main/java/ctbrec/recorder/download/dash/DashDownload.java b/common/src/main/java/ctbrec/recorder/download/dash/DashDownload.java index c600ca83..45c2b223 100644 --- a/common/src/main/java/ctbrec/recorder/download/dash/DashDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/dash/DashDownload.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.dash; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.Recording; @@ -13,9 +15,6 @@ import ctbrec.recorder.download.hls.NoStreamFoundException; import ctbrec.recorder.download.hls.PostProcessingException; import okhttp3.Request; import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; @@ -38,11 +37,9 @@ import java.util.regex.Pattern; import static ctbrec.Recording.State.POST_PROCESSING; import static ctbrec.io.HttpConstants.*; +@Slf4j public class DashDownload extends AbstractDownload { private static final String CONTENT_LENGTH = "Content-Length"; - - private static final Logger LOG = LoggerFactory.getLogger(DashDownload.class); - private int audioCounter = 0; private int videoCounter = 0; private DecimalFormat df = new DecimalFormat("00000"); @@ -74,7 +71,7 @@ public class DashDownload extends AbstractDownload { .header(REFERER, model.getSite().getBaseUrl()) .header(CONNECTION, KEEP_ALIVE) .build(); // @formatter:on - LOG.trace("Loading manifest {}", url); + log.trace("Loading manifest {}", url); for (int tries = 1; tries <= 10; tries++) { try (Response response = httpClient.execute(request)) { if (response.isSuccessful()) { @@ -85,7 +82,7 @@ public class DashDownload extends AbstractDownload { if (tries == 10) { throw httpException; } else { - LOG.debug("Couldn't load manifest", httpException); + log.debug("Couldn't load manifest", httpException); waitSomeTime(100l * tries); } } else { @@ -165,12 +162,12 @@ public class DashDownload extends AbstractDownload { private void setInitState(boolean isVideo, File file) { if (isVideo) { if (file.exists() && file.length() > 0) { - LOG.debug("Video init chunk loaded"); + log.debug("Video init chunk loaded"); videoInitLoaded = true; } } else { if (file.exists() && file.length() > 0) { - LOG.debug("Audio init chunk loaded"); + log.debug("Audio init chunk loaded"); audioInitLoaded = true; } } @@ -191,7 +188,7 @@ public class DashDownload extends AbstractDownload { for (tries = 1; tries <= 10; tries++) { try (Response response = httpClient.execute(request)) { if (!response.isSuccessful()) { - LOG.trace("Loading segment failed, try {}, {} size:{} {}", tries, response.code(), response.headers().values(CONTENT_LENGTH), url); + log.trace("Loading segment failed, try {}, {} size:{} {}", tries, response.code(), response.headers().values(CONTENT_LENGTH), url); waitSomeTime(tries * 80l); } else { InputStream in = response.body().byteStream(); @@ -214,7 +211,7 @@ public class DashDownload extends AbstractDownload { } } } - LOG.warn("Loading segment finally failed after {} tries {}", --tries, url); + log.warn("Loading segment finally failed after {} tries {}", --tries, url); return null; } @@ -246,19 +243,19 @@ public class DashDownload extends AbstractDownload { } } catch (HttpException e) { if (e.getResponseCode() == 404) { - LOG.debug("Manifest not found (404). Model {} probably went offline", model); + log.debug("Manifest not found (404). Model {} probably went offline", model); waitSomeTime(10_000); } else if (e.getResponseCode() == 403) { - LOG.debug("Manifest access forbidden (403). Model {} probably went private or offline", model); + log.debug("Manifest access forbidden (403). Model {} probably went private or offline", model); waitSomeTime(10_000); } else { throw e; } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Error while downloading dash stream", e); + log.error("Error while downloading dash stream", e); } catch (Exception e) { - LOG.error("Error while downloading dash stream", e); + log.error("Error while downloading dash stream", e); } finally { running = false; downloadFinished.set(true); @@ -280,7 +277,7 @@ public class DashDownload extends AbstractDownload { private void downloadManifestAndItsSegments(Unmarshaller u) throws IOException, JAXBException, ExecutionException, InterruptedException { String manifest = getManifest(manifestUrl); - LOG.trace("Manifest: {}", manifest); + log.trace("Manifest: {}", manifest); @SuppressWarnings("unchecked") JAXBElement root = (JAXBElement) u.unmarshal(new ByteArrayInputStream(manifest.getBytes())); MPDtype mpd = root.getValue(); @@ -302,7 +299,7 @@ public class DashDownload extends AbstractDownload { downloaded += downloadSegments(mpd, audio, false); if (downloaded == 0) { - LOG.trace("No new segments - Sleeping a bit"); + log.trace("No new segments - Sleeping a bit"); waitSomeTime(1000); } } @@ -346,7 +343,7 @@ public class DashDownload extends AbstractDownload { } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Couldn't wait for download to finish", e); + log.error("Couldn't wait for download to finish", e); } } } diff --git a/common/src/main/java/ctbrec/recorder/download/dash/FfmpegMuxer.java b/common/src/main/java/ctbrec/recorder/download/dash/FfmpegMuxer.java index 7b23b6ac..0ede765f 100644 --- a/common/src/main/java/ctbrec/recorder/download/dash/FfmpegMuxer.java +++ b/common/src/main/java/ctbrec/recorder/download/dash/FfmpegMuxer.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.dash; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -7,16 +9,12 @@ import java.io.IOException; import java.nio.file.Files; import java.util.Arrays; import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.OS; import ctbrec.io.StreamRedirector; import ctbrec.recorder.download.ProcessExitedUncleanException; +@Slf4j public class FfmpegMuxer { - private static final Logger LOG = LoggerFactory.getLogger(FfmpegMuxer.class); private static final int ALL_GOOD = 0; File segmentDir; @@ -42,11 +40,11 @@ public class FfmpegMuxer { int exitCode = mergeTracks(mp4VideoTrack, mp4AudioTrack, targetFile); if (exitCode == ALL_GOOD) { - LOG.debug("Deleting merged video and audio tracks"); + log.debug("Deleting merged video and audio tracks"); Files.delete(mp4VideoTrack.toPath()); Files.delete(mp4AudioTrack.toPath()); Files.deleteIfExists(new File(segmentDir, "merge.log").toPath()); - LOG.debug("Deleting segments"); + log.debug("Deleting segments"); deleteFiles(segmentDir, videoSegments); deleteFiles(segmentDir, audioSegments); if (segmentDir.list().length == 0) { @@ -63,7 +61,7 @@ public class FfmpegMuxer { try { Files.delete(absFile.toPath()); } catch(IOException e) { - LOG.info("Couldn't delete segment {}", absFile, e); + log.info("Couldn't delete segment {}", absFile, e); } } } @@ -97,7 +95,7 @@ public class FfmpegMuxer { output.getCanonicalPath() ); // @formatter:on - LOG.debug("Command line: {}", Arrays.toString(cmdline)); + log.debug("Command line: {}", Arrays.toString(cmdline)); Process ffmpeg = Runtime.getRuntime().exec(cmdline); Thread stdout = new Thread(new StreamRedirector(ffmpeg.getInputStream(), muxLogStream)); Thread stderr = new Thread(new StreamRedirector(ffmpeg.getErrorStream(), muxLogStream)); @@ -109,7 +107,7 @@ public class FfmpegMuxer { return exitCode; } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Interrupted while waiting for FFMPEG", e); + log.error("Interrupted while waiting for FFMPEG", e); return 1; } } diff --git a/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java b/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java index 1d623019..72caf0f5 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.hls; + +import lombok.extern.slf4j.Slf4j; import com.iheartradio.m3u8.*; import com.iheartradio.m3u8.data.EncryptionData; import com.iheartradio.m3u8.data.MediaPlaylist; @@ -23,9 +25,6 @@ import ctbrec.sites.Site; import okhttp3.Request; import okhttp3.Request.Builder; import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.xml.bind.JAXBException; import java.io.*; import java.net.MalformedURLException; @@ -51,9 +50,8 @@ import static ctbrec.io.HttpConstants.*; import static java.nio.charset.StandardCharsets.UTF_8; import static java.nio.file.StandardOpenOption.*; +@Slf4j public abstract class AbstractHlsDownload extends AbstractDownload { - - private static final Logger LOG = LoggerFactory.getLogger(AbstractHlsDownload.class); private static final int A_FEW_SECONDS = 10_000; private static final int MAX_SECONDS_WITHOUT_TRANSFER = 30; @@ -101,7 +99,7 @@ public abstract class AbstractHlsDownload extends AbstractDownload { } protected void segmentDownloadFailed(SegmentDownload segmentDownload) { - LOG.info("Segment download failed with", segmentDownload.getException()); + log.info("Segment download failed with", segmentDownload.getException()); stopRecordingOnHighSegmentErrorCount(); } @@ -141,11 +139,11 @@ public abstract class AbstractHlsDownload extends AbstractDownload { } } catch (ParseException e) { - LOG.error("Couldn't parse HLS playlist for model {}\n{}", model, e.getInput(), e); + log.error("Couldn't parse HLS playlist for model {}\n{}", model, e.getInput(), e); model.delay(); stop(); } catch (PlaylistException e) { - LOG.error("Couldn't parse HLS playlist for model {}", model, e); + log.error("Couldn't parse HLS playlist for model {}", model, e); model.delay(); stop(); } catch (PlaylistTimeoutException e) { @@ -157,23 +155,23 @@ public abstract class AbstractHlsDownload extends AbstractDownload { } } catch (EOFException e) { // end of playlist reached - LOG.debug("Reached end of playlist for model {}", model); + log.debug("Reached end of playlist for model {}", model); stop(); } catch (HttpException e) { consecutivePlaylistErrors++; handleHttpException(e); } catch (Exception e) { - LOG.error("Couldn't download segment for model {}", model, e); + log.error("Couldn't download segment for model {}", model, e); model.delay(); stop(); } finally { if (consecutivePlaylistErrors > 0) { - LOG.debug("Consecutive playlist errors: {}", consecutivePlaylistErrors); + log.debug("Consecutive playlist errors: {}", consecutivePlaylistErrors); } } if (Duration.between(lastSegmentDownload, Instant.now()).getSeconds() > MAX_SECONDS_WITHOUT_TRANSFER) { - LOG.info("No video data received for {} seconds. Stopping recording for model {}", MAX_SECONDS_WITHOUT_TRANSFER, model); + log.info("No video data received for {} seconds. Stopping recording for model {}", MAX_SECONDS_WITHOUT_TRANSFER, model); stop(); } @@ -198,7 +196,7 @@ public abstract class AbstractHlsDownload extends AbstractDownload { } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Thread interrupted during segment download", e); + log.error("Thread interrupted during segment download", e); } catch (ExecutionException e) { // Something unexpected went wrong during the segment download. // At this point we have taken care of that, but we take note of the error and if a certain threshold of errors is exceeded in a certain @@ -223,9 +221,9 @@ public abstract class AbstractHlsDownload extends AbstractDownload { iterator.remove(); } } - LOG.debug("Segment errors in last {} secs for {}: {}", measurePeriodInSecs, getModel(), errorsInMeasurePeriod); + log.debug("Segment errors in last {} secs for {}: {}", measurePeriodInSecs, getModel(), errorsInMeasurePeriod); if (errorsInMeasurePeriod > config.getSettings().segmentErrorThresholdToStopRecording) { - LOG.info("Too many ({}) segment errors for {} - stopping recording", errorsInMeasurePeriod, getModel()); + log.info("Too many ({}) segment errors for {} - stopping recording", errorsInMeasurePeriod, getModel()); stop(); } } @@ -239,11 +237,11 @@ public abstract class AbstractHlsDownload extends AbstractDownload { checkIfModelIsStillOnline("Playlist access forbidden (403). Model {} probably went private or offline. Model state: {}"); } if (consecutivePlaylistErrors >= 3) { - LOG.info("Playlist could not be downloaded for model {} {} times. Stopping recording", model, consecutivePlaylistErrors, e); + log.info("Playlist could not be downloaded for model {} {} times. Stopping recording", model, consecutivePlaylistErrors, e); model.delay(); stop(); } else { - LOG.info("Playlist could not be downloaded for model {} {} times: {}", model, consecutivePlaylistErrors, e.getLocalizedMessage()); + log.info("Playlist could not be downloaded for model {} {} times: {}", model, consecutivePlaylistErrors, e.getLocalizedMessage()); } } @@ -254,32 +252,32 @@ public abstract class AbstractHlsDownload extends AbstractDownload { } catch (Exception e1) { modelState = State.UNKNOWN; } - LOG.info(errorMsg, model, modelState); + log.info(errorMsg, model, modelState); if (modelState != State.ONLINE) { stop(); return; } try { - LOG.debug("Waiting {}ms before trying to update the playlist URL", A_FEW_SECONDS); + log.debug("Waiting {}ms before trying to update the playlist URL", A_FEW_SECONDS); waitSomeTime(); segmentPlaylistUrl = getSegmentPlaylistUrl(model); rescheduleTime = Instant.now(); } catch (Exception e) { - LOG.error("Playlist URL couldn't be updated after waiting for {}ms", A_FEW_SECONDS, e); + log.error("Playlist URL couldn't be updated after waiting for {}ms", A_FEW_SECONDS, e); } } protected String getSegmentPlaylistUrl(Model model) throws IOException, ExecutionException, ParseException, PlaylistException, JAXBException { - LOG.debug("{}:{} stream idx: {}", model.getSite().getName(), model.getName(), model.getStreamUrlIndex()); + log.debug("{}:{} stream idx: {}", model.getSite().getName(), model.getName(), model.getStreamUrlIndex()); List streamSources = model.getStreamSources(); Collections.sort(streamSources); for (StreamSource streamSource : streamSources) { - LOG.debug("{}:{} src {}", model.getSite().getName(), model.getName(), streamSource); + log.debug("{}:{} src {}", model.getSite().getName(), model.getName(), streamSource); } StreamSource selectedStreamSource = selectStreamSource(streamSources); String url = selectedStreamSource.getMediaPlaylistUrl(); selectedResolution = selectedStreamSource.getHeight(); - LOG.debug("Segment playlist url {}", url); + log.debug("Segment playlist url {}", url); return url; } @@ -313,7 +311,7 @@ public abstract class AbstractHlsDownload extends AbstractDownload { throw new HttpException(response.code(), response.message()); } } catch (SocketTimeoutException e) { - LOG.debug("Playlist request timed out ({}ms) for model {}:{} {} time{} (took {}ms)", + log.debug("Playlist request timed out ({}ms) for model {}:{} {} time{} (took {}ms)", config.getSettings().playlistRequestTimeout, model.getSite().getName(), model, @@ -384,7 +382,7 @@ public abstract class AbstractHlsDownload extends AbstractDownload { playlistEmptyCount = 0; } if (playlistEmptyCount == 10) { - LOG.info("Last 10 playlists were empty for {}. Stopping recording!", getModel()); + log.info("Last 10 playlists were empty for {}. Stopping recording!", getModel()); model.delay(); internalStop(); } @@ -405,7 +403,7 @@ public abstract class AbstractHlsDownload extends AbstractDownload { } br.flush(); } catch (IOException e) { - LOG.error("Couldn't write log file for missed segments", e); + log.error("Couldn't write log file for missed segments", e); } } } @@ -454,7 +452,7 @@ public abstract class AbstractHlsDownload extends AbstractDownload { } catch (InterruptedException e) { Thread.currentThread().interrupt(); if (running) { - LOG.error("Couldn't sleep. This might mess up the download!"); + log.error("Couldn't sleep. This might mess up the download!"); } } } diff --git a/common/src/main/java/ctbrec/recorder/download/hls/FfmpegHlsDownload.java b/common/src/main/java/ctbrec/recorder/download/hls/FfmpegHlsDownload.java index 9db47cfe..71893d85 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/FfmpegHlsDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/FfmpegHlsDownload.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.hls; + +import lombok.extern.slf4j.Slf4j; import com.iheartradio.m3u8.*; import com.iheartradio.m3u8.data.MediaPlaylist; import com.iheartradio.m3u8.data.Playlist; @@ -19,9 +21,6 @@ import ctbrec.recorder.download.RecordingProcess; import ctbrec.recorder.download.StreamSource; import okhttp3.Request; import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.xml.bind.JAXBException; import java.io.File; import java.io.IOException; @@ -44,9 +43,8 @@ import java.util.regex.Pattern; import static ctbrec.io.HttpConstants.*; +@Slf4j public class FfmpegHlsDownload extends AbstractDownload { - - private static final Logger LOG = LoggerFactory.getLogger(FfmpegHlsDownload.class); private static final int MAX_SECONDS_WITHOUT_TRANSFER = 20; private final HttpClient httpClient; @@ -94,7 +92,7 @@ public class FfmpegHlsDownload extends AbstractDownload { try { ffmpegStdIn.close(); } catch (IOException e) { - LOG.error("Couldn't terminate FFmpeg by closing stdin", e); + log.error("Couldn't terminate FFmpeg by closing stdin", e); } } if (ffmpegProcess != null) { @@ -103,13 +101,13 @@ public class FfmpegHlsDownload extends AbstractDownload { if (!waitFor && ffmpegProcess.isAlive()) { ffmpegProcess.destroy(); if (ffmpegProcess.isAlive()) { - LOG.info("FFmpeg didn't terminate. Destroying the process with force!"); + log.info("FFmpeg didn't terminate. Destroying the process with force!"); ffmpegProcess.destroyForcibly(); ffmpegProcess = null; } } } catch (InterruptedException e) { - LOG.error("Interrupted while waiting for FFmpeg to terminate"); + log.error("Interrupted while waiting for FFmpeg to terminate"); Thread.currentThread().interrupt(); } } @@ -127,7 +125,7 @@ public class FfmpegHlsDownload extends AbstractDownload { .build(); ffmpeg.exec(cmdline, new String[0], target.getParentFile()); } catch (IOException | ProcessExitedUncleanException e) { - LOG.error("Error in FFmpeg thread", e); + log.error("Error in FFmpeg thread", e); } } @@ -189,7 +187,7 @@ public class FfmpegHlsDownload extends AbstractDownload { ffmpeg.shutdown(exitValue); } } catch (ProcessExitedUncleanException e) { - LOG.error("FFmpeg exited unclean", e); + log.error("FFmpeg exited unclean", e); internalStop(); } try { @@ -198,21 +196,21 @@ public class FfmpegHlsDownload extends AbstractDownload { startDownload(); } } catch (Exception e) { - LOG.error("Error while downloading MP4", e); + log.error("Error while downloading MP4", e); stop(); } if (!model.isOnline()) { - LOG.debug("Model {} not online. Stop recording.", model); + log.debug("Model {} not online. Stop recording.", model); stop(); } if (splittingStrategy.splitNecessary(this)) { - LOG.debug("Split necessary for model {}. Stop recording.", model); + log.debug("Split necessary for model {}. Stop recording.", model); internalStop(); } else { rescheduleTime = Instant.now().plusSeconds(5); } if (Duration.between(timeOfLastTransfer, Instant.now()).getSeconds() > MAX_SECONDS_WITHOUT_TRANSFER) { - LOG.debug("No video data received for {} seconds. Stopping recording for model {}", MAX_SECONDS_WITHOUT_TRANSFER, model); + log.debug("No video data received for {} seconds. Stopping recording for model {}", MAX_SECONDS_WITHOUT_TRANSFER, model); stop(); } return this; @@ -222,7 +220,7 @@ public class FfmpegHlsDownload extends AbstractDownload { List streamSources = model.getStreamSources(); Collections.sort(streamSources); for (StreamSource streamSource : streamSources) { - LOG.debug("{}:{} src {}", model.getSite().getName(), model.getName(), streamSource); + log.debug("{}:{} src {}", model.getSite().getName(), model.getName(), streamSource); } StreamSource selectedStreamSource = selectStreamSource(streamSources); String playlistUrl = selectedStreamSource.getMediaPlaylistUrl(); @@ -245,14 +243,14 @@ public class FfmpegHlsDownload extends AbstractDownload { if (media.hasTracks()) { TrackData firstTrack = media.getTracks().get(0); if (firstTrack.isEncrypted()) { - LOG.warn("Video track is encrypted. Playlist URL: {}", playlistUrl); + log.warn("Video track is encrypted. Playlist URL: {}", playlistUrl); } String uri = firstTrack.getUri(); if (!uri.startsWith("http")) { URI context = URI.create(playlistUrl); uri = context.resolve(uri).toURL().toExternalForm(); } - LOG.debug("Media url {}", uri); + log.debug("Media url {}", uri); return uri; } else { throw new InvalidPlaylistException("Playlist has no media"); @@ -281,7 +279,7 @@ public class FfmpegHlsDownload extends AbstractDownload { .build(); try (Response resp = httpClient.execute(request)) { if (resp.isSuccessful()) { - LOG.debug("Recording video stream to {}", targetFile); + log.debug("Recording video stream to {}", targetFile); InputStream in = Objects.requireNonNull(resp.body()).byteStream(); byte[] b = new byte[1024 * 4]; int len; @@ -295,20 +293,20 @@ public class FfmpegHlsDownload extends AbstractDownload { } } } catch (SocketTimeoutException e) { - LOG.debug("Socket timeout while downloading MP4 for {}. Stop recording.", model.getName()); + log.debug("Socket timeout while downloading MP4 for {}. Stop recording.", model.getName()); model.delay(); stop(); } catch (IOException e) { - LOG.debug("IO error while downloading MP4 for {}. Stop recording.", model.getName()); + log.debug("IO error while downloading MP4 for {}. Stop recording.", model.getName()); model.delay(); stop(); } catch (Exception e) { - LOG.error("Error while downloading MP4", e); + log.error("Error while downloading MP4", e); stop(); } finally { ffmpegStreamLock.unlock(); } - LOG.debug("Record finished for model {}", model); + log.debug("Record finished for model {}", model); running = false; }); } diff --git a/common/src/main/java/ctbrec/recorder/download/hls/HlsDownload.java b/common/src/main/java/ctbrec/recorder/download/hls/HlsDownload.java index 0b1412a1..7cb8aa6b 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/HlsDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/HlsDownload.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.hls; + +import lombok.extern.slf4j.Slf4j; import com.iheartradio.m3u8.*; import com.iheartradio.m3u8.data.*; import ctbrec.Config; @@ -8,9 +10,6 @@ import ctbrec.Recording; import ctbrec.io.HttpClient; import ctbrec.io.IoUtils; import ctbrec.recorder.download.hls.SegmentPlaylist.Segment; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.*; import java.net.MalformedURLException; import java.net.URL; @@ -28,10 +27,8 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.regex.Pattern; +@Slf4j public class HlsDownload extends AbstractHlsDownload { - - private static final Logger LOG = LoggerFactory.getLogger(HlsDownload.class); - protected Path downloadDir; private final Queue> segmentDownloads = new LinkedList<>(); @@ -101,16 +98,16 @@ public class HlsDownload extends AbstractHlsDownload { writer.write(master); } } catch (PlaylistException e) { - LOG.error("Updating segment playlist failed", e); + log.error("Updating segment playlist failed", e); if (e.getErrors() != null) { for (PlaylistError error : e.getErrors()) { - LOG.error("Playlist Error: {}", error); + log.error("Playlist Error: {}", error); } } } catch (IOException | ParseException e) { - LOG.error("Updating segment playlist failed", e); + log.error("Updating segment playlist failed", e); } - LOG.trace("Segment queue size for {}: {}", model, segmentDownloads.size()); + log.trace("Segment queue size for {}: {}", model, segmentDownloads.size()); }); } @@ -129,7 +126,7 @@ public class HlsDownload extends AbstractHlsDownload { } catch (InterruptedException e) { Thread.currentThread().interrupt(); } catch (Exception e) { - LOG.info("Segment download failed for model {} - skipping adding segment to playlist", model); + log.info("Segment download failed for model {} - skipping adding segment to playlist", model); } } } @@ -151,7 +148,7 @@ public class HlsDownload extends AbstractHlsDownload { @Override public void finalizeDownload() { updatePlaylist(false); - LOG.debug("Download for {} terminated", model); + log.debug("Download for {} terminated", model); } @Override @@ -161,7 +158,7 @@ public class HlsDownload extends AbstractHlsDownload { @Override public void stop() { - LOG.debug("Recording stopped"); + log.debug("Recording stopped"); internalStop(); } diff --git a/common/src/main/java/ctbrec/recorder/download/hls/Hlsdl.java b/common/src/main/java/ctbrec/recorder/download/hls/Hlsdl.java index 7733232f..9ed64980 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/Hlsdl.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/Hlsdl.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.hls; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -14,9 +16,6 @@ import java.util.concurrent.ThreadFactory; import java.util.function.Consumer; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonParser; @@ -30,10 +29,8 @@ import ctbrec.io.json.ObjectMapperFactory; import ctbrec.recorder.download.ProcessExitedUncleanException; import lombok.Data; +@Slf4j public class Hlsdl { - - private static final Logger LOG = LoggerFactory.getLogger(Hlsdl.class); - // private static ScheduledExecutorService processOutputReader = Executors.newScheduledThreadPool(2, createThreadFactory("hlsdl output stream reader")); private final ObjectMapper mapper = ObjectMapperFactory.getMapper(); @@ -61,7 +58,7 @@ public class Hlsdl { } public void exec(String[] cmdline, String[] env, File executionDir) throws IOException { - LOG.debug("hlsdl command line: {}", Arrays.toString(cmdline)); + log.debug("hlsdl command line: {}", Arrays.toString(cmdline)); // process = Runtime.getRuntime().exec(cmdline, env, executionDir); var builder = new ProcessBuilder(cmdline).directory(executionDir); builder.redirectErrorStream(true); @@ -72,14 +69,14 @@ public class Hlsdl { public void shutdown(int exitCode) throws IOException { - LOG.debug("hlsdl exit code was {}", exitCode); + log.debug("hlsdl exit code was {}", exitCode); processLogStream.flush(); processLogStream.close(); streamReaderThread.interrupt(); try { streamReaderThread.join(); } catch (InterruptedException e) { - LOG.warn("interrupted while joining stream reader thread: {}", e); + log.warn("interrupted while joining stream reader thread: {}", e); } // stdoutRedirector.setKeepGoing(false); // stderrRedirector.setKeepGoing(false); @@ -98,7 +95,7 @@ public class Hlsdl { if (processLog == null) { processLog = File.createTempFile("hlsdl_", ".log"); } - LOG.debug("Logging hlsdl output to {}", processLog); + log.debug("Logging hlsdl output to {}", processLog); processLog.deleteOnExit(); processLogStream = new FileOutputStream(processLog); } else { @@ -119,7 +116,7 @@ public class Hlsdl { var line = process.inputReader().readLine(); if (line == null) { - LOG.trace("stream ended"); + log.trace("stream ended"); w.close(); break; } @@ -140,7 +137,7 @@ public class Hlsdl { } } catch (IOException e) { if (process.isAlive()) - LOG.debug("Error in stream while process is still alive {}", e); + log.debug("Error in stream while process is still alive {}", e); } }); } @@ -149,7 +146,7 @@ public class Hlsdl { try { startCallback.accept(process); } catch(Exception e) { - LOG.error("Exception in onStart callback", e); + log.error("Exception in onStart callback", e); } } @@ -157,7 +154,7 @@ public class Hlsdl { try { exitCallback.accept(exitCode); } catch(Exception e) { - LOG.error("Exception in onExit callback", e); + log.error("Exception in onExit callback", e); } } @@ -166,7 +163,7 @@ public class Hlsdl { try { shutdown(exitCode); } catch (IOException e) { - LOG.error("Error while shutting down hlsdl process", e); + log.error("Error while shutting down hlsdl process", e); } return exitCode; } diff --git a/common/src/main/java/ctbrec/recorder/download/hls/HlsdlDownload.java b/common/src/main/java/ctbrec/recorder/download/hls/HlsdlDownload.java index 4f5f64ad..0e01fa02 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/HlsdlDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/HlsdlDownload.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.hls; + +import lombok.extern.slf4j.Slf4j; import com.iheartradio.m3u8.ParseException; import com.iheartradio.m3u8.PlaylistException; import ctbrec.Config; @@ -9,9 +11,6 @@ import ctbrec.Recording; import ctbrec.recorder.download.AbstractDownload; import ctbrec.recorder.download.ProcessExitedUncleanException; import ctbrec.recorder.download.StreamSource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.xml.bind.JAXBException; import java.io.File; import java.io.IOException; @@ -29,10 +28,8 @@ import java.util.regex.Pattern; import static ctbrec.recorder.download.StreamSource.UNKNOWN; import static java.util.concurrent.TimeUnit.SECONDS; +@Slf4j public class HlsdlDownload extends AbstractDownload { - - private static final Logger LOG = LoggerFactory.getLogger(HlsdlDownload.class); - protected File targetFile; private transient Hlsdl hlsdl; @@ -79,12 +76,12 @@ public class HlsdlDownload extends AbstractDownload { } else { int seconds = 90; if (Duration.between(lastSizeChange, Instant.now()).toMillis() > SECONDS.toMillis(seconds)) { - LOG.info("Recording size didn't change for {} secs. Stopping recording for {}", seconds, model); + log.info("Recording size didn't change for {} secs. Stopping recording for {}", seconds, model); stop(); } } } catch (ProcessExitedUncleanException e) { - LOG.error("hlsdl exited unclean", e); + log.error("hlsdl exited unclean", e); } return this; } @@ -98,7 +95,7 @@ public class HlsdlDownload extends AbstractDownload { .build(); hlsdl.exec(cmdline, OS.getEnvironment(), targetFile.getParentFile()); } catch (Exception e) { - LOG.error("Error starting hlsdl", e); + log.error("Error starting hlsdl", e); } } @@ -124,16 +121,16 @@ public class HlsdlDownload extends AbstractDownload { } protected String getSegmentPlaylistUrl(Model model) throws IOException, ExecutionException, ParseException, PlaylistException, JAXBException { - LOG.debug("{} stream idx: {}", model.getName(), model.getStreamUrlIndex()); + log.debug("{} stream idx: {}", model.getName(), model.getStreamUrlIndex()); List streamSources = model.getStreamSources(); Collections.sort(streamSources); for (StreamSource streamSource : streamSources) { - LOG.debug("{} src {}", model.getName(), streamSource); + log.debug("{} src {}", model.getName(), streamSource); } String url = null; if (model.getStreamUrlIndex() >= 0 && model.getStreamUrlIndex() < streamSources.size()) { // TODO don't use the index, but the bandwidth. if the bandwidth does not match, take the closest one - LOG.debug("{} selected {}", model.getName(), streamSources.get(model.getStreamUrlIndex())); + log.debug("{} selected {}", model.getName(), streamSources.get(model.getStreamUrlIndex())); url = streamSources.get(model.getStreamUrlIndex()).getMediaPlaylistUrl(); } else { // filter out stream resolutions, which are out of range of the configured min and max @@ -147,11 +144,11 @@ public class HlsdlDownload extends AbstractDownload { if (filteredStreamSources.isEmpty()) { throw new ExecutionException(new NoStreamFoundException("No stream left in playlist")); } else { - LOG.debug("{} selected {}", model.getName(), filteredStreamSources.get(filteredStreamSources.size() - 1)); + log.debug("{} selected {}", model.getName(), filteredStreamSources.get(filteredStreamSources.size() - 1)); url = filteredStreamSources.get(filteredStreamSources.size() - 1).getMediaPlaylistUrl(); } } - LOG.debug("Segment playlist url {}", url); + log.debug("Segment playlist url {}", url); return url; } @@ -162,7 +159,7 @@ public class HlsdlDownload extends AbstractDownload { if (hlsdlProcess != null) { hlsdlProcess.destroy(); if (hlsdlProcess.isAlive()) { - LOG.info("hlsdl didn't terminate. Destroying the process with force!"); + log.info("hlsdl didn't terminate. Destroying the process with force!"); hlsdlProcess.destroyForcibly(); hlsdlProcess = null; } diff --git a/common/src/main/java/ctbrec/recorder/download/hls/MergedFfmpegHlsDownload.java b/common/src/main/java/ctbrec/recorder/download/hls/MergedFfmpegHlsDownload.java index 0fe5ec44..d7ab7fab 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/MergedFfmpegHlsDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/MergedFfmpegHlsDownload.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.hls; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.OS; @@ -9,10 +11,6 @@ import ctbrec.recorder.FFmpeg; import ctbrec.recorder.SimplifiedLocalRecorder; import ctbrec.recorder.download.ProcessExitedUncleanException; import ctbrec.recorder.download.hls.SegmentPlaylist.Segment; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -25,10 +23,8 @@ import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; import java.util.regex.Pattern; +@Slf4j public class MergedFfmpegHlsDownload extends AbstractHlsDownload { - - private static final Logger LOG = LoggerFactory.getLogger(MergedFfmpegHlsDownload.class); - protected File targetFile; protected FFmpeg ffmpeg; protected Process ffmpegProcess; @@ -57,7 +53,7 @@ public class MergedFfmpegHlsDownload extends AbstractHlsDownload { @Override public void init(Config config, Model model, Instant startTime, ExecutorService executorService) throws IOException { - LOG.debug("init start"); + log.debug("init start"); super.init(config, model, startTime, executorService); String fileSuffix = config.getSettings().ffmpegFileSuffix; targetFile = config.getFileForRecording(model, fileSuffix, startTime); @@ -83,7 +79,7 @@ public class MergedFfmpegHlsDownload extends AbstractHlsDownload { ffmpeg.shutdown(exitValue); } } catch (ProcessExitedUncleanException e) { - LOG.error("FFmpeg exited unclean", e); + log.error("FFmpeg exited unclean", e); } return this; @@ -114,10 +110,10 @@ public class MergedFfmpegHlsDownload extends AbstractHlsDownload { downloadData.writeTo(ffmpegStdIn); lastSegmentDownload = Instant.now(); } catch (InterruptedException e) { - LOG.trace("Segment download interrupted for model {}", model, e); + log.trace("Segment download interrupted for model {}", model, e); Thread.currentThread().interrupt(); } catch (Exception e) { - LOG.error("Segment download failed for model {}", model, e); + log.error("Segment download failed for model {}", model, e); } } } @@ -144,7 +140,7 @@ public class MergedFfmpegHlsDownload extends AbstractHlsDownload { .build(); ffmpeg.exec(cmdline, new String[0], target.getParentFile()); } catch (IOException | ProcessExitedUncleanException e) { - LOG.error("Error in FFmpeg thread", e); + log.error("Error in FFmpeg thread", e); } } @@ -175,7 +171,7 @@ public class MergedFfmpegHlsDownload extends AbstractHlsDownload { SimplifiedLocalRecorder.STATS.errorCount++; throw e; } - LOG.trace("Enqueuing segment for file {}", targetFile); + log.trace("Enqueuing segment for file {}", targetFile); } @Override @@ -204,7 +200,7 @@ public class MergedFfmpegHlsDownload extends AbstractHlsDownload { try { ffmpegStdIn.close(); } catch (IOException e) { - LOG.error("Couldn't terminate FFmpeg by closing stdin", e); + log.error("Couldn't terminate FFmpeg by closing stdin", e); } } @@ -214,13 +210,13 @@ public class MergedFfmpegHlsDownload extends AbstractHlsDownload { if (!waitFor && ffmpegProcess.isAlive()) { ffmpegProcess.destroy(); if (ffmpegProcess.isAlive()) { - LOG.info("FFmpeg didn't terminate. Destroying the process with force!"); + log.info("FFmpeg didn't terminate. Destroying the process with force!"); ffmpegProcess.destroyForcibly(); ffmpegProcess = null; } } } catch (InterruptedException e) { - LOG.error("Interrupted while waiting for FFmpeg to terminate"); + log.error("Interrupted while waiting for FFmpeg to terminate"); Thread.currentThread().interrupt(); } } diff --git a/common/src/main/java/ctbrec/recorder/download/hls/SegmentDownload.java b/common/src/main/java/ctbrec/recorder/download/hls/SegmentDownload.java index df3d6982..cad365b6 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/SegmentDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/SegmentDownload.java @@ -1,5 +1,7 @@ package ctbrec.recorder.download.hls; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.io.BandwidthMeter; import ctbrec.io.HttpClient; @@ -9,9 +11,6 @@ import ctbrec.recorder.download.hls.SegmentPlaylist.Segment; import okhttp3.Request; import okhttp3.Request.Builder; import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.fasterxml.jackson.datatype.jsr310.deser.DurationDeserializer; import javax.crypto.NoSuchPaddingException; @@ -32,9 +31,8 @@ import java.time.Duration; import static ctbrec.ErrorMessages.HTTP_RESPONSE_BODY_IS_NULL; import static ctbrec.recorder.download.hls.AbstractHlsDownload.addHeaders; +@Slf4j public class SegmentDownload implements Callable { - private static final Logger LOG = LoggerFactory.getLogger(SegmentDownload.class); - protected final URL url; protected final HttpClient client; protected final SegmentPlaylist playlist; @@ -65,7 +63,7 @@ public class SegmentDownload implements Callable { for (int tries = 1; tries <= 3 && !Thread.currentThread().isInterrupted(); tries++) { // NOSONAR if (expiresAt.isBefore(Instant.now())) { // segment has sexpired, skip it - LOG.warn("Segment for model {} is late {} seconds", model, Duration.between(expiresAt, Instant.now())); + log.warn("Segment for model {} is late {} seconds", model, Duration.between(expiresAt, Instant.now())); failed = true; exception = new Exception("Segment expired"); break; @@ -76,7 +74,7 @@ public class SegmentDownload implements Callable { handleResponse(response); break; } catch (FileNotFoundException e) { - LOG.debug("Segment does not exist {}", url.getFile()); + log.debug("Segment does not exist {}", url.getFile()); failed = true; exception = e; break; @@ -86,11 +84,11 @@ public class SegmentDownload implements Callable { break; } catch (Exception e) { if (tries == 3) { - LOG.warn("Error while downloading segment for {}. Segment {} finally failed: {}", model, url, e.getMessage()); + log.warn("Error while downloading segment for {}. Segment {} finally failed: {}", model, url, e.getMessage()); failed = true; exception = e; } else { - LOG.debug("Error while downloading segment {} for {} on try {} - {}", url, model, tries, e.getMessage()); + log.debug("Error while downloading segment {} for {} on try {} - {}", url, model, tries, e.getMessage()); } } } diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/Copy.java b/common/src/main/java/ctbrec/recorder/postprocessing/Copy.java index d604e249..ca80def8 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/Copy.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/Copy.java @@ -1,19 +1,17 @@ package ctbrec.recorder.postprocessing; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.IOException; import java.nio.file.Files; import org.apache.commons.io.FileUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Recording; +@Slf4j public class Copy extends AbstractPostProcessor { - private static final transient Logger LOG = LoggerFactory.getLogger(Copy.class); - @Override public String getName() { return "create a copy"; @@ -25,7 +23,7 @@ public class Copy extends AbstractPostProcessor { File orig = rec.getPostProcessedFile(); String copyFilename = getFilenameForCopy(orig); File copy = new File(orig.getParentFile(), copyFilename); - LOG.info("Creating a copy {}", copy); + log.info("Creating a copy {}", copy); if (orig.isFile()) { Files.copy(rec.getPostProcessedFile().toPath(), copy.toPath()); } else { diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java b/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java index 0f2bb23a..aaf7a2a5 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java @@ -1,5 +1,7 @@ package ctbrec.recorder.postprocessing; + +import lombok.extern.slf4j.Slf4j; import static java.lang.Boolean.*; import java.io.File; @@ -11,10 +13,6 @@ import java.text.MessageFormat; import java.text.NumberFormat; import java.util.Arrays; import java.util.Locale; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.OS; import ctbrec.Recording; @@ -22,10 +20,8 @@ import ctbrec.io.IoUtils; import ctbrec.recorder.FFmpeg; import ctbrec.recorder.download.ProcessExitedUncleanException; +@Slf4j public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { - - private static final Logger LOG = LoggerFactory.getLogger(CreateContactSheet.class); - public static final String TOTAL_SIZE = "total_size"; public static final String PADDING = "padding"; public static final String COLS = "columns"; @@ -79,7 +75,7 @@ public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { output.getCanonicalPath() }; String[] cmdline = OS.getFFmpegCommand(args); - LOG.trace("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); + log.trace("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); File ffmpegLog = new File(System.getProperty("java.io.tmpdir"), "create_contact_sheet_" + rec.getId() + ".log"); FFmpeg ffmpeg = new FFmpeg.Builder() .logOutput(config.getSettings().logFFmpegOutput) @@ -147,7 +143,7 @@ public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { output.getCanonicalPath() }; String[] cmdline = OS.getFFmpegCommand(args); - LOG.trace("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); + log.trace("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); FFmpeg ffmpeg = new FFmpeg.Builder() .logOutput(config.getSettings().logFFmpegOutput) diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/Move.java b/common/src/main/java/ctbrec/recorder/postprocessing/Move.java index 78470449..74de03e6 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/Move.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/Move.java @@ -1,10 +1,9 @@ package ctbrec.recorder.postprocessing; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Recording; import org.apache.commons.io.FileUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -12,9 +11,8 @@ import java.util.Objects; import static ctbrec.io.IoUtils.deleteEmptyParents; +@Slf4j public class Move extends AbstractPlaceholderAwarePostProcessor { - - private static final Logger LOG = LoggerFactory.getLogger(Move.class); public static final String PATH_TEMPLATE = "path.template"; public static final String DEFAULT = "$sanitize(${modelName})" + File.separatorChar + "$format(${localDateTime})"; @@ -34,7 +32,7 @@ public class Move extends AbstractPlaceholderAwarePostProcessor { if (Objects.equals(src, target)) { return true; } - LOG.info("Moving {} to {}", src.getName(), target.getParentFile().getCanonicalPath()); + log.info("Moving {} to {}", src.getName(), target.getParentFile().getCanonicalPath()); Files.createDirectories(target.getParentFile().toPath()); if (rec.getPostProcessedFile().isDirectory()) { FileUtils.moveDirectory(rec.getPostProcessedFile(), target); diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/Remux.java b/common/src/main/java/ctbrec/recorder/postprocessing/Remux.java index 5e661a81..b2c7b579 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/Remux.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/Remux.java @@ -1,23 +1,19 @@ package ctbrec.recorder.postprocessing; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Arrays; import java.util.Objects; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.OS; import ctbrec.Recording; import ctbrec.io.IoUtils; import ctbrec.recorder.FFmpeg; +@Slf4j public class Remux extends AbstractPostProcessor { - - private static final Logger LOG = LoggerFactory.getLogger(Remux.class); - public static final String PRE_FFMPEG_ARGS = "preffmpeg.args"; public static final String FFMPEG_ARGS = "ffmpeg.args"; public static final String FILE_EXT = "file.ext"; @@ -40,7 +36,7 @@ public class Remux extends AbstractPostProcessor { File remuxedFile = new File(rec.getPostProcessedFile().getAbsolutePath() + '.' + fileExt); String[] cmdline = prepareCommandline(inputFile, remuxedFile); File executionDir = rec.getPostProcessedFile().isDirectory() ? rec.getPostProcessedFile() : rec.getPostProcessedFile().getParentFile(); - LOG.info("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); + log.info("Executing {} in working directory {}", Arrays.toString(cmdline), executionDir); File ffmpegLog = new File(System.getProperty("java.io.tmpdir"), "remux_" + rec.getId() + ".log"); FFmpeg ffmpeg = new FFmpeg.Builder() @@ -74,7 +70,7 @@ public class Remux extends AbstractPostProcessor { rec.getAssociatedFiles().remove(inputFile.getCanonicalPath()); rec.getAssociatedFiles().add(remuxedFile.getCanonicalPath()); } catch (IOException e) { - LOG.error("Couldn't finalize remux post-processing step", e); + log.error("Couldn't finalize remux post-processing step", e); } } } diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/Rename.java b/common/src/main/java/ctbrec/recorder/postprocessing/Rename.java index 879977ee..f5890d3b 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/Rename.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/Rename.java @@ -1,17 +1,15 @@ package ctbrec.recorder.postprocessing; -import ctbrec.Recording; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; +import ctbrec.Recording; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Objects; +@Slf4j public class Rename extends AbstractPlaceholderAwarePostProcessor { - - private static final Logger LOG = LoggerFactory.getLogger(Rename.class); public static final String FILE_NAME_TEMPLATE = "filename.template"; public static final String DEFAULT = "$sanitize(${modelName})_$format(${localDateTime}).${fileSuffix}"; public static final String DEFAULT_DIR = "$sanitize(${modelName})_$format(${localDateTime})"; @@ -32,7 +30,7 @@ public class Rename extends AbstractPlaceholderAwarePostProcessor { if (Objects.equals(src, target)) { return true; } - LOG.info("Renaming {} to {}", src.getName(), target.getName()); + log.info("Renaming {} to {}", src.getName(), target.getName()); Files.move(rec.getPostProcessedFile().toPath(), target.toPath()); rec.setPostProcessedFile(target); if (Objects.equals(src, rec.getAbsoluteFile())) { diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/Script.java b/common/src/main/java/ctbrec/recorder/postprocessing/Script.java index 43c8d1eb..2bf39664 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/Script.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/Script.java @@ -1,23 +1,20 @@ package ctbrec.recorder.postprocessing; + +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.OS; import ctbrec.Recording; import ctbrec.io.StreamRedirector; import ctbrec.recorder.download.ProcessExitedUncleanException; +@Slf4j public class Script extends AbstractPlaceholderAwarePostProcessor { - - private static final Logger LOG = LoggerFactory.getLogger(Script.class); public static final String SCRIPT_EXECUTABLE = "script.executable"; public static final String SCRIPT_PARAMS = "script.params"; @@ -32,8 +29,8 @@ public class Script extends AbstractPlaceholderAwarePostProcessor { List cmdline = buildCommandLine(ctx); Runtime rt = Runtime.getRuntime(); String[] args = cmdline.toArray(new String[0]); - if (LOG.isDebugEnabled()) { - LOG.debug("Running {}", Arrays.toString(args)); + if (log.isDebugEnabled()) { + log.debug("Running {}", Arrays.toString(args)); } Process process = rt.exec(args, OS.getEnvironment()); File logFile = File.createTempFile("execute_script_" + rec.getId() + "_", ".log"); @@ -41,7 +38,7 @@ public class Script extends AbstractPlaceholderAwarePostProcessor { try (FileOutputStream logStream = new FileOutputStream(logFile)) { startLogging(process, logStream); int exitCode = process.waitFor(); - LOG.debug("Process finished with exit code {}", exitCode); + log.debug("Process finished with exit code {}", exitCode); if (exitCode != 0) { throw new ProcessExitedUncleanException("Script finished with exit code " + exitCode); } diff --git a/common/src/main/java/ctbrec/servlet/SearchServlet.java b/common/src/main/java/ctbrec/servlet/SearchServlet.java index 65344d7b..9826a58c 100644 --- a/common/src/main/java/ctbrec/servlet/SearchServlet.java +++ b/common/src/main/java/ctbrec/servlet/SearchServlet.java @@ -1,9 +1,8 @@ package ctbrec.servlet; -import org.json.JSONArray; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; +import org.json.JSONArray; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileNotFoundException; @@ -12,8 +11,8 @@ import java.util.List; import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR; +@Slf4j public class SearchServlet extends AbstractDocServlet { - private static final Logger LOG = LoggerFactory.getLogger(SearchServlet.class); private static final String Q = "term"; @Override @@ -37,7 +36,7 @@ public class SearchServlet extends AbstractDocServlet { try { resp.sendError(SC_INTERNAL_SERVER_ERROR, "Internal Server Error"); } catch (IOException ioe) { - LOG.error("Error while sending error response", ioe); + log.error("Error while sending error response", ioe); } } } diff --git a/common/src/main/java/ctbrec/sites/bonga/BongaCams.java b/common/src/main/java/ctbrec/sites/bonga/BongaCams.java index 79a22c1e..af330a86 100644 --- a/common/src/main/java/ctbrec/sites/bonga/BongaCams.java +++ b/common/src/main/java/ctbrec/sites/bonga/BongaCams.java @@ -1,5 +1,7 @@ package ctbrec.sites.bonga; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.StringUtil; import ctbrec.io.HttpClient; @@ -11,9 +13,6 @@ import okhttp3.RequestBody; import okhttp3.Response; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.URLEncoder; import java.util.*; @@ -23,10 +22,8 @@ import java.util.regex.Pattern; import static ctbrec.ErrorMessages.HTTP_RESPONSE_BODY_IS_NULL; import static ctbrec.io.HttpConstants.*; +@Slf4j public class BongaCams extends AbstractSite { - - private static final Logger LOG = LoggerFactory.getLogger(BongaCams.class); - private String baseUrl = "https://bongacams.com"; private BongaCamsHttpClient httpClient; @@ -157,7 +154,7 @@ public class BongaCams extends AbstractSite { parseModelList(models, json); return models; } else { - LOG.warn("Search result: {}", json.toString(2)); + log.warn("Search result: {}", json.toString(2)); return Collections.emptyList(); } } else { diff --git a/common/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java b/common/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java index 80ed477d..f6f80d7e 100644 --- a/common/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java +++ b/common/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java @@ -1,14 +1,13 @@ package ctbrec.sites.bonga; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.io.HttpClient; import ctbrec.io.HttpException; import okhttp3.*; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.util.List; import java.util.Locale; @@ -19,9 +18,8 @@ import java.util.Objects; import static ctbrec.ErrorMessages.HTTP_RESPONSE_BODY_IS_NULL; import static ctbrec.io.HttpConstants.*; +@Slf4j public class BongaCamsHttpClient extends HttpClient { - - private static final Logger LOG = LoggerFactory.getLogger(BongaCamsHttpClient.class); private static final String SORT_COOKIE = "ls01"; private final BongaCams site; private int userId = 0; @@ -59,7 +57,7 @@ public class BongaCamsHttpClient extends HttpClient { boolean cookiesWorked = checkLoginSuccess(); if (cookiesWorked) { loggedIn = true; - LOG.debug("Logged in with cookies"); + log.debug("Logged in with cookies"); return true; } diff --git a/common/src/main/java/ctbrec/sites/cam4/Cam4HttpClient.java b/common/src/main/java/ctbrec/sites/cam4/Cam4HttpClient.java index 0ef18c71..747d356a 100644 --- a/common/src/main/java/ctbrec/sites/cam4/Cam4HttpClient.java +++ b/common/src/main/java/ctbrec/sites/cam4/Cam4HttpClient.java @@ -1,5 +1,7 @@ package ctbrec.sites.cam4; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import static java.nio.charset.StandardCharsets.*; @@ -7,9 +9,6 @@ import java.io.IOException; import java.util.Locale; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.io.HttpClient; import okhttp3.MediaType; @@ -17,10 +16,8 @@ import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; +@Slf4j public class Cam4HttpClient extends HttpClient { - - private static final Logger LOG = LoggerFactory.getLogger(Cam4HttpClient.class); - public Cam4HttpClient(Config config) { super("cam4", config); } @@ -34,12 +31,12 @@ public class Cam4HttpClient extends HttpClient { boolean cookiesWorked = checkLoginSuccess(); if (cookiesWorked) { loggedIn = true; - LOG.debug("Logged in with cookies"); + log.debug("Logged in with cookies"); return true; } String url = Cam4.BASE_URI + "/rest/v2.0/login"; - LOG.debug("Logging in {}", url); + log.debug("Logging in {}", url); JSONObject bodyJson = new JSONObject(); bodyJson.put("username", config.getSettings().cam4Username); bodyJson.put("password", config.getSettings().cam4Password); @@ -55,7 +52,7 @@ public class Cam4HttpClient extends HttpClient { .build(); try (Response response = execute(req)) { String body = response.body().string(); - LOG.debug("Response: {} {}", response.code(), body); + log.debug("Response: {} {}", response.code(), body); if (response.isSuccessful()) { JSONObject json = new JSONObject(body); return json.optInt("userId") != 0; @@ -72,7 +69,7 @@ public class Cam4HttpClient extends HttpClient { public boolean checkLoginSuccess() throws IOException { String url = Cam4.BASE_URI + "/rest/v2.0/login/user"; //String url = "http://login.cam4.com:1234/rest/v2.0/login/user"; - LOG.debug("Checkin login success by calling {}", url); + log.debug("Checkin login success by calling {}", url); Request req = new Request.Builder() .url(url) .header(USER_AGENT, config.getSettings().httpUserAgent) @@ -83,7 +80,7 @@ public class Cam4HttpClient extends HttpClient { .build(); try (Response response = execute(req)) { String body = response.body().string(); - LOG.debug("Response: {} {}", response.code(), body); + log.debug("Response: {} {}", response.code(), body); if (response.isSuccessful()) { JSONObject json = new JSONObject(body); return json.optInt("userId") != 0; diff --git a/common/src/main/java/ctbrec/sites/cam4/Cam4WsClient.java b/common/src/main/java/ctbrec/sites/cam4/Cam4WsClient.java index e5a9557b..02df2a35 100644 --- a/common/src/main/java/ctbrec/sites/cam4/Cam4WsClient.java +++ b/common/src/main/java/ctbrec/sites/cam4/Cam4WsClient.java @@ -1,5 +1,7 @@ package ctbrec.sites.cam4; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import java.io.EOFException; @@ -12,9 +14,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.io.HttpException; import ctbrec.sites.ModelOfflineException; @@ -24,10 +23,8 @@ import okhttp3.WebSocket; import okhttp3.WebSocketListener; import okio.ByteString; +@Slf4j public class Cam4WsClient { - - private static final Logger LOG = LoggerFactory.getLogger(Cam4WsClient.class); - private Cam4 site; private Cam4Model model; private Config config; @@ -82,7 +79,7 @@ public class Cam4WsClient { private CompletableFuture send(String p, String msg) { CompletableFuture future = new CompletableFuture<>(); - LOG.trace("--> {}", msg); + log.trace("--> {}", msg); boolean sent = websocket.send(msg); if (!sent) { future.completeExceptionally(new IOException("send() returned false")); @@ -126,7 +123,7 @@ public class Cam4WsClient { CompletableFuture connectedAndAuthorized = new CompletableFuture<>(); String url = shard + ".ws?v=5"; - LOG.trace("Opening websocket {}", url); + log.trace("Opening websocket {}", url); Request req = new Request.Builder() // @formatter:off .url(url) .header(USER_AGENT, config.getSettings().httpUserAgent) @@ -140,9 +137,9 @@ public class Cam4WsClient { public void onOpen(WebSocket webSocket, Response response) { super.onOpen(webSocket, response); try { - LOG.trace("open: {}", response.body().string()); + log.trace("open: {}", response.body().string()); } catch (IOException e) { - LOG.error("Connection open, but couldn't get the response body", e); + log.error("Connection open, but couldn't get the response body", e); } send("", "{\"t\":\"d\",\"d\":{\"r\":" + (r++) + ",\"a\":\"s\",\"b\":{\"c\":{\"sdk.js.2-3-1\":1}}}}"); send("", "{\"t\":\"d\",\"d\":{\"r\":" + (r++) + ",\"a\":\"auth\",\"b\":{\"cred\":\"" + token + "\"}}}"); @@ -151,7 +148,7 @@ public class Cam4WsClient { @Override public void onClosed(WebSocket webSocket, int code, String reason) { super.onClosed(webSocket, code, reason); - LOG.trace("closed: {} {}", code, reason); + log.trace("closed: {} {}", code, reason); connectedAndAuthorized.complete(false); } @@ -163,12 +160,12 @@ public class Cam4WsClient { return; } if(response != null) { - LOG.error("failure {}: {}", model, response.body().string(), t); + log.error("failure {}: {}", model, response.body().string(), t); } else { - LOG.error("failure {}:", model, t); + log.error("failure {}:", model, t); } } catch (IOException e) { - LOG.error("Connection failure and couldn't get the response body", e); + log.error("Connection failure and couldn't get the response body", e); } finally { connectedAndAuthorized.completeExceptionally(t); } @@ -177,7 +174,7 @@ public class Cam4WsClient { @Override public void onMessage(WebSocket webSocket, String text) { super.onMessage(webSocket, text); - LOG.trace("msgt: {}", text); + log.trace("msgt: {}", text); JSONObject response = new JSONObject(text); if (response.has("d")) { JSONObject d = response.getJSONObject("d"); @@ -207,7 +204,7 @@ public class Cam4WsClient { @Override public void onMessage(WebSocket webSocket, ByteString bytes) { super.onMessage(webSocket, bytes); - LOG.trace("msgb: {}", bytes.hex()); + log.trace("msgb: {}", bytes.hex()); } }); return connectedAndAuthorized; diff --git a/common/src/main/java/ctbrec/sites/camsoda/Camsoda.java b/common/src/main/java/ctbrec/sites/camsoda/Camsoda.java index a0f0f7db..07a3c56a 100644 --- a/common/src/main/java/ctbrec/sites/camsoda/Camsoda.java +++ b/common/src/main/java/ctbrec/sites/camsoda/Camsoda.java @@ -1,5 +1,7 @@ package ctbrec.sites.camsoda; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.io.HttpClient; import ctbrec.io.HttpException; @@ -8,9 +10,6 @@ import okhttp3.Request; import okhttp3.Response; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; @@ -22,9 +21,8 @@ import java.util.regex.Pattern; import static ctbrec.io.HttpConstants.USER_AGENT; import static java.nio.charset.StandardCharsets.UTF_8; +@Slf4j public class Camsoda extends AbstractSite { - - private static final Logger LOG = LoggerFactory.getLogger(Camsoda.class); public static final String BASE_URI = "https://www.camsoda.com"; private HttpClient httpClient; @@ -153,7 +151,7 @@ public class Camsoda extends AbstractSite { } return models; } else { - LOG.warn("Search result: {}", json.toString(2)); + log.warn("Search result: {}", json.toString(2)); return Collections.emptyList(); } } else { diff --git a/common/src/main/java/ctbrec/sites/camsoda/CamsodaHttpClient.java b/common/src/main/java/ctbrec/sites/camsoda/CamsodaHttpClient.java index bc1dbce9..051b2d26 100644 --- a/common/src/main/java/ctbrec/sites/camsoda/CamsodaHttpClient.java +++ b/common/src/main/java/ctbrec/sites/camsoda/CamsodaHttpClient.java @@ -1,5 +1,7 @@ package ctbrec.sites.camsoda; + +import lombok.extern.slf4j.Slf4j; import static java.util.regex.Pattern.*; import java.io.IOException; @@ -8,9 +10,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.io.HttpClient; import ctbrec.io.HttpException; @@ -18,9 +17,8 @@ import okhttp3.FormBody; import okhttp3.Request; import okhttp3.Response; +@Slf4j public class CamsodaHttpClient extends HttpClient { - - private static final Logger LOG = LoggerFactory.getLogger(CamsodaHttpClient.class); private static final Pattern CSRF_PATTERN = Pattern.compile("\"csrf\"\\s*:\\s*\"(.*?)\"", MULTILINE | DOTALL); private String csrfToken = null; @@ -37,7 +35,7 @@ public class CamsodaHttpClient extends HttpClient { // persisted cookies might let us log in if (checkLoginSuccess()) { loggedIn = true; - LOG.debug("Logged in with cookies"); + log.debug("Logged in with cookies"); return true; } diff --git a/common/src/main/java/ctbrec/sites/dreamcam/DreamcamDownload.java b/common/src/main/java/ctbrec/sites/dreamcam/DreamcamDownload.java index 94552cc5..21ae2540 100644 --- a/common/src/main/java/ctbrec/sites/dreamcam/DreamcamDownload.java +++ b/common/src/main/java/ctbrec/sites/dreamcam/DreamcamDownload.java @@ -1,5 +1,7 @@ package ctbrec.sites.dreamcam; + +import lombok.extern.slf4j.Slf4j; import ctbrec.*; import ctbrec.io.BandwidthMeter; import ctbrec.io.HttpClient; @@ -13,9 +15,6 @@ import okhttp3.WebSocket; import okhttp3.WebSocketListener; import okio.ByteString; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -30,9 +29,8 @@ import java.util.regex.Pattern; import static ctbrec.io.HttpConstants.*; +@Slf4j public class DreamcamDownload extends AbstractDownload { - - private static final Logger LOG = LoggerFactory.getLogger(DreamcamDownload.class); private static final int MAX_SECONDS_WITHOUT_TRANSFER = 30; private final HttpClient httpClient; @@ -91,7 +89,7 @@ public class DreamcamDownload extends AbstractDownload { try { ffmpegStdIn.close(); } catch (IOException e) { - LOG.error("Couldn't terminate FFmpeg by closing stdin", e); + log.error("Couldn't terminate FFmpeg by closing stdin", e); } } if (ffmpegProcess != null) { @@ -100,13 +98,13 @@ public class DreamcamDownload extends AbstractDownload { if (!waitFor && ffmpegProcess.isAlive()) { ffmpegProcess.destroy(); if (ffmpegProcess.isAlive()) { - LOG.info("FFmpeg didn't terminate. Destroying the process with force!"); + log.info("FFmpeg didn't terminate. Destroying the process with force!"); ffmpegProcess.destroyForcibly(); ffmpegProcess = null; } } } catch (InterruptedException e) { - LOG.error("Interrupted while waiting for FFmpeg to terminate"); + log.error("Interrupted while waiting for FFmpeg to terminate"); Thread.currentThread().interrupt(); } } @@ -124,7 +122,7 @@ public class DreamcamDownload extends AbstractDownload { .build(); ffmpeg.exec(cmdline, new String[0], target.getParentFile()); } catch (IOException | ProcessExitedUncleanException e) { - LOG.error("Error in FFmpeg thread", e); + log.error("Error in FFmpeg thread", e); } } @@ -186,7 +184,7 @@ public class DreamcamDownload extends AbstractDownload { ffmpeg.shutdown(exitValue); } } catch (ProcessExitedUncleanException e) { - LOG.error("FFmpeg exited unclean", e); + log.error("FFmpeg exited unclean", e); internalStop(); } try { @@ -195,22 +193,22 @@ public class DreamcamDownload extends AbstractDownload { startDownload(); } } catch (Exception e) { - LOG.error("Error while downloading", e); + log.error("Error while downloading", e); stop(); } if (!model.isOnline()) { - LOG.debug("Model {} not online. Stop recording.", model); + log.debug("Model {} not online. Stop recording.", model); stop(); } if (splittingStrategy.splitNecessary(this)) { - LOG.debug("Split necessary for model {}. Stop recording.", model); + log.debug("Split necessary for model {}. Stop recording.", model); internalStop(); rescheduleTime = Instant.now(); } else { rescheduleTime = Instant.now().plusSeconds(5); } if (Duration.between(timeOfLastTransfer, Instant.now()).getSeconds() > MAX_SECONDS_WITHOUT_TRANSFER) { - LOG.debug("No video data received for {} seconds. Stopping recording for model {}", MAX_SECONDS_WITHOUT_TRANSFER, model); + log.debug("No video data received for {} seconds. Stopping recording for model {}", MAX_SECONDS_WITHOUT_TRANSFER, model); stop(); } return this; @@ -222,9 +220,9 @@ public class DreamcamDownload extends AbstractDownload { ffmpegStreamLock.lock(); try { wsUrl = model.getWsUrl(); - LOG.debug("{} ws url: {}", model.getName(), wsUrl); + log.debug("{} ws url: {}", model.getName(), wsUrl); if (StringUtil.isBlank(wsUrl)) { - LOG.error("{}: Stream URL not found", model); + log.error("{}: Stream URL not found", model); stop(); return; } @@ -241,7 +239,7 @@ public class DreamcamDownload extends AbstractDownload { @Override public void onOpen(WebSocket webSocket, Response response) { super.onOpen(webSocket, response); - LOG.debug("{}: Websocket open", model); + log.debug("{}: Websocket open", model); if (response != null) { response.close(); } @@ -254,7 +252,7 @@ public class DreamcamDownload extends AbstractDownload { @Override public void onClosed(WebSocket webSocket, int code, String reason) { super.onClosed(webSocket, code, reason); - LOG.trace("{}: Websocket closed", model); + log.trace("{}: Websocket closed", model); stop(); synchronized (monitor) { monitor.notifyAll(); @@ -264,7 +262,7 @@ public class DreamcamDownload extends AbstractDownload { @Override public void onFailure(WebSocket webSocket, Throwable t, Response response) { super.onFailure(webSocket, t, response); - LOG.debug("{}: Websocket failed: {}", model, t.getMessage()); + log.debug("{}: Websocket failed: {}", model, t.getMessage()); if (response != null) { response.close(); } @@ -277,7 +275,7 @@ public class DreamcamDownload extends AbstractDownload { @Override public void onMessage(WebSocket webSocket, String text) { super.onMessage(webSocket, text); - LOG.trace("{} ws message: {}", model, text); + log.trace("{} ws message: {}", model, text); JSONObject message = new JSONObject(text); if (message.optString("url").equals("stream/qual")) { JSONObject msg = new JSONObject(); @@ -300,7 +298,7 @@ public class DreamcamDownload extends AbstractDownload { } } catch (IOException e) { if (running) { - LOG.error("Couldn't write video stream to file", e); + log.error("Couldn't write video stream to file", e); stop(); } } @@ -313,12 +311,12 @@ public class DreamcamDownload extends AbstractDownload { monitor.wait(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.warn("Interrupted while waiting for the download to terminate"); + log.warn("Interrupted while waiting for the download to terminate"); } } } catch (IOException ex) { if (running) { - LOG.error("Error while downloading: {}", ex.getMessage()); + log.error("Error while downloading: {}", ex.getMessage()); stop(); } } finally { diff --git a/common/src/main/java/ctbrec/sites/dreamcam/DreamcamModel.java b/common/src/main/java/ctbrec/sites/dreamcam/DreamcamModel.java index 6115cd22..b9fc5ed9 100644 --- a/common/src/main/java/ctbrec/sites/dreamcam/DreamcamModel.java +++ b/common/src/main/java/ctbrec/sites/dreamcam/DreamcamModel.java @@ -1,5 +1,7 @@ package ctbrec.sites.dreamcam; + +import lombok.extern.slf4j.Slf4j; import ctbrec.AbstractModel; import ctbrec.Config; import ctbrec.StringUtil; @@ -12,9 +14,6 @@ import okhttp3.Request; import okhttp3.Response; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.text.MessageFormat; import java.time.Duration; @@ -28,9 +27,8 @@ import java.util.concurrent.ExecutionException; import static ctbrec.Model.State.*; import static ctbrec.io.HttpConstants.*; +@Slf4j public class DreamcamModel extends AbstractModel { - - private static final Logger LOG = LoggerFactory.getLogger(DreamcamModel.class); private static final String API_URL = "https://bss.dreamcamtrue.com"; private int[] resolution = new int[2]; private JSONObject modelInfo; @@ -83,7 +81,7 @@ public class DreamcamModel extends AbstractModel { src.setMediaPlaylistUrl(getPlaylistUrl()); sources.add(src); } catch (Exception e) { - LOG.error("Can not get stream sources for {}: {}", getName(), e.getMessage()); + log.error("Can not get stream sources for {}: {}", getName(), e.getMessage()); throw new InvalidPlaylistException(e.getMessage()); } return sources; @@ -100,7 +98,7 @@ public class DreamcamModel extends AbstractModel { String streamType = s.getString("streamType"); if (streamType.equals("video2D")) { mediaUrl = s.optString("url"); - LOG.trace("PlaylistUrl for {}: {}", getName(), mediaUrl); + log.trace("PlaylistUrl for {}: {}", getName(), mediaUrl); } } } diff --git a/common/src/main/java/ctbrec/sites/fc2live/Fc2HlsDownload.java b/common/src/main/java/ctbrec/sites/fc2live/Fc2HlsDownload.java index 2e498644..d275245c 100644 --- a/common/src/main/java/ctbrec/sites/fc2live/Fc2HlsDownload.java +++ b/common/src/main/java/ctbrec/sites/fc2live/Fc2HlsDownload.java @@ -1,15 +1,11 @@ package ctbrec.sites.fc2live; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import lombok.extern.slf4j.Slf4j; import ctbrec.io.HttpClient; import ctbrec.recorder.download.hls.HlsDownload; +@Slf4j public class Fc2HlsDownload extends HlsDownload { - - private static final Logger LOG = LoggerFactory.getLogger(Fc2HlsDownload.class); - public Fc2HlsDownload(HttpClient client) { super(client); } @@ -22,7 +18,7 @@ public class Fc2HlsDownload extends HlsDownload { super.call(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Couldn't start download for {}", model, e); + log.error("Couldn't start download for {}", model, e); } finally { fc2Model.closeWebsocket(); } diff --git a/common/src/main/java/ctbrec/sites/fc2live/Fc2HlsdlDownload.java b/common/src/main/java/ctbrec/sites/fc2live/Fc2HlsdlDownload.java index 0b57166d..c2baad60 100644 --- a/common/src/main/java/ctbrec/sites/fc2live/Fc2HlsdlDownload.java +++ b/common/src/main/java/ctbrec/sites/fc2live/Fc2HlsdlDownload.java @@ -1,21 +1,16 @@ package ctbrec.sites.fc2live; + +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.time.Instant; import java.util.concurrent.ExecutorService; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.Model; import ctbrec.recorder.download.hls.HlsdlDownload; +@Slf4j public class Fc2HlsdlDownload extends HlsdlDownload { - - private static final Logger LOG = LoggerFactory.getLogger(Fc2HlsdlDownload.class); - - @Override public void init(Config config, Model model, Instant startTime, ExecutorService executorService) throws IOException { super.init(config, model, startTime, executorService); @@ -24,7 +19,7 @@ public class Fc2HlsdlDownload extends HlsdlDownload { fc2Model.openWebsocket(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Couldn't start download for {}", model, e); + log.error("Couldn't start download for {}", model, e); } } diff --git a/common/src/main/java/ctbrec/sites/fc2live/Fc2HttpClient.java b/common/src/main/java/ctbrec/sites/fc2live/Fc2HttpClient.java index fd4c3fb5..0253073c 100644 --- a/common/src/main/java/ctbrec/sites/fc2live/Fc2HttpClient.java +++ b/common/src/main/java/ctbrec/sites/fc2live/Fc2HttpClient.java @@ -1,13 +1,12 @@ package ctbrec.sites.fc2live; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import java.io.IOException; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.io.CookieJarImpl; import ctbrec.io.HttpClient; @@ -19,10 +18,8 @@ import okhttp3.Response; import okhttp3.WebSocket; import okhttp3.WebSocketListener; +@Slf4j public class Fc2HttpClient extends HttpClient { - - private static final Logger LOG = LoggerFactory.getLogger(Fc2HttpClient.class); - public Fc2HttpClient(Config config) { super("fc2live", config); } @@ -40,7 +37,7 @@ public class Fc2HttpClient extends HttpClient { if(checkLogin()) { loggedIn = true; - LOG.debug("Logged in with cookies"); + log.debug("Logged in with cookies"); return true; } @@ -62,29 +59,29 @@ public class Fc2HttpClient extends HttpClient { try(Response resp = execute(req)) { if(resp.isSuccessful()) { String page = resp.body().string(); - LOG.debug(page); + log.debug(page); if(page.contains("Invalid e-mail address or password")) { return false; } else { - LOG.debug("Calling https://secure.id.fc2.com/?login=done"); + log.debug("Calling https://secure.id.fc2.com/?login=done"); req = new Request.Builder() .url("https://secure.id.fc2.com/?login=done") .header(REFERER, "https://secure.id.fc2.com/index.php?mode=login&switch_language=en") .build(); try (Response resp2 = execute(req)) { if (resp.isSuccessful()) { - LOG.debug("Login complete"); + log.debug("Login complete"); loggedIn = true; return true; } else { - LOG.debug("Login failed"); + log.debug("Login failed"); loggedIn = false; return false; } } } } else { - LOG.error("Login failed {} {}", resp.code(), resp.message()); + log.error("Login failed {} {}", resp.code(), resp.message()); return false; } } diff --git a/common/src/main/java/ctbrec/sites/fc2live/Fc2MergedHlsDownload.java b/common/src/main/java/ctbrec/sites/fc2live/Fc2MergedHlsDownload.java index 50233ab6..1913ce25 100644 --- a/common/src/main/java/ctbrec/sites/fc2live/Fc2MergedHlsDownload.java +++ b/common/src/main/java/ctbrec/sites/fc2live/Fc2MergedHlsDownload.java @@ -1,15 +1,11 @@ package ctbrec.sites.fc2live; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import lombok.extern.slf4j.Slf4j; import ctbrec.io.HttpClient; import ctbrec.recorder.download.hls.MergedFfmpegHlsDownload; +@Slf4j public class Fc2MergedHlsDownload extends MergedFfmpegHlsDownload { - - private static final Logger LOG = LoggerFactory.getLogger(Fc2MergedHlsDownload.class); - public Fc2MergedHlsDownload(HttpClient client) { super(client); } @@ -22,7 +18,7 @@ public class Fc2MergedHlsDownload extends MergedFfmpegHlsDownload { super.call(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Couldn't start download for {}", model, e); + log.error("Couldn't start download for {}", model, e); } finally { fc2Model.closeWebsocket(); } diff --git a/common/src/main/java/ctbrec/sites/flirt4free/Flirt4FreeHttpClient.java b/common/src/main/java/ctbrec/sites/flirt4free/Flirt4FreeHttpClient.java index 89fe8f86..394aa3c0 100644 --- a/common/src/main/java/ctbrec/sites/flirt4free/Flirt4FreeHttpClient.java +++ b/common/src/main/java/ctbrec/sites/flirt4free/Flirt4FreeHttpClient.java @@ -1,13 +1,11 @@ package ctbrec.sites.flirt4free; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import java.io.IOException; import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.io.HttpClient; import ctbrec.io.HttpException; @@ -15,10 +13,8 @@ import okhttp3.FormBody; import okhttp3.Request; import okhttp3.Response; +@Slf4j public class Flirt4FreeHttpClient extends HttpClient { - - private static final Logger LOG = LoggerFactory.getLogger(Flirt4FreeHttpClient.class); - public Flirt4FreeHttpClient(Config config) { super("flirt4free", config); } @@ -32,7 +28,7 @@ public class Flirt4FreeHttpClient extends HttpClient { // persisted cookies might let us log in if(checkLoginSuccess()) { loggedIn = true; - LOG.debug("Logged in with cookies"); + log.debug("Logged in with cookies"); return true; } diff --git a/common/src/main/java/ctbrec/sites/mfc/DashStreamSourceProvider.java b/common/src/main/java/ctbrec/sites/mfc/DashStreamSourceProvider.java index 90c1b68b..87c95ccf 100644 --- a/common/src/main/java/ctbrec/sites/mfc/DashStreamSourceProvider.java +++ b/common/src/main/java/ctbrec/sites/mfc/DashStreamSourceProvider.java @@ -1,5 +1,7 @@ package ctbrec.sites.mfc; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.recorder.download.StreamSource; import ctbrec.recorder.download.dash.AdaptationSetType; @@ -9,9 +11,6 @@ import ctbrec.recorder.download.dash.RepresentationType; import ctbrec.sites.Site; import okhttp3.Request; import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; @@ -24,10 +23,8 @@ import java.util.List; import static ctbrec.io.HttpConstants.*; +@Slf4j public class DashStreamSourceProvider implements StreamSourceProvider { - - private static final Logger LOG = LoggerFactory.getLogger(DashStreamSourceProvider.class); - private final Config config; private final Site site; @@ -82,7 +79,7 @@ public class DashStreamSourceProvider implements StreamSourceProvider { .header(REFERER, site.getBaseUrl()) .header(CONNECTION, KEEP_ALIVE) .build(); // @formatter:on - LOG.trace("Loading manifest {}", url); + log.trace("Loading manifest {}", url); try (Response response = site.getHttpClient().execute(request)) { return response.body().string(); } diff --git a/common/src/main/java/ctbrec/sites/mfc/HlsStreamSourceProvider.java b/common/src/main/java/ctbrec/sites/mfc/HlsStreamSourceProvider.java index 19afcb19..25eac633 100644 --- a/common/src/main/java/ctbrec/sites/mfc/HlsStreamSourceProvider.java +++ b/common/src/main/java/ctbrec/sites/mfc/HlsStreamSourceProvider.java @@ -1,5 +1,7 @@ package ctbrec.sites.mfc; + +import lombok.extern.slf4j.Slf4j; import com.iheartradio.m3u8.*; import com.iheartradio.m3u8.data.MasterPlaylist; import com.iheartradio.m3u8.data.Playlist; @@ -10,9 +12,6 @@ import ctbrec.io.HttpException; import ctbrec.recorder.download.StreamSource; import okhttp3.Request; import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -23,10 +22,8 @@ import java.util.concurrent.ExecutionException; import static ctbrec.io.HttpConstants.*; +@Slf4j public record HlsStreamSourceProvider(HttpClient httpClient) implements StreamSourceProvider { - - private static final Logger LOG = LoggerFactory.getLogger(HlsStreamSourceProvider.class); - @Override public List getStreamSources(String streamUrl) throws IOException, ExecutionException, ParseException, PlaylistException { MasterPlaylist masterPlaylist = getMasterPlaylist(streamUrl); @@ -46,7 +43,7 @@ public record HlsStreamSourceProvider(HttpClient httpClient) implements StreamSo String baseUrl = masterUrl.substring(0, masterUrl.lastIndexOf('/') + 1); String segmentUri = baseUrl + playlist.getUri(); src.setMediaPlaylistUrl(segmentUri); - LOG.trace("Media playlist {}", src.getMediaPlaylistUrl()); + log.trace("Media playlist {}", src.getMediaPlaylistUrl()); sources.add(src); } } @@ -57,7 +54,7 @@ public record HlsStreamSourceProvider(HttpClient httpClient) implements StreamSo if (streamUrl == null) { throw new IllegalStateException("Stream url unknown"); } - LOG.trace("Loading master playlist {}", streamUrl); + log.trace("Loading master playlist {}", streamUrl); Request req = new Request.Builder() .url(streamUrl) .header(ACCEPT, "*/*") diff --git a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java index 6023fa54..bdf77193 100644 --- a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java +++ b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java @@ -1,5 +1,7 @@ package ctbrec.sites.mfc; + +import lombok.extern.slf4j.Slf4j; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; @@ -11,9 +13,6 @@ import okhttp3.*; import okio.ByteString; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.FileOutputStream; import java.io.IOException; import java.net.URLDecoder; @@ -29,12 +28,10 @@ import static ctbrec.io.HttpConstants.*; import static ctbrec.sites.mfc.MessageTypes.*; import static java.nio.charset.StandardCharsets.UTF_8; +@Slf4j public class MyFreeCamsClient { private static final String HTTPS = "https://"; - - private static final Logger LOG = LoggerFactory.getLogger(MyFreeCamsClient.class); - private static final ObjectMapper objectMapper = ObjectMapperFactory.getMapper(); private static MyFreeCamsClient instance; @@ -88,12 +85,12 @@ public class MyFreeCamsClient { String server = websocketServers.get(rng.nextInt(websocketServers.size() - 1)); String wsUrl = "wss://" + server + ".myfreecams.com/fcsl"; - LOG.debug("Connecting to random websocket server {}", wsUrl); + log.debug("Connecting to random websocket server {}", wsUrl); Thread watchDog = new Thread(() -> { while (running) { if (ws == null && !connecting) { - LOG.info("Websocket is null. Starting a new connection"); + log.info("Websocket is null. Starting a new connection"); Request req = new Request.Builder() .url(wsUrl) .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) @@ -106,7 +103,7 @@ public class MyFreeCamsClient { Thread.sleep(10000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("WatchDog couldn't sleep", e); + log.error("WatchDog couldn't sleep", e); stop(); running = false; } @@ -141,7 +138,7 @@ public class MyFreeCamsClient { public List getModels() { lock.lock(); try { - LOG.trace("Models: {}", models.size()); + log.trace("Models: {}", models.size()); return new ArrayList<>(this.models.asMap().values()); } finally { lock.unlock(); @@ -160,13 +157,13 @@ public class MyFreeCamsClient { models.invalidateAll(); // WebSocketListener's response body is stripped, so we cannot call .string() on it (remove the line maybe?) var body = response.body(); - LOG.trace("open: [{}]", body.contentLength() != 0 ? body.string() : ""); + log.trace("open: [{}]", body.contentLength() != 0 ? body.string() : ""); webSocket.send("fcsws_20180422\n"); login(webSocket); heartBeat = System.currentTimeMillis(); startKeepAlive(webSocket); } catch (IOException e) { - LOG.error("Error while processing onOpen event", e); + log.error("Error while processing onOpen event", e); } } @@ -174,7 +171,7 @@ public class MyFreeCamsClient { public void onClosed(WebSocket webSocket, int code, String reason) { super.onClosed(webSocket, code, reason); connecting = false; - LOG.info("MFC websocket closed: {} {}", code, reason); + log.info("MFC websocket closed: {} {}", code, reason); MyFreeCamsClient.this.ws = null; if (!running) { mfc.getHttpClient().shutdown(); @@ -188,10 +185,10 @@ public class MyFreeCamsClient { if (response != null) { int code = response.code(); String message = response.message(); - LOG.error("MFC websocket failure: {} {}", code, message, t); + log.error("MFC websocket failure: {} {}", code, message, t); response.close(); } else { - LOG.error("MFC websocket failure", t); + log.error("MFC websocket failure", t); } MyFreeCamsClient.this.ws = null; } @@ -212,12 +209,12 @@ public class MyFreeCamsClient { while ((message = parseMessage(msgBuffer)) != null) { switch (message.getType()) { case NULL: - LOG.trace("NULL websocket still alive"); + log.trace("NULL websocket still alive"); break; case LOGIN: - LOG.debug("LOGIN: {}", message); + log.debug("LOGIN: {}", message); sessionId = message.getReceiver(); - LOG.debug("Session ID {}", sessionId); + log.debug("Session ID {}", sessionId); break; case DETAILS: case ROOMHELPER: @@ -235,17 +232,17 @@ public class MyFreeCamsClient { SessionState sessionState = objectMapper.readValue(message.getMessage(), SessionState.class); updateSessionState(sessionState); } catch (IOException e) { - LOG.error("Couldn't parse session state message {}", message, e); + log.error("Couldn't parse session state message {}", message, e); } } break; case USERNAMELOOKUP: - // LOG.debug("{}", message.getType()); - // LOG.debug("{}", message.getSender()); - // LOG.debug("{}", message.getReceiver()); - // LOG.debug("{}", message.getArg1()); - // LOG.debug("{}", message.getArg2()); - // LOG.debug("{}", message.getMessage()); + // log.debug("{}", message.getType()); + // log.debug("{}", message.getSender()); + // log.debug("{}", message.getReceiver()); + // log.debug("{}", message.getArg1()); + // log.debug("{}", message.getArg2()); + // log.debug("{}", message.getMessage()); Consumer responseHandler = responseHandlers.remove(message.getArg1()); if (responseHandler != null) { responseHandler.accept(message); @@ -269,18 +266,18 @@ public class MyFreeCamsClient { } else if (message.getArg1() == MessageTypes.MANAGELIST) { requestExtData(message.getMessage()); } else { - LOG.debug("EXTDATA: {}", message); + log.debug("EXTDATA: {}", message); } break; case ROOMDATA: - LOG.debug("ROOMDATA: {}", message); + log.debug("ROOMDATA: {}", message); break; case UEOPT: - LOG.trace("UEOPT: {}", message); + log.trace("UEOPT: {}", message); break; case SLAVEVSHARE: - // LOG.debug("SLAVEVSHARE {}", message); - // LOG.debug("SLAVEVSHARE MSG [{}]", message.getMessage()); + // log.debug("SLAVEVSHARE {}", message); + // log.debug("SLAVEVSHARE MSG [{}]", message.getMessage()); break; case TKX: json = new JSONObject(message.getMessage()); @@ -294,12 +291,12 @@ public class MyFreeCamsClient { } break; default: - LOG.trace("Unknown message {}", message); + log.trace("Unknown message {}", message); break; } } } catch (Exception e) { - LOG.error("Exception occured while processing websocket message {}", msgBuffer, e); + log.error("Exception occured while processing websocket message {}", msgBuffer, e); ws.close(1000, ""); } } @@ -312,7 +309,7 @@ public class MyFreeCamsClient { Cookie passcode = mfc.getHttpClient().getCookie("passcode"); webSocket.send("1 0 0 20071025 0 1/" + username + ":" + passcode.value() + "\n"); } else { - LOG.error("Login failed. Logging in as guest"); + log.error("Login failed. Logging in as guest"); webSocket.send("1 0 0 20071025 0 1/guest:guest\n"); } } else { @@ -336,14 +333,14 @@ public class MyFreeCamsClient { .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) .header(CONNECTION, KEEP_ALIVE) .build(); - LOG.trace("Requesting EXTDATA {}", url); + log.trace("Requesting EXTDATA {}", url); try (Response resp = mfc.getHttpClient().execute(req)) { if (resp.isSuccessful()) { parseExtDataSessionStates(Objects.requireNonNull(resp.body(), "HTTP response is null").string()); } } } catch (Exception e) { - LOG.warn("Couldn't request EXTDATA", e); + log.warn("Couldn't request EXTDATA", e); } } @@ -351,7 +348,7 @@ public class MyFreeCamsClient { JSONObject object = new JSONObject(json); if (object.has("type") && object.getInt("type") == 21) { JSONArray outer = object.getJSONArray("rdata"); - LOG.debug("{} models", outer.length()); + log.debug("{} models", outer.length()); for (int i = 1; i < outer.length(); i++) { JSONArray inner = outer.getJSONArray(i); try { @@ -386,7 +383,7 @@ public class MyFreeCamsClient { state.getM().setHidecs(inner.getInt(idx) == 1); updateSessionState(state); } catch (Exception e) { - LOG.warn("Couldn't parse session state {}", inner); + log.warn("Couldn't parse session state {}", inner); } } } else if (object.has("type") && object.getInt("type") == 20) { @@ -411,7 +408,7 @@ public class MyFreeCamsClient { @Override public void onMessage(WebSocket webSocket, ByteString bytes) { super.onMessage(webSocket, bytes); - LOG.debug("msgb: {}", bytes.hex()); + log.debug("msgb: {}", bytes.hex()); } }); return websocket; @@ -474,7 +471,7 @@ public class MyFreeCamsClient { // packet not complete return null; } else { - LOG.trace("<-- {}", msgBuffer); + log.trace("<-- {}", msgBuffer); msgBuffer.delete(0, packetLengthBytes); StringBuilder rawMessage = new StringBuilder(msgBuffer.substring(0, packetLength)); int type = parseNextInt(rawMessage); @@ -487,7 +484,7 @@ public class MyFreeCamsClient { return message; } } catch (Exception e) { - LOG.error("StringBuilder contains invalid data {}", msgBuffer, e); + log.error("StringBuilder contains invalid data {}", msgBuffer, e); String logfile = "mfc_messages.log"; try (FileOutputStream fout = new FileOutputStream(logfile)) { for (String string : receivedTextHistory) { @@ -495,7 +492,7 @@ public class MyFreeCamsClient { fout.write(10); } } catch (Exception e1) { - LOG.error("Couldn't write mfc message history to {}", logfile, e1); + log.error("Couldn't write mfc message history to {}", logfile, e1); } msgBuffer.setLength(0); return null; @@ -551,7 +548,7 @@ public class MyFreeCamsClient { authCommand.put("command", "auth"); authCommand.put("streamInfo", streamInfo); authCommand.put("userData", userData); - LOG.info("auth command {}", authCommand.toString(2)); + log.info("auth command {}", authCommand.toString(2)); return streamInfo.toString(); } @@ -568,12 +565,12 @@ public class MyFreeCamsClient { while (running && !Thread.currentThread().isInterrupted()) { try { if (!connecting) { - LOG.trace("--> NULL to keep the connection alive"); + log.trace("--> NULL to keep the connection alive"); ws.send("0 0 0 0 0 -\n"); long millisSinceLastMessage = System.currentTimeMillis() - heartBeat; if (millisSinceLastMessage > TimeUnit.MINUTES.toMillis(2)) { - LOG.info("No message since 2 mins. Restarting websocket"); + log.info("No message since 2 mins. Restarting websocket"); ws.close(1000, ""); MyFreeCamsClient.this.ws = null; } @@ -584,7 +581,7 @@ public class MyFreeCamsClient { TimeUnit.SECONDS.sleep(15); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.warn("Websocket watchdog has been interrupted"); + log.warn("Websocket watchdog has been interrupted"); } } }); @@ -670,20 +667,20 @@ public class MyFreeCamsClient { public List search(String q) throws InterruptedException { List result = new ArrayList<>(); if (ws != null) { - LOG.trace("Sending USERNAMELOOKUP for {}", q); + log.trace("Sending USERNAMELOOKUP for {}", q); Object monitor = new Object(); int msgId = messageId++; AtomicBoolean searchDone = new AtomicBoolean(false); responseHandlers.put(msgId, msg -> { try { - LOG.trace("Search result: {}", msg); + log.trace("Search result: {}", msg); if (StringUtil.isNotBlank(msg.getMessage()) && !Objects.equals(msg.getMessage(), q)) { JSONObject json = new JSONObject(msg.getMessage()); try { SessionState sessionState = Objects.requireNonNull(objectMapper.readValue(msg.getMessage(), SessionState.class)); updateSessionState(sessionState); } catch (Exception e) { - LOG.error("Couldn't parse session state message {}", msg, e); + log.error("Couldn't parse session state message {}", msg, e); } String name = json.getString("nm"); @@ -730,13 +727,13 @@ public class MyFreeCamsClient { return ""; } - LOG.trace("Sending USERNAMELOOKUP for {}", modelName); + log.trace("Sending USERNAMELOOKUP for {}", modelName); int msgId = messageId++; Object monitor = new Object(); List resultHolder = new ArrayList<>(); responseHandlers.put(msgId, msg -> { - LOG.trace("Search result: {}", msg); + log.trace("Search result: {}", msg); if (StringUtil.isNotBlank(msg.getMessage()) && !Objects.equals(msg.getMessage(), modelName)) { JSONObject json = new JSONObject(msg.getMessage()); resultHolder.add(Integer.toString(json.optInt("sid"))); @@ -760,7 +757,7 @@ public class MyFreeCamsClient { public void joinChannel(MyFreeCamsModel model) { SessionState state = getSessionState(model); int userChannel = 100000000 + state.getUid(); - LOG.debug("Joining chat channel for model {}", model.getDisplayName()); + log.debug("Joining chat channel for model {}", model.getDisplayName()); try { search(model.getName()); } catch (InterruptedException e) { diff --git a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsHttpClient.java b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsHttpClient.java index 715a2a22..d23d988f 100644 --- a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsHttpClient.java +++ b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsHttpClient.java @@ -1,5 +1,7 @@ package ctbrec.sites.mfc; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import java.io.IOException; @@ -10,9 +12,6 @@ import java.util.NoSuchElementException; import java.util.Objects; import org.jsoup.select.Elements; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.io.HtmlParser; import ctbrec.io.HttpClient; @@ -28,10 +27,8 @@ import okhttp3.Response; import okhttp3.WebSocket; import okhttp3.WebSocketListener; +@Slf4j public class MyFreeCamsHttpClient extends HttpClient { - - private static final Logger LOG = LoggerFactory.getLogger(MyFreeCamsHttpClient.class); - public MyFreeCamsHttpClient(Config config) { super("myfreecams", config); client = client.newBuilder() @@ -47,7 +44,7 @@ public class MyFreeCamsHttpClient extends HttpClient { if(checkLogin()) { loggedIn = true; - LOG.debug("Logged in with cookies"); + log.debug("Logged in with cookies"); return true; } @@ -81,7 +78,7 @@ public class MyFreeCamsHttpClient extends HttpClient { } } else { resp.close(); - LOG.error("Login failed {} {}", resp.code(), resp.message()); + log.error("Login failed {} {}", resp.code(), resp.message()); return false; } } @@ -102,7 +99,7 @@ public class MyFreeCamsHttpClient extends HttpClient { tags.get(2).text(); return true; } catch(Exception e) { - LOG.debug("Token tag not found. Login failed"); + log.debug("Token tag not found. Login failed"); return false; } } else { diff --git a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java index c0455956..71ad3f06 100644 --- a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java +++ b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java @@ -1,5 +1,7 @@ package ctbrec.sites.mfc; + +import lombok.extern.slf4j.Slf4j; import com.iheartradio.m3u8.ParseException; import com.iheartradio.m3u8.PlaylistException; import ctbrec.AbstractModel; @@ -17,9 +19,6 @@ import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; import org.jsoup.nodes.Element; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.xml.bind.JAXBException; import java.io.IOException; import java.net.URLDecoder; @@ -30,10 +29,8 @@ import static ctbrec.io.HttpConstants.*; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Optional.ofNullable; +@Slf4j public class MyFreeCamsModel extends AbstractModel { - - private static final Logger LOG = LoggerFactory.getLogger(MyFreeCamsModel.class); - @Getter @Setter private int uid = -1; // undefined @@ -101,7 +98,7 @@ public class MyFreeCamsModel extends AbstractModel { case GROUP_SHOW -> State.GROUP; case OFFLINE, CAMOFF, UNKNOWN -> State.OFFLINE; default -> { - LOG.debug("State {} is not mapped", this.state); + log.debug("State {} is not mapped", this.state); yield State.UNKNOWN; } }; @@ -190,9 +187,9 @@ public class MyFreeCamsModel extends AbstractModel { StreamSource best = streamSources.get(streamSources.size() - 1); resolution = new int[]{best.getWidth(), best.getHeight()}; } catch (JAXBException | ParseException | PlaylistException e) { - LOG.warn("Couldn't determine stream resolution - {}", e.getMessage()); + log.warn("Couldn't determine stream resolution - {}", e.getMessage()); } catch (ExecutionException | IOException e) { - LOG.error("Couldn't determine stream resolution", e); + log.error("Couldn't determine stream resolution", e); } } return resolution; @@ -211,7 +208,7 @@ public class MyFreeCamsModel extends AbstractModel { @Override public void setName(String name) { if (getName() != null && name != null && !getName().equals(name)) { - LOG.debug("Model name changed {} -> {}", getName(), name); + log.debug("Model name changed {} -> {}", getName(), name); setUrl("https://profiles.myfreecams.com/" + name); } super.setName(name); @@ -233,7 +230,7 @@ public class MyFreeCamsModel extends AbstractModel { try { previewUrl = getLivePreviewUrl(state); } catch (Exception e) { - LOG.error("Couldn't get live preview. Falling back to avatar", e); + log.error("Couldn't get live preview. Falling back to avatar", e); } } setPreview(previewUrl); diff --git a/common/src/main/java/ctbrec/sites/mfc/ServerConfig.java b/common/src/main/java/ctbrec/sites/mfc/ServerConfig.java index 469e0488..b80f48f9 100644 --- a/common/src/main/java/ctbrec/sites/mfc/ServerConfig.java +++ b/common/src/main/java/ctbrec/sites/mfc/ServerConfig.java @@ -1,5 +1,7 @@ package ctbrec.sites.mfc; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import java.io.IOException; @@ -11,17 +13,12 @@ import java.util.Optional; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import okhttp3.Request; import okhttp3.Response; +@Slf4j public class ServerConfig { - - private static final Logger LOG = LoggerFactory.getLogger(ServerConfig.class); - List ajaxServers; List videoServers; List chatServers; @@ -32,7 +29,7 @@ public class ServerConfig { public ServerConfig(MyFreeCams mfc) throws IOException { String url = mfc.getBaseUrl() + "/_js/serverconfig.js"; - LOG.debug("Loading server config from {}", url); + log.debug("Loading server config from {}", url); Request req = new Request.Builder() .url(url) .header(ACCEPT, "*/*") diff --git a/common/src/main/java/ctbrec/sites/showup/Showup.java b/common/src/main/java/ctbrec/sites/showup/Showup.java index dda019ef..6404f758 100644 --- a/common/src/main/java/ctbrec/sites/showup/Showup.java +++ b/common/src/main/java/ctbrec/sites/showup/Showup.java @@ -1,5 +1,7 @@ package ctbrec.sites.showup; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.io.HttpClient; import ctbrec.io.HttpException; @@ -8,9 +10,6 @@ import okhttp3.Request; import okhttp3.Response; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.URLEncoder; import java.time.Duration; @@ -26,9 +25,8 @@ import static ctbrec.Model.State.ONLINE; import static ctbrec.io.HttpConstants.USER_AGENT; import static java.nio.charset.StandardCharsets.UTF_8; +@Slf4j public class Showup extends AbstractSite { - - private static final Logger LOG = LoggerFactory.getLogger(Showup.class); public static final String BASE_URL = "https://showup.tv"; private ShowupHttpClient httpClient; @@ -79,7 +77,7 @@ public class Showup extends AbstractSite { try (Response response = getHttpClient().execute(req)) { if (response.isSuccessful()) { String body = Objects.requireNonNull(response.body(), HTTP_RESPONSE_BODY_IS_NULL).string(); - LOG.trace(body); + log.trace(body); JSONObject json = new JSONObject(body); models = new ArrayList<>(); JSONArray list = json.getJSONArray("list"); diff --git a/common/src/main/java/ctbrec/sites/showup/ShowupWebrtcDownload.java b/common/src/main/java/ctbrec/sites/showup/ShowupWebrtcDownload.java index 3ff08c93..a80995e6 100644 --- a/common/src/main/java/ctbrec/sites/showup/ShowupWebrtcDownload.java +++ b/common/src/main/java/ctbrec/sites/showup/ShowupWebrtcDownload.java @@ -1,5 +1,7 @@ package ctbrec.sites.showup; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Model; import ctbrec.Recording; @@ -12,9 +14,6 @@ import okhttp3.Response; import okhttp3.WebSocket; import okhttp3.WebSocketListener; import okio.ByteString; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.EOFException; import java.io.File; import java.io.FileOutputStream; @@ -27,9 +26,8 @@ import java.util.regex.Pattern; import static ctbrec.io.HttpConstants.*; +@Slf4j public class ShowupWebrtcDownload extends AbstractDownload { - - private static final Logger LOG = LoggerFactory.getLogger(ShowupWebrtcDownload.class); private static final int MAX_SECONDS_WITHOUT_TRANSFER = 20; private final HttpClient httpClient; @@ -71,10 +69,10 @@ public class ShowupWebrtcDownload extends AbstractDownload { public void finalizeDownload() { if (fout != null) { try { - LOG.debug("Closing recording file {}", targetFile); + log.debug("Closing recording file {}", targetFile); fout.close(); } catch (IOException e) { - LOG.error("Error while closing recording file {}", targetFile, e); + log.error("Error while closing recording file {}", targetFile, e); } } } @@ -129,7 +127,7 @@ public class ShowupWebrtcDownload extends AbstractDownload { stop(); } if (Duration.between(timeOfLastTransfer, Instant.now()).getSeconds() > MAX_SECONDS_WITHOUT_TRANSFER) { - LOG.info("No video data received for {} seconds. Stopping recording for model {}", MAX_SECONDS_WITHOUT_TRANSFER, model); + log.info("No video data received for {} seconds. Stopping recording for model {}", MAX_SECONDS_WITHOUT_TRANSFER, model); stop(); } return this; @@ -146,19 +144,19 @@ public class ShowupWebrtcDownload extends AbstractDownload { .build(); running = true; - LOG.debug("Opening webrtc connection {}", request.url()); + log.debug("Opening webrtc connection {}", request.url()); ws = httpClient.newWebSocket(request, new WebSocketListener() { @Override public void onOpen(WebSocket webSocket, Response response) { super.onOpen(webSocket, response); - LOG.trace("onOpen {} {}", webSocket, response); + log.trace("onOpen {} {}", webSocket, response); response.close(); try { - LOG.debug("Recording video stream to {}", targetFile); + log.debug("Recording video stream to {}", targetFile); Files.createDirectories(targetFile.getParentFile().toPath()); fout = new FileOutputStream(targetFile); } catch (Exception e) { - LOG.error("Couldn't open file {} to save the video stream", targetFile, e); + log.error("Couldn't open file {} to save the video stream", targetFile, e); stop(); } } @@ -173,7 +171,7 @@ public class ShowupWebrtcDownload extends AbstractDownload { BandwidthMeter.add(videoData.length); } catch (IOException e) { if (running) { - LOG.error("Couldn't write video stream to file", e); + log.error("Couldn't write video stream to file", e); stop(); } } @@ -182,7 +180,7 @@ public class ShowupWebrtcDownload extends AbstractDownload { @Override public void onMessage(WebSocket webSocket, String text) { super.onMessage(webSocket, text); - LOG.trace("onMessageT {} {}", webSocket, text); + log.trace("onMessageT {} {}", webSocket, text); } @Override @@ -190,9 +188,9 @@ public class ShowupWebrtcDownload extends AbstractDownload { super.onFailure(webSocket, t, response); stop(); if (t instanceof EOFException) { - LOG.info("End of stream detected for model {}", model); + log.info("End of stream detected for model {}", model); } else { - LOG.error("Websocket failure for model {} {}", model, response, t); + log.error("Websocket failure for model {} {}", model, response, t); } if (response != null) { response.close(); @@ -202,13 +200,13 @@ public class ShowupWebrtcDownload extends AbstractDownload { @Override public void onClosing(WebSocket webSocket, int code, String reason) { super.onClosing(webSocket, code, reason); - LOG.trace("Websocket closing for model {} {} {}", model, code, reason); + log.trace("Websocket closing for model {} {} {}", model, code, reason); } @Override public void onClosed(WebSocket webSocket, int code, String reason) { super.onClosed(webSocket, code, reason); - LOG.debug("Websocket closed for model {} {} {}", model, code, reason); + log.debug("Websocket closed for model {} {} {}", model, code, reason); stop(); } }); diff --git a/common/src/main/java/ctbrec/sites/streamate/Streamate.java b/common/src/main/java/ctbrec/sites/streamate/Streamate.java index 739e308a..102c5797 100644 --- a/common/src/main/java/ctbrec/sites/streamate/Streamate.java +++ b/common/src/main/java/ctbrec/sites/streamate/Streamate.java @@ -1,5 +1,7 @@ package ctbrec.sites.streamate; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Model; import ctbrec.StringUtil; import ctbrec.io.HttpException; @@ -8,9 +10,6 @@ import okhttp3.Request; import okhttp3.Response; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.URLEncoder; import java.util.*; @@ -19,10 +18,8 @@ import java.util.regex.Pattern; import static ctbrec.io.HttpConstants.ORIGIN; +@Slf4j public class Streamate extends AbstractSite { - - private static final Logger LOG = LoggerFactory.getLogger(Streamate.class); - public static final String API_URL = "https://streamate.com"; public static final String BASE_URL = "https://www.streamate.com"; public static final String NAIAD_URL = "https://member.naiadsystems.com/search/v3"; @@ -112,7 +109,7 @@ public class Streamate extends AbstractSite { @Override public List search(String q) throws IOException, InterruptedException { String url = NAIAD_URL + "/autocomplete?filters=gender:&performerCount=10&domain=streamate.com&tagCount=5&query=" + URLEncoder.encode(q, "utf-8"); - LOG.debug("Search: {}", url); + log.debug("Search: {}", url); String saKey = getHttpClient().getSaKey(); String smtid = UUID.randomUUID() + "G0211569057409"; Request req = getHttpClient().newRequestBuilder() @@ -144,7 +141,7 @@ public class Streamate extends AbstractSite { } return models; } else { - LOG.warn("Search result: {}", json.toString(2)); + log.warn("Search result: {}", json.toString(2)); return Collections.emptyList(); } } else { diff --git a/common/src/main/java/ctbrec/sites/streamate/StreamateWebsocketClient.java b/common/src/main/java/ctbrec/sites/streamate/StreamateWebsocketClient.java index 28ae40cb..505614a6 100644 --- a/common/src/main/java/ctbrec/sites/streamate/StreamateWebsocketClient.java +++ b/common/src/main/java/ctbrec/sites/streamate/StreamateWebsocketClient.java @@ -1,13 +1,11 @@ package ctbrec.sites.streamate; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import java.util.regex.Matcher; import java.util.regex.Pattern; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.io.HttpClient; import okhttp3.Request; @@ -16,9 +14,8 @@ import okhttp3.WebSocket; import okhttp3.WebSocketListener; import okio.ByteString; +@Slf4j public class StreamateWebsocketClient { - - private static final Logger LOG = LoggerFactory.getLogger(StreamateWebsocketClient.class); private String url; private HttpClient client; @@ -29,7 +26,7 @@ public class StreamateWebsocketClient { String roomId = ""; public String getRoomId() throws InterruptedException { - LOG.debug("Connecting to {}", url); + log.debug("Connecting to {}", url); Object monitor = new Object(); Request request = new Request.Builder() .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) @@ -53,7 +50,7 @@ public class StreamateWebsocketClient { @Override public void onMessage(WebSocket webSocket, ByteString bytes) { - LOG.debug("ws btxt {}", bytes); + log.debug("ws btxt {}", bytes); } @Override @@ -65,7 +62,7 @@ public class StreamateWebsocketClient { @Override public void onFailure(WebSocket webSocket, Throwable t, Response response) { - LOG.debug("ws failure", t); + log.debug("ws failure", t); response.close(); synchronized (monitor) { monitor.notify(); diff --git a/common/src/main/java/ctbrec/sites/stripchat/StripchatHttpClient.java b/common/src/main/java/ctbrec/sites/stripchat/StripchatHttpClient.java index fa108021..73252c2f 100644 --- a/common/src/main/java/ctbrec/sites/stripchat/StripchatHttpClient.java +++ b/common/src/main/java/ctbrec/sites/stripchat/StripchatHttpClient.java @@ -1,5 +1,7 @@ package ctbrec.sites.stripchat; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.StringUtil; import ctbrec.io.HttpClient; @@ -20,12 +22,9 @@ import okhttp3.RequestBody; import okhttp3.Response; import org.json.JSONException; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +@Slf4j public class StripchatHttpClient extends HttpClient { - private static final Logger LOG = LoggerFactory.getLogger(StripchatHttpClient.class); public static final MediaType JSON = MediaType.parse((String)"application/json; charset=utf-8"); private static long userId = 0L; private static String csrfToken; @@ -46,7 +45,7 @@ extends HttpClient { } if (this.checkLoginSuccess()) { this.loggedIn = true; - LOG.debug("Logged in with cookies"); + log.debug("Logged in with cookies"); return true; } String url = Stripchat.getBaseUri() + "/api/front/auth/login"; @@ -77,7 +76,7 @@ extends HttpClient { boolean bl = false; return bl; } - LOG.info("Auto-Login failed: {} {} {}", new Object[]{response.code(), response.message(), url}); + log.info("Auto-Login failed: {} {} {}", new Object[]{response.code(), response.message(), url}); boolean bl = false; return bl; } @@ -104,10 +103,10 @@ extends HttpClient { csrfToken = client.optString("csrfToken"); csrfTimestamp = client.optString("csrfTimestamp"); csrfNotifyTimestamp = client.optString("csrfNotifyTimestamp"); - LOG.debug("Stripchat CSRF token: {} [{}]", (Object)csrfToken, (Object)csrfNotifyTimestamp); + log.debug("Stripchat CSRF token: {} [{}]", (Object)csrfToken, (Object)csrfNotifyTimestamp); } if (StringUtil.isBlank(csrfToken)) { - LOG.debug("Stripchat CSRF token not found"); + log.debug("Stripchat CSRF token not found"); } break block9; } @@ -141,9 +140,9 @@ extends HttpClient { JSONObject body = new JSONObject(decString); jwtTokenExp = Instant.ofEpochSecond(body.optLong("exp")); } - LOG.debug("Stripchat JWT token: {} [{}]", (Object)jwtToken, (Object)jwtTokenExp); + log.debug("Stripchat JWT token: {} [{}]", (Object)jwtToken, (Object)jwtTokenExp); } else { - LOG.debug("Stripchat JWT token not found"); + log.debug("Stripchat JWT token not found"); } break block11; } @@ -212,7 +211,7 @@ extends HttpClient { } } catch (Exception e) { - LOG.debug("Invalid CSRF Token {}: {}", (Object)csrfToken, (Object)e.getMessage()); + log.debug("Invalid CSRF Token {}: {}", (Object)csrfToken, (Object)e.getMessage()); csrfToken = ""; } return csrfToken; @@ -225,7 +224,7 @@ extends HttpClient { } } catch (Exception e) { - LOG.debug("Invalid JWT Token {}: {}", (Object)jwtToken, (Object)e.getMessage()); + log.debug("Invalid JWT Token {}: {}", (Object)jwtToken, (Object)e.getMessage()); jwtToken = ""; } return jwtToken; diff --git a/common/src/main/java/ctbrec/sites/xlovecam/XloveCamHttpClient.java b/common/src/main/java/ctbrec/sites/xlovecam/XloveCamHttpClient.java index c8afff70..90fd0ff5 100644 --- a/common/src/main/java/ctbrec/sites/xlovecam/XloveCamHttpClient.java +++ b/common/src/main/java/ctbrec/sites/xlovecam/XloveCamHttpClient.java @@ -1,5 +1,7 @@ package ctbrec.sites.xlovecam; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import static java.nio.charset.StandardCharsets.*; @@ -12,9 +14,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.io.HttpClient; import ctbrec.io.HttpException; @@ -23,9 +22,8 @@ import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; +@Slf4j public class XloveCamHttpClient extends HttpClient { - - private static final Logger LOG = LoggerFactory.getLogger(XloveCamHttpClient.class); private static final Pattern CSRF_PATTERN = Pattern.compile("CSRFToken\\s*=\\s*\"(.*?)\";"); private final Random rng = new Random(); @@ -42,8 +40,8 @@ public class XloveCamHttpClient extends HttpClient { byte[] passwordKey = getPasswordKey(xlovecamConfig); byte[] encryptedPassword = encryptPassword(config.getSettings().xlovecamPassword, passwordKey); String base64EncryptedPassword = Base64.getEncoder().encodeToString(encryptedPassword); - LOG.debug("csrf:{} token:{} key:{}", csrfToken, token, Arrays.toString(passwordKey)); - LOG.debug("encrypted password: {}", base64EncryptedPassword); + log.debug("csrf:{} token:{} key:{}", csrfToken, token, Arrays.toString(passwordKey)); + log.debug("encrypted password: {}", base64EncryptedPassword); long time = System.currentTimeMillis() / 1000; long rnd = rng.nextInt(100_000_000); @@ -92,7 +90,7 @@ public class XloveCamHttpClient extends HttpClient { if (resp.isSuccessful()) { String msg = resp.body().string(); JSONObject json = new JSONObject(msg); - LOG.debug(json.toString(2)); + log.debug(json.toString(2)); return json.optBoolean("success"); } else { throw new HttpException(resp.code(), resp.message()); @@ -134,7 +132,7 @@ public class XloveCamHttpClient extends HttpClient { private byte[] getPasswordKey(JSONObject config) { String passwordKeyString = config.getString("passwordKey"); - LOG.debug(passwordKeyString); + log.debug(passwordKeyString); String[] numbers = passwordKeyString.split(","); byte[] passwordKey = new byte[numbers.length]; for (int i = 0; i < numbers.length; i++) { @@ -166,7 +164,7 @@ public class XloveCamHttpClient extends HttpClient { private JSONObject getXlovecamConfig() throws IOException { String url = XloveCam.baseUrl + "/en/popup/login"; - LOG.debug("Calling {}", url); + log.debug("Calling {}", url); RequestBody body = new FormBody.Builder() .add("referrer", "https://www.xlovecam.com/en/") .add("referrer_is_layer", "0") diff --git a/common/src/main/java/ctbrec/sites/xlovecam/XloveCamModelLoader.java b/common/src/main/java/ctbrec/sites/xlovecam/XloveCamModelLoader.java index 72bb85e6..ea5d9402 100644 --- a/common/src/main/java/ctbrec/sites/xlovecam/XloveCamModelLoader.java +++ b/common/src/main/java/ctbrec/sites/xlovecam/XloveCamModelLoader.java @@ -1,5 +1,7 @@ package ctbrec.sites.xlovecam; + +import lombok.extern.slf4j.Slf4j; import static ctbrec.io.HttpConstants.*; import java.io.IOException; @@ -11,9 +13,6 @@ import java.util.Map.Entry; import org.json.JSONArray; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.Model; import okhttp3.FormBody; @@ -21,9 +20,8 @@ import okhttp3.FormBody.Builder; import okhttp3.Request; import okhttp3.Response; +@Slf4j public class XloveCamModelLoader { - - private static final Logger LOG = LoggerFactory.getLogger(XloveCamModelLoader.class); private static final int ITEMS_PER_PAGE = 35; private static final int CAM_RANK = 35; @@ -35,7 +33,7 @@ public class XloveCamModelLoader { public List loadModelList(int page, Map filterOptions) throws IOException { String pageUrl = "https://mobile.xlovecam.com/en/performerAction/onlineList/?x-req=" + ITEMS_PER_PAGE + "&x-off-s=" + ((page - 1) * ITEMS_PER_PAGE); - LOG.debug("Fetching page {}", pageUrl); + log.debug("Fetching page {}", pageUrl); Builder form = new FormBody.Builder() .add("config[sort][id]", Integer.toString(CAM_RANK)) .add("offset[from]", Integer.toString((page - 1) * ITEMS_PER_PAGE)) diff --git a/server/src/main/java/ctbrec/recorder/server/AbstractCtbrecServlet.java b/server/src/main/java/ctbrec/recorder/server/AbstractCtbrecServlet.java index 12271f3e..e833eb5f 100644 --- a/server/src/main/java/ctbrec/recorder/server/AbstractCtbrecServlet.java +++ b/server/src/main/java/ctbrec/recorder/server/AbstractCtbrecServlet.java @@ -1,10 +1,9 @@ package ctbrec.recorder.server; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.Hmac; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -17,11 +16,10 @@ import java.security.NoSuchAlgorithmException; import static java.nio.charset.StandardCharsets.UTF_8; import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR; +@Slf4j public abstract class AbstractCtbrecServlet extends HttpServlet { public static final String INTERNAL_SERVER_ERROR = "Internal Server Error"; protected static final String HMAC_ERROR_DOCUMENT = "{\"status\": \"error\", \"msg\": \"HMAC does not match\"}"; - private static final Logger LOG = LoggerFactory.getLogger(AbstractCtbrecServlet.class); - boolean checkAuthentication(HttpServletRequest req, String body) throws InvalidKeyException, NoSuchAlgorithmException { boolean authenticated; if (Config.getInstance().getSettings().key != null) { @@ -98,7 +96,7 @@ public abstract class AbstractCtbrecServlet extends HttpServlet { resp.setCharacterEncoding(UTF_8.toString()); resp.getWriter().print(message); } catch (IOException e) { - LOG.error("Couldn't write response", e); + log.error("Couldn't write response", e); resp.setStatus(SC_INTERNAL_SERVER_ERROR); } } diff --git a/server/src/main/java/ctbrec/recorder/server/ConfigServlet.java b/server/src/main/java/ctbrec/recorder/server/ConfigServlet.java index 4607d903..6dc90017 100644 --- a/server/src/main/java/ctbrec/recorder/server/ConfigServlet.java +++ b/server/src/main/java/ctbrec/recorder/server/ConfigServlet.java @@ -1,5 +1,7 @@ package ctbrec.recorder.server; + +import lombok.extern.slf4j.Slf4j; import static javax.servlet.http.HttpServletResponse.*; import java.io.IOException; @@ -18,17 +20,13 @@ import javax.servlet.http.HttpServletResponse; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Config; import ctbrec.Settings; import ctbrec.Settings.SplitStrategy; import ctbrec.io.BoundField; +@Slf4j public class ConfigServlet extends AbstractCtbrecServlet { - - private static final Logger LOG = LoggerFactory.getLogger(ConfigServlet.class); private Config config; private Settings settings; @@ -91,7 +89,7 @@ public class ConfigServlet extends AbstractCtbrecServlet { resp.getWriter().print(json.toString()); } catch (InvalidKeyException | NoSuchAlgorithmException | IllegalStateException e) { resp.setStatus(SC_INTERNAL_SERVER_ERROR); - LOG.error("Error during authentication", e); + log.error("Error during authentication", e); } } @@ -120,16 +118,16 @@ public class ConfigServlet extends AbstractCtbrecServlet { changeConfig(json); sendResponse(resp, SC_OK, "{\"status\": \"success\"}"); } catch (InvalidKeyException | NoSuchAlgorithmException e) { - LOG.error("Couldn't authenticate request", e); + log.error("Couldn't authenticate request", e); sendResponse(resp, SC_INTERNAL_SERVER_ERROR, "Couldn't authenticate request"); } catch (JSONException e) { - LOG.error("Couldn't parse request", e); + log.error("Couldn't parse request", e); sendResponse(resp, SC_BAD_REQUEST, "JSON array expected"); } catch (IOException e) { - LOG.error("Couldn't read request", e); + log.error("Couldn't read request", e); sendResponse(resp, SC_INTERNAL_SERVER_ERROR, "Couldn't read request"); } catch (ConfigWriteException e) { - LOG.error("Couldn't write config", e); + log.error("Couldn't write config", e); sendResponse(resp, SC_INTERNAL_SERVER_ERROR, "Couldn't write config: " + e.getLocalizedMessage()); } } @@ -142,7 +140,7 @@ public class ConfigServlet extends AbstractCtbrecServlet { DataType type = DataType.valueOf(property.optString("type")); Object value = property.get("value"); Object typeCorrectedValue = correctType(type, value); - LOG.debug("{}: {}", key, value); + log.debug("{}: {}", key, value); var field = BoundField.of(settings, key); field.set(typeCorrectedValue); diff --git a/server/src/main/java/ctbrec/recorder/server/HlsServlet.java b/server/src/main/java/ctbrec/recorder/server/HlsServlet.java index d2837413..81f06aef 100644 --- a/server/src/main/java/ctbrec/recorder/server/HlsServlet.java +++ b/server/src/main/java/ctbrec/recorder/server/HlsServlet.java @@ -1,4 +1,6 @@ package ctbrec.recorder.server; + +import lombok.extern.slf4j.Slf4j; import static javax.servlet.http.HttpServletResponse.*; import java.io.File; @@ -15,17 +17,12 @@ import javax.activation.MimetypesFileTypeMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ctbrec.Recording; import ctbrec.recorder.Recorder; +@Slf4j public class HlsServlet extends AbstractCtbrecServlet { - private static final transient Logger LOG = LoggerFactory.getLogger(HlsServlet.class); - private Recorder recorder; public HlsServlet(Recorder recorder) { @@ -88,7 +85,7 @@ public class HlsServlet extends AbstractCtbrecServlet { resp.setStatus(code); resp.getWriter().write(body); } catch (IOException e) { - LOG.error("Couldn't write HTTP response", e); + log.error("Couldn't write HTTP response", e); } } @@ -100,19 +97,19 @@ public class HlsServlet extends AbstractCtbrecServlet { private void serveSegment(HttpServletRequest req, HttpServletResponse resp, File requestedFile) throws IOException { MimetypesFileTypeMap map = new MimetypesFileTypeMap(); String mimetype = map.getContentType(requestedFile); - LOG.debug("Serving {} as {}", requestedFile.getName(), mimetype); + log.debug("Serving {} as {}", requestedFile.getName(), mimetype); serveFile(req, resp, requestedFile, mimetype); } private void servePlaylist(HttpServletRequest req, HttpServletResponse resp, File requestedFile) throws IOException { - LOG.debug("Serving playlist {}", requestedFile); + log.debug("Serving playlist {}", requestedFile); File playlist = new File(requestedFile, "playlist.m3u8"); serveFile(req, resp, playlist, "application/x-mpegURL"); } private void serveFile(HttpServletRequest req, HttpServletResponse resp, File file, String contentType) throws IOException { ByteRange range = getByteRange(req, file); - LOG.trace("Serving segment {} range: {}-{}", file.getAbsolutePath(), range.from, range.to); + log.trace("Serving segment {} range: {}-{}", file.getAbsolutePath(), range.from, range.to); resp.setStatus(range.set ? SC_PARTIAL_CONTENT : SC_OK); resp.setContentType(contentType); try (RandomAccessFile fin = new RandomAccessFile(file, "r")) { diff --git a/server/src/main/java/ctbrec/recorder/server/HttpServer.java b/server/src/main/java/ctbrec/recorder/server/HttpServer.java index 6d63915a..ee85e17f 100644 --- a/server/src/main/java/ctbrec/recorder/server/HttpServer.java +++ b/server/src/main/java/ctbrec/recorder/server/HttpServer.java @@ -1,5 +1,7 @@ package ctbrec.recorder.server; + +import lombok.extern.slf4j.Slf4j; import ctbrec.Config; import ctbrec.GlobalThreadPool; import ctbrec.NotLoggedInException; @@ -44,9 +46,6 @@ import org.eclipse.jetty.util.security.Constraint; import org.eclipse.jetty.util.security.Credential; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.servlet.*; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -60,10 +59,10 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static javax.servlet.http.HttpServletResponse.SC_MOVED_PERMANENTLY; import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND; +@Slf4j public class HttpServer { private static final int MiB = 1024 * 1024; // NOSONAR - private static final Logger LOG = LoggerFactory.getLogger(HttpServer.class); private final Recorder recorder; private final OnlineMonitor onlineMonitor; private final Config config; @@ -80,7 +79,7 @@ public class HttpServer { try { Config.init(sites); } catch (Exception e) { - LOG.error("Couldn't load config", e); + log.error("Couldn't load config", e); System.exit(1); } @@ -89,7 +88,7 @@ public class HttpServer { registerAlertSystem(); config = Config.getInstance(); - LOG.info("HMAC authentication is {}", config.getSettings().key != null ? "enabled" : "disabled"); + log.info("HMAC authentication is {}", config.getSettings().key != null ? "enabled" : "disabled"); recorder = new SimplifiedLocalRecorder(config, sites); initSites(); @@ -109,7 +108,7 @@ public class HttpServer { site.init(); safeLogin(site); } catch (IOException e) { - LOG.error("Error while initializing site {}", site.getName(), e); + log.error("Error while initializing site {}", site.getName(), e); } }); } @@ -121,12 +120,12 @@ public class HttpServer { try { boolean success = site.login(); if (success) { - LOG.info("Successfully logged in to {}", site.getName()); + log.info("Successfully logged in to {}", site.getName()); } else { throw new NotLoggedInException("Login returned false"); } } catch (Exception e) { - LOG.info("Login to {} failed", site.getName()); + log.info("Login to {} failed", site.getName()); } } } @@ -150,7 +149,7 @@ public class HttpServer { private void addShutdownHook() { Runtime.getRuntime().addShutdownHook(new Thread(() -> { - LOG.info("Shutting down"); + log.info("Shutting down"); if (onlineMonitor != null) { onlineMonitor.shutdown(); } @@ -160,14 +159,14 @@ public class HttpServer { try { server.stop(); } catch (Exception e) { - LOG.error("Couldn't stop HTTP server", e); + log.error("Couldn't stop HTTP server", e); } try { Config.getInstance().save(); } catch (IOException e) { - LOG.error("Couldn't save configuration", e); + log.error("Couldn't save configuration", e); } - LOG.info("Goodbye!"); + log.info("Goodbye!"); })); } @@ -271,14 +270,14 @@ public class HttpServer { server.start(); server.join(); } catch (BindException e) { - LOG.error("Port {} is already in use", http.getPort(), e); + log.error("Port {} is already in use", http.getPort(), e); System.exit(1); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - LOG.error("Server start failed", e); + log.error("Server start failed", e); System.exit(1); } catch (Exception e) { - LOG.error("Server start failed", e); + log.error("Server start failed", e); System.exit(1); } } @@ -289,7 +288,7 @@ public class HttpServer { ServletHolder holder = new ServletHolder(staticFileServlet); String staticFileContext = "/static/*"; defaultContext.addServlet(holder, staticFileContext); - LOG.info("Register static file servlet under {}", defaultContext.getContextPath() + staticFileContext); + log.info("Register static file servlet under {}", defaultContext.getContextPath() + staticFileContext); // servlet to retrieve the HMAC (secured by basic auth if a hmac key is set in the config) String username = this.config.getSettings().webinterfaceUsername; @@ -391,16 +390,16 @@ public class HttpServer { for (EventHandlerConfiguration ehconfig : Config.getInstance().getSettings().eventHandlers) { EventHandler handler = new EventHandler(ehconfig); EventBusHolder.register(handler); - LOG.debug("Registered event handler for {} {}", ehconfig.getEvent(), ehconfig.getName()); + log.debug("Registered event handler for {} {}", ehconfig.getEvent(), ehconfig.getName()); } - LOG.debug("Alert System registered"); + log.debug("Alert System registered"); } private void logEnvironment() { - LOG.debug("OS:\t{} {}", System.getProperty("os.name"), System.getProperty("os.version")); - LOG.debug("Java:\t{} {} {}", System.getProperty("java.vendor"), System.getProperty("java.vm.name"), System.getProperty("java.version")); + log.debug("OS:\t{} {}", System.getProperty("os.name"), System.getProperty("os.version")); + log.debug("Java:\t{} {} {}", System.getProperty("java.vendor"), System.getProperty("java.vm.name"), System.getProperty("java.version")); try { - LOG.debug("ctbrec server {}", getVersion()); + log.debug("ctbrec server {}", getVersion()); } catch (IOException e) { // nothing to do here }