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
9b1ca0963e
Reduce log severity for continuity errors to WARN
2018-09-10 18:17:42 +02:00
0xboobface
dba4aa0a02
Fix OutOfMemoryErrors
...
1. Catch exceptions thrown by ContinuityFixer and skip to the next
packet.
2. Restrict the queue size to 10 segments. Otherwise, if the download
is faster than the stream is written to hard disk, the queue builds
up with segments until the heap exceeds its maximum size
2018-09-10 17:52:11 +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
01aa04b3da
Catch exceptions in Stream.stop()
2018-09-09 19:23:42 +02:00
0xboobface
42186208bf
Fix typo in log message
2018-09-09 17:55:58 +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
455dea97d9
Try not to write to sink, if the streamer has been stopped
2018-09-09 14:28:29 +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
85618289d5
Remove dead code
2018-09-07 15:44:22 +02:00
0xboobface
5df0c25a9d
Organize imports
2018-09-07 15:43:59 +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
0xboobface
9ba0fd624f
Save and restore window size, location and maximized state
...
Save and restore window size, location and maximized state so that
the window opens in the exact same state as when it has been closed.
2018-09-05 14:24:22 +02:00
0xboobface
7d36586b04
Make thumbnail size configurable
...
Add combobox on the bottom of ThumbOverviewTab.
Add integer thumbWidth to the Settings to save and restore the selected
value between sessions. Set the selected value for all thumbnails on
all tabs.
2018-09-05 13:54:44 +02:00
0xboobface
22d32bcc64
Add possibility to switch the stream resolution for a recording
...
Add the possibility to switch the stream resolution for a model, which
already is recorded by the recorder. This makes it more convenient to
switch the resolution, if you already have a bunch of models in the
recorder list.
2018-09-04 16:50:38 +02:00
0xboobface
c80f81d937
Add comment and log statement
2018-09-04 16:27:55 +02:00
0xboobface
0cb4b3d9a4
Move stream resolution selection dialog to its own class
2018-09-04 14:55:48 +02:00
0xboobface
e33c6a3d94
Don't overwrite stream url index for a model on an update
...
When the manual selection of stream resolution is enabled, the index of
the selected stream is saved in the model object. Don't overwrite this
value, if the model objects get updated, so that the value is persistent
even between sessions.
2018-09-04 13:28:48 +02:00
0xboobface
79a1ccc011
Enable proxy authentication for SOCKS4 and HTTP
2018-08-30 13:18:19 +02:00
0xboobface
cd827a0cb8
Ignore empty recordings directories
2018-08-30 13:04:35 +02:00
0xboobface
cd5046b961
Add WebView to UpdateTab, which shows the chagelog
2018-08-29 14:27:21 +02:00
0xboobface
13c5bdfd40
Change labels in the merge settings
...
Change labels in the merge settings to make it clearer, that the merge
directory also affects the manual merge
2018-08-29 14:03:43 +02:00
0xboobface
154995a760
Add version number to window title
2018-08-29 14:02:16 +02:00
0xboobface
8d4ba6d513
Fix status switching between FINISHED and DOWNLOADING
...
Do not change the status from an update, if it is in the status
DOWNLOADING. Reason: The FINISHED status is overwritten with
DOWNLOADING, if the recording is downloading. But during the update of
the recordings, it gets reset with the FINISHED status from the server
until it is overriden again.
2018-08-28 17:16:44 +02:00
0xboobface
f30d13609b
Improve exception handling
...
Make sure, the status is reset to FINISHED, if something goes wrong
while downloading, so that the context menu is reactivated
2018-08-28 17:13:35 +02:00
0xboobface
1383199532
Rename generatingPlaylistProgress to progress
...
Rename generatingPlaylistProgress to progress, since it is used for
merging and downloading, too
2018-08-28 17:12:46 +02:00
0xboobface
89a1737536
Improved logging
2018-08-28 17:12:09 +02:00
0xboobface
4821ba42b8
Close http response in update checker
2018-08-28 15:22:34 +02:00
0xboobface
32e060ceb2
Add update check
...
Add update check, which checks the github API to retrieve the latest
version and opens a tab, if new update is available.
2018-08-28 14:48:00 +02:00
0xboobface
4c32dc84f5
Fix status and progress update in recordings table
...
Fix status and progress update in recordings table, which didn't work
correctly for the merge process.
2018-08-28 13:04:02 +02:00
0xboobface
4f1f9ce5d5
Introduce interface for SegmentMerger
...
Extract public methods of SegmentMerger to an interface, so that
different implementations are possible. This is a first try to see, if
an FFmpeg merger would work reliably.
2018-08-28 13:02:49 +02:00
0xboobface
431724ce14
Extract DevNull OutputStream to its own class
...
Extract DevNull to its own class, so that it can be used by other
classes.
2018-08-28 12:57:55 +02:00
0xboobface
3a718cc92c
Remove System.out.println
2018-08-27 18:41:53 +02:00
0xboobface
e09d0c35aa
Add proxy settings
...
Add titled pane to settings tab to configure a proxy. Assign the proxy
settings on start to the according System properties (see
https://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html#Proxies ),
so that they get picked up by okhttp, HttpUrlConnection etc.
2018-08-27 18:15:40 +02:00
ctbrechelper
4a48f9a844
Fix merge segments and keep segments with disabled auto merge
...
Disabled AutomergeKeepSegments will result in an automatic deletion of the files, so even when the user clicks "keep segments", they will be removed by the automergeKeepSegments flag
2018-08-27 11:27:14 +02:00
0xboobface
18b785811b
Fixed memory leak in ThumbOverviewTab
...
The filteredThumbCells list was never cleared and thus grew over time.
2018-08-16 17:20:58 +02:00
0xboobface
3620a305bf
The ImageView in ThumbCell is not cached anymore, because it does not
...
improve performance and uses up memory
2018-08-16 17:20:05 +02:00
0xboobface
ebe717f0e8
Made segment merger more robust
2018-08-16 13:46:39 +02:00
0xboobface
5efee697b2
Improved exception handling and logging
2018-08-16 13:41:36 +02:00
0xboobface
d7a9e22bc3
Handle empty playlists as invalid
2018-08-16 13:39:55 +02:00