0xboobface
efbae57113
Set webengine user dir to child of config dir
2018-10-30 21:10:42 +01:00
0xboobface
f2832940f1
Move CokkieJarImpl to io package
2018-10-30 21:09:46 +01:00
0xboobface
30add6aa3f
Fix bug in cookie update code of CookieJar
2018-10-30 21:08:37 +01:00
0xboobface
3d245d6515
Add buttons to follow and open in browser to show tab
2018-10-30 19:07:10 +01:00
0xboobface
b476c452ad
Merge branch 'dev' into camsoda
...
Conflicts:
src/main/java/ctbrec/Settings.java
src/main/java/ctbrec/recorder/server/HttpServer.java
src/main/java/ctbrec/ui/CamrecApplication.java
src/main/java/ctbrec/ui/ThumbCell.java
2018-10-30 19:06:20 +01:00
0xboobface
b19ea01ce7
Only do initial login if credentials are available
2018-10-30 18:24:40 +01:00
0xboobface
0c9fc5cba6
Fix JSON parse exception
2018-10-30 15:57:44 +01:00
0xboobface
007ed19d97
Add more tabs
...
Add tabs for male and couples
2018-10-30 15:57:24 +01:00
0xboobface
c445e48d6d
Don't try to log in twice
2018-10-30 15:24:02 +01:00
0xboobface
7f3bedd3a1
Clean up code
2018-10-29 23:25:50 +01:00
0xboobface
c8e3db4021
Merge branch 'dev' into cam4
2018-10-29 22:38:27 +01:00
0xboobface
97e7466352
Fix UI freeze caused by OnlineMonitor
...
The lock to prevent concurrent access to the list models caused
the app to freeze, if the models list contained many models, because
the OnlineMonitor would block access until it checked the online
state of every model.
2018-10-29 22:30:15 +01:00
0xboobface
2ffdbfa71a
Add followed tab for Cam4
2018-10-29 21:53:41 +01:00
0xboobface
dab3466cf6
Simplify login method
2018-10-29 21:53:15 +01:00
0xboobface
4d1e841448
Improve login success check
2018-10-29 18:12:52 +01:00
0xboobface
936984c71d
Add window icon to Cam4 login dialog
2018-10-29 17:57:14 +01:00
0xboobface
43cb005fcd
Add login dialog for Cam4
...
The login dialog uses a WebView to load the login form from cam4.com
Username and password get filled in by ctbrec, the user has to solve
the captcha. Afterwards all cookies (especially the session cookie)
are extracted from the webview and transfered to the OkHttp client,
so that it can be used for further requests.
2018-10-29 17:36:58 +01:00
0xboobface
64beb44316
Fix typo in log statement
2018-10-29 13:51:08 +01:00
0xboobface
dc6b514d8f
Disable follow/unfollow for the time being
2018-10-29 13:49:04 +01:00
0xboobface
8fd09fd521
Implemented followed tab for CamSoda
2018-10-28 21:23:58 +01:00
0xboobface
a841457a90
Add HD tab
2018-10-27 23:28:08 +02:00
0xboobface
88d8430f98
Added sleep to resolution update task
...
...to throttle the number of request fired in a small amount of time
2018-10-27 23:27:44 +02:00
0xboobface
e97b417480
Set backbround of ThumbCell to lightgray
2018-10-27 22:32:15 +02:00
0xboobface
34f443c6a9
First addition for Cam4
2018-10-27 22:32:07 +02:00
0xboobface
8287d04396
Set playlist parsing mode to lenient
2018-10-27 22:30:17 +02:00
0xboobface
7442ddd3e4
Show thumb, if offline_picture is not available
...
Tweak the insets
2018-10-27 18:50:29 +02:00
0xboobface
07864dc10a
Add Camsoda tab with upcoming shows
2018-10-27 18:40:24 +02:00
0xboobface
d4bff345a1
Add Camsoda to sites in HttpServer
2018-10-26 23:01:17 +02:00
0xboobface
a31bad7466
Set backbround of ThumbCell to lightgray
2018-10-26 16:13:44 +02:00
0xboobface
209ec64e3d
Merge branch 'dev' into camsoda
2018-10-26 14:33:33 +02:00
0xboobface
4e0fb6aaf0
Ignore models for disabled sites in LocalRecorder
2018-10-26 14:16:17 +02:00
0xboobface
ebbfacd802
Complete json parsing
2018-10-26 01:55:08 +02:00
0xboobface
60494a09fd
Sort by camsoda sort value
2018-10-26 01:23:07 +02:00
0xboobface
e940a81d41
Fix height of background etc
2018-10-26 01:22:49 +02:00
0xboobface
6ca7d43069
Implemented camsoda
2018-10-26 01:03:13 +02:00
0xboobface
6be09079a3
Improve logging
2018-10-26 00:59:14 +02:00
0xboobface
02b50f61c5
Merge branch 'dev' into camsoda
2018-10-25 20:11:53 +02:00
0xboobface
5cd8ae3cff
Add possibility to disable sites
...
Sites can be disabled in the settings, so that they don't get
initialized on start. The UI is not created for them aswell.
2018-10-25 20:11:25 +02:00
0xboobface
9f9d726e5c
Add site Camsoda
...
Add new package and classes for camsoda.com
2018-10-25 16:19:47 +02:00
0xboobface
b4b3e7e910
Improve log statement
2018-10-25 12:56:32 +02:00
0xboobface
4e1c7f7189
Add ColumnConstraints to split up space 50/50
2018-10-25 12:42:02 +02:00
0xboobface
f0154857d9
Add mechanisms to have credentials/settings for each site
...
Each site can now provide its own configuration panel. For
Chaturbate and MyFreeCams these panels contain input fields
for the user credentials.
2018-10-25 12:27:46 +02:00
0xboobface
7e6f5bbc2c
Add log statement
2018-10-25 10:55:24 +02:00
0xboobface
91a41d446b
Add trace log statement for arriving NULLs
...
This helps to see, if the websocket is still healty
2018-10-25 10:50:57 +02:00
0xboobface
330bd29bbf
Improve logging for easier debugging
2018-10-25 10:49:56 +02:00
0xboobface
0a1cd11a64
Set follow menu entry to disabled instead of hiding it
2018-10-25 00:45:41 +02:00
0xboobface
54381c1676
Change filter in HD cams update service
...
Chnage the filter to include streams from wowza servers
2018-10-25 00:01:59 +02:00
0xboobface
0bcea4e753
Fix message parser
...
The parser didn't take into accoun, that the arriving string can
contain several messages
2018-10-24 23:40:53 +02:00
0xboobface
ff0d1b5eae
Fix live preview for wowza servers
2018-10-24 23:39:46 +02:00
0xboobface
0935343dc1
Replace System.out.prints with log messages
2018-10-24 20:04:33 +02:00
0xboobface
0085ce7ab8
Add marker interface to mark tabs, which contain followed models
2018-10-24 20:02:00 +02:00
0xboobface
b80fbd4c30
Add proper login and follow/unfollow to MyFreeCamsClient
2018-10-24 19:55:31 +02:00
0xboobface
9ef9841a19
Show dialog, if follow/unfollow didn't work
2018-10-24 19:51:29 +02:00
0xboobface
f0d2a720ab
Don't try to load followed models, if username is not set
2018-10-24 19:07:45 +02:00
0xboobface
306f07cf63
Display only online models in popular models tab
2018-10-24 18:00:10 +02:00
0xboobface
a4fd3034a8
Make sure the httpTimeout is at least 10 secs
2018-10-24 17:46:06 +02:00
0xboobface
3a181d61a8
Remove debug print statement
2018-10-24 16:52:30 +02:00
0xboobface
b6a31a258e
On error write a log of the recent received strings
...
When the websocket message parser throws an exception,
write a logfile with the 100 last recent strings, so
that we can debug, what happened.
2018-10-24 16:46:30 +02:00
0xboobface
ea038ae06b
Don't cover the description text with the recording indicator dot
2018-10-24 16:44:03 +02:00
0xboobface
45c17cfaa4
Implement live preview for MFC
2018-10-24 15:47:56 +02:00
0xboobface
5cb900fe55
Add a few comments to MFC data structures
2018-10-24 15:46:06 +02:00
0xboobface
f553ca3db5
Add online / offline selector on MFC Friends tab
2018-10-24 15:00:09 +02:00
0xboobface
617954928e
Rename FollowedTab to ChaturbateFollowedTab
2018-10-24 14:59:48 +02:00
0xboobface
a8ca3068ed
Add tab "Most Popular" to MyFreeCams
2018-10-24 14:02:41 +02:00
0xboobface
b87f828313
Fix possible ConcurrentModificationException
...
Access to the models list is now secured by a Lock
2018-10-24 13:06:58 +02:00
0xboobface
1032c9f94a
Fix update service in RemoteRecorder
...
Models now get their site assigned
2018-10-24 13:06:03 +02:00
0xboobface
e45b413a32
Fix proxy authentication
2018-10-23 23:08:01 +02:00
0xboobface
5b50372772
Disable username and password for SOCKS4
...
Authentication is only supported by SOCKS5 (I think :) ?!?)
2018-10-23 22:32:43 +02:00
0xboobface
ba4f7b6e1a
Fix SOCKS5 proxy authentication
...
SOCKS5 proxy authentication didn't work with the system properties
java.net.socks.username and java.net.socks.password. Instead we now
use the Authenticator class to provide a proxy authenticator.
2018-10-23 21:15:37 +02:00
0xboobface
c0e1490530
Make startup up of app make robust
...
Surround init of sites with try catch block, so that a failure
of a site does not tear down the whole app.
2018-10-23 21:13:32 +02:00
0xboobface
00782d4c17
Fix parsing of sequence numbers
...
Loosened playlist validator rules.
2018-10-23 17:19:23 +02:00
0xboobface
51f0883b64
Fix race condition
...
The streaming thread might end before the merge thread. In that
case the download would terminate before all data has been written.
2018-10-23 17:17:23 +02:00
0xboobface
5b39bf2a3e
Added hint text to input field on RecordedModelsTab
2018-10-23 17:15:52 +02:00
0xboobface
13d731c82a
Show MFC debug menu item only in DEV mode
2018-10-23 17:15:07 +02:00
0xboobface
1b1472540f
Change affiliate links to match the correct program
2018-10-23 17:14:31 +02:00
0xboobface
f4842fcf51
Improve MyFreeCamsClient
...
- Add watch dog to reestablish a broken connection
- Implemented creation of stream urls properly
- Add HD tab to display MFC HD streams
2018-10-23 14:02:20 +02:00
0xboobface
8e3d2fd565
Use the selected thumb size on all tabs
2018-10-22 18:22:26 +02:00
0xboobface
0f39aa6fc0
Add SiteTab class, which contains the tabs and a header
...
The header can contains things like, the token label
2018-10-22 18:21:47 +02:00
0xboobface
1ba003fe56
Add default constructor, so that deserialization works
2018-10-22 17:25:57 +02:00
0xboobface
15c1c6f62c
Add TabPane for each site
...
Each site is now accessible via a tab in the main tabpane.
The tab itself contains the different pages, which are specific
for the site (e.g. online, followed, featured etc.)
2018-10-22 17:25:34 +02:00
0xboobface
8c45c45055
Fix model loading
2018-10-22 16:07:52 +02:00
0xboobface
34d43fc637
Remove unused OnlineModelsTab
2018-10-22 14:04:39 +02:00
0xboobface
330e8701e0
Add tipping for MyFreeCams
2018-10-22 14:01:22 +02:00
0xboobface
7a5abfcbcc
Add description and tags to MyFreeCamsModel
2018-10-21 19:39:34 +02:00
0xboobface
8a3abd99af
Ignore case in filter bar
2018-10-21 19:19:12 +02:00
0xboobface
387661cfdf
Abstract more stuff in the site packages
2018-10-21 19:06:01 +02:00
0xboobface
362d90b29b
First implementation for MFC
...
Implemented Tabs are Online and Friends
2018-10-19 23:09:11 +02:00
0xboobface
54de1339fb
Add interfaces to abstract from camsite
...
This step should enable the application to handle different camsites.
At the moment only chaturbate is available, but others like MFC can
now be added. There might be still some things to do, like the settings
and HttpClient etc. But this is the first step to support more sites
than only Chatubate.
2018-10-17 14:11:04 +02:00
0xboobface
c7d55c6fe0
Remove unused import
2018-10-16 18:58:07 +02:00
0xboobface
95c0b24d3c
Include streamUrlIndex in ModelJsonAdapter
...
This is needed to save / transmit the user selected quality.
2018-10-16 18:44:44 +02:00
0xboobface
05ce02a7e8
Move chaturbate related classes to package ctbrec.sites.chaturbate
2018-10-16 18:41:18 +02:00
0xboobface
d68b530e60
Move OS class to package ctbrec
2018-10-16 18:39:25 +02:00
0xboobface
0aa6cad1c3
Move io related classes to ctbrec.io
2018-10-16 18:38:46 +02:00
0xboobface
26a73c3228
Rename ModelAdapter to ModelJsonAdapter
2018-10-16 18:34:41 +02:00
0xboobface
43c29758c4
Add interface Model to abstract from different implementations
...
Model is the common interface for the implementations of all sites.
At the moment only ChaturbateModel exists.
2018-10-16 18:32:54 +02:00
0xboobface
ddaaaa8a11
Clear the resolution queue when switching between online/offline
2018-10-09 15:22:32 +02:00
0xboobface
4ee7b6ee4d
Remove dead / commented code
2018-10-08 18:13:38 +02:00
0xboobface
37f720abc7
Fix ThumbCell colors
2018-10-08 17:52:37 +02:00
0xboobface
5adb980da6
Add CTBREC_DEV mode for all token related requests
...
If the env virable CTBREC_DEV is set to 1 all token related requests
are simulated and not actually send to chaturbate.
2018-10-08 15:23:20 +02:00
0xboobface
7e5360033b
Don't disable Chaturbate group in SettingsTab in server mode
...
It does not make sense to disable the Chaturbate group, since the
credentials are still needed to load the followed models and handle
tokens etc.
2018-10-08 14:58:31 +02:00
0xboobface
b65db45a05
Improve layout of UpdateTab
...
Tweak the margins between controls, so that it looks more balanced.
Make the changelog grow vertically to fill the tab, when the window
size changes.
2018-10-08 14:52:07 +02:00
0xboobface
e4eda35d02
Hide resolution tag, when mouse is hovering over ThumbCell
...
This is done, because the resolution tag might obscure the channel
description
2018-10-08 13:50:22 +02:00
0xboobface
be16c333e2
Fix: gui update from non-event thread
2018-10-07 18:27:46 +02:00
0xboobface
139bd7b1c9
Remove unused StackPanel
...
Embed the token panel into the header of the TabPane and remove the
previously used StackPane
2018-10-07 18:12:11 +02:00
0xboobface
c61a20de57
Make font size of control in token panel dependent on tab header height
2018-10-07 18:05:07 +02:00
0xboobface
18d5d3cf21
Update token label when tip has been sent
2018-10-07 15:27:46 +02:00
0xboobface
1338cfe09c
Show token balance and buy tokens button in top right corner
...
If the username is set in the settings, show the current token
balance and a buy token button in the top right corner of the main
tab.
2018-10-06 17:27:30 +02:00
0xboobface
175e547123
Add token buy button to donate tab
2018-10-06 13:38:32 +02:00
0xboobface
46301fc379
Add buttons to open Chaturbate to register a new account or buy tokens
2018-10-05 19:01:52 +02:00
0xboobface
c8eda9303b
Fix possible NPE in PlaylistGenerator
2018-10-05 18:31:17 +02:00
0xboobface
c614aebba7
Add possibility to send tips
...
The context menu now contains an entry to send tips. The menu opens
a dialog, which displays the current token balance and allows the input
of the number of tokens to tip.
2018-10-05 18:03:35 +02:00
0xboobface
ebf36cb594
Invalidate cache entries, so that we have the correct playlist URL
2018-10-03 16:42:42 +02:00
0xboobface
c91c9641f0
Clear threadpool queue when tab is changed
...
Clear the threadpool queue when the user switches between tabs, so that
the resolution tags, which are visible get updated earlier. Before, the
tags on tab the user is coming from were updated first and after that
the tags of the currently visible tab.
2018-10-03 15:47:04 +02:00
0xboobface
e61cff48f2
Invalidate cache entries, if model is public and resolution is 0
2018-10-03 15:05:39 +02:00
0xboobface
e6ce54e1d8
Make stream resolution selection dialog resizable
...
This seems to help a glich, where the dialog opens with a size only a
few pixels.
2018-10-03 15:05:07 +02:00
0xboobface
866e73ccff
Make loading of resolution more robust
...
The loading of the reosultion might fail, if the URL in StreamInfo is
outdated. Remove StreamInfo from cache in that case and retry.
2018-10-03 15:03:54 +02:00
0xboobface
0e41599ecb
Change log level
2018-10-03 14:29:10 +02:00
0xboobface
e22658b285
Add cache for StreamInfo and stream resolution requests
2018-10-03 13:39:03 +02:00
0xboobface
530ce820d5
Add radiobuttons to switch between online/offline models
...
CTB seems to split up the followed tab between online and offline
models. This change adds radiobuttons at the bottom of the followed tab
to switch between online and offline models.
2018-10-03 13:37:08 +02:00
0xboobface
4cbb855bc6
Update the online property of JavaFxModel
...
With the refactoring of the model / chaturbate class, the online
property of JavaFxModel was not updated anymore, so that the checkbox
in the table would never update.
2018-10-01 18:44:02 +02:00
0xboobface
1dadd6b94b
Use getName() instead of this.name
...
Use getName() whenever this.name is used, so that the wrapper
JavaFxModel works as intended.
2018-10-01 18:39:18 +02:00
0xboobface
88ee4bd157
Convert recording time relative to local timezone.
...
Convert recording time relative to local timezone and format it with
a easily readable format.
2018-10-01 18:07:51 +02:00
0xboobface
63a91b830d
Fix request throttling
...
Requests to Chaturbate were not throttled properly
2018-10-01 17:25:35 +02:00
0xboobface
3df1dbf911
Move Chaturbate class to Model
...
Chaturbate only contains Model related methods. So it makes sense to
encapsulate that functionality in Model.
Use guava LoadingCache in Chaturbate class to cache resolution and
StreamInfo requests. The entries expire after 5 minutes.
Add possibility to filter for public rooms only.
2018-10-01 17:09:27 +02:00
0xboobface
58dcc2e32d
Show state in the resolution tag, if the model is not online
...
If the model is not online and the resolution tag is shown, instead of
a zero, display the state (away, offline, private) and change the tag
color to red.
2018-09-29 16:55:24 +02:00
0xboobface
ab9f3c7df1
Merge branch 'master' into dev
2018-09-25 15:02:00 +02:00
0xboobface
b206a6caf7
Add key listener to unfollow by pressing the delete key
2018-09-25 15:00:45 +02:00
0xboobface
e6c38081d9
Add delete key listener to stop recording
2018-09-25 13:55:32 +02:00
0xboobface
fa745e9acc
Add item to context menu to stop recording in RecordingsTab
2018-09-25 13:35:12 +02:00
0xboobface
45e569e08a
Add multi-selection to ThumbOverviewTab
...
Clicking while holding shift now selects a ThumbCell and allows the
multiple ThumbCells at one. The actions in the context menu are applied
to all selected models. "copy url" is disabled, if multiple models are
selected, because that doesn't make sense.
2018-09-24 20:00:16 +02:00
0xboobface
cccb23906d
Remove debug logging
2018-09-19 13:43:56 +02:00
0xboobface
9c7f3c3fb4
Add parser input to log message, if the HLS playlist cannot be parsed
2018-09-19 13:29:04 +02:00
0xboobface
69c518d6d6
Change log level for deleted files to trace
2018-09-19 13:28:14 +02:00
0xboobface
dd316070a5
Set httpTimeout to 10000ms instead of 10ms
2018-09-10 17:44:42 +02:00
0xboobface
527f5f61ff
Add setting to split up the recording after x minutes
2018-09-10 13:45:05 +02:00
0xboobface
d0a28aee2f
Remove exludes from delete method
...
The excludes is not used anymore, since the whole merging mechanism
has been removed.
Add more debug statements for the different delete statements.
2018-09-09 14:40:08 +02:00
0xboobface
1c5bcaef35
Make sure the streamer is stopped
...
The streamer has to be stopped, when the download is stopped or
terminates to release the file handle of the recording and to stop
the merge thread
2018-09-09 14:30:21 +02:00
0xboobface
17901901f9
Ignore empty recording directories in LocalRecorder.getRecordings()
2018-09-08 21:56:18 +02:00
0xboobface
528d7336e1
Simplify integration of mpegts-streamer
...
Get rid of unneded thread complexity.
Use Queue.take() instead of poll() to avoid unnecessary looping and
the CPU load it causes.
2018-09-08 21:53:39 +02:00
0xboobface
7efbeac565
Adjust detection of recording state to new download mechanism
2018-09-08 00:37:15 +02:00
0xboobface
89a69fa797
Change the name of a merged recording to model-date.ts
2018-09-08 00:17:40 +02:00
0xboobface
8fcc8e0f91
Reimplement the download so that it uses the BlockingMultiMTSSource
...
This should create a transport stream file with proper continuity counters
and timestamps
2018-09-07 23:59:37 +02:00
0xboobface
cda1f25dc0
Remove segment mergers
...
Segment mergers are not needed anymore. Segments get merged during the
recording or during the download from the server.
2018-09-07 17:23:42 +02:00
0xboobface
7cc5764461
Add System property ctbrec.server.mode on server startup
...
This property gets set by the server, so that we know,
if we are running in server mode or not
2018-09-07 17:20:07 +02:00
0xboobface
3cf3f2751e
Improved logging message
2018-09-07 16:51:12 +02:00
0xboobface
51d48bbe87
Remove unnecessary throw clause
...
Rmove unnecessary throw IOException clause from the constructor of
InputStreamMTSSource
2018-09-07 16:50:24 +02:00
0xboobface
b91888f2ae
Improve logging messages
2018-09-07 16:46:49 +02:00
0xboobface
1d7dd0d0e8
Merge branch 'master' into mpegts-streamer
2018-09-07 15:20:06 +02:00
0xboobface
698ba72120
Integrate mpegts-streamer to save a recording to a single file
...
Integrate a modified version of mpegts-streamer (https://github.com/igilham/mpegts-streamer )
Add BlockingMultiMTSSource to mpegts-streamer, which is used to add new InputStreamMTSSources
online for each segment.
Remove all settings and methods, which are needed for segment merging.
2018-09-07 15:16:08 +02:00
0xboobface
a147c1b26c
Add check for JavaFX on start
...
On startup check if the application is running on the OpenJDK JVM. If that is the case,
check that JavaFX is available (because OpenJDK comes without JavaFX, it has to be installed
separately). If it is not available, log an error what to do and exit.
2018-09-07 14:31:18 +02:00