HOWTO:
HOWTO:
### 1. nosdav.go - Main backend file for NosDAV
#### Functions:
- NewFs
: Initializes a new file system based on the provided NosDAV config.
- list
: Lists the files in the NosDAV backend.
- createDir
: Creates a new directory.
- removeDir
: Removes a directory.
- updateFile
: Updates or creates a new file.
- deleteFile
: Deletes a file.
- retrieveFile
: Retrieves a file from NosDAV.
---
### 2. identity.go - Handles Nostr identity-related functions
#### Functions:
- getNostrID
: Retrieves the NostrID for the user.
- validateNostrID
: Validates a given NostrID.
- generateNostrID
: Generates a new NostrID (if needed).
---
### 3. http.go - HTTP request handling for NosDAV
#### Functions:
- doGetRequest
: Executes a GET request to NosDAV.
- doPutRequest
: Executes a PUT request to NosDAV.
---
### 4. auth.go - Handles authentication for NosDAV
#### Functions:
- generateAuthHeader
: Generates the authentication header for NosDAV requests.
- signNostrEvent
: Signs a nostr event using the Schnorr signature scheme.
- validateAuthHeader
: Validates the received authentication header.
---
### 5. content.go - Handles content types and file-related operations
#### Functions:
- getContentType
: Determines the content type based on the file extension.
- readFile
: Reads the contents of a file.
- writeFile
: Writes contents to a file.
---
### 6. cors.go - Handles CORS for NosDAV
#### Functions:
- setCORSHeaders
: Sets the necessary CORS headers for NosDAV responses.
---
### 7. discovery.go - Handles discovery of user storage
#### Functions:
- discoverStorage
: Discovers user storage based on NostrID and other tags.
- storeURI
: Stores the base URI for user storage.
---
### 8. config.go - Manages configuration for the NosDAV backend
#### Functions:
- loadConfig
: Loads configuration for NosDAV from the rclone config file.
- saveConfig
: Saves configuration to the rclone config file.