0xb00bface
0b384cf85e
Improve Bongacams online state detection
2020-10-04 19:31:34 +02:00
0xb00bface
e250628c96
Add com.sun.activation for Java versions > 8
2020-10-04 16:03:56 +02:00
0xb00bface
a2e2dbda6d
Catch JSON parse exception
2020-10-04 15:20:23 +02:00
0xb00bface
5fa939ae65
Write script output to temporary log file
2020-10-03 20:22:20 +02:00
0xb00bface
8cc6f7ae0e
Delete FFmpeg log files on JVM termination
2020-10-03 20:16:41 +02:00
0xb00bface
098e2d1b67
Fix update of associated files in GUI
2020-10-03 19:00:20 +02:00
0xb00bface
986744dfe7
Improve file handling in HLS servlet
2020-10-03 18:29:09 +02:00
0xb00bface
1350dce14f
Fix BongaCams online check
...
Fix Bongacams unfollow
2020-10-03 16:14:24 +02:00
0xb00bface
3b3854c488
Fix Streamate followed tab
...
Also use a preview image instead of the bio pic
2020-10-03 13:59:19 +02:00
0xb00bface
99b21845ab
Change post-process return value to boolean
2020-09-30 20:09:52 +02:00
0xb00bface
4823c603a7
Mark FFmpeg log files for deletion on JVM exit
2020-09-30 19:13:11 +02:00
0xb00bface
385a4c53c3
Fix Locale related bug in CreateContactSheet
2020-09-30 16:52:47 +02:00
0xb00bface
c88ab395e7
Add contact sheet to recordings associated files
2020-09-30 16:23:09 +02:00
0xb00bface
dcd3df5d0c
Implement contact sheet creation
2020-09-30 16:16:49 +02:00
0xb00bface
ce908bded2
Improve video length detection
2020-09-30 13:29:27 +02:00
0xb00bface
3bf9c5fa26
Fix JSON parsing exception
...
Sometimes performerData is not available. In this case we assume the
model is offline
2020-09-30 10:52:30 +02:00
0xb00bface
26b73322cc
Add migration of old pp settings to new pp steps
2020-09-29 20:50:37 +02:00
0xb00bface
bccdf47a2e
Add automatic fix for invalid resolution range
2020-09-29 19:16:19 +02:00
0xb00bface
7bb0e8fe5d
Fix FFMpeg remux stop for server recordings on windows
2020-09-29 15:39:01 +02:00
0xb00bface
099ccc9399
Remove console output
2020-09-29 13:27:09 +02:00
0xb00bface
e4eee063ba
Fix Showup downloads
...
Add cid and pid to the playlist url, which fixes the download
functionality. But downloads now stop after a couple of minutes if you
are not logged in.
2020-09-28 14:34:11 +02:00
0xb00bface
8b6d246732
Merge branch 'pp' into dev
2020-09-27 15:25:49 +02:00
0xb00bface
f29ae0eb69
Improve creation of segment URLs
2020-09-27 00:51:53 +02:00
0xb00bface
43cf0a0bc1
Add placeholder for recording notes
2020-09-26 20:19:01 +02:00
0xb00bface
5fa72eaaa0
Add setting to define the download file name
2020-09-26 19:52:09 +02:00
0xb00bface
f575958fe9
Fix equals and hashcode
...
equals and hashcode used the path field, which is empty for old
recordings. Fixed by using getAbsoluteFile() instead
2020-09-26 18:10:16 +02:00
0xb00bface
93deeb3e52
Remove unused postProcessing setting
2020-09-26 17:22:42 +02:00
0xb00bface
b8ffdb32ce
Change config mock, so that the config dir is in the temp test dir
2020-09-26 17:04:17 +02:00
0xb00bface
4aca861390
Remove unused settings
2020-09-26 16:32:31 +02:00
0xb00bface
6fa6c63c85
Add test for DeleteTooShort pp
2020-09-26 16:07:11 +02:00
0xb00bface
9806badf57
Fix bug in Move pp
2020-09-26 15:14:54 +02:00
0xb00bface
13783140e9
Add test for Copy pp
2020-09-26 14:23:48 +02:00
0xb00bface
02814440d2
Add more tests
2020-09-25 21:09:50 +02:00
0xb00bface
43de2c2620
Add test for DeleteOriginal pp
2020-09-25 19:43:00 +02:00
0xb00bface
b2b6a623ef
Add more post-processing tests
2020-09-25 00:09:23 +02:00
0xb00bface
87d88b5bcb
Add webhook post-processor skeleton
2020-09-24 11:35:55 +02:00
0xb00bface
30021d184d
Add DeleteTooShort post-processor
2020-09-24 11:35:37 +02:00
0xb00bface
f6afed3717
Add script post-processor
2020-09-23 18:52:30 +02:00
0xb00bface
67ff48e2dc
Pass RecordingManager to post-processors
2020-09-22 22:15:28 +02:00
0xb00bface
7b1898072f
Make recording single file after remux
...
Also set the file size to the size of the remuxed one
2020-09-22 20:41:07 +02:00
0xb00bface
d23f3fea04
Add test for Rename pp for directories
2020-09-22 17:40:03 +02:00
0xb00bface
4167b222ba
Add test for Rename post-processor
2020-09-22 14:58:20 +02:00
0xb00bface
e1bce0acf5
Improve handling of the orignal and pp files
2020-09-22 12:38:21 +02:00
0xb00bface
fbf1c8ac16
Add check, if source and target are the same
2020-09-20 18:27:26 +02:00
0xb00bface
bf39d9a639
Implement proper handling of the orignal and pp files
...
If a copy is created, the original file is not touched anymore.
Otherwise the original file is used and the post-processing process is not repeatable anymore, or at least the results might get unpredictable
2020-09-20 18:14:24 +02:00
0xb00bface
90192d9b8f
Fix server stuff for new recording path handling
2020-09-13 19:54:43 +02:00
0xb00bface
4f526fd13e
Store absolute path in metadata file instead of path relative to rec dir
2020-09-13 17:34:58 +02:00
0xb00bface
f0713b96f5
Try to terminate FFmpeg before killing it
2020-08-30 13:41:43 +02:00
0xb00bface
4f7d080f56
Add more pp steps
2020-08-30 13:41:03 +02:00
0xb00bface
6b81ef6870
Merge branch 'dev' into pp
2020-08-24 15:18:02 +02:00
0xb00bface
d7d3e2944b
Extend HlsDownload for MV Live to update the cloudflare cookies regularly
2020-08-24 15:16:45 +02:00
0xb00bface
1034488e94
Make RecorderServlet and RemoteRecorder compatible to new recording
...
fields
2020-08-24 15:15:34 +02:00
0xb00bface
89fa681a59
Increase log level
2020-08-23 13:38:18 +02:00
0xb00bface
bdcf1bee00
Implement Renamer post-processor
2020-08-23 13:37:59 +02:00
0xb00bface
c7e39fdd98
Fix MV Live models not showing up as recording
...
MV Live models with spaces in the name would not show up as recording.
2020-08-23 12:46:24 +02:00
0xb00bface
17a32cd928
Add first configurable PP step
2020-08-22 18:35:54 +02:00
0xb00bface
4f8e7dbca2
Merge branch 'dev' into pp
2020-08-21 19:15:08 +02:00
0xb00bface
337b096568
Fix API calls newer than Java 8
2020-08-21 18:19:59 +02:00
0xb00bface
05837b2fed
Reset MFC WS on message parsing exception
2020-08-21 18:09:55 +02:00
0xb00bface
7bb33568cf
Add new event for when the disk space is exhausted
2020-08-21 17:09:07 +02:00
0xb00bface
3351a976ae
Fix: recording started event was not fired in client/server mode
2020-08-21 15:57:50 +02:00
0xb00bface
d20680f228
Fix synchronisation problem between client and server
...
... for actions pin, unpin and setNote
2020-08-21 15:20:23 +02:00
0xb00bface
063395bc74
Increase log level for update check
2020-08-19 19:17:52 +02:00
0xb00bface
6c0fe83816
Don't stop a recording when setting the "stop at" date
2020-08-19 18:36:50 +02:00
0xb00bface
fa3e5fbcaf
Fix MFC models changing to other models
2020-08-19 18:25:24 +02:00
0xb00bface
2665d50ee1
Assume unknown show type means ONLINE
2020-08-19 17:53:15 +02:00
0xb00bface
da3f0632e2
Set version to 3.9.0
2020-08-19 17:21:48 +02:00
0xb00bface
7e2924d780
Add confirmation dialog for shutdown
...
Show confirmation dialog when a shutdown is requested and there are
recordings in progress. The user now can decide to shutdown immediately,
shutdown gracefully or leave the app running
2020-08-19 12:45:47 +02:00
0xb00bface
335cdb8cb4
Add createModelFromUrl for MVLive
2020-08-18 20:25:05 +02:00
0xb00bface
096ed7a734
Implement proper online check and add search
2020-08-18 19:58:48 +02:00
0xb00bface
8b4a82d158
Add model name to Download threads
2020-08-18 19:57:53 +02:00
0xb00bface
2455797fb2
Use a different HTTP client for each MVLive download
...
MVLive only allows recording of mor than one stream, if the recorder looks like different HTTP sessions.
That's why we use a different HTTP client with its own cookie jar for each recording.
2020-08-18 14:39:48 +02:00
0xb00bface
7015c3173f
Merge branch 'dev' into manyvids
2020-08-18 10:59:48 +02:00
0xb00bface
ab10e9c176
Move recording precondition checks to its own class
2020-08-18 10:44:41 +02:00
0xb00bface
e06bfaf88b
Change the request to get the room number
2020-08-18 10:19:26 +02:00
0xb00bface
36885900b5
Add regular cloudflare cookie updates
...
MVLive updates those cookies every 2 minutes. This makes sure, that the streaming continues. IF the cookies are not updated, the stream ends after around 2:30 minutes
2020-08-17 12:19:24 +02:00
0xb00bface
db186e65f4
Merge branch 'dev' into manyvids
...
# Conflicts:
# common/src/main/java/ctbrec/io/HttpClient.java
2020-08-16 17:00:43 +02:00
0xb00bface
4139e42ce2
Set version to 3.8.6
2020-08-16 14:16:38 +02:00
0xb00bface
792a6c10c8
Revert MFC websocket message parsing change
2020-08-15 17:17:31 +02:00
0xb00bface
5c0d841474
Shut down all recordings simultaneously
2020-08-15 16:09:20 +02:00
0xb00bface
6cfdb59c96
Remove log output
2020-08-15 16:06:47 +02:00
0xb00bface
192e7093d3
Fix Flirt4Free models losing their name
2020-08-15 15:29:21 +02:00
0xb00bface
0e61421537
Fix MFC websocket message parser
2020-08-14 19:16:39 +02:00
0xb00bface
a0779c118d
Reduce log level again
2020-08-09 14:26:12 +02:00
0xb00bface
0fe16f8ff8
Add setting to disable online check for paused models
2020-08-09 12:27:04 +02:00
0xb00bface
c02d9562bf
Set version to 3.8.5
2020-08-09 11:05:56 +02:00
0xb00bface
ee302e49a4
Distinguish between performer_id and display_name for LiveJasmin models
2020-08-09 11:04:24 +02:00
0xb00bface
b6e4bad837
Fixed bug in JSON parsing
...
Some models wouldn't get recorded, because of a missing element in the
JSON doc
2020-08-08 21:23:38 +02:00
0xb00bface
caf329eb23
Change look of the model table in the web interface
2020-08-08 20:11:48 +02:00
0xb00bface
e55daa0772
Add GUI and remote support for temporary recordings
2020-08-08 17:51:03 +02:00
0xb00bface
729319dfd2
Add mechanism to record a model only up to a certain timestamp
2020-08-08 15:28:29 +02:00
0xb00bface
cbd529d001
Replace wrong username used to retrieve the token balance
2020-08-08 13:37:21 +02:00
0xb00bface
81643545d2
Set version to 3.8.4
2020-07-26 15:42:36 +02:00
0xb00bface
2154aacdbe
Fix problem, that downloads wouldn't finish properly
...
Some downloads couldn't be stopped properly, because they would wait for
segment data to arrive to write to disk indefinitely. We now only wait
for a max of 30 seconds and also cancel all futures, which are waiting
for segment data.
2020-07-26 15:40:03 +02:00
0xb00bface
963f0f0f5f
Change order how things are shutdown
2020-07-26 15:14:44 +02:00
0xb00bface
d63c98cf36
Fix NPEs in MFCs ServerConfig
2020-07-26 15:14:22 +02:00
0xb00bface
64c6b9aa4f
Enable rerun PP for multiple recordings
2020-07-26 11:07:55 +02:00
0xb00bface
c80230cee7
Add support for xHamsterLive
2020-07-20 18:44:25 +02:00
0xb00bface
bc872b1ed5
Set version to 3.8.3
2020-07-19 18:23:32 +02:00
0xb00bface
e50b9bcc71
Close response in onClosed in F4F websocket
2020-07-19 18:23:16 +02:00
0xb00bface
7462d68d7b
Add external login dialog for stripchat
...
This also enables us to support xhamsterlive
2020-07-19 15:17:31 +02:00
0xb00bface
882742ce3b
Make MFC client and getOnlineModels more robust
2020-07-18 19:30:24 +02:00
0xb00bface
010c4a04cd
Adjust log levels
2020-07-18 19:15:09 +02:00
0xb00bface
7ff731ec88
Fix CamSoda downloads
2020-07-18 19:05:41 +02:00
0xb00bface
6ca0e61f1f
Improve exception handling
2020-07-18 19:05:09 +02:00
0xb00bface
b1d5d959d4
Add URL to HttpException
2020-07-18 12:48:12 +02:00
0xb00bface
c50519be82
Fix CamSoda recordings
2020-07-18 12:48:00 +02:00
0xb00bface
4b2e17d0b1
Fix Cam4 favorites tab
2020-07-16 19:51:14 +02:00
0xb00bface
03b6de626c
Fix Streamate
...
The way to obtains the xsrf token has changed
2020-07-16 18:53:22 +02:00
0xb00bface
3f4973137c
Reduce core pool size to 0 for the download thread pool
...
Most of the time only one thread is used, so we can save resources by
reducing the core pool size
2020-07-16 18:52:34 +02:00
0xboobface
296585463a
Don't apply min/max resolution settings, if resolution is unknown
2020-07-12 13:32:06 +02:00
0xboobface
ed26228d7b
Increase version number to 3.8.2
2020-07-12 13:11:19 +02:00
0xboobface
f79b5eddc5
Reduce HTTP connection keep-alive to 1 minute
2020-07-12 12:39:49 +02:00
0xboobface
764119e20a
Reduce event bus thread pool size from 10 to 2
2020-07-12 12:37:47 +02:00
0xboobface
59697c600f
Reduce global connection pool size from 50 to 20
...
Also remove the second connectionPool call, which accidentally was left
in and rendered the global connection pool useless
2020-07-12 12:37:03 +02:00
0xboobface
9bb18426a6
Interrupt keep alive thread on reconnect
...
On reconnect interrupt the current keep alive thread, so that we don't
pile up a bunch keep alive threads, if the there is a problem with the
websocket connection.
2020-07-11 14:15:34 +02:00
0xboobface
6600b0da94
Get the authentication and the stream working
2020-07-10 22:12:28 +02:00
0xboobface
ed0f5476b5
Merge branch 'dev' into manyvids
2020-07-10 18:09:26 +02:00
0xboobface
64569f83ab
Optimize http client shutdown
2020-07-05 14:07:15 +02:00
0xboobface
e7349b2118
Set version to 3.8.1
2020-07-03 19:12:18 +02:00
0xboobface
d2c2cb476b
Fix MyFreeCams websocket message parsing
2020-07-03 18:56:59 +02:00
0xboobface
09337aa59a
Update Java class with newer Java versions
2020-06-30 20:45:24 +02:00
0xboobface
3382c7ff54
Fix initialization of the range slider
2020-06-30 19:40:08 +02:00
0xboobface
d3d9662ec5
Add websocket client
2020-06-20 11:17:19 +02:00
0xboobface
e6fa97dc15
Add affiliate link
2020-06-14 15:07:58 +02:00
0xboobface
00692f991e
Add UI part for MVLive
...
At the moment only the thumbnail overview is working. More stuff to come...
2020-06-14 15:07:54 +02:00
0xboobface
e59de2f70b
Add base classes for Manyvids Live
2020-06-14 15:06:17 +02:00
0xboobface
ff08fda618
Set default for max resolution to max value
2020-06-14 11:22:26 +02:00
0xboobface
3b5cbfaddf
Fix NPE in getHttpHeaderFactory in MyFreeCamsModel
2020-06-14 11:22:01 +02:00
0xboobface
6e25f98b2b
Add range slider for the recording resolution
2020-06-13 20:08:25 +02:00
0xboobface
229fc1f432
Add possibility to add notes to recordings
2020-06-13 19:32:00 +02:00
0xboobface
583c4ec722
Implement bandwidth meter for remote recording
2020-06-12 19:18:53 +02:00
0xboobface
43d2676e11
Add HttpHeaderFactory mechanism
...
Each model can provide its own factory to provide HTTP headers for the
different download requests (playlist, segment playlist, segments)
2020-06-12 18:24:34 +02:00
0xboobface
06029a1331
Code cleanup
2020-06-12 18:22:12 +02:00
0xboobface
cd6175a7eb
Add BandwidthMeter, which tracks the current bandwidth usage
2020-06-12 18:21:32 +02:00
0xboobface
bd48d6bf9c
Set version to 3.8.0
2020-06-12 18:10:56 +02:00
0xboobface
0ed6d93d30
Set version to 3.7.3
2020-06-09 19:36:17 +02:00
0xboobface
d55f1c04ee
Fix MFC websocket communication
...
The protocol had been changed for the initial login sequence
2020-06-09 19:33:43 +02:00
0xboobface
7e4a6393b0
Set version to 3.7.2
2020-06-07 13:57:15 +02:00
0xboobface
acd6126619
Add "New" tab to each site where it was missing
2020-06-07 13:53:54 +02:00
0xboobface
fdce3bcec0
Fix chaturbate login check
...
The check if ctbrec is logged in always returned true because of a
change on the user profile page. ctbrec now uses the user icon to check,
if the user is the anonymous user or a logged in user.
2020-06-07 12:28:08 +02:00
0xboobface
c8614d7208
Set version to 3.7.1
2020-05-31 18:44:04 +02:00
0xboobface
1bea13dc05
Improve server download progress calculation
2020-05-31 17:20:25 +02:00
0xboobface
b87f090ac3
Add max resolution setting for the player
2020-05-31 14:50:12 +02:00
0xboobface
258334b637
Add setting to remove recordings after post-processing
2020-05-29 19:50:03 +02:00
0xboobface
0858941b50
Fix NPE in MFC client
2020-05-23 16:20:49 +02:00
0xboobface
f1a0e5900c
Fix createModelFromUrl for Showup and Fc2Live
2020-05-23 16:20:32 +02:00
0xboobface
3958a7b5f1
Reduce log level in getModelList
2020-05-23 13:47:07 +02:00
0xboobface
9eea66d94f
Remove the uid field from ShowupModel
2020-05-20 19:37:01 +02:00
0xboobface
9462a31111
Improve detection of stream termination
2020-05-20 19:00:09 +02:00
0xboobface
c05785cd20
Improve Showup online detection
2020-05-20 18:18:29 +02:00
0xboobface
e096e8555f
Fix possible NPE
2020-05-20 18:17:58 +02:00
0xboobface
33a0094b19
Adjust to Stripchat API changes
2020-05-20 18:17:46 +02:00
0xboobface
a91923baff
Use the small preview image for the thumbnails
2020-05-16 22:45:15 +02:00
0xboobface
66b37b65c0
Set version to 3.7.0
2020-05-16 22:20:06 +02:00
0xboobface
9cd9bdf973
Remove handling for online states private and group
...
They don't seem to affect the recording of the stream
2020-05-16 22:19:55 +02:00
0xboobface
39c1fd94ba
Fix isOnline for SHowupModel
2020-05-16 21:34:39 +02:00
0xboobface
1a5c32167e
Preparation for Showup login
2020-05-16 21:30:25 +02:00
0xboobface
6c85a2a493
First working version of Showup.tv
2020-05-16 16:28:44 +02:00
0xboobface
bd92c315fb
Set version to 3.6.4
2020-05-13 18:46:24 +02:00
0xboobface
ef3c036f49
Fix 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.
2020-05-10 14:58:42 +02:00
0xboobface
b820021aee
Spawn FFmpeg process only if playlist request was successful
2020-05-10 13:16:47 +02:00
0xboobface
e6dae3b2af
Set version to 3.6.3
2020-05-10 12:03:32 +02:00
0xboobface
2e4ec80bd8
Reduce visibility of public method
2020-05-10 10:43:53 +02:00
0xboobface
3c4ef05a48
Fix NPE in internalStop
2020-05-10 10:43:37 +02:00
0xboobface
cd5172613e
Fixed player start for recordings starting with a dash
2020-05-03 15:32:54 +02:00
0xboobface
8cdc2a4a56
Set version to 3.6.2
2020-05-02 14:43:20 +02:00
0xboobface
df50646627
Change FFmpeg termination handling again
...
FFmpeg was killed to early, so that the file encoding was not finished
properly. For example the moov atom was not written for MP4 files. We
now wait at most 5 minutes for FFmpeg to finish and only kill it then
with force.
2020-05-02 12:45:15 +02:00
0xboobface
b402bb0df7
Set version to 3.6.1
2020-04-28 22:07:38 +02:00
0xboobface
a0d9835192
Fix streamate stream source parsing
2020-04-28 22:05:06 +02:00
0xboobface
d78f96fef6
Improve handling of recording termination
...
This change hopefully helps to terminate FFmpeg reliably once a
recording terminates.
2020-04-25 15:42:41 +02:00
0xboobface
3c86310edf
Add stream source "Origin"
2020-04-23 19:28:12 +02:00
0xboobface
a30d4ed463
Change data type of all Integer fields to String
2020-04-18 19:51:40 +02:00
0xboobface
0c7650f94f
Remove retry loop in getNextSegments
...
This might cause blocks by MFC because we are asking for a resource,
which is not available.
2020-04-18 19:50:42 +02:00
0xboobface
a37a018159
Remove outdated settings for MFC
2020-04-13 19:43:33 +02:00
0xboobface
aa42e82153
Set version to 3.6.0
2020-04-13 18:53:29 +02:00
0xboobface
e5a9c468eb
Remove "(broken)" from MFC's title
2020-04-13 18:52:29 +02:00
0xboobface
ae6fa229e7
Add user-agent agent header to every http request in MFC classes
2020-04-13 18:42:57 +02:00
0xboobface
970b9ab574
Fix follow/unfollow for BongaCams
2020-03-28 13:07:54 +01:00
0xboobface
915be1d4fc
Save column order in tables
2020-03-22 13:54:31 +01:00
0xboobface
243d2757b0
Set version to 3.5.0
2020-03-19 15:01:34 +01:00
0xboobface
13da583483
Revert refresh of segment playlist url
2020-03-19 15:00:23 +01:00
0xboobface
d716354dc1
Add config setting for the number post-processing threads
2020-03-17 20:20:11 +01:00
0xboobface
ff9ff8f40f
Add dialog to specify media player params in the settings
2020-03-16 20:51:09 +01:00
0xboobface
6f57579041
Add pinning for recordings
...
Recordings can now be set to pinned. Pinned recordings cannot be
deleted.
2020-03-16 16:10:09 +01:00
ctbrec-contrib-01
e333722522
Improve directory size update performance
...
Use NIO Files.walkFileTree() instead of IO File.ListFiles() API.
Speed improvement was ~6.1s -> ~4.4s on my recordings list.
TODO: implement more intelligent refresh.
2020-03-03 19:53:29 +01:00
0xboobface
2eb1b17513
Change cookie name of the sorting settings
2020-03-02 20:45:24 +01:00
0xboobface
2f013bc870
Change BongaCams online check
2020-02-29 18:30:57 +01:00
0xboobface
3636d34d22
Set version to 3.4.0
2020-02-27 20:59:53 +01:00
0xboobface
46bd8667c8
Separate site name and displayed title
2020-02-26 21:40:58 +01:00
0xboobface
8cafc7124f
Add search for Stripchat
2020-02-23 19:36:14 +01:00
0xboobface
e4b9da7685
First working implementation for Stripchat
2020-02-23 18:47:37 +01:00
0xboobface
4dcf9944f8
Set version to 3.3.0
2020-02-22 17:57:03 +01:00
0xboobface
71be9b3665
Improve support for server-side single files
2020-02-22 17:40:22 +01:00
0xboobface
351066e869
Add comment
2020-02-22 14:35:04 +01:00
0xboobface
bc929cc6e1
Switch to MergedFfmpegHlsDownload
2020-02-22 14:33:51 +01:00
0xboobface
4f9c1606fc
Fix download of recordings
2020-02-22 14:26:50 +01:00
0xboobface
4ebc847720
Use MergedFfmpegHlsDownload for merged HLS downloads
2020-02-22 13:27:17 +01:00
0xboobface
1e95872cb7
Disguise FFmpeg as normal browser
2020-02-22 12:38:28 +01:00
0xboobface
f98d442096
Implement custom command line parameters and clean shutdown
2020-02-22 12:19:32 +01:00
0xboobface
d2f490f8f6
Add FFmpeg downloaders
2020-02-22 11:20:10 +01:00
0xboobface
e98a3bc7c2
Set version to 3.2.1
2020-02-16 17:04:46 +01:00
0xboobface
110fc2a6bf
Fix LiveJasmin HD recordings
2020-02-16 15:18:38 +01:00
0xboobface
b18a32ede3
Fix LiveJasmin followed tab
2020-02-16 13:28:33 +01:00
0xboobface
9a4461a0d1
Set version to 3.2.0
2020-02-01 10:03:56 +01:00
0xboobface
316d2a7e22
Fix loading of the Streamate model ID
2020-01-31 19:50:17 +01:00
0xboobface
741072b1f0
Rename site to MyFreeCams (broken)
2020-01-26 19:18:30 +01:00
0xboobface
18669a9c43
Fix Streamate
...
Streamate introduced a CSRF token, which has to be sent in the HTTP
header.
2020-01-26 18:33:13 +01:00
0xboobface
3cf6038da0
Don't kill the ws in the keep-alive thread, if it is establishing a
...
connection
2020-01-11 13:20:49 +01:00
0xboobface
b66989fe85
Set version to 3.1.0
2020-01-11 11:30:02 +01:00
0xboobface
3bb161c055
Add columns "last recorded" and "last seen" to models table
2020-01-05 16:02:22 +01:00
0xboobface
9037b525bd
Code cleanup
2020-01-04 16:13:03 +01:00
0xboobface
242897719b
Sort models by prio before online check
2020-01-04 15:59:11 +01:00
0xboobface
d82c3b490b
Implement recording priorities for RemoteRecorder
2020-01-04 15:30:54 +01:00
0xboobface
5448763b9d
Fix possible NPE
2020-01-03 21:53:37 +01:00
0xboobface
4d6e74562c
Add recording priority for models
...
Models with high priority will be favored over models with low priority.
Recordings for models with low priority might even get stopped to free
up a slot for a model with a higher priority
2020-01-03 19:06:05 +01:00
0xboobface
808810b6d6
Set version to 3.0.4
2020-01-03 12:43:07 +01:00
0xboobface
b12f3e5789
Add setting to switch between DASH and HLS for MFC
2020-01-03 12:27:06 +01:00
0xboobface
d8e78bb910
Add null check
2019-12-31 12:53:12 +01:00
0xboobface
643650d69e
Change log level
2019-12-30 18:54:47 +01:00
0xboobface
c767d14aa9
Use one global connection pool for all http clients
2019-12-30 18:49:50 +01:00
0xboobface
52bc8a6b64
Check the online state of models in parallel
...
For each site a SingleThreadExecutor is used to check the online state
of the site's models in series. These SingleThreadExecutors run in
parallel to speed the online check up.
2019-12-30 18:30:31 +01:00
0xboobface
24cb3ecf99
Use HLS streaming for MFC models again
2019-12-30 16:15:47 +01:00
0xboobface
499708ffcf
Set version to 3.0.3
2019-12-30 14:52:04 +01:00
0xboobface
5ac4241886
Improve logging
2019-12-30 11:59:53 +01:00
0xboobface
5ecad75b0d
Wait for stdout and stderr log threads to finish
2019-12-29 22:04:50 +01:00
0xboobface
b37178170b
Improve logging
2019-12-29 20:50:34 +01:00
0xboobface
e0f494d6da
Improve recording download from server
2019-12-29 15:39:44 +01:00
0xboobface
8596b1e6e1
Fix log statement, which prevent getMasterPlaylist form working
2019-12-29 15:07:09 +01:00
0xboobface
16dfc07a8e
Use AtomicBoolen to indicate, if a download has finished
2019-12-29 14:29:36 +01:00
0xboobface
85bacb8c04
Remove recordings, which fail immediately after starting
2019-12-28 19:58:04 +01:00
0xboobface
e333175ecb
Fix stream URL for wowza HLS streaming
2019-12-28 19:54:55 +01:00
0xboobface
a9d87bfd99
Code cleanup
2019-12-28 19:54:04 +01:00
0xboobface
672d7c23ec
Stop immediately, if the manifest download fails and the model is
...
offline
2019-12-28 19:51:59 +01:00
0xboobface
678a6e5513
Remove redundant log message
2019-12-28 19:50:58 +01:00
0xboobface
d820d611f1
Try to update the segment playlist URL, if loading the playlist fails
2019-12-28 16:59:20 +01:00
0xboobface
0fe466bc1a
Don't catch exceptions in generatePlaylist
2019-12-28 16:58:43 +01:00
0xboobface
a3dee454a5
Write the output of FFmpeg to a log file in the segment directory
2019-12-28 16:57:55 +01:00
0xboobface
2da3d64ac8
Make Model and Download serializable
2019-12-28 16:57:11 +01:00
0xboobface
a165a83dca
If a recording does not exist, show n/a for its size
2019-12-28 16:56:18 +01:00
0xboobface
6fcbdab174
Reset state to WAITING for FAILED, PP and GENERATING_PLAYLIST on start
2019-12-28 15:42:45 +01:00
0xboobface
a59313df49
Code cleanup
2019-12-28 15:38:33 +01:00
0xboobface
d742756413
Combine recordings and model locks to one lock
...
Using 2 locks caused deadlocks.
2019-12-27 23:35:49 +01:00
0xboobface
296396f2d3
Set version to 3.0.2
2019-12-27 15:17:53 +01:00
0xboobface
87b0ce0d21
Use constants from HttpConstants
2019-12-27 15:14:55 +01:00
0xboobface
b91bfdc353
Introduce new HttpConstants class for header constants etc
2019-12-27 14:27:10 +01:00
0xboobface
4f852bd5f3
Create a temporary directory for HLS downloads
...
Create a temporary download directory similar to DASH downloads
2019-12-27 14:26:48 +01:00
0xboobface
e8fccb327a
Determine the movie's length from the MP4 file
...
Use the time spent recording the stream as a fallback
2019-12-27 14:21:09 +01:00
0xboobface
da4c1bda2c
Change log levels of some log messages
2019-12-27 14:02:33 +01:00
0xboobface
b72777f6fb
Code cleanup
2019-12-27 13:51:48 +01:00
0xboobface
f3a13a6f06
Fix CamSoda downloads
...
Some models now have a different stream URL. ctbrec has to distiguish
between the old and the new URLs
2019-12-27 13:51:28 +01:00
0xboobface
33c7c6606d
Improve playlist loading for Cam4Model
...
Also improve isOnline to take into account, if a playlist url is
available or not
2019-12-26 23:44:26 +01:00
0xboobface
55760a1b7d
Fix log messages
2019-12-26 23:43:32 +01:00
0xboobface
df3e87f1dd
Add loop to get manifest for retries
...
Try to download the manifest 10 times with a little break in between
before giving up causing the download to terminate
2019-12-26 22:19:25 +01:00
0xboobface
c2901284ef
Improve error handling in downloads
2019-12-26 21:47:03 +01:00
0xboobface
c774a29421
Improve error handling for loading the master playlist for Cam4Models
2019-12-26 21:46:57 +01:00
0xboobface
5b2ddfb825
Fix NPE in MergedHlsDownload
2019-12-26 21:46:50 +01:00
0xboobface
d48498e715
Change PlaylistGenerator.genertate to not return null
...
Instead an exception is thrown, if something goes wrong
2019-12-26 21:46:46 +01:00
0xboobface
a33d3045c1
Improve segment download retry code
2019-12-26 21:46:37 +01:00
0xboobface
6cc8fd9cc2
Fix post-processing timestamp problems
2019-12-26 21:46:33 +01:00
0xboobface
b8cdb2200e
Remove mpegts library
2019-12-26 21:46:27 +01:00
0xboobface
67c69e3c1b
Fix call of user defined pp script
2019-12-26 21:46:18 +01:00
0xboobface
8dfc4c775f
Add post-processing support to the DashDownload
2019-12-26 21:46:15 +01:00
0xboobface
a018b15384
Improve DashDownload handling of init segments
...
After an init segment has been downloaded, check, if exists and is not empty before
setting the booleans to true, which determine, that the files have been loaded
2019-12-26 21:46:12 +01:00
0xboobface
33c298d558
Set version to 3.0.1
2019-12-26 21:46:06 +01:00
0xboobface
2973dd2e6d
Code cleanup
2019-12-26 21:45:53 +01:00
0xboobface
da28d02da8
Implement getLength in MergedHlsDownload with jcodec
2019-12-26 21:45:43 +01:00
0xboobface
66525de4ea
Run FFmpeg in the segments directory of HLS downloads
2019-12-26 21:45:29 +01:00
0xboobface
5b9b91d6e8
Add try-with-resources blocks to free up the HLS playlist file handle
2019-12-26 21:45:22 +01:00
0xboobface
5d2d5145b9
Remove dependency to isoparser library
2019-12-22 11:14:33 +01:00
0xboobface
f91a0d27eb
Improve exception handling
...
Change exception handling so that failed post-processing causes the
recording to have the state "failed"
2019-12-21 22:04:59 +01:00
0xboobface
2fb2c932aa
Fix "rerun pp" for MFC dash downloads
2019-12-21 18:59:31 +01:00
0xboobface
bdf7d99ef3
Fix handling of recording structure
2019-12-21 17:04:27 +01:00
0xboobface
a4b805c038
Set version to 3.0.0
2019-12-21 14:33:45 +01:00
0xboobface
4eeb101cbb
Fix recording downloads from server to client
2019-12-21 14:30:57 +01:00
0xboobface
e37c869695
Merge branch 'dev' into mp4-streaming
2019-12-17 21:27:16 +01:00
0xboobface
e734d46e9c
Add gitattributes and run initial normalization
2019-12-17 21:13:18 +01:00
0xboobface
b9f463d0dd
Bump version to 2.3.0
2019-12-08 19:04:22 +01:00
0xboobface
034fe81081
Use FFmpeg to merge HLS segments
2019-12-07 16:58:56 +01:00
0xboobface
32d7a788e0
Add faststart argument to FFmpeg cmdline
2019-12-07 16:58:11 +01:00
0xboobface
1c64b82deb
Add providers for MFC streams sources
...
Since MFC uses different streaming technologies, the stream sources have
to be determined differently. This is now done in dedicated
StreamSourceProvider classes.
2019-12-07 12:00:05 +01:00
0xboobface
26bf26de0a
Fix some code smells
2019-12-06 20:20:50 +01:00
0xboobface
00ea43c8b3
Move HLS related classes ot own package
2019-11-30 16:40:01 +01:00
0xboobface
40c910bd5c
Add JAXB domain classes for MPEG-DASH manifests
2019-11-30 16:37:39 +01:00
0xboobface
f23c33d30a
Move HLS related classes to own package
2019-11-30 16:36:45 +01:00
0xboobface
43dfc4e59c
Set versions in maven POMs
2019-11-23 17:14:44 +01:00
0xboobface
011e8c2f29
Improve thread interrupt and lock handling
2019-11-23 17:13:27 +01:00
0xboobface
8935dd8185
Be a bit more relaxed with deleting recordings
2019-08-16 19:34:07 +02:00
0xboobface
372fce2899
Update the RunningTheServer page
2019-08-10 20:24:27 +02:00
0xboobface
7c29bba16e
Set version to 2.2.0
2019-08-10 18:25:40 +02:00
0xboobface
f12a20a15e
Add support for TLS and changing the context path
2019-08-10 17:45:13 +02:00
0xboobface
bb02b5fd9f
Add HMAC support to the webinterface
...
The webinterface didn't work, if HMAC authentication was enabled.
To make this work, the webinterface downloads the HMAC from the
server and stores it in the local storage of the browser. The
download URL is secured by Basic Auth. The credentials are configured
in the server.json
2019-08-04 12:51:13 +02:00
0xboobface
8450ddd98c
Increase version to 2.1.0
2019-07-27 18:27:54 +02:00
0xboobface
bc724b2f42
Add setting to switch on/off the server webinterface
2019-07-27 17:55:42 +02:00
0xboobface
1e5eff780c
Add input field to add models by URL
2019-07-27 16:53:26 +02:00
0xboobface
2131b596cb
Make loading of recording meta data more robust
2019-07-21 11:23:10 +02:00
0xboobface
e39ff8d7d4
Make sure, the metadata file is set before other operations
2019-07-21 10:48:12 +02:00
0xboobface
d798069a71
Handle models with unknown site
...
Make sure, the recorder does not crash, if a model with unknown site
exists in the condif
2019-07-21 10:46:19 +02:00
0xboobface
1db79541ff
Add web interface for the server
2019-07-21 10:39:00 +02:00
0xboobface
d56f2a1bc1
Handle BOM properly in config file
2019-07-19 19:15:38 +02:00
0xboobface
ddbd8de900
Fix Flirt4Free thumb overviews and recording
2019-06-08 10:34:44 +02:00
0xboobface
ca17d4758c
Increase version to 2.0.1
2019-06-07 21:24:12 +02:00
0xboobface
60aaacc294
Make sure that the recordingsDir path doesn't end with a /
2019-06-07 21:23:37 +02:00
0xboobface
645f0b8231
Hopefully fixed some deadlocks
2019-06-03 21:16:35 +02:00
0xboobface
b136fce0db
Add menu entry to rerun the post-processing script
...
In client/server mode this will trigger the playlist generation and
post-processing. In standalone mode only the post-processing will be
executed.
2019-06-02 19:53:25 +02:00
0xboobface
da486bbf4a
Make recorder and RecordingManager thread-safe
2019-06-02 16:51:42 +02:00
0xboobface
f2cae6a312
Fix model online check for BongaCams
2019-06-02 16:51:07 +02:00
0xboobface
43cfea36de
Wait a few seconds after a problem (404,403) with the HLS playlist occured
2019-06-01 17:27:59 +02:00
0xboobface
25770111da
Delete recordings, which have a size of 0
2019-06-01 17:27:16 +02:00
0xboobface
c0167155f3
Automatically delete empty recordings
2019-06-01 16:35:57 +02:00
0xboobface
501f685626
Remove debug output
2019-06-01 16:12:36 +02:00
0xboobface
ebe9d0cf5e
Fix remaining problems with remote recording
2019-06-01 15:33:47 +02:00
0xboobface
9302dffd7f
Set version to 2.0.0
2019-06-01 15:32:47 +02:00
0xboobface
f11fcf7ca1
Rewrite recording code for remote recording
2019-06-01 12:12:46 +02:00
0xboobface
0f3d0b6337
Rewrite recording code for local recording
...
Remote recording is TBD
2019-05-31 20:00:07 +02:00
0xboobface
f7ac97c683
Implement interface changes
2019-05-11 15:12:48 +02:00
0xboobface
ca8e0a269e
Remove caches from Chaturbate code
...
- Remove caches from the Chaturbate class
- Move all model related code from Chaturbate to ChaturbateModel
- Use a User-Agent string in all HTTP requests
2019-05-11 15:10:42 +02:00
0xboobface
35c8378d88
Add mechanism to restrict the number of requests
...
Flirt4Free is finnicky with the amount of requests you can do. So we use
a mechanism to only allow 2 requests at a time and a cooldown of 500 ms
between requests.
2019-05-11 15:03:15 +02:00
0xboobface
6c9bff56fc
Revert "Remove online check for currently running recordings"
...
This reverts commit e4ab0873bc
.
2019-05-11 13:31:09 +02:00
0xboobface
77fa7eba40
Don't start recordings, if the recorder has been shut down
2019-04-21 16:11:03 +02:00
0xboobface
ee3ae3ef43
Add logging for unexpected errors
2019-04-21 15:05:13 +02:00
0xboobface
1b129ebd41
Add suffix parameter to getFileForRecording
...
This allows different download types to support different file types
2019-04-21 12:42:48 +02:00
0xboobface
0b7eeca5f7
Fix: Post-Processing for split recordings
2019-04-20 22:01:53 +02:00
0xboobface
c1bbce7bcd
Move UnknownModel to its own class
2019-04-20 21:49:23 +02:00
0xboobface
33c4468d1b
Merge branch 'master' into dev
2019-04-20 16:06:17 +02:00
0xboobface
f4b7141a63
Increase version to 1.21.1
2019-04-20 16:03:04 +02:00
0xboobface
c17fe9c173
Fix: Check for empty playlists used the wrong tag
...
Use #EXTINF to check, if a playlist has entries instead of #EXT-X-STREAM-INF, which was accidentally used.
This tag only occurs in master playlists.
2019-04-20 15:54:54 +02:00
0xboobface
133afc2475
Merge branch pprefactor
2019-04-20 15:24:43 +02:00
0xboobface
85411fea2e
Handle empty playlists more gracefully
...
Check, if a playlist is empty, before parsing it with open-m3u8. If it
is empty, return an empty SegmentPlaylist instead of throwing a
ParseException
2019-04-20 14:39:44 +02:00
0xboobface
b854455f8a
Increase version to 1.21.0
2019-04-20 14:27:01 +02:00
0xboobface
f170ce2b07
Improve logging
2019-04-20 14:26:31 +02:00
0xboobface
3cd341d88e
Set affiliate link
2019-04-20 12:50:27 +02:00
0xboobface
6e6597d372
Move post-processing from LocalRecorder to Download
2019-04-20 11:49:41 +02:00
0xboobface
4bc92a9dda
Remove debug output
2019-04-18 20:21:09 +02:00
0xboobface
2d048369a1
Fix JSON exception in isOnline
2019-04-17 14:37:47 +02:00
0xboobface
204eb99b29
Implement follow/unfollow for Flirt4Free
2019-04-16 19:51:57 +02:00
0xboobface
8f5c7ac9c4
Implement login and token balance
2019-04-15 19:17:41 +02:00
0xboobface
50c38d16a7
Implement login for Flirt4Free
2019-04-15 19:16:04 +02:00
0xboobface
8910dd8c4a
Sort fields in Settings by name
2019-04-15 18:19:34 +02:00
0xboobface
1700eeecf5
Implement search for Flirt4Free
2019-04-15 17:42:20 +02:00
0xboobface
94460d1e94
Implement "add by name" and "add by url"
2019-04-15 16:39:09 +02:00
0xboobface
f1d11c07b5
Merge branch 'dev' into flirt4free
2019-04-15 16:02:35 +02:00
0xboobface
8eb5f3f33d
Set version to 1.20.0
2019-04-14 20:38:32 +02:00
0xboobface
15bfe0f44f
Add basic functionality for Flirt4Free
2019-04-12 21:57:53 +02:00
0xboobface
e4ab0873bc
Remove online check for currently running recordings
...
For models, which are currently recorded, a online check is not
necessary. INstead we can assume, that the model is online and continue
with the next one
2019-04-12 21:57:32 +02:00
0xboobface
ca2ceb7f43
Add support for HLS AES encryption
2019-04-12 19:33:18 +02:00
0xboobface
6c6fadd742
Set isOnline to false, of the model is not online
2019-04-10 14:36:24 +02:00
0xboobface
601669fdd6
Added menu entry to ignore models
...
Ignored models are not displayed in the thumb overview tab. This is
useful, if you don't like a model and want to get rid of it for good
2019-04-07 18:43:06 +02:00
0xboobface
458e05d2b4
Add notes column to recorded models tab
2019-04-07 18:11:27 +02:00
0xboobface
2a74761c54
Make sure the playlist is not empty when checking the online state
2019-04-07 12:03:00 +02:00
0xboobface
38d65c4b7d
Remove test class
2019-04-04 19:11:03 +02:00
0xboobface
73221ce881
Set version to 1.19.1
2019-04-04 19:00:49 +02:00
0xboobface
3e4ad5272b
Replace deprecated calls
2019-04-04 18:58:45 +02:00
0xboobface
7ffa41944c
Fix online check for BongaCams
...
The online check now consists of three steps: 1. check, if the model's
state is online on its profile page. 2. check, if the room status is
public with getRoomData 3. check, if the stream playlist is available
2019-04-04 18:07:19 +02:00
0xboobface
335233f473
Replace EvictingQueue with own implementation
...
For some unknown reason the EvictingQueue didn't evict or evicted only
partially. Nevertheless it caused an OutOfMemoryError.
2019-03-21 14:51:52 +01:00
0xboobface
1dd432dbd9
Add base URL setting for Bongacams
2019-03-05 17:01:42 +01:00
0xboobface
a249be01c7
Fix: Adjust Streamate search code to new JSON format
...
Streamate has changed the JSON response for the search. This change
adjusts our code to handle that new format.
2019-02-22 13:42:44 +01:00
0xboobface
37fc341767
Remove debug log
2019-02-20 13:47:34 +01:00
0xboobface
6dbdac6df5
Fix json exception in online check for BongaCams
2019-02-20 13:44:56 +01:00
0xboobface
14b2911651
Increase version to 1.19.0
2019-02-19 18:57:40 +01:00
0xboobface
11f0dfde00
Added comment for PP improvements
2019-02-19 18:53:33 +01:00
0xboobface
e1eeb830da
Add getSanitizedName to Model
...
This method provides returns a name, which is safe to use with
filesystem I/O. Fc2Model returns the model ID for this.
2019-02-19 15:28:52 +01:00
0xboobface
75a625bbe0
Improve deleteIfTooShort method
...
If a directory does not exist, it returns true. If the directory is
empty, it deletes the directory and empty parent directories and returns
true.
2019-02-13 22:07:34 +01:00
0xboobface
27dac97384
Improve handling of postprocessing
2019-02-13 12:24:04 +01:00
0xboobface
351560079b
Add concurrent recordings setting to settings tab
2019-02-05 15:25:56 +01:00
0xboobface
097fb251cb
Add getCurrentlyRecording to recorder
...
This method returns the models, which are currently recorded. It is
implemented as default method, so that LocalRecorder and RemoteRecorder
don't have to implement the same logic.
2019-02-05 15:07:56 +01:00
0xboobface
76f4583ebc
Rename Recorder.isRecording to Recorder.isTracked
2019-02-05 14:45:44 +01:00
0xboobface
198a9c6893
Rename Recorder.getModelsRecording to Recorder.getModels
2019-02-05 14:44:21 +01:00
0xboobface
2dd8100a97
Add setting to limit the number of concurrent active recordings
2019-02-05 14:41:31 +01:00
0xboobface
39679f3162
Improve exception handling and logging for the playlist generation
2019-02-05 13:38:09 +01:00
0xboobface
80e577db7c
Add menu entry to regenerate the playlist
2019-01-31 15:07:42 +01:00
0xboobface
6e58dd6be5
Implement follow/unfollow for BongaCams
2019-01-29 16:28:07 +01:00
0xboobface
4f541c0570
Increased version to 1.18.0
2019-01-29 14:25:54 +01:00
0xboobface
e7feaad11c
Merge branch 'dev' into fc2
2019-01-29 13:05:43 +01:00
0xboobface
2fe6ec0e8f
Fix #156
...
Make sure, that the tray icon is created only once. Also move the
notification methods from OS to DesktopIntegration.
2019-01-28 17:26:53 +01:00
0xboobface
9f13a54eb6
Remove misleading log message
2019-01-28 16:20:07 +01:00
0xboobface
8e2abd2f11
Implement createModelFromUrl for FC2Live
2019-01-28 14:44:45 +01:00
0xboobface
626d13f87a
Implement createModelFromUrl
2019-01-28 13:32:42 +01:00
0xboobface
df38ed3027
Sanitize name before creeating a model object
...
Names can contain '/' on FC2Live, which messes with the directory
structure of recordings
2019-01-27 15:18:19 +01:00
0xboobface
ba0c456f19
Reduce log level for FC2Live websocket messages to TRACE
2019-01-27 15:17:30 +01:00
0xboobface
76c5c2e6c6
Remove log message
2019-01-27 14:10:45 +01:00
0xboobface
70a9d65e48
Fix login for FC2Live
...
FC2Live sends cookies with value "deleted" to invalidate previously set values. In the same request
they send new values, too. That confused OkHttp. We now use a custom cookie jar for FC2Live, which
ignores cookies with the value "deleted"
2019-01-27 14:05:45 +01:00
0xboobface
0f51be96c0
Implement FC2Live downloads for the server
2019-01-24 20:24:09 +01:00
0xboobface
16752b892c
Merge branch 'dev' into fc2
...
# Conflicts:
# common/src/main/java/ctbrec/sites/jasmin/LiveJasminHttpClient.java
2019-01-24 19:16:52 +01:00
0xboobface
a91819c2ca
Extend the recording name to include seconds and milliseconds
...
This is necessary, because there are models, who stream on different
sites with the same name as mentioned in #141 . In that case it can
happen that a recording for each site would be started within the same
minute and one recording would overwrite the other.
2019-01-24 19:00:02 +01:00
0xboobface
2c67b0b75c
Merge branch 'jasmin' into dev
2019-01-24 15:52:38 +01:00
0xboobface
aa093c0ec1
Delete all LiveJasmin cookies, if we are guests
2019-01-24 15:47:26 +01:00
0xboobface
0417fd6bfb
Remove guest session cookies on start for LiveJasmin
2019-01-24 15:41:47 +01:00
0xboobface
beeaca4beb
Implement login and follow/unfollow
2019-01-24 15:24:05 +01:00
0xboobface
6bb6637683
Remove guest session cookies on start for LiveJasmin
2019-01-23 18:27:34 +01:00
0xboobface
16fdee2a2c
Merge branch 'dev' into fc2
...
# Conflicts:
# client/src/main/java/ctbrec/ui/ExternalBrowser.java
2019-01-23 17:56:20 +01:00
0xboobface
e8572434a9
Set version to 1.17.1
2019-01-23 17:41:03 +01:00
0xboobface
44bc5d02aa
Add setting to change the base URL for LiveJasmin
...
This setting is for users, which are blocked for the main domain, like
users behind the great chinese wall.
2019-01-23 16:25:02 +01:00
0xboobface
9bfd15b35e
Use a different way to retrieve the master playlist
...
@M1h43ly posted URLs in #153 , which work without being logged in and
even seem to support HD streams much better.
2019-01-23 16:22:36 +01:00
0xboobface
c8ffdbe616
Send heartbeat every now and again
...
The heartbeat has to sent every now and again to keep the stream going.
Otherwise you will get a 403 after a few minutes when trying to access
the playlist.
2019-01-23 14:14:14 +01:00
0xboobface
19afa9ce79
Remove Fc2WebSocketClient
...
This is now handled in Fc2Model
2019-01-23 14:12:01 +01:00
0xboobface
64c82748dc
Count the websocket uses wth AtomicInteger
2019-01-22 22:42:46 +01:00
0xboobface
fc6aeff94a
Implemt special player handling for fc2live
2019-01-21 17:58:59 +01:00
0xboobface
55fc6729f8
Merge branch 'dev' into fc2
...
# Conflicts:
# client/src/main/java/ctbrec/ui/CamrecApplication.java
# client/src/main/java/ctbrec/ui/SiteUiFactory.java
2019-01-20 13:51:04 +01:00
0xboobface
43ef2bdf67
Add setting to disable playlist generation on the server
...
Implementing #142 .
This has feature has the disadvantage, that the recording is always detected as still
recording, because the finished state is assumed by the existence of the playlist file.
2019-01-20 13:35:44 +01:00
0xboobface
11f2a3ef8d
Increase version to 1.17.0
2019-01-19 16:06:50 +01:00
0xboobface
ce839ee222
Implemented tipping for LiveJasmin
...
Add new class, which opens a chat websocket (relay server) and sends a tip message
2019-01-18 18:57:16 +01:00
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