Commit graph

42 commits

Author SHA1 Message Date
Roland
8ea3ea8a67
Updating code to use new version of react-router. 2025-12-07 11:54:20 -07:00
Roland
269a1f6570 Reworking CollectionTable and CollectionEditForm. 2025-12-06 15:11:37 -07:00
Roland
3725f0f39d Adding edit button so user can edit downloads, currently supports videos and archives. 2025-08-06 13:03:32 -06:00
Roland
fe521c99f3
Adding edit form for Scrape downloader. 2024-12-03 12:44:38 -07:00
Roland
5621d47309
Video downloads have many more options. Downloads are migrated.
Storing video settings in session storage to help user start downloads consistently.

Applying channel tag name to new channels when download videos or channels.

Initializing map tiles when importing and resetting map.
2024-11-28 09:48:57 -07:00
Roland
0f232fd533
Moving FileGroups instead of refreshing files after they have been moved. 2024-10-16 18:56:25 -06:00
Roland
63738bd70f
Removing ChannelDownload in favor of Download.channel_id. 2024-10-16 18:55:54 -06:00
Roland
287beabb9c
Creating missing ChannelDownload when importing channels config. 2024-10-16 18:55:49 -06:00
Roland
7a784d7c45
Excluded URLs was not displayed correctly. 2024-10-16 18:55:48 -06:00
Roland
50d95dad19
Channels now have Channel.channel_downloads. A Channel can have many Downloads. 2024-10-16 18:55:46 -06:00
Roland
63381c1d77
Created download retry button. 2024-05-08 17:05:12 -06:00
Roland
58de8c7c5b
Upgrading Sanic and yt-dlp. Major changes occurred because Sanic changed how multiprocessing works.
Python 3.11 is now required, old versions were causing unpredictability in tests.  (Sanic does not yet
support 3.12)

Sanic has been upgraded to 23.6.0, which is the latest version that avoids this bug:
 https://github.com/sanic-org/sanic/issues/2921

New strategy for multiprocessing is to create all multiprocessing tools in one process, then fork
to other processes.  The previous strategy was to declare multiprocessing tools at the top of every
file, or wherever they were needed at import/creation.  Now all multiprocessing tools are attached to the
app.shared_ctx.  This means `api_app` is imported in many, many places.

This forced a change in how the DownloadManager works.  Previously, it would continually run
download workers which would pull downloads from a multiprocessing.Queue.  Now, a single worker checks
for new downloads and sends a Sanic signal.

Flags have been reworked to use the `api_app`.  I removed the `which` flag functionality because the
`which` are called at import and needed their own multiprocessing.Event.
2024-04-30 10:55:25 -06:00
Roland
ed1ed94beb
Replacing download count span with semanticui Label. 2024-04-16 10:14:47 -06:00
Roland
947135985d
Reformatting code. 2024-03-12 17:20:51 -06:00
Roland
00ab6401a0
Adding minimum width to ellipsis text for mobile screens. Adding button to clear active tags filter. 2023-11-04 15:57:57 -06:00
Roland
97b214d387
Adding Total Duration to EditChannel page. Handling when searching channel names, but channels have not been fetched yet. 2023-11-02 10:28:00 -06:00
Roland
badfe691de
Using css ellipsis for download rows. 2023-11-02 10:07:49 -06:00
Roland
b92a0d5e41
Rewording retry button to restart. 2023-09-07 21:47:43 -06:00
Roland
9a3796bcd0
Creating download retry button for recurring downloads. 2023-09-07 21:38:19 -06:00
Roland
619a88c429
Reworking default/empty/error states for all pages. Null is pending, undefined is error. 2023-09-07 20:13:36 -06:00
Roland
6f43f1daa0
Creating RecursiveHTMLDownloader which recursively searches for files in the provided URLs. 2023-08-30 20:19:32 -06:00
Roland
027d305abb
Moving download clearing bottons to bottom of table to match style. 2023-08-17 17:52:40 -06:00
Roland
e8e5b5727f
Creating Video.validated which is used by find_corrupt_videos.py to search. 2023-08-08 13:42:55 -06:00
Roland
59c4ab2502
Replacing icon property when icon has been requested.
Creating <APIButton/> which handles success/failure/pending during API calls.
2023-07-21 16:52:15 -06:00
Roland
387282b445
Adding my public gpg key.
Moving upload destination input out of drop Segment.

Disabling uploads when downloads are disabled.

Inverting labels for checkboxes in inverted modal.

Deleting file_groups which no longer contain the exclusive primary path.

Adding debug logging for all API errors.

Checking that upload output is not a directory.

Expanding nginx request size.

Adding docs to upload endpoint.

Using dot-circle icon for more image mimetypes.

Using Form.Field to make upload destination required.

Adding border to inverted Segments.

Many files can be uploaded in chunks.

Files can be uploaded, progress is displayed.

Showing white border around share QR code.

Displaying WROLPi colors for download icons.

Creating button to clear DirectorySearch.

Excluding channel/domain directories so other directories can be returned.

Ordering search results.

Ignoring when no channel is found only if we have a destination.

Limiting directory search results.

Displaying categories when searching destination directories.

Handling when live_chat.json file exists.

Allowing refresh of directory directly.

Logging which download was successful.

Removing timeout.

Creating index for directory names.

Sleeping to catch cancel.

Arbitrary files can be downloaded using the new FileDownloader.
2023-04-28 13:56:32 -06:00
Roland
ec8a095699
Using SButton for close buttons to avoid themeing. 2023-04-09 17:17:50 -06:00
Roland
c24353edf2
Showing 'now' when next_download time has been passed. 2023-04-02 12:19:15 -06:00
Roland
0689c03866
Displaying downloads link when user submits download. 2023-04-01 16:09:05 -06:00
Roland
55cf76a884
Requiring downloader name to be specified. 2023-04-01 15:34:46 -06:00
Roland
1812a1690f
Matching return style in all js. 2023-02-17 16:09:24 -07:00
Roland
2840f9215c
Separating Downloads tables. 2023-01-07 17:22:28 -07:00
Roland
c1bc72754a
Displaying placeholders when downloads are being fetched. 2023-01-06 09:24:36 -07:00
Roland
0621cd184d
Reworking empty-states for all pages and tables. Removing custom isEmpty in favor of lodash. 2023-01-04 09:14:33 -07:00
Roland
93f0e7494f
Creating Event and Flag systems. Events are used to send and display a toast to the App. Flags are used to signal if some action has been performed, or if a package is installed. 2022-12-23 16:04:09 -07:00
Roland
759169dd63
Fetching downloads after delete. 2022-11-13 14:36:13 -07:00
Roland
02124307e4
Downloads can be deleted. 2022-11-12 14:17:21 -07:00
Roland
dad276d6ec
Creating isEmpty function to check if dict/array have some contents. 2022-11-04 09:58:38 -06:00
Roland
5bf648001b
Adding useTitle to every function page. 2022-10-25 15:57:44 -06:00
Roland
e151020e9c
Adding pending Loader to recurring download rows. 2022-10-25 15:09:33 -06:00
Roland
7a1f6a9b1f
Converting download rows to use Loader when pending. 2022-10-25 15:06:52 -06:00
Roland
d28797326b
Showing error modal when clicking hotspot toggle on Docker. 2022-10-22 14:27:18 -06:00
Roland
335ad7ceb0
Splitting Admin components into admin directory. 2022-09-29 12:02:09 -06:00