Commit Graph

175 Commits

Author SHA1 Message Date
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 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 133afc2475 Merge branch pprefactor 2019-04-20 15:24:43 +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 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 15bfe0f44f Add basic functionality for Flirt4Free 2019-04-12 21:57:53 +02:00
0xboobface 6c6fadd742 Set isOnline to false, of the model is not online 2019-04-10 14:36:24 +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 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 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 6e58dd6be5 Implement follow/unfollow for BongaCams 2019-01-29 16:28:07 +01:00
0xboobface e7feaad11c Merge branch 'dev' into fc2 2019-01-29 13:05:43 +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 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 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 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 ffcdb84714 Disable tipping for the time being 2019-01-15 17:10:30 +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 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 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 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 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 6dd7de9762 Fix: BongaCams search fails with JSON exceptions 2018-12-17 18:10:55 +01:00
0xboobface eedb237923 Make sure, that the model ID is set 2018-12-17 17:22:21 +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 a0a083aaf6 Merge branch 'dev' into fc2
# Conflicts:
#	common/src/main/java/ctbrec/io/HttpClient.java
2018-12-17 13:05:11 +01:00
0xboobface 1e47432714 Add origin stream source only, if mp4-ws sources are available 2018-12-16 17:21:11 +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 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 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 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 be680a07f9 Map state password protected to private 2018-12-09 18:45:16 +01:00
0xboobface 2dc5fd4581 Add Event and EventReaction classes 2018-12-06 17:39:33 +01:00
0xboobface 093b36270a Return at least ONLINE / OFFLINE, if the state is UNKNOWN 2018-12-05 21:01:01 +01:00
0xboobface 1970f08700 Return UNKOWN, if state is null 2018-12-05 20:59:51 +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 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 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 da87a1ae39 Add log message which websocket server is used 2018-12-03 14:35:14 +01:00