Commit graph

61 commits

Author SHA1 Message Date
Roland
f9f71fa908
Searching all zips when searching for Software. 2023-11-02 15:31:13 -06:00
Roland
472846038b
Auto-submitting global search input, but debouncing with 1 second. 2023-11-02 15:24:07 -06:00
Roland
badfe691de
Using css ellipsis for download rows. 2023-11-02 10:07:49 -06:00
Roland
38cddeff98
Adding software file filter. 2023-10-29 21:26:35 -06:00
Roland
15687e534a
Moving data from models to FileGroup.
* Ebook.creator -> FileGroup.author
* Video.viewed -> FileGroup.viewed
* Video.duration -> FileGroup.length
* Video.url -> FileGroup.url
* Archive.url -> FileGroup.url
2023-10-29 17:31:54 -06:00
Roland
ae9d188391
Adding FileGroup.published_date/author/etc. Creating script which converts a Singlefile to an Archive FileGroup files.
Parsing SingleFile datetime using dates.strpdate.

Adding timezone when no timezone info is available.

Installing python-dateutil to assist in handling diverse datetime strings.

Reworking refresh progress to use idempotency to display more accurate progress.  Only logging that files have been invalidated if they used to be indexed.

Clearing archives to force re-index.

Ignoring 'Unknown' author from PDF metadata. Using file_title when pdf metadata title is empty.
2023-10-23 18:09:08 -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
36083200e6
Creating Video.ffprobe_json column which stores ffprobe information about the video file. Creating find_corrupt_videos.py script which automatically re-downloads videos which do not have both video and audio streams. 2023-08-03 21:40:25 -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
03a2df217d
Zim/Kiwix (Wikipedia) feature
* A new zim module has been added, this module allows several things to interact with Zim files.
  * Allow searching of Zim files using libzim.
  * Allow downloading of Kiwix projects (wikipedia, wikibooks, etc) on a schedule which replaces the outdated files.
  * Creation of a new zim docker container which allows viewing of the Zim file contents.

* This commit also adds move/rename/mkdir features in the File Browser.
  * File tags are preserved when moving/renaming.
2023-07-10 21:30:40 -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
8faac3f3a1
Handling when file may not have title for headline. 2023-04-12 18:25:38 -06:00
Roland
29e562c520
Headlines can be displayed for file search results. 2023-04-12 18:09:10 -06:00
Roland
f33dc31111
Preventing double-search when order is changed on page switch. 2023-04-12 16:09:09 -06:00
Roland
a3321cf2fa
Adding Counting step to file refreshing. 2023-04-10 16:28:10 -06:00
Roland
d84e9726fe
Displaying total groups in modeling progress. 2023-04-10 15:56:25 -06:00
Roland
1016e32846
Counting files before refresh to display more helpful progress. 2023-04-10 15:48:25 -06:00
Roland
0b0e6346a7
Fixing bug where file search would issue twice on load. 2023-04-09 14:34:33 -06:00
Roland
bab10a0c96
Creating sort button which allows the user to select a sort order via modal. 2023-04-09 14:13:36 -06:00
Roland
7a855b57cc
Fetching tags globally every 30 seconds, rather than for each usage of Tags. 2023-04-05 14:48:13 -06:00
Roland
e9f820d483
Multiple tags can be selected. Restoring TagsDropdown functionality for Videos and Archives search. 2023-04-05 14:37:14 -06:00
Roland
4d5eba59f7
Changing primary button colors to violet. 2023-04-05 10:18:52 -06:00
Roland
44ebc876fa
Renaming examples to avoid grouping of pdf with ebooks. Reworking URLs for media files to avoid escaping url safe characters. 2023-03-29 13:46:39 -06:00
Roland
a7c4fd1119
Displaying progress bar during refresh. 2023-03-27 20:46:31 -06:00
Roland
550377580b
Displaying poster file in FileCard if the FileGroup has a poster file. 2023-03-25 21:17:17 -06:00
Roland
f3e2c0d7e8
Handling if data is empty in FileCard. 2023-03-25 21:06:15 -06:00
Roland
5615ce542d
Making example label a tag.
Tags can be created and deleted in UI.

Adding tag_file using id to avoid session error.

Using UTC in test.

Matching tag_names style in test.

Tag icon is displayed on file rows.

Archives, Videos and Files can be filtered by their tags.

Tags can be added and removed from UI.

Tags are displayed in VideoPlayer.

The tags of a file are returned in it's JSON.

Video favorites are converted to Favorite tag on channel config import.

Updating tests to match frontend usage.

PDF creator and modification time are displayed.

Reworking file search to use Video.__json__ for complex video relations.

Archives can be viewed.

Removing ebook.title.

Reworking alembic migration to be an upgrade rather than a replace.

Skipping test on circleci.

Clearing out video caption index only if extract_subtitles if off.

Channel tests pass.

Some video tests pass.

Missing videos can be found.  A video can be downloaded.

Orphaned files can be found.

Videos can be tagged.

Videos can be searched.

Videos can be modeled.

Converting some tests to use FileGroup.primary_path.

Adding archive and domains to alembic migration.

Testing cascading Archive titles.

Archives now uses FileGroup.

archive.lib tests pass.

Archive is partially converted to FileGroup.

Calculating FileGroup.primary file on refresh, rather than on select.

wrolpi tests pass.

Using FilesType to convert between str/pathlib.Path for FileGroup.files.

Using list of files in FileGroup.files instead of dictionary.

Storing files in dedicated FileGroup.files to avoid overwriting them.

Adding comment explaining CASE.

Not overwriting FileGroup.data on refresh if no change has been detected.

Removing File model in favor of FileGroup.data.

Adding typing to Files methods.

Files are indexed using the primary mimetype of the FileGroup.

files test_lib tests pass.

Removing file_group_file in favor of simple one-to-many relationship.

PDF files are indexed during refresh.

Adding Tag and TagFile to tag files with specific tags.

Only iterating when full_stem_ids has contents.

Testing that FileGroups are related to their Files.

Files and file_groups are created and linked.

Bump webpack from 5.75.0 to 5.76.1 in /app (#160)

Bumps [webpack](https://github.com/webpack/webpack) from 5.75.0 to 5.76.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.75.0...v5.76.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-25 17:54:41 -06:00
Roland
a655e44fb2
Using violet to represent Audio files. Adding audio to file search filters. 2023-02-22 12:41:41 -07:00
Roland
6de268909b
Using PreviewLink for file tables. 2023-02-15 21:30:12 -07:00
Roland
87b179eeb9
Renaming previewPath to previewFile to match existing path/file style. 2023-02-15 21:05:34 -07:00
Roland
a82917fdf7
Creating global FilePreview. 2023-02-15 20:58:07 -07:00
Roland
81d80238be
Fixing changes before merge.
Moving FilesRefreshButton and DirectoryRefreshButton out of browser file.

Moving file fetching tino FileBrowser.

Removing sub-folders from Files display when any parent folder is clicked.

Using closed captioning for vtt/srt file icon.

Using my own react-semantic-toasts-2 to use toasts in Node 18.

Fixing bug where more than the last page was displayed.

Upgrading yt-dlp.

Fixing sub-folder file selection.

Adding rowKey to SortableTable to give React a key for each row.

Renaming key to path.

Removing duplicate urls.

Unifying file modals.

Displaying modals for image and text files.

Handling refresh loading in FileBrowser.  Creating refreshing_directory flag.

Removing accidental commit.

Sorting by url_count.

Using SortableTable on Domains page.

Using SortableTable for Channels page.

Created new FileBrowser which allows browsing of files in the media directory.

Using Node 18 in pi-gen.

Creating new FileBrowser to replace outdated react-keyed-file-browser.

Returning mimetype with file list.

Do not display 'Do not download' on Channel download in Dashboard.

Allowing null channel download frequency so user can stop downloading a channel.

Bumping version for Node 18.

Using my own semantic-ui-offline to avoid pulling Google fonts.

Upgrading app docker container to use Node 18.  This requires the removal of several npm packages.  File browser will require re-write.  It now pulls fonts from Google, this will need to be fixed.

Testing DownloadsToggle click.

Testing trinary states of DownloadsToggle.

Installing @testing-library/user-event for testing App.
2023-02-08 21:18:51 -07:00
Roland
df0e04bd83
Updating react router usage to allow for testing. 2023-01-04 19:45:42 -07:00
Roland
5a0f961cd1
Preserving loading state of Refresh button by creating global event subscription functions. 2023-01-04 11:16:40 -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
1d4f61c7bd
Creating EbookRowCells to handle displaying ebook covers in list view. 2022-12-28 19:49:18 -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
9f22212a28
Creating cardTitleWrapper to handle breaking long title words. 2022-12-19 10:58:45 -07:00
Roland
875f6f2606
Creating ebook details modal for ebook card. Linking to epub reader when possible in ebook card. 2022-12-19 10:40:01 -07:00
Roland
4286d2414a
Adding epub.js to allow reading of ebooks in browser. 2022-12-17 14:42:46 -07:00
Roland
e3b2b97412
Linking to download for file browser. 2022-12-15 14:35:03 -07:00
Roland
336f732633
Linking to /download for files that should be downloaded. 2022-12-15 14:25:47 -07:00
Roland
6fcb992540
Storing example ebooks for testing.
Special handling of json mimetype for json files.

Moving types up to avoid overwriting mime.types.

Adding custom types to nginx to server ebooks better.

Displaying EBookCard correctly when ebook was not indexed correctly.

Global search can search for all ebooks (mobi/epub).

Testing when mimetype suffix is searched.

Adding eBook to global search filter list.  Opening mimetype search to match mimetypes that may not end with expected suffix.

Adding log warning to explain refresh speed.

Generating ebook covers after refresh.

Testing that another nearby book removes the cover.

Calibre covers can be discovered and associated with an ebook.

Handling if ebooklib is not yet installed.

Adding ebook table and modeler to allow searching the contents of epub files.

Marking all PDFs as un-indexed, so they will be indexed.

Replacing null characters in PDF text.

Testing PDFIndexer against example PDF file.

Installing PyPDF2 to extract text for PDFIndexer.
2022-12-11 12:36:53 -07:00
Roland
9ffe6ee3f6
Info JSON epoch is time of download, not time of upload. 2022-12-08 13:45:46 -07:00
Roland
d54b4a23d3
Using themed card for ImageCard. 2022-11-30 20:21:00 -07:00
Roland
595e82b354
Replacing drop shadow of Cards to emphasize color. 2022-11-30 20:13:54 -07:00
Roland
2d8a7cd3a8
Handling when no files are returned. 2022-11-05 15:24:06 -06: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
797bdc431c
Creating invert/clear buttons for SelectableTable. 2022-10-24 17:15:15 -06:00