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
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
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
7192856c87
Add setting for chaturbate base URL
2018-12-01 14:17:03 +01:00
0xboobface
52016c6a86
Make sure, the hlsUrl is available, when loading the master playlist
2018-12-01 00:16:44 +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
2c716d3c88
Set all occurrences of PlaylistParser to lenient mode
2018-11-29 13:42:23 +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
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
3b9927a591
Make search case insensitive
2018-11-25 23:01:14 +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
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
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
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
05d583bab5
Change folder structure to maven conventions
2018-11-18 22:49:05 +01:00