3.9.0
========================
* Added support for Manyvids Live.
  Things that work:
  * Recording streams. Even more than one (this was a problem first, because
    they allow only one stream per session)
  * Search
  Things that don't work:
  * login / favorites
  * tipping
  * media player isn't working because of their authetication mechanism
* Fixed bug in recorder servlet. Actions for unpin and notes were mixed up
  and not properly synchronized between the server and the client
* Recordings now start immediately for newly added models
* Added confirmation dialog for "Pause All", "Resume All" and shutdown
* Fix: recording started event was not fired in client / server mode
* CTB Recorder now stops recording, if less than 100 MiB space is left
* New event, which is fired, if the disk is full (or less than the configured
  threshold is available)
* Fixed: MFC models changing to other models (I think, I found the problem.
  Can't be sure 100%)

3.8.6
========================
* Added setting to disable the online check for paused models
* Speed up shutdown process by stopping all recordings simultaneously
* Fixed Streamate followed tab once again
* Fixed: Flirt4Free models loose their name after some time
* Made loading of config file more robust for Flirt4Free models
* Added tab which shows the log output

3.8.5
========================
* Fixed Stripchat followed tab. It didn't work, if you have many favorited
  models
* Fixed: Some Stripchat models didn't get recorded
* Fixed: Some LiveJasmin models didn't get recorded
* Added support for temporary recordings. On the recording tab you can now set
  a date, when to stop recording a model and what to do afterwards 
  (pause or remove the model)
* Changed the look of the model table in the web interface a bit

3.8.4
========================
* Added support for xHamsterLive (go to Settings -> Sites -> Stripchat,
  switch to xHamsterLive, enter your credentials and restart)
* Fixed follow / unfollow for Stripchat
* Enable rerun PP for multiple recordings
* Fixed bug, which prevented recordings to finish properly on app
  shutdown. Recordings now shouldn't end up in state waiting anymore

3.8.3
========================
* Fixed Streamate
* Fixed favorites tab for Cam4; kind of, because only the online tab works.
  I currently don't see a way to retrieve the offline favorites
* Fixed favorites tab for CamSoda
* Fixed CamSoda recordings
* Added external login dialog for Stripchat to support the captcha

3.8.2
========================
* Fixed misconfiguration in global connection pool, which caused a lot of
  threads to spawn while browsing in the thumbnail overviews
* Improved memory handling for the thumbnail overviews. Thumbnail images were
  not released, when a tab was switched. This caused a huge memory consumption,
  if you opened a lot of different tabs.
* Fixed a bug in MFC websocket client, which caused to spawn a bunch of 
  "keep-alive" threads, if there was a problem with the connection
* Reworked the settings tab
* Fire recording finished event, if a download from the server is finished
* Ignore min/max resolution, if the resolution is unknown

3.8.1
========================
* Fixed recent MFC error
* Added log file rotation
* Fixed a bug with the resolution slider

3.8.0
========================
* Server Settings are now editable in the web-interface
* Models can be added by name in the web-interface
* Added a bandwidth monitor
* Added possibility to add notes to recordings
* Added range slider to restrict the recording resolution in a range; e.g. 480p - 1080p
* Improved MFC SD downloads (much less blocking, I think) 

3.7.3
========================
* Fixed problem, that MFC wouldn't show any models anymore

3.7.2
========================
* Fixed Chaturbate Login
* Added "New" tab to each site where it was missing
* Reverted change: Clear selection after deleting a recording

3.7.1
========================
* Server now logs in on startup, if credentials are set
* Show confirmation dialog on shutdown, if the are active downloads from the
  server
* Added setting to remove recordings after post-processing
* Added max resolution setting for the player (click on the gear!)
* Added systemd service example for the server
* Server now returns the version in the HTML and HTTP headers
* Improved server download progress calculation

3.7.0
========================
* Fixed the problem, that media players won't start anymore
* Fixed Stripchat login and favorites
* Added basic support for Showup.tv
  This version supports only recording, there is no support for:
  - stream resolution detection
  - login
  - favorites
  - search
  - tipping

3.6.4
========================
* Fixed race condition causing orphaned FFmpeg processes
  The problem was, that an error occured before FFmpeg was completely
  launched. ctbrec called internalStop, but the FFmpeg fields still
  pointed to null. ctbrec then finished the recording. In the meantime
  FFmpeg fired up and was abandoned by the recording.

3.6.3
========================
* Reactivated "Rerun post-processing" for the standalone version
* Fixed regression in last release. Only a few players would start
* Fixed possible error in code for merged downloads

3.6.2
========================
* Fixed regression in FFmpeg recording code introduced by last update
  Recording MP4 now works again
* Fixed bug in player launcher, which prevented recordings starting
  with '-' from starting, because it was interpreted as command line option
* Fixed minor bug in the actions panel in the settings tab
* Updates in help section 

3.6.1
========================
* Fix Streamate
* Removed outdated settings for MFC
* Fix JSON parsing bug for MFC
* Added button to jump to the first page
* Improve handling of recording termination. Hopefully this will fix the
  problem with left over FFmpeg processes 

3.6.0
========================
* Fixed MFC downloads (fingers crossed)
* Added Girls HD tab for Stripchat
* Fix follow/unfollow for BongaCams
* Save column order in tables
* Increase models per page for Streamate favorites
* Take model description into account when filtering

3.5.0
========================
* Filter terms can now be negated by prepending them with a "!"
* Added pinning for recordings. Pinned recordings cannot be deleted
* Added possibility to specify media player parameters
* Added config setting for the number of post-processing threads
* Added config setting for the HTTP User-Agent header
* Improved caching of stream resolution information

3.4.0
========================
* Added support for Stripchat
* Fixed login browser popups on Windows

3.3.0
========================
!! Caution: There is a new flag in the recordings meta-data. To be safe make
a backup of your recordings or move them to a different directory.

* Re-implement direct downloads to a single file.
  The download of the segments is still done by ctbrec. But the merging is done
  by FFmpeg. The merging is now done on-the-fly without downloading the 
  segments first.
  There are new settings for the recorder with which you can define the file
  format for recordings. Default is still MPEG transport stream, because it
  works the best.
* Enabled the server to record to a single file. Set the following variables in
  the server.json:

    "ffmpegFileSuffix": "mp4",
    "ffmpegMergedDownloadArgs": "-c:v copy -c:a copy -movflags faststart -y -f mp4",
    "recordSingleFile": true,

3.2.1
========================
* Fixed LiveJasmin HD recordings
* Fixed LiveJasmin followed tab

3.2.0
========================
* Fixed Streamate
* Added jump by letter key for tables on the Recording and Recordings tabs
* Added "Ignore" to the context menu of the Recording tab
* Fix: High CPU load by the MFC websocket
* Marked MyFreeCams as broken (but left it in)

3.1.0
========================
* Added recording priorities for models. If you restrict the number of 
  concurrent downloads, models with high priority will be favored over models 
  with low prio. Running recordings of models with low prio might even get
  stopped, so that models with higher prio can get recorded. Models with
  higher priority will also get checked first in the online check loop.
  You can adjust the prio on the "Recording" tab by double-clicking on the
  value or by using your scroll wheel while holding down CTRL.
* Added columns "last recorded" and "last seen" to models table
* Added menu entry to open the recording dir of a model

3.0.4
========================
* MFC now uses DASH again :) You can switch betwenn DASH and HLS in the settings
  for MFC
* The stream quality selection dialog now contains the entry "Best", which lets
  you switch back to the default setting
* The online state of models is now checked in parallel for the different 
  camsites.
* Fix: possible OutOfMemoryError because of too large thumbnail images
* Add possibility to export and import the ignore list
* Add manual refresh to context menu of thumbnail overviews
* New start script for the linux server (can possibly also be used on macOS)

3.0.3
========================
* MFC now uses HLS again
* Fix: In some cases a lot of recordings have been created, because they
  failed immediately after start
* Fix: Recorded models now don't switch their positions in the thumb overview
* HLS downloads now try to update the segment playlist URL, if the playlist cannot
  be loaded.
* DASH downloads stop faster, if the manifest cannot be loaded, because the model
  went offline
* The output from FFmpeg is now stored in merge.log in the segments directory of 
  a recording
* Fix: Possible deadlock in recorder

3.0.2
========================
* Fix: HLS downloads now create a temporary directory (ending with .part)
  similar to DASH downloads. This should fix video corruption and the problem
  of accidental file deletions
* Fix: CamSoda recordings notworking for some models. This was caused by
  new stream URLs, which are used for some, but not all models
* Retry to download DASH playlist 10 times before finally giving up
* Improved error handling for Cam4
* Improved error handling in the recorder code  

3.0.1
========================
* Fix: "Delete recordings shorter than" deleted all HLS recordings
* Fix: Post-Processing scripts now run on DASH and HLS downloads
  !! Attention !! You might have to check you PP-scripts and adjust them
* Change condition, if the PP context menu is shown or not
* Improved DASH download behaviour:
  - if the loaded init segments are empty ctbrec now retries to download them
  - if segment downloads fail, ctbrec retries 10 times with an increasing
    amount of time in between the reties; this has decreased the number of
    missing segments drastically

3.0.0
========================
* Reenabled MFC
* Add support for MFC DASH streams
* Both HLS and DASH downloads use FFmpeg to merge segments to MP4 files
* Fix: Flirt4Free overviews didn't work anymore
* Fix: Favorites page for Streamate


2.2.0
========================
* Added HMAC authentication support to the webinterface
* Added support for SSL/TLS
* Added support to change the context path of the server. This is helpful, if
  you want to run ctbrec behind a proxy. E.g. Apache or NGINX


2.1.0
========================
This release is mainly for the server.

* Added webinterface for the server. Has to be activated in the server config
  (webinterface). You can access it via http://host:port/static/index.html
* Disabled MyFreeCams for the time being. (If you are brave, you can still 
  use an older version, but don't blame me, if your account or IP is getting 
  blocked)
* Fix: Corrupt config files prevented the app from starting
* A few smaller fixes


2.0.1
========================
* Fix: ctbrec freezes on shutdown
* Fix: download and playback in client / server mode, if recordingsDir ends
  with a /
* Fix: Flirt4Free thumb overviews and recording


2.0.0
========================
* Complete rewrite of the recording code
* Added split recordings for the server
* Added menu entry to rerun the post-processing script
* Fix: CamSoda overview
* Fix: BongaCams model online check 
* Fix: Downloads not working in client/server setup (regression in last version)
* Fix: post-processing for split recordings
* Fix: All recordings are finished properly on shutdown (with playlist
  generation on the server and post-processing)

1.21.1
========================
* Added support for Flirt4Free
    * Live previews don't work
    * Some players might not be able to play the stream, because Flirt4Free 
      uses HLS AES encryption (it works with VLC)
    * Server recordings are played as singular segments and not one stream.
      Not sure why that happens. Probably something is off in the MPEG 
      transport stream

1.20.0
========================
* Fix: (This time for real, I think ;) ) Online status detection for BongaCams
* Fix: The login dialogs sometimes caused several error messages to pop up
* Added documentation: http://localhost:5689/docs/index.md
  Please contribute, if you think something is missing and could be explained
  here.
* Added notes column for recorded models
* Added filter for recorded models
* Added mechanism to ignore models. Ignored models will not show up in the
  thumbnail overviews anymore. This might be useful, if you like to browse for 
  new models to record, and want to hide models you don't like, so that they
  don't show up again in the future
* Multi-selection in the thumbnail overview with ctrl instead of shift
 
1.19.1
========================
* Fix: Online status detection for BongaCams
* Fix: Streamate search
* Added URL setting for BongaCams
* Fix: Memory leak in MFC client
* Fix: Previews showing up despite being disabled
* Updated bundled Java version to JDK 12
* Updated JavaFX version to 12

1.19.0
========================
* Added news tab, which shows my Mastodon timeline @ctbrec@mastodon.cloud
* Implemented follow/unfollow for BongaCams
* Added a limit setting for concurrent recordings
* Added menu entry to regenerate the playlist in case something went wrong
* Fixed: Playlist generator fails, if a segment's duration cannot be determined
* Added 5 min option for split recordings
* Improved server postprocessing
* Improved deletion of too short recordings for server-mode
* Use the model ID in the file name instead of the model name for FC2Live

1.18.0
========================
* Added FC2Live
* Fix #156 Multiple Windows 10 notification icons
* Implemented adding LiveJasmin models by URL
* Added active recording counter to the title (#155)
* Fix #141: Added seconds and milliseconds to recording timestamp
  !!! Caution !!! Existing recordings won't show up on the recordings
  tab unless you change the filename to match the new format

1.17.1
========================
* Improved LiveJasmin recordings. Login is not required anymore (thanks to M1h43ly)
  HD recordings should also work much better
* Added setting for the base URL for LiveJasmin
* Fixed CamSoda thumbnail overviews

1.17.0
========================
* Added LiveJasmin
  There are some issues, though:
    * live previews don't work
    * it's best to have an account and to be logged in, otherwise you might get
      errors after some time
    * the pagination and sorting of the models is random, because the 
      pagination LiveJasmin uses is quite obscure
* Added an electron based external browser component, which makes logins, which are 
  secured by Google's recaptcha, more reliable. This should also fix the login problems 
  with BongaCams (#58)
* Added a docker file for the server (thanks to bounty1342)
* Fixed Streamate favorites tab
* Added a setting for the thumbnail overview update interval

1.16.0
========================
* Thumbnails can show a live preview. Can be switched on in the settings.
* Live preview is experimental for now, because I noticed some funky behavior
  of the the internal media player. You can use it on your own risk.
* Added Streamate (metcams, xhamstercams, pornhublive)
* Maximum resolution can be an arbitrary value now
* Added setting for minimal recording length. Recordings, which are shorter
  than this value, get deleted automatically.
* Double-click in Recording tab starts the player
* Fix: BongaCams friends tab not working
* Fix: BongaCams search fails with JSON exception
* Fix: In some cases MFC models got confused

1.15.0
========================
* Fix: BongaCams overview didn't work anymore
* Fix: CamSoda overview didn't work anymore
* Fix: Multi selection of thumbnails didn't work when a tab was opened the
  first time
* Fix: Cam4 online detection was to restrictive
* Added tabular view for MFC, which shows all online models

1.14.0
========================
* Added setting for MFC to ignore the upscaled (960p) stream
* Added event system. You can define to show a notification, play a sound or
  execute a program, when the state of a model or recording changes
* Added "follow" menu entry on the Recording tab
* Fix: Recordings change from suspended to recording by their own when a
  thumbnail tab is opened and the model is showing
* Fix: Linux scripts don't work on systems where bash isn't the default shell
* Improved loading and display of resolution tags. They are not re-loaded
  everytime you switch between tabs

1.13.0
========================
* Added  possibility to open small live previews of online models
  in the Recording tab
* Added setting to toggle "Player Starting" message
* Added possibility to add models by their URL
* Added pause / resume all buttons
* Setting to define the base URL for MFC and CTB
* The paused checkbox are now clickable
* Implemented multi-selection for Recording and Recordings tab
* Fix: Don't throw exceptions for unknown attributes in PlaylistParser
* Fix: Don't do space check, if minimum is set to 0
* Fix: Player not starting when path contains spaces

1.12.1
========================
* Fixed downloads in client / server mode

1.12.0
========================
* Added threshold setting to keep free space on the recording device.
  This is useful, if you don't want to use up all of your storage.
  The free space is also shown on the recordings tab
* Tweaked the download internals a lot. Downloads should not hang
  in RECORDING state without actually recording. Downloads should
  be more robust in general.
* Fixed and improved split recordings
* Improved detection of online state for Cam4 models
* Accelerated the initial loading of the "Recording" tab for many
  Chaturbate models
* Recordings tab now shows smaller size units (Bytes, KiB, MiB, GiB) 

1.11.0
========================
* Added model search function
* Added color settings to change the appearance of the application
* Added setting for the online check interval
* Added setting to define the tab the application opens on start
* Double-click starts playback of recordings
* Refresh of thumbnails can be disabled
* Changed settings are saved immediately (including changes of the
  list of recorded models)

1.10.0
========================
* Fix: HMAC authentication didn't work for playing and downloading of a
  recording
* Fix: MyFreeCams model names were case sensitive
* Text input on "Recording"-tab now does auto completion for the site name
* Added menu entry to open the directory of a recording
* Post-processing script is now run outside ot the recordings directory
  Make sure, you use absolute paths
* Added setting to configure the directory structure for recordings
* Split up client and server into separat packages. The server package
  only depends on Java 1.8 and can be run with the 32-bit JRE, too.

1.9.0
========================
* Dropped support for Windows 32 bit
* Include JavaFX, so that ctbrec works with OpenJRE and Java >= 11
* Updated embedded Java versions to 11.0.1
* Added column "Recording" to recorded models tab, which indicates that
  a recording is currently running
* Fix: BongaCams recordings didn't start
* Fix: Unfollow for Cam4 didn't work
* Fix: Post-Processing script couldn't be removed
* A lot of smaller changes under the hood

1.8.0
========================
* Added BongaCams
* Added possibility to suspend the recording for a model. The model stays in
  the list of recorded models, but the actual recording is suspended
* HTTP sessions are restored on startup. This should reduce the number of 
  logins needed (especially for Cam4, BongaCams and CamSoda).
* Server can run now run on OpenJRE
* Added JVM parameter to define the configuration directory
  (``-Dctbrec.config.dir``)
* Improved memory management for MyFreeCams

1.7.0
========================
* Added CamSoda
* Added detection of model name changes for MyFreeCams
* Added setting to define a maximum resolution
* Fixed sorting by date in recordings table

1.6.1
========================
* Fixed UI freeze, which occured for a high number of recorded models
* Added Cam4
* Updated the embedded JRE for the Windows bundles to 8u192

1.6.0
========================
* Added support for multiple cam sites
* Sites can be switched on and off in the settings
* Added MyFreeCams
* Fixed proxy authentication for HTTP and SOCKS

1.5.4
========================
* Lots of little tweaks for the GUI

1.5.3
========================
* Recording time is now converted to local timezone and formatted nicely
* The state is now displayed in the resolution tag, if the room is not
  public (e.g. private, group, offline, away)
* You can now filter for public rooms with the keyword "public", if
  the display of resolution is enabled
* Added possibility to switch between online and offline models in the
  followed tab
* Added possibility to send tips

1.5.2
========================
* Added possibility to select multiple models in the overview tabs by
  holding SHIFT while clicking
* Added possibility to stop a recording in the recordings tab
* The delete key can now be used in the recorded models tab and in the 
  followed tab to unfollow one ore more models

1.5.1
========================
* Added setting to split up the recording after x minutes 
* Fixed possible OutOfMemoryError, which was caused by invalid transport
  stream packets
* Fixed possible OutOfMemoryError, which could occur, if the stream was
  downloaded faster than it could be written to the hard drive

1.5.0
========================
* Recordings are now stored in a single file
* The server still saves segments, downloads are
  one single file, too
* Recordings and downloads are now proper transport streams
  (continuity and timestamps get fixed, if invalid)

1.4.3
========================
* Added possibility to switch the video resolution for a recording
* Added selection box below the overview pages to change the thumbnail size
* Save and restore window size, location and maximized state
* Added check for OpenJDK and JavaFX on start to print out a better error,
  if JavaFX is not available

1.4.2
========================
* Enabled proxy authentication for SOCKS4 and HTTP
* Empty recording directories are now ignored instead of cluttering the log 
  file with error messages

1.4.1
========================
* Added proxy settings
* Made playlist generator more robust
* Fixed some issues with the file merging
* Fixed memory leak caused by the model filter function
