0xboobface
86f086eb20
Create specialized HLS downloads for server and client
2019-01-18 16:32:47 +01:00
0xboobface
df47f4ba91
Add specialized HLS server download for LiveJasmin
...
The server-side HLS download has to refresh the master playlist URL like
the merged HLS donwload
2019-01-18 16:31:32 +01:00
0xboobface
3e4483aabd
Print out master playlist URL for LiveJasmin
2019-01-17 10:53:37 +01:00
0xboobface
dd2b8041d7
Add some text to explain, that LiveJasmin is not fully functional
2019-01-15 17:10:56 +01:00
0xboobface
ffcdb84714
Disable tipping for the time being
2019-01-15 17:10:30 +01:00
0xboobface
07e0eb005b
Create recordings dir, if it does not exist in getRecordingsFileStore
2019-01-11 15:35:01 +01:00
0xboobface
f24959b76e
Switch token data type to double
...
LiveJasmin and maybe other sites use a more currency like token system
2019-01-10 14:22:26 +01:00
0xboobface
bf6b715642
Login every 30 min to LiveJasmin so that the session does not expire
2019-01-09 20:35:31 +01:00
0xboobface
196b82dfa3
Consider empty recordings as too short
2019-01-09 20:34:52 +01:00
0xboobface
45df31eb15
Properly end websocket download
...
End the websocket download if a model changes state from online. Also
properly close both sockets and set isAlive to false, if the download is
closed or fails
2019-01-09 20:34:25 +01:00
0xboobface
4516b8d787
Fix parsing of model name for recordings
2019-01-09 15:11:18 +01:00
0xboobface
dc946e407f
Merge branch 'dev' into jasmin
2019-01-08 14:33:16 +01:00
0xboobface
a6709bd6db
Introduce external browser for logins
...
Since the JavaFX integrated browser does not work reliably for recaptcha and in general does not behave like standard browsers, I now use an external browser for the logins. The dependency to javafx-web has been removed.
The external browser is based on electron, which uses chromium as internal browser. The implementation can be found at https://github.com/0xboobface/ctbrec-minimal-browser
The browser is a minimal browser, which only shows the web page content without any other controls. It is launched by ctbrec in a new process and remote controlled over a socket connection. I first tried to control it via
stdin/stdout, but it turns out, that stdin is not supported by electron on windows.
2019-01-08 14:26:22 +01:00
0xboobface
3ab4ef785b
Remove liveJasminSession
2018-12-25 18:05:00 +01:00
0xboobface
7483c8505a
Merge branch 'dev' into fc2
2018-12-23 13:58:50 +01:00
0xboobface
154a78660f
Add comment with URL for token balance
2018-12-23 13:57:44 +01:00
0xboobface
e66b75848f
Add download for the chunked http mp4 stream
2018-12-23 13:57:25 +01:00
0xboobface
b8d9f4bc19
Implement search for livejasmin
2018-12-22 22:33:01 +01:00
0xboobface
c364250440
Add follow / unfollow for livejasmin
2018-12-22 20:53:41 +01:00
0xboobface
2425a9dc60
Add websocket download
...
This is the first version with working downloads for SD and HD. These
dowloads only work, if you are logged in. So at the moment you have to set the
session ID in the settings to make this work. The session ID can be copied
from a valid session in a browser.
2018-12-22 19:44:45 +01:00
0xboobface
db5b6bdf5b
Add a setting for the thumbnail overview update interval
...
Implements #123
2018-12-19 13:37:31 +01:00
0xboobface
4f3fd8a677
Add classes for LiveJasmin
2018-12-19 12:57:44 +01:00
0xboobface
2f09b1d517
Add own download class to manage the websocket connection
2018-12-18 13:18:49 +01:00
0xboobface
44b8deb27d
Map state connected to AWAY
2018-12-18 12:39:26 +01:00
0xboobface
0c35f4c219
Merge branch 'dev' into fc2
2018-12-17 23:01:21 +01:00
0xboobface
32807a2fde
Let models create their download
...
Add createDownload to Model. This method is called by the recorder to create
and then start a download. It is a method of Model so that each site and
each download can create a specialized download.
2018-12-17 22:06:13 +01:00
0xboobface
ad71f0cf11
Make sure to not download segments multiple times
...
For some reason streamate playlists can go back in time. This change
makes sure, that we don't download segments multiple times as a
consequence of the time travelling ;)
2018-12-17 19:04:57 +01:00
0xboobface
6dd7de9762
Fix: BongaCams search fails with JSON exceptions
2018-12-17 18:10:55 +01:00
0xboobface
2a1dc77a89
Increase version number to 1.16.0
2018-12-17 17:53:53 +01:00
0xboobface
b473782b92
Don't list recordings, which currently get deleted
2018-12-17 17:38:55 +01:00
0xboobface
eedb237923
Make sure, that the model ID is set
2018-12-17 17:22:21 +01:00
0xboobface
8a8327a2a5
If loading site specific fails, print out the model name
2018-12-17 17:13:54 +01:00
0xboobface
9958e04ef8
Make sure, that the model ID is set
...
When a Streamate model is added by URL, make sure, that the ID is
loaded, so that saving and loading works properly, since the ID is saved
as site specific data.
2018-12-17 17:13:15 +01:00
0xboobface
e362980028
Make live previews experimental
...
Add a setting to toggle live previews. When switched off, the thumbnails
won't show the trigger and the recording table won't show the column.
I did this, because the MediaPlayer sometimes bugs out. It then opens a
lot of connections and further tries to open a stream end in an
exception in the playlist parser.
2018-12-17 17:11:45 +01:00
0xboobface
a0a083aaf6
Merge branch 'dev' into fc2
...
# Conflicts:
# common/src/main/java/ctbrec/io/HttpClient.java
2018-12-17 13:05:11 +01:00
0xboobface
d1cf6a681b
Remove outdated comment
2018-12-16 20:31:09 +01:00
0xboobface
1e47432714
Add origin stream source only, if mp4-ws sources are available
2018-12-16 17:21:11 +01:00
0xboobface
f75687752c
Add config setting for stream previews in thumbnails
...
This setting allows to switch stream previews of in the thumbnail
views. The little play circle will not show up.
2018-12-16 17:19:57 +01:00
0xboobface
ebb5310d26
Wait for the download to terminate before starting PP
...
Sometimes the PP was started before the last segments were downloaded.
This could cause unexpected effects. E.g. the playlist generator would
fail, because the number of segments chained during playlist generation.
2018-12-16 16:14:53 +01:00
0xboobface
e621e49e00
Wait for segment download thread pool to finish
...
... when the download terminates
2018-12-16 02:38:21 +01:00
0xboobface
b2d1d41abc
Remove ordering by sequence
...
This was used for Chaturbate, because the filename format was known.
With several camsites the filename format can differ and this is not a
good solution anymore. Instead we now just sort filename. To make sure,
the files have the right order, HlsDownload now creates a prefix for
each segment.
2018-12-14 23:53:10 +01:00
0xboobface
1ce9a111a9
Add tipping for Streamate
...
Tipping does not work, yet. The server returns success: false. I don't
know, what the parameters have to look like
2018-12-14 23:37:55 +01:00
0xboobface
4d7409f443
Implement follow/unfollow and login with cookies
2018-12-14 20:25:57 +01:00
0xboobface
c7e07b4b26
Implement login and favorites tab
2018-12-14 17:36:24 +01:00
0xboobface
6b52906811
Add configuration ui for the credentials
2018-12-14 15:51:15 +01:00
0xboobface
461e65ed84
Switch to much simpler JSON api
2018-12-14 14:58:12 +01:00
0xboobface
70f4fa930f
Implement search for Streamate
2018-12-14 13:42:20 +01:00
0xboobface
64c60eaeaa
Add determination of stream url and stream sources
2018-12-14 02:39:07 +01:00
0xboobface
52cdf8d601
Add classes and first code for Streamate
2018-12-13 23:48:16 +01:00
0xboobface
150af23d14
Fix log messages
2018-12-13 20:54:26 +01:00
0xboobface
ceb7c07aa8
Add setting for minimum recording length
...
If a recording is shorter than x seconds, it gets deleted
2018-12-13 20:54:10 +01:00
0xboobface
560e73c1dd
Reduce log level for unused message types
2018-12-13 20:51:14 +01:00
0xboobface
dc8a4d4190
Don't add model to models or update it, if uid is not set
2018-12-13 17:09:40 +01:00
0xboobface
9d86a0531c
Bump version to 1.15.0
2018-12-13 16:24:45 +01:00
0xboobface
168ad694ae
Remove debug log message
2018-12-13 01:11:22 +01:00
0xboobface
8039359455
Remove playlistUrl check from isOnline
...
isOnline contained a check for playlistUrl != null, because sometimes
the playlistUrl is null even though the model is online, but it prevents
the followed tab from working correctly
2018-12-12 22:05:46 +01:00
0xboobface
a68341de82
Add actions to MFC's table view
2018-12-12 18:08:39 +01:00
0xboobface
c478f6b0f1
Make login methods synchronized
...
Add synchronized modifier to the login methods, so that only one thread
at a time tries to login. All the following threads then should be able
to use the session cookies
2018-12-12 12:48:45 +01:00
0xboobface
a5ec00c936
Add table for MFC which contains all models
2018-12-11 21:59:32 +01:00
0xboobface
dd76774145
Decrease sync thread sleep time to 2 secs
2018-12-10 22:09:12 +01:00
0xboobface
0fe9d9677a
Delete recordings from synced cached recordings
2018-12-10 21:08:55 +01:00
0xboobface
bb3de83453
Logout and delete cookies when credentials are changed
2018-12-10 18:37:04 +01:00
0xboobface
e7f1d26a84
Bumb version to 1.14.0
2018-12-10 17:15:33 +01:00
0xboobface
2fc00404b8
Implement recording state change events in RemoteRecorder
2018-12-10 16:21:34 +01:00
0xboobface
1d409fa1d4
Run post-processing steps in runnable in a thread pool
...
Server and client now create a runnable for post-processing steps,
which run in a thread pool. This ensures, that the steps run linearly so
that RecordingStateChange events make sense, too.
2018-12-10 15:27:56 +01:00
0xboobface
ff539c1c2e
Use state's name instead of description in toString
2018-12-10 14:35:21 +01:00
0xboobface
f4e143eb7d
Return a copy of models in getModelsRecording
2018-12-10 12:54:37 +01:00
0xboobface
768507d6e5
Increase thread pool size for event bus to 10
2018-12-09 21:36:30 +01:00
0xboobface
86ae660218
Use the event name instead of the description in getExecutionParams
2018-12-09 19:02:50 +01:00
0xboobface
7c16006870
Set the name in the default constructor
2018-12-09 19:02:19 +01:00
0xboobface
888046676f
Add first configurable version of the notification system
2018-12-09 18:46:33 +01:00
0xboobface
be680a07f9
Map state password protected to private
2018-12-09 18:45:16 +01:00
0xboobface
5bb51b6a85
Add descriptions for events and states
2018-12-08 16:08:14 +01:00
0xboobface
1fc16a0d41
Add a few predicates and actions for the event system
2018-12-08 13:08:20 +01:00
0xboobface
f7dfabb898
Remove playback of sound with notification
2018-12-08 13:06:24 +01:00
0xboobface
2dc5fd4581
Add Event and EventReaction classes
2018-12-06 17:39:33 +01:00
0xboobface
b50df194a0
Move settings to own package
2018-12-06 17:38:10 +01:00
0xboobface
90e033d2ac
Don't log exception if interrupted, but not running anymore
2018-12-06 13:44:10 +01:00
0xboobface
69544a7a60
Pull OnlineMonitor out of LocalRecorder
2018-12-05 21:01:33 +01:00
0xboobface
093b36270a
Return at least ONLINE / OFFLINE, if the state is UNKNOWN
2018-12-05 21:01:01 +01:00
0xboobface
022997f6b6
Add new event property OLD
2018-12-05 21:00:19 +01:00
0xboobface
1970f08700
Return UNKOWN, if state is null
2018-12-05 20:59:51 +01:00
0xboobface
00869315fb
Don't throw exception, if no sync happened yet
2018-12-05 20:59:03 +01:00
0xboobface
9f19b2c1fa
Merge branch 'dev' into notify
2018-12-05 16:08:55 +01:00
0xboobface
e6476e95ec
Add setting to ignore the upscaled video stream on MFC
2018-12-05 16:08:44 +01:00
0xboobface
42177b4399
Add enum to Model for the online states
2018-12-05 15:51:21 +01:00
0xboobface
65e6c5b76e
Merge branch 'dev' into notify
2018-12-05 12:58:51 +01:00
0xboobface
9109fc8689
Display "unkown resolution" instead of Integer.MAX_VALUE
2018-12-05 12:38:06 +01:00
0xboobface
a7b0b3f374
Remove resolution cache
...
Resolutions are cached by ThumbCell
2018-12-05 12:30:27 +01:00
0xboobface
8abb3db8a5
Remove single thread executor
2018-12-05 12:10:21 +01:00
0xboobface
d4dadf9fea
Remove resolution cache
...
Resolution caching is done globally in ThumbCell
2018-12-04 18:31:31 +01:00
0xboobface
45e493a35a
Add javadoc
2018-12-04 18:28:30 +01:00
0xboobface
cd903566de
Use baseUrl in requestExtData
2018-12-03 16:26:37 +01:00
0xboobface
b97449a980
Filter out websocket servers with the wrong protocol
2018-12-03 15:24:44 +01:00
0xboobface
0121e02edb
Merge branch 'dev' into notify
2018-12-03 14:35:24 +01:00
0xboobface
da87a1ae39
Add log message which websocket server is used
2018-12-03 14:35:14 +01:00
0xboobface
889dbecb14
Bump version to 1.13.0
2018-12-03 00:14:50 +01:00
0xboobface
6b4d320bc2
Add setting to set the base URL for MFC
2018-12-02 22:35:12 +01:00
0xboobface
353f3fb317
Use baseUrl in loadStreamInfo
2018-12-02 22:33:49 +01:00
0xboobface
96b5c26277
Implement notification messages with SystemTray and notify-send
2018-12-02 17:02:17 +01:00
0xboobface
80381c0d49
Fire events from LocalRecorder
2018-12-01 21:56:23 +01:00
0xboobface
5b8cfc02d6
Merge branch 'dev' into notify
2018-12-01 20:22:02 +01:00
0xboobface
6ab70dd5df
In resumeRecording don't start a recording, if the model is offline
2018-12-01 16:56:43 +01:00
0xboobface
f0edfb167c
Added support for display names from Camsoda
2018-12-01 16:34:09 +01:00
0xboobface
56291cb97f
Add support for display names for BongaCams
2018-12-01 15:29:56 +01:00
0xboobface
431d2f60c4
Add support for display names
...
Add display name to model and use it in GUI. The actual sites don't
set it yet. If the display name is not set, getDisplayName returns
getName instead
2018-12-01 15:24:46 +01:00
0xboobface
7192856c87
Add setting for chaturbate base URL
2018-12-01 14:17:03 +01:00
0xboobface
0edb17ae9f
Add trace output for the time the online check took
2018-12-01 14:02:22 +01:00
0xboobface
b44a1c2422
Fix stream source selection
2018-12-01 02:12:27 +01:00
0xboobface
52016c6a86
Make sure, the hlsUrl is available, when loading the master playlist
2018-12-01 00:16:44 +01:00
0xboobface
ad1f841167
Don't do space check, if minimum is set to 0
2018-11-30 14:51:17 +01:00
0xboobface
918f63b1f5
Use defaults, if settings cannot be loaded
...
If the settings cannot be loaded, make a backup of the settings file
and use the defaults, so that the application at least starts.
2018-11-30 13:42:51 +01:00
0xboobface
afd5d3caa3
Extend manual add function to allow to add models by their URL
2018-11-29 19:08:57 +01:00
0xboobface
cbe466e7b9
Set default for showPlayerStarting to false
2018-11-29 17:50:09 +01:00
0xboobface
c17dcc4216
Add setting to toggle Player Starting message
2018-11-29 17:33:10 +01:00
0xboobface
2c716d3c88
Set all occurrences of PlaylistParser to lenient mode
2018-11-29 13:42:23 +01:00
0xboobface
cf9a6d3f85
Merge branch 'master' into notify
2018-11-28 23:43:43 +01:00
0xboobface
539db89bdb
Bump version to 1.12.1
2018-11-28 23:28:32 +01:00
0xboobface
4150a2911b
Playing around with notifications
2018-11-28 23:24:06 +01:00
0xboobface
1e51298f41
Fix recording download from server
2018-11-28 23:06:41 +01:00
0xboobface
c0bd89b228
Fix log message
2018-11-28 20:35:23 +01:00
0xboobface
ede6dd73d2
Don't print stacktrace on timeout in OnlineMonitor
2018-11-28 20:30:45 +01:00
0xboobface
b771145612
Bump version to 1.12.0
2018-11-28 17:52:30 +01:00
0xboobface
cbb6f3f45a
Add failFast version of getStreamInfo for faster startup
...
With many chaturbate models, the loading of the recording tab took
a long time, because for each model the online state was loaded by the
loading cache. The failFast version just returns null and makes the
inital loading of recorder.getOnlineModels() much faster.
2018-11-28 16:45:42 +01:00
0xboobface
ef9566999a
Fixed possible NPE in update method
2018-11-28 16:43:30 +01:00
0xboobface
403c1ed2d0
Fix split recordings
...
Split recordings didn't work, because splitRecStartTime had been removed
by accident. Also the splitting now does not start a new recording, but
switches the output file in Streamer. This is a much cleaner and
smoother approach, because it is much faster and no segments are missed
2018-11-28 16:03:21 +01:00
0xboobface
3a7f2ceca6
Add convenience method Config.isDevMode()
...
Also made isServerMode() static
2018-11-28 15:37:35 +01:00
0xboobface
c4c8fe83fa
Improve MergedHlsDownload
...
* Add better exception handling
* Check, if the model is still online, when an error occurs
* Download segments in parallel, so that less segments are missed
2018-11-28 15:22:42 +01:00
0xboobface
7edc79b0e3
Take boolean privateRoom into account for online state
2018-11-28 11:47:40 +01:00
0xboobface
33642705a0
Check playlistUrl in isOnline
...
If the playlistUrl is empty, we cannot record, so the model is offline
2018-11-27 18:53:22 +01:00
0xboobface
c543af6429
Set online state to offline if model details cannot be loaded
2018-11-27 17:53:37 +01:00
0xboobface
55b219d271
Move size formatting code to StringUtil
2018-11-27 14:11:52 +01:00
0xboobface
cc2aa3c8d5
Add threshold setting for minimum space on disk
...
If there is less space left on the device than specified by the setting,
the recorder will stop all recordings and don't start new ones until
the free space rises above this threshold again.
2018-11-26 15:28:44 +01:00
0xboobface
8fdb24bad1
Add methods to get the free and total space
2018-11-26 14:01:08 +01:00
0xboobface
91ea7d65a3
Sort by height only if the height is set
...
If the height is not available, it is set to Integer.MAX_VALUE. IT makes
not sense to compare by that value. Instead compare the bitrates.
2018-11-26 00:13:53 +01:00
0xboobface
3b9927a591
Make search case insensitive
2018-11-25 23:01:14 +01:00
0xboobface
b869c4a82c
Save and restore table states
...
Save and the restore the table state (sorting and column widths) for
the recorded models and the recordings tables
2018-11-25 22:10:12 +01:00
0xboobface
faf6240b45
Save changes to the list of recorded models immediately
...
... to make sure, that the settings are persisted in case
the process dies or gets killed.
2018-11-25 21:23:37 +01:00
0xboobface
9817fdfb42
Add setting for the online check interval
2018-11-25 21:17:17 +01:00
0xboobface
a57a9877b8
Bumb version to 1.11.0
2018-11-25 20:10:27 +01:00
0xboobface
3bfb76e441
Re-add onlineCheckIntervalInSecs
...
Was removed by accident
2018-11-25 19:12:27 +01:00
0xboobface
84dfeb9484
Add setting to SettingsTab to define the color scheme of the app
2018-11-25 19:11:15 +01:00
0xboobface
240e5e0d92
Add setting for online check interval
2018-11-25 17:04:49 +01:00
0xboobface
9965f352e3
Improve MFC search by also searching in the models cache
2018-11-25 16:28:17 +01:00
0xboobface
6fa9de4a32
Ensure the correct model is updated by checking the uid
...
The uid should be a value > 0
2018-11-24 15:33:48 +01:00
0xboobface
72064eb55b
Fix possible NPE in getStreamUrl
2018-11-24 15:20:45 +01:00
0xboobface
edb11a0efc
Fix possible NPE in update
2018-11-24 15:16:51 +01:00
0xboobface
85fee70e60
Use TimeUnit for wait-calls
2018-11-23 21:15:30 +01:00
0xboobface
3445fa5ca0
Revert change, which prevents ChaturbateModel to work correctly
2018-11-23 21:15:04 +01:00
0xboobface
b9f24a209e
Implement search feature
...
If a site supports searching, add a search field on the right side next
to the filter input field. This search uses the sites search function
to look for models and returns a list of matches in a popup window
2018-11-23 20:27:49 +01:00
0xboobface
2202dc969f
Add setting to define the start tab
...
When ctbrec is started, this is the first tab shown to the user.
2018-11-22 16:30:07 +01:00
0xboobface
0dbf319575
Invalidate cache when a new websocket is opened
...
When a new connection is established (for example by the watchdog),
invalidate the caches. Also don't trigger a connect, if we are already
trying to connect.
2018-11-21 14:20:37 +01:00
0xboobface
e11acea52e
FIX: Avoid NPE in onFailure
2018-11-20 22:30:27 +01:00
0xboobface
97d3be0b98
Add setting to diable thumbnail updates
...
This is a feature for people who have bandwidth / contingent restrictions.
It can also help keeping the CPU usage down.
2018-11-20 14:35:06 +01:00
0xboobface
7133283032
Start implementation for FC2Live
2018-11-19 23:20:39 +01:00
0xboobface
8fb5eac435
Move getSite and setSite to AbstractModel
2018-11-19 20:51:40 +01:00
0xboobface
042fe43838
Bumb version to 1.10.0
2018-11-19 15:33:48 +01:00
0xboobface
05d583bab5
Change folder structure to maven conventions
2018-11-18 22:49:05 +01:00
0xboobface
cda330ddbd
Split up project into client, server, common and master
2018-11-18 22:42:13 +01:00