Documentation ¶
Overview ¶
Package camtypes is like the types package, but higher-level and contains Perkeep-specific types. It exists mostly to break circular dependencies between index, search, and schema.
Index ¶
- Variables
- func Err(key string) error
- type BlobMeta
- type Claim
- type ClaimPtrsByDate
- type ClaimsByDate
- type Discovery
- type Edge
- type EdgesToOpts
- type FileInfo
- type FileSearchResponse
- type ImageInfo
- type Location
- type LocationBounds
- type Longitude
- type Path
- type PermanodeByAttrRequest
- type PublishRootDiscovery
- type RecentPermanode
- type SearchErrorResponse
- type ShareImportProgress
- type SignDiscovery
- type StatusError
- type SyncHandlerDiscovery
- type UIDiscovery
- type VerifyResponse
Constants ¶
This section is empty.
Variables ¶
var ( ErrClientNoServer = addCamError("client-no-server", funcStr(func() string { return fmt.Sprintf("No valid server defined. It can be set with the CAMLI_SERVER environment variable, or the --server flag, or in the \"servers\" section of %q (see https://perkeep.org/doc/client-config).", osutil.UserClientConfigPath()) })) ErrClientNoPublicKey = addCamError("client-no-public-key", str("No public key configured: see 'pk-put init'.")) )
Functions ¶
Types ¶
type BlobMeta ¶
type BlobMeta struct { Ref blob.Ref Size uint32 // CamliType is non-empty if this blob is a Perkeep JSON // schema blob. If so, this is its "camliType" attribute. CamliType schema.CamliType }
BlobMeta is the metadata kept for each known blob in the in-memory search index. It's kept as small as possible to save memory.
type Claim ¶
type ClaimPtrsByDate ¶
type ClaimPtrsByDate []*Claim
func (ClaimPtrsByDate) Len ¶
func (cl ClaimPtrsByDate) Len() int
func (ClaimPtrsByDate) Less ¶
func (cl ClaimPtrsByDate) Less(i, j int) bool
func (ClaimPtrsByDate) Swap ¶
func (cl ClaimPtrsByDate) Swap(i, j int)
type ClaimsByDate ¶
type ClaimsByDate []Claim
func (ClaimsByDate) Len ¶
func (cl ClaimsByDate) Len() int
func (ClaimsByDate) Less ¶
func (cl ClaimsByDate) Less(i, j int) bool
func (ClaimsByDate) String ¶
func (cl ClaimsByDate) String() string
func (ClaimsByDate) Swap ¶
func (cl ClaimsByDate) Swap(i, j int)
type Discovery ¶
type Discovery struct { BlobRoot string `json:"blobRoot"` JSONSignRoot string `json:"jsonSignRoot"` HelpRoot string `json:"helpRoot"` ImporterRoot string `json:"importerRoot"` SearchRoot string `json:"searchRoot"` StatusRoot string `json:"statusRoot"` OwnerName string `json:"ownerName"` // Name of the owner. UserName string `json:"userName"` // Name of the user. // StorageGeneration is the UUID for the storage generation. StorageGeneration string `json:"storageGeneration,omitempty"` // StorageGenerationError is the error that occurred on generating the storage, if any. StorageGenerationError string `json:"storageGenerationError,omitempty"` // StorageInitTime is the initialization time of the storage. StorageInitTime types.Time3339 `json:"storageInitTime,omitempty"` ThumbVersion string `json:"thumbVersion"` // Thumbnailing version. // AuthToken is an auth.OpAll token used by the web UI and the WebSocket. // It is randomly generated the first time discovery is served. AuthToken string `json:"authToken"` // HasLegacySHA1Index reports whether this server // contains legacy SHA-1 sums of files in its wholeref // index. When true, clients can additional compute the SHA-1 of // local files to upload to avoid uploading duplicates. HasLegacySHA1Index bool `json:"hasLegacySHA1Index"` // SyncHandlers lists discovery information about the available sync handlers. SyncHandlers []SyncHandlerDiscovery `json:"syncHandlers,omitempty"` // Signing contains discovery information for signing. Signing *SignDiscovery `json:"signing,omitempty"` // UIDiscovery contains discovery information for the UI. *UIDiscovery }
Discovery is the JSON response for discovery requests.
type Edge ¶
type EdgesToOpts ¶
type EdgesToOpts struct {
Max int
}
type FileInfo ¶
type FileInfo struct { // FileName is the base name of the file or directory. FileName string `json:"fileName"` // Size is the size of file, or if a directory, the number of // its children. Size int64 `json:"size"` // MIMEType may be set for files, but never for directories. MIMEType string `json:"mimeType,omitempty"` // Time is the earliest of any modtime, creation time, or EXIF // original/modification times found. It may be omitted (zero) // if unknown. Time *types.Time3339 `json:"time,omitempty"` // ModTime is the latest of any modtime, creation time, or EXIF // original/modification times found. If ModTime doesn't differ // from Time, ModTime is omitted (zero). ModTime *types.Time3339 `json:"modTime,omitempty"` // WholeRef is the digest of the entire file contents. // This will be zero for non-regular files, and may also be zero // for files above a certain size threshold. WholeRef blob.Ref `json:"wholeRef,omitempty"` }
FileInfo describes a file or directory.
type FileSearchResponse ¶
type FileSearchResponse struct { SearchErrorResponse // Files maps a requested wholeRef to the files found for it. Never nil. Files map[string][]blob.Ref `json:"files"` }
FileSearchResponse is the JSON response to a file search request.
type ImageInfo ¶
type ImageInfo struct { // Width is the visible width of the image (after any necessary EXIF rotation). Width uint16 `json:"width"` // Height is the visible height of the image (after any necessary EXIF rotation). Height uint16 `json:"height"` }
ImageInfo describes an image file.
The Width and Height are uint16s to save memory in index/corpus.go, and that's the max size of a JPEG anyway. If we want to deal with larger sizes, we can use MaxUint16 as a sentinel to mean to look elsewhere. Or ditch this optimization.
type Location ¶
type Location struct { // Latitude and Longitude represent the point location of this blob, // such as the place where a photo was taken. // // Negative values represent positions south of the equator or // west of the prime meridian: // Northern latitudes are positive, southern latitudes are negative. // Eastern longitudes are positive, western longitudes are negative. Latitude float64 `json:"latitude"` Longitude float64 `json:"longitude"` }
Location describes a file or permanode that has a location.
type LocationBounds ¶
type LocationBounds struct { North float64 `json:"north"` South float64 `json:"south"` West float64 `json:"west"` East float64 `json:"east"` }
LocationBounds is a location area delimited by its fields. See Location for the fields meanings and values.
func (LocationBounds) Contains ¶
func (b LocationBounds) Contains(loc Location) bool
Contains reports whether loc is in the bounds b.
func (LocationBounds) Expand ¶
func (b LocationBounds) Expand(loc Location) LocationBounds
Expand returns a new LocationBounds nb. If either of loc coordinates is outside of b, nb is the dimensions of b expanded as little as possible in order to include loc. Otherwise, nb is just a copy of b.
func (LocationBounds) SpansDateLine ¶
func (b LocationBounds) SpansDateLine() bool
SpansDateLine reports whether b spans the antimeridian international date line.
func (LocationBounds) Width ¶
func (b LocationBounds) Width() float64
type PermanodeByAttrRequest ¶
type PermanodeByAttrRequest struct { Signer blob.Ref // Attribute to search. currently supported: "tag", "title" // If FuzzyMatch is set, this can be blank to search all // attributes. Attribute string // The attribute value to find exactly (or roughly, if // FuzzyMatch is set) // If blank, the permanodes with Attribute as an attribute // (set to any value) are searched. Query string FuzzyMatch bool // by default, an exact match is required MaxResults int // optional max results // At, if non-zero, specifies that the attribute must have been set at // the latest at At. At time.Time }
type PublishRootDiscovery ¶
type PublishRootDiscovery struct { Name string `json:"name"` // Prefix lists prefixes belonging to the publishing root. Prefix []string `json:"prefix"` // CurrentPermanode is the permanode associated with the publishing root. CurrentPermanode blob.Ref `json:"currentPermanode"` }
PublishRootDiscovery contains discovery information for the publish roots.
type RecentPermanode ¶
type RecentPermanode struct { Permanode blob.Ref Signer blob.Ref // may be zero (!Valid()) LastModTime time.Time }
func (RecentPermanode) Equal ¶
func (a RecentPermanode) Equal(b RecentPermanode) bool
type SearchErrorResponse ¶
type SearchErrorResponse struct { Error string `json:"error,omitempty"` // The error message. ErrorType string `json:"errorType,omitempty"` // The type of the error. }
SearchErrorResponse is the JSON error response for a search request.
type ShareImportProgress ¶
type ShareImportProgress struct { bool Running bool FilesSeen int FilesCopied int BlobRef blob.Ref }Assembled
ShareImportProgress is the state of a share importing process.
type SignDiscovery ¶
type SignDiscovery struct { // PublicKey is the path to the public signing key. PublicKey string `json:"publicKey,omitempty"` // PublicKeyBlobRef is the blob.Ref for the public key. PublicKeyBlobRef blob.Ref `json:"publicKeyBlobRef,omitempty"` // PublicKeyID is the ID of the public key. PublicKeyID string `json:"publicKeyId"` // SignHandler is the URL path prefix to the signing handler. SignHandler string `json:"signHandler"` // VerifyHandler it the URL path prefix to the signature verification handler. VerifyHandler string `json:"verifyHandler"` }
SignDiscovery contains discovery information for jsonsign. It is part of the server's JSON response for discovery requests.
type StatusError ¶
type SyncHandlerDiscovery ¶
type SyncHandlerDiscovery struct { // From is the source of the sync handler. From string `json:"from"` // To is the destination of the sync handler. To string `json:"to"` // ToIndex is true if the sync is from a blob storage to an index. ToIndex bool `json:"toIndex"` }
SyncHandlerDiscovery contains discovery information about a sync handler. It is part of the JSON response to discovery requests.
type UIDiscovery ¶
type UIDiscovery struct { // UIRoot is the URL prefix path to the UI handler. UIRoot string `json:"uiRoot"` // UploadHelper is the path to the upload helper. UploadHelper string `json:"uploadHelper"` // DirectoryHelper is the path to the directory helper. DirectoryHelper string `json:"directoryHelper"` // DownloaderHelper is the path to the downloader helper. DownloadHelper string `json:"downloadHelper"` // PublishRoots lists discovery information for all publishing roots, // mapped by the respective root name. PublishRoots map[string]*PublishRootDiscovery `json:"publishRoots"` // MapClustering defines whether to cluster position markers on the map aspect. MapClustering bool `json:"mapClustering"` ImportShare string `json:"importShare"` }
UIDiscovery contains discovery information for the user interface. It is part of the JSON response to discovery requests.
type VerifyResponse ¶
type VerifyResponse struct { // SignatureValid is true if the signature is valid. SignatureValid bool `json:"signatureValid"` // ErrorMessage contains the error that occurred, if any. ErrorMessage string `json:"errorMessage,omitempty"` // SignerKeyId is the ID of the signing key. SignerKeyId string `json:"signerKeyId,omitempty"` // VerifiedData contains the JSON values from the payload that we signed. VerifiedData map[string]interface{} `json:"verifiedData,omitempty"` }
VerifyResponse is the JSON response for a signature verification request.