From 00fe799b8f46d8187dcb27ab01b1307dcd23bb15 Mon Sep 17 00:00:00 2001 From: Roland Date: Wed, 6 Mar 2024 17:41:04 -0700 Subject: [PATCH] User can select from/to years when searching files. Indexing doc and docx files. --- .circleci/config.yml | 10 +- alembic/versions/1c041aeee0fc_doc_indexer.py | 36 +++ app/src/App.js | 26 +- app/src/DashboardPage.js | 49 +++- app/src/api.js | 24 +- app/src/components/Common.js | 17 +- app/src/components/DatesSelector.js | 230 ++++++++++++++++++ app/src/components/FilePreview.js | 2 +- app/src/components/Files.js | 16 +- app/src/components/Search.js | 40 ++- app/src/components/Videos.js | 4 +- app/src/contexts/contexts.js | 7 + app/src/hooks/customHooks.js | 165 +++++++++---- .../config/package-lists/wrolpi.list.chroot | 1 + docker-compose.yml | 30 ++- docker/api/Dockerfile | 2 +- main.py | 3 + modules/map/lib.py | 44 +++- modules/map/test/test_lib.py | 19 ++ modules/videos/channel/lib.py | 4 +- modules/videos/downloader.py | 1 - modules/videos/video/lib.py | 22 +- pi-gen/stage2/04-wrolpi/01-packages | 1 + requirements.txt | 1 + test/example word.doc | Bin 0 -> 9216 bytes test/example word.docx | Bin 0 -> 4322 bytes wrolpi/common.py | 19 +- wrolpi/conftest.py | 14 ++ wrolpi/dates.py | 43 +++- wrolpi/files/api.py | 2 +- wrolpi/files/downloader.py | 5 +- wrolpi/files/indexers.py | 38 +++ wrolpi/files/lib.py | 37 +-- wrolpi/files/models.py | 17 +- wrolpi/files/schema.py | 3 + wrolpi/files/test/test_lib.py | 64 +++++ wrolpi/root_api.py | 20 +- wrolpi/schema.py | 3 + wrolpi/test/test_root_api.py | 13 +- wrolpi/vars.py | 7 + 40 files changed, 880 insertions(+), 159 deletions(-) create mode 100644 alembic/versions/1c041aeee0fc_doc_indexer.py create mode 100644 app/src/components/DatesSelector.js create mode 100644 test/example word.doc create mode 100644 test/example word.docx diff --git a/.circleci/config.yml b/.circleci/config.yml index acb7e620..0d5b1a30 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -73,7 +73,7 @@ jobs: steps: - checkout - run: sudo apt-get update - - run: sudo apt-get install -y ffmpeg + - run: sudo apt-get install -y ffmpeg catdoc - restore_cache: key: deps-3.8-{{ checksum "requirements.txt" }}-2 - run: @@ -100,7 +100,7 @@ jobs: steps: - checkout - run: sudo apt-get update - - run: sudo apt-get install -y ffmpeg + - run: sudo apt-get install -y ffmpeg catdoc - restore_cache: key: deps-3.9-{{ checksum "requirements.txt" }}-2 - run: @@ -127,7 +127,7 @@ jobs: steps: - checkout - run: sudo apt-get update - - run: sudo apt-get install -y ffmpeg + - run: sudo apt-get install -y ffmpeg catdoc - restore_cache: key: deps-3.10-{{ checksum "requirements.txt" }}-2 - run: @@ -154,7 +154,7 @@ jobs: steps: - checkout - run: sudo apt-get update - - run: sudo apt-get install -y ffmpeg + - run: sudo apt-get install -y ffmpeg catdoc - restore_cache: key: deps-3.11-{{ checksum "requirements.txt" }}-2 - run: @@ -181,7 +181,7 @@ jobs: steps: - checkout - run: sudo apt-get update - - run: sudo apt-get install -y ffmpeg + - run: sudo apt-get install -y ffmpeg catdoc - restore_cache: key: deps-3.12-{{ checksum "requirements.txt" }}-2 - run: diff --git a/alembic/versions/1c041aeee0fc_doc_indexer.py b/alembic/versions/1c041aeee0fc_doc_indexer.py new file mode 100644 index 00000000..718d891e --- /dev/null +++ b/alembic/versions/1c041aeee0fc_doc_indexer.py @@ -0,0 +1,36 @@ +"""Doc indexer. + +Revision ID: 1c041aeee0fc +Revises: d96a04eb2785 +Create Date: 2024-03-05 16:54:34.478974 + +""" +import os + +from alembic import op +from sqlalchemy.orm import Session + +# revision identifiers, used by Alembic. +revision = '1c041aeee0fc' +down_revision = 'd96a04eb2785' +branch_labels = None +depends_on = None + +DOCKERIZED = True if os.environ.get('DOCKER', '').lower().startswith('t') else False + + +def upgrade(): + # Re-index Word documents. + bind = op.get_bind() + session = Session(bind=bind) + session.execute( + """ + UPDATE file_group + SET indexed=false + WHERE mimetype in + ('application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document') + """) + + +def downgrade(): + pass diff --git a/app/src/App.js b/app/src/App.js index d4b881e0..cd82db13 100644 --- a/app/src/App.js +++ b/app/src/App.js @@ -10,7 +10,7 @@ import {MoreRoute} from "./components/Apps"; import {InventoryRoute} from "./components/Inventory"; import {ArchiveRoute} from "./components/Archive"; import {FilesRoute} from "./components/Files"; -import {StatusProvider} from "./hooks/customHooks"; +import {QueryProvider, StatusProvider} from "./hooks/customHooks"; import {MapRoute} from "./components/Map"; import {MediaContextProvider, mediaStyles, StatusContext, ThemeContext} from "./contexts/contexts"; import {Header, ThemeProvider} from "./components/Theme"; @@ -61,17 +61,19 @@ function HelpPage() { } function Root() { - return - - -
- -
- -