From c8b370b1dbeaf418f24d740be5eebca3f4271908 Mon Sep 17 00:00:00 2001 From: Andrew Torgesen Date: Sat, 4 Oct 2025 08:18:50 -0700 Subject: [PATCH 1/3] Add scanly package --- flake.lock | 17 ++++++++++ flake.nix | 3 ++ pkgs/default.nix | 4 +++ pkgs/python-packages/scanly/default.nix | 42 +++++++++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 pkgs/python-packages/scanly/default.nix 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..40e65b972 --- /dev/null +++ b/pkgs/python-packages/scanly/default.nix @@ -0,0 +1,42 @@ +{ 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)"; + }; +} From d06a88ea669105e55e32f49358906fea5c9160a6 Mon Sep 17 00:00:00 2001 From: "goromal (bot)" Date: Sat, 4 Oct 2025 15:19:57 +0000 Subject: [PATCH 2/3] Lint format --- pkgs/python-packages/scanly/default.nix | 27 +++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/pkgs/python-packages/scanly/default.nix b/pkgs/python-packages/scanly/default.nix index 40e65b972..3498bb5bf 100644 --- a/pkgs/python-packages/scanly/default.nix +++ b/pkgs/python-packages/scanly/default.nix @@ -1,5 +1,5 @@ -{ lib, python, buildPythonPackage, fetchPypi, requests, watchdog, urllib3, tqdm, plexapi, python-dotenv -, psutil, pkg-src }: +{ lib, python, buildPythonPackage, fetchPypi, requests, watchdog, urllib3, tqdm +, plexapi, python-dotenv, psutil, pkg-src }: let tmdbv3api = buildPythonPackage rec { version = "1.9.0"; @@ -17,22 +17,23 @@ in buildPythonPackage rec { src = pkg-src; - propagatedBuildInputs = [ requests watchdog tmdbv3api tqdm psutil plexapi python-dotenv ]; + 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 -''; + 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"; From 34010626a574af2efb2e2e73aafda7ef1cdb6511 Mon Sep 17 00:00:00 2001 From: Andrew Torgesen Date: Fri, 10 Oct 2025 19:24:19 -0700 Subject: [PATCH 3/3] wip --- .gitignore | 1 + 1 file changed, 1 insertion(+) 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