diff --git a/.gitignore b/.gitignore index 8189ca547..cd104528d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ result* build/* *.log .nixos-test-history +scan_history.db diff --git a/flake.lock b/flake.lock index a852b9e48..be7cb2269 100644 --- a/flake.lock +++ b/flake.lock @@ -658,6 +658,7 @@ "quad-sim-cpp": "quad-sim-cpp", "rankserver-cpp": "rankserver-cpp", "rcdo": "rcdo", + "scanly": "scanly", "scrape": "scrape", "secure-delete": "secure-delete", "signals-cpp": "signals-cpp", @@ -672,6 +673,22 @@ "xv-lidar-rs": "xv-lidar-rs" } }, + "scanly": { + "flake": false, + "locked": { + "lastModified": 1754857508, + "narHash": "sha256-lj8oDCoJhV18eZfQ7Tq/K78E5o5W2/oLL/bdxTwj158=", + "owner": "amcgready", + "repo": "Scanly", + "rev": "092b3ff699529f1ba172f0fae05767dbf2878af9", + "type": "github" + }, + "original": { + "owner": "amcgready", + "repo": "Scanly", + "type": "github" + } + }, "scrape": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 3c709c9f3..0c9372395 100644 --- a/flake.nix +++ b/flake.nix @@ -115,6 +115,9 @@ rcdo.url = "github:goromal/rcdo"; rcdo.flake = false; + scanly.url = "github:amcgready/Scanly"; + scanly.flake = false; + scrape.url = "github:goromal/scrape"; scrape.flake = false; diff --git a/pkgs/default.nix b/pkgs/default.nix index b9afde9c7..7a4de0a6f 100755 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -116,6 +116,9 @@ let (pySelf.callPackage ./python-packages/python-dokuwiki { pkg-src = flakeInputs.python-dokuwiki; }); + scanly = addDoc (pySelf.callPackage ./python-packages/scanly { + pkg-src = flakeInputs.scanly; + }); book-notes-sync = addDoc (pySelf.callPackage ./python-packages/book-notes-sync { pkg-src = flakeInputs.book-notes-sync; @@ -246,6 +249,7 @@ in rec { makepyshell = final.python311.pkgs.makepyshell; mavlog-utils = final.python311.pkgs.mavlog-utils; fqt = final.python311.pkgs.fqt; + scanly = final.python311.pkgs.scanly; ichabod = final.python311.pkgs.ichabod; norbert = final.python311.pkgs.norbert; geometry = final.python311.pkgs.geometry; diff --git a/pkgs/python-packages/scanly/default.nix b/pkgs/python-packages/scanly/default.nix new file mode 100644 index 000000000..3498bb5bf --- /dev/null +++ b/pkgs/python-packages/scanly/default.nix @@ -0,0 +1,43 @@ +{ lib, python, buildPythonPackage, fetchPypi, requests, watchdog, urllib3, tqdm +, plexapi, python-dotenv, psutil, pkg-src }: +let + tmdbv3api = buildPythonPackage rec { + version = "1.9.0"; + pname = "tmdbv3api"; + src = fetchPypi { + inherit pname version; + sha256 = "UExdprmcRRb/FgoBV2ES0JfyCcBTT5Q8FcS1bL2Swzs="; + }; + propagatedBuildInputs = [ requests urllib3 ]; + doCheck = false; + }; +in buildPythonPackage rec { + version = "1.0.0"; + pname = "scanly"; + + src = pkg-src; + + propagatedBuildInputs = + [ requests watchdog tmdbv3api tqdm psutil plexapi python-dotenv ]; + + doCheck = false; + + # ^^^^ TODO pkgshell . scanly --run "scanly" + patchPhase = '' + sed -i "/python_requires=/a \ entry_points={'console_scripts': ['scanly = src.main:main']}," setup.py + sed -i 's/packages=.*/packages=find_packages(),/' setup.py + sed -i 's/package_dir=.*//' setup.py + sed -i 's/from utils/from src\.utils/' src/main.py + sed -i "s|log_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs')|log_dir = 'logs'|g" src/main.py + sed -i "s|SCAN_HISTORY_FILE = os.path.join(os.path.dirname(__file__), 'scan_history.txt')|SCAN_HISTORY_FILE = 'scan_history.txt'|g" src/main.py + sed -i "s|SCAN_HISTORY_DB = os.path.join(os.path.dirname(__file__), 'scan_history.db')|SCAN_HISTORY_DB = 'scan_history.db'|g" src/main.py + sed -i "s|SCAN_HISTORY_FILE = os.path.join(os.path.dirname(__file__), 'scan_history.txt')|SCAN_HISTORY_FILE = 'scan_history.txt'|g" src/utils/scan_history_utils.py + sed -i "s|SCAN_HISTORY_DB = os.path.join(os.path.dirname(__file__), 'scan_history.db')|SCAN_HISTORY_DB = 'scan_history.db'|g" src/utils/scan_history_utils.py + ''; + + meta = with lib; { + homepage = "https://github.com/amcgready/Scanly"; + description = "Personal home media management tool."; + longDescription = "[Homepage](https://github.com/amcgready/Scanly)"; + }; +}