mirror of
https://github.com/tcsenpai/pensieve.git
synced 2025-06-06 03:05:25 +00:00
feat: add default library and command shortcuts for it
This commit is contained in:
parent
7e43bc0861
commit
81ba2cd2d2
@ -762,5 +762,77 @@ def init():
|
||||
print("Initialization failed. Please check the error messages above.")
|
||||
|
||||
|
||||
@app.command("scan")
|
||||
def scan_default_library():
|
||||
"""
|
||||
Scan the screenshots directory and add it to the library if empty.
|
||||
"""
|
||||
# Get the default library
|
||||
response = httpx.get(f"{BASE_URL}/libraries")
|
||||
if response.status_code != 200:
|
||||
print(f"Failed to retrieve libraries: {response.status_code} - {response.text}")
|
||||
return
|
||||
|
||||
libraries = response.json()
|
||||
default_library = next(
|
||||
(lib for lib in libraries if lib["name"] == settings.default_library), None
|
||||
)
|
||||
|
||||
if not default_library:
|
||||
# Create the default library if it doesn't exist
|
||||
response = httpx.post(
|
||||
f"{BASE_URL}/libraries",
|
||||
json={"name": settings.default_library, "folders": []},
|
||||
)
|
||||
if response.status_code != 200:
|
||||
print(
|
||||
f"Failed to create default library: {response.status_code} - {response.text}"
|
||||
)
|
||||
return
|
||||
default_library = response.json()
|
||||
|
||||
# Check if the library is empty
|
||||
if not default_library["folders"]:
|
||||
# Add the screenshots directory to the library
|
||||
screenshots_dir = Path(settings.screenshots_dir).resolve()
|
||||
response = httpx.post(
|
||||
f"{BASE_URL}/libraries/{default_library['id']}/folders",
|
||||
json={"folders": [str(screenshots_dir)]},
|
||||
)
|
||||
if response.status_code != 200:
|
||||
print(
|
||||
f"Failed to add screenshots directory: {response.status_code} - {response.text}"
|
||||
)
|
||||
return
|
||||
print(f"Added screenshots directory: {screenshots_dir}")
|
||||
|
||||
# Scan the library
|
||||
print(f"Scanning library: {default_library['name']}")
|
||||
scan(default_library["id"], plugins=None, folders=None)
|
||||
|
||||
|
||||
@app.command("index")
|
||||
def index_default_library():
|
||||
"""
|
||||
Index the default library for memos.
|
||||
"""
|
||||
# Get the default library
|
||||
response = httpx.get(f"{BASE_URL}/libraries")
|
||||
if response.status_code != 200:
|
||||
print(f"Failed to retrieve libraries: {response.status_code} - {response.text}")
|
||||
return
|
||||
|
||||
libraries = response.json()
|
||||
default_library = next(
|
||||
(lib for lib in libraries if lib["name"] == settings.default_library), None
|
||||
)
|
||||
|
||||
if not default_library:
|
||||
print("Default library does not exist.")
|
||||
return
|
||||
|
||||
index(default_library["id"], force=False, folders=None)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app()
|
||||
|
@ -49,6 +49,7 @@ class Settings(BaseSettings):
|
||||
base_dir: str = str(Path.home() / ".memos")
|
||||
database_path: str = os.path.join(base_dir, "database.db")
|
||||
default_library: str = "screenshots"
|
||||
screenshots_dir: str = os.path.join(base_dir, "screenshots")
|
||||
|
||||
typesense_host: str = "localhost"
|
||||
typesense_port: str = "8108"
|
||||
|
@ -9,6 +9,8 @@ from screen_recorder.common import (
|
||||
take_screenshot,
|
||||
is_screen_locked,
|
||||
)
|
||||
from pathlib import Path
|
||||
from memos.config import settings
|
||||
|
||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
||||
|
||||
@ -51,12 +53,12 @@ def main():
|
||||
"--threshold", type=int, default=4, help="Threshold for image similarity"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--base-dir", type=str, default="~/tmp", help="Base directory for screenshots"
|
||||
"--base-dir", type=str, help="Base directory for screenshots"
|
||||
)
|
||||
parser.add_argument("--once", action="store_true", help="Run once and exit")
|
||||
args = parser.parse_args()
|
||||
|
||||
base_dir = os.path.expanduser(args.base_dir)
|
||||
base_dir = os.path.expanduser(args.base_dir) if args.base_dir else settings.screenshots_dir
|
||||
previous_hashes = load_previous_hashes(base_dir)
|
||||
|
||||
if args.once:
|
||||
|
Loading…
x
Reference in New Issue
Block a user