Path
 
  
Children

MetaTagger

Create the file subset

The file subset is the basis for the following bulk actions:
  • tagging
  • exporting
  • deletion
Initially the subset is empty, but files can be added (and removed) on the basis of their tags or of their file system characteristics (i.e. path, name , extension).

Since the file subset is only cleared when you press the New list button then it is possible to :
  • Define the criteria for a file subset
  • Create that file subset using Apply Filters
  • Define another set of selection criteria, and implement it, thus refining / extending the list.
In the upper half of the panels for Power Tagging , Files to Folder and Delete Files, under the grey row ( Action    Tag Group    Filter    Tag Name ) area there are 8 rows each of which defines selection critera for the inclusion, or removal, of files in a subset of the database.

The Action column defines the main part of the inclusion or removal activity.

The following actions cause files to be added to the subset.
Action Add rows to the file sublist if:
 add only                                  has only got the specified tag in the specified group. (Tags in other groups are allowed.)
 add ==  has atleast the specified group & tag
 add <>  has not got the specified group & ta
 add any  has any tag in the specified group
 add non  has no tag in the specified group
 add ==  has any tag with the partial string (Filter column) in the specified group
 add <>  has no tag with the partial string (Filter column) in the specified group
 tag ==  tags in specified group are identical with those of current file (blueish panel)
 tag <>  tags in specified group are not identical with those of current file (blueish panel)
 tags ==  tags in all groups are identical with those of current file (blueish panel)
 tags <>  tags in all groups are not identical with those of current file (blueish panel)
 duplicate  has a non-unique hash value

The following actions cause files to be removed from the subset.
Action Remove rows from file sublist if:
 remove ==                              has atleastthe specified group & tag
 remove <>  has not got any tag in the specified group & tag
 remove any  has any tag in the specified group
 remove non  has no tag in the specified group
 remove ==?   has any tag with the partial string (Filter column) in the specified group
 remove <>?  has no tag with the partial string (Filter column) in the specified group                           
 -unchanged   remove rows that were unchanged in the last rescan
 -new   remove rows that were added in the last rescan
 -changed   remove rows that changed in the last rescan

Rather than create an even larger set of filter actions I have implemented two low level filters:
  • Insert where
  • a wrapper for the SQLite statement:
      insert into SubList select rowid, * from master where type like 'file' and ( XX )
  • Delete where
  • a wrapper for the SQLite statement:
      delete from SubList where type like 'file' and ( XX )
In each case the user provides the XX.

The following table shows examples of XX which could be placed in the edit fields of the Insert where and Delete where low level filter options. But note: it is entirely possible to access tags using low level filters but since the tag delimiter includes a non-printable character then the syntax is a bit complicated. Hopefully the tag related requirements are covered in the two tables above.

Where clause what it selects
 path like '%fred%'  path name of row contains the substring fred >>
 name like '%fred%'  file name of row contains the substring fred
 ext in ('jpg','bmp')  ext must be either jpg or bmp. Warning in is case sensitive                                            >>
 ext like 'jpg' or ext like 'bmp'  ext must be either jpg or bmp. Note: is case insensitive
 size = 0  file has no contents
 size < 1000 and ext like 'jpg'   smallish jpg images

To force the subset to be empty, click on the New List button.

Filter actions will be executed when the Apply Filters button is pressed.

      Disclaimer    Contact
Author: George Salisbury 2023-08-16 19:00
Help