Compare commits

...

2 Commits

Author SHA1 Message Date
Hazel Noack
a8bcb38618 implemented setting cache directory properly 2025-06-11 14:20:24 +02:00
Hazel Noack
df971afea4 properly exportet api 2025-06-11 14:12:11 +02:00
3 changed files with 31 additions and 15 deletions

View File

@ -1,8 +1,15 @@
import pathlib
from .connections import Connection, SilentConnection
from .cache import clean_cache, clear_cache, set_cache_directory, get_cache_stats
__name__ = "python_requests"
__folder__ = str(pathlib.Path(__file__).parent)
CACHE_DIRECTORY = "cache"
__all__ = [
"Connection",
"SilentConnection",
"clean_cache",
"clear_cache",
"get_cache_stats",
"set_cache_directory",
]

View File

@ -1,8 +1,7 @@
import argparse
import logging
from .connections import Connection, SilentConnection
from . import cache
from . import Connection, clean_cache, clear_cache, set_cache_directory, get_cache_stats, __folder__
def main():
@ -49,11 +48,13 @@ def cli():
format='%(asctime)s - %(levelname)s - %(message)s'
)
logging.debug("Debug logging enabled")
set_cache_directory("cache")
else:
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
set_cache_directory()
if hasattr(args, 'func'):
@ -65,7 +66,7 @@ def cli():
def handle_show_cache(args):
"""Handle the show-cache command"""
try:
file_count, db_count = cache.get_cache_stats()
file_count, db_count = get_cache_stats()
logging.info(f"Cache Statistics:")
logging.info(f" - Files in cache: {file_count}")
logging.info(f" - Database entries: {db_count}")
@ -75,7 +76,7 @@ def handle_show_cache(args):
def handle_clean_cache(args):
"""Handle the clean-cache command"""
try:
files_deleted, entries_deleted = cache.clean_cache()
files_deleted, entries_deleted = clean_cache()
logging.info(f"Cleaned cache:")
logging.info(f" - Files deleted: {files_deleted}")
logging.info(f" - Database entries removed: {entries_deleted}")
@ -88,7 +89,7 @@ def handle_clear_cache(args):
# Confirm before clearing all cache
confirm = input("Are you sure you want to clear ALL cache? This cannot be undone. [y/N]: ")
if confirm.lower() == 'y':
files_deleted, entries_deleted = cache.clear_cache()
files_deleted, entries_deleted = clear_cache()
logging.info(f"Cleared ALL cache:")
logging.info(f" - Files deleted: {files_deleted}")
logging.info(f" - Database entries removed: {entries_deleted}")

View File

@ -1,4 +1,4 @@
from typing import Optional, Tuple
from typing import Optional, Tuple, Union
from codecs import encode
from hashlib import sha1
from pathlib import Path
@ -7,13 +7,12 @@ import pickle
import sqlite3
from datetime import datetime, timedelta
from . import CACHE_DIRECTORY
from . import __name__
# SQLite database file path
CACHE_DIRECTORY = Path(f"/tmp/{__name__}")
DB_FILE = Path(CACHE_DIRECTORY, "cache_metadata.db")
# Initialize the database
def _init_db():
with sqlite3.connect(DB_FILE) as conn:
conn.execute("""
@ -24,9 +23,18 @@ def _init_db():
""")
conn.commit()
# Initialize the database when module is imported
def set_cache_directory(cache_directory: Optional[Union[str, Path]] = None):
global CACHE_DIRECTORY, DB_FILE
if cache_directory is not None:
CACHE_DIRECTORY = cache_directory
DB_FILE = Path(CACHE_DIRECTORY, "cache_metadata.db")
_init_db()
print(CACHE_DIRECTORY, DB_FILE)
Path(CACHE_DIRECTORY).mkdir(exist_ok=True, parents=True)
def get_url_hash(url: str) -> str:
return sha1(encode(url.strip(), "utf-8")).hexdigest()