mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 11:20:09 +00:00 
			
		
		
		
	docs and some work on exporting (still not done)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									e74a1ae943
								
							
						
					
					
						commit
						c415b3439c
					
				| @ -129,7 +129,7 @@ function loadJSON(path){ | |||||||
| //
 | //
 | ||||||
| //
 | //
 | ||||||
| // Index format (input):
 | // Index format (input):
 | ||||||
| // 	.ImageGrid/
 | // 	<index-dir>/
 | ||||||
| // 		+- [<timestamp>-]<keyword>[-diff].json
 | // 		+- [<timestamp>-]<keyword>[-diff].json
 | ||||||
| // 		+- ...
 | // 		+- ...
 | ||||||
| //
 | //
 | ||||||
| @ -566,7 +566,7 @@ module.buildIndex = function(index, base_path){ | |||||||
| // 	{
 | // 	{
 | ||||||
| // 		data: <bool>,
 | // 		data: <bool>,
 | ||||||
| //
 | //
 | ||||||
| // 		images: <bool> | { <gid>, ... }
 | // 		images: <bool> | [ <gid>, ... ]
 | ||||||
| //
 | //
 | ||||||
| // 		tags: <bool>,
 | // 		tags: <bool>,
 | ||||||
| // 		bookmarked: <bool>,
 | // 		bookmarked: <bool>,
 | ||||||
|  | |||||||
| @ -3790,9 +3790,36 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 		//'index-filename-template': '${DATE}-${KEYWORD}.${EXT}',
 | 		//'index-filename-template': '${DATE}-${KEYWORD}.${EXT}',
 | ||||||
| 	}, | 	}, | ||||||
| 
 | 
 | ||||||
| 	// XXX is this a good name???
 | 	// This can be:
 | ||||||
|  | 	// 	- null/undefined	- write all
 | ||||||
|  | 	// 	- true				- write all
 | ||||||
|  | 	// 	- false				- write nothing
 | ||||||
|  | 	// 	- {
 | ||||||
|  | 	//		// write/skip data...
 | ||||||
|  | 	//		data: <bool>,
 | ||||||
|  | 	//
 | ||||||
|  | 	//		// write/skip images or write a diff including the given 
 | ||||||
|  | 	//		// <gid>s only...
 | ||||||
|  | 	//		images: <bool> | [ <gid>, ... ],
 | ||||||
|  | 	//
 | ||||||
|  | 	//		// write/skip tags...
 | ||||||
|  | 	//		tags: <bool>,
 | ||||||
|  | 	//
 | ||||||
|  | 	//		// write/skip bookmarks...
 | ||||||
|  | 	//		bookmarked: <bool>,
 | ||||||
|  | 	//
 | ||||||
|  | 	//		// write/skip selected...
 | ||||||
|  | 	//		selected: <bool>,
 | ||||||
|  | 	// 	  }
 | ||||||
|  | 	//
 | ||||||
|  | 	// NOTE: in the complex format all fields ar optional; if a field 
 | ||||||
|  | 	// 		is not included it is not written (same as when set to false)
 | ||||||
|  | 	// NOTE: .current is written always.
 | ||||||
| 	chages: null, | 	chages: null, | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | 	// Convert json index to a format compatible with file.writeIndex(..)
 | ||||||
|  | 	//
 | ||||||
| 	// This is here so as other features can participate in index
 | 	// This is here so as other features can participate in index
 | ||||||
| 	// preparation...
 | 	// preparation...
 | ||||||
| 	// There are several stages features can control the output format:
 | 	// There are several stages features can control the output format:
 | ||||||
| @ -3816,6 +3843,22 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 	// 		prepared: <prepared-json>,
 | 	// 		prepared: <prepared-json>,
 | ||||||
| 	// 	}
 | 	// 	}
 | ||||||
| 	//
 | 	//
 | ||||||
|  | 	//
 | ||||||
|  | 	// The format for the <prapared-json> is as follows:
 | ||||||
|  | 	// 	{
 | ||||||
|  | 	// 		<keyword>: <data>,
 | ||||||
|  | 	// 		...
 | ||||||
|  | 	// 	}
 | ||||||
|  | 	//
 | ||||||
|  | 	// The <prepared-json> is written out to a fs index in the following
 | ||||||
|  | 	// way:
 | ||||||
|  | 	// 		<index-dir>/<timestamp>-<keyword>.json
 | ||||||
|  | 	//
 | ||||||
|  | 	// 	<index-dir>		- taken from .config['index-dir'] (default: '.ImageGrid')
 | ||||||
|  | 	// 	<timestamp>		- as returned by Date.timeStamp() (see: jli)
 | ||||||
|  | 	//
 | ||||||
|  | 	// For more info see file.writeIndex(..) and file.loadIndex(..).
 | ||||||
|  | 	//
 | ||||||
| 	prepareIndexForWrite: ['File/Prepare index for writing', | 	prepareIndexForWrite: ['File/Prepare index for writing', | ||||||
| 		function(json, full){ | 		function(json, full){ | ||||||
| 			json = json || this.json('base') | 			json = json || this.json('base') | ||||||
| @ -3854,6 +3897,10 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 		function(){ | 		function(){ | ||||||
| 		}], | 		}], | ||||||
| 	// XXX not done yet...
 | 	// XXX not done yet...
 | ||||||
|  | 	// 		needs:
 | ||||||
|  | 	// 			ensureDir(..)
 | ||||||
|  | 	// 			copy(..)
 | ||||||
|  | 	// 		...both denodeify(..)'ed
 | ||||||
| 	// XXX export current state as a full loadable index
 | 	// XXX export current state as a full loadable index
 | ||||||
| 	// XXX might be interesting to unify this and .exportView(..)
 | 	// XXX might be interesting to unify this and .exportView(..)
 | ||||||
| 	// XXX local collections???
 | 	// XXX local collections???
 | ||||||
| @ -3886,6 +3933,8 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 			// XXX should we check if index dir is present in path???
 | 			// XXX should we check if index dir is present in path???
 | ||||||
| 			path = path +'/'+ this.config['index-dir'] | 			path = path +'/'+ this.config['index-dir'] | ||||||
| 
 | 
 | ||||||
|  | 			// NOTE: if we are to use .saveIndex(..) here, do not forget
 | ||||||
|  | 			// 		to reset .changes
 | ||||||
| 			file.writeIndex( | 			file.writeIndex( | ||||||
| 				this.prepareIndexForWrite(json).prepared,  | 				this.prepareIndexForWrite(json).prepared,  | ||||||
| 				path,  | 				path,  | ||||||
| @ -3896,12 +3945,33 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 			// XXX should also optionally populate the base dir and nested favs...
 | 			// XXX should also optionally populate the base dir and nested favs...
 | ||||||
| 			var base_dir = this.base_dir | 			var base_dir = this.base_dir | ||||||
| 			gids.forEach(function(gid){ | 			gids.forEach(function(gid){ | ||||||
| 				json.images[gid].base_path = path | 				var img = json.images[gid] | ||||||
| 				var previews = json.images[gid].preview | 				var img_base = img.base_path | ||||||
|  | 				img.base_path = path | ||||||
|  | 				var previews = img.preview | ||||||
| 
 | 
 | ||||||
| 				for(var res in previews){ | 				for(var res in previews){ | ||||||
| 					// XXX copy from .base_dir +'/'+ preview_path to path +'/'+ preview_path
 | 					var from = (img_base || base_dir) +'/'+ preview_path  | ||||||
|  | 					var to = path +'/'+ preview_path | ||||||
|  | 
 | ||||||
|  | 					// XXX do we queue these or let the OS handle it???
 | ||||||
|  | 					// 		...needs testing, if node's fs queues the io
 | ||||||
|  | 					// 		internally then we do not need to bother...
 | ||||||
| 					// XXX
 | 					// XXX
 | ||||||
|  | 					ensureDir(pathlib.dirname(to)) | ||||||
|  | 						.catch(function(err){ | ||||||
|  | 							// XXX
 | ||||||
|  | 						}) | ||||||
|  | 						.then(function(){ | ||||||
|  | 							return copy(from, to) | ||||||
|  | 								// XXX do we need to have both of this 
 | ||||||
|  | 								// 		and the above .catch(..) or can
 | ||||||
|  | 								// 		we just use the one above (after
 | ||||||
|  | 								// 		.then(..))
 | ||||||
|  | 								.catch(function(err){ | ||||||
|  | 									// XXX
 | ||||||
|  | 								}) | ||||||
|  | 						}) | ||||||
| 				} | 				} | ||||||
| 			}) | 			}) | ||||||
| 		}], | 		}], | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user