~~Title: EverythingInterface~~
If [[:additional_functionality:everything_integration|Everything]] by voidtools is installed, this provides an interface that lets you easily communicate with Everything from a script. You can start and stop Everything, query its status, send it arbitrary commands and query its database.
Create an **EverythingInterface** object via the **[[dopus|DOpus]].Create** factory method.
$$ Property Name
$$ Return Type
$$ Description
$$ autorun
$$ //bool//
$$ Returns True if Everything is configured to auto-start (via the **[[:preferences:preferences_categories:miscellaneous:advanced_options|Miscellaneous / Advanced Options]]** Preferences page).
$$ indexed
$$ //int//
$$ Returns a value indicating which attributes Everything is configured to index. This is a bitmask made up of the following values:
|2|File sizes|
|4|Folder sizes|
|8|Created date|
|16|Modified date|
|32|Accessed date|
|64|Attributes|
$$ isrunning
$$ //bool//
$$ Returns True if Everything is currently running.
$$ roots
$$ //object://**[[stringset|StringSet]]**
$$ Returns a set representing the drive roots that Everything has indexed.
$$ version
$$ //string//
$$ Returns Everything's version number.
$$ Method Name
$$ **Arguments**
$$ Return Type
$$ Description
$$ Indexed
$$
$$ //bool//
$$ Returns True if the specified path is indexed by Everything.
$$ Query
$$ \\
\\
\\
\\
\\
\\
$$ **[[vector|Vector]]** of **[[everythingresult|EverythingResult]]**
$$ Sends the specified query string to Everything. Returns the results as a [[vector|Vector]] of [[everythingresult|EverythingResult]] objects.
All arguments after the query string are optional, and represent flags provided by the Everything API.
//search_flags// should be a bitmask representing the `EVERYTHING_IPC_xxx` search flags, or a string containing one or more of the following characters. Defaults to `0` if not provided.
|c|match case (`EVERYTHING_IPC_MATCHCASE`)|
|w|match whole words (`EVERYTHING_IPC_MATCHWHOLEWORDS`)|
|p|match path (`EVERYTHING_IPC_MATCHPATH`)|
|r|regex (`EVERYTHING_IPC_REGEX`)|
|a|match accents (`EVERYTHING_IPC_MATCHACCENTS`)|
//request_flags// should be a bitmask representing the `EVERYTHING_IPC_QUERY2_REQUEST_xxx` request flags, or a string containing one or more of the following characters. Defaults to `EVERYTHING_IPC_QUERY2_REQUEST_FULL_PATH_AND_NAME` if not provided.
|n|name (`EVERYTHING_IPC_QUERY2_REQUEST_NAME`)|
|p|path (`EVERYTHING_IPC_QUERY2_REQUEST_PATH`)|
|f|full path and name (`EVERYTHING_IPC_QUERY2_REQUEST_FULL_PATH_AND_NAME`)|
|x|extension (`EVERYTHING_IPC_QUERY2_REQUEST_EXTENSION`)|
|s|size (`EVERYTHING_IPC_QUERY2_REQUEST_SIZE`)|
|c|created (`EVERYTHING_IPC_QUERY2_REQUEST_DATE_CREATED`)|
|m|modified (`EVERYTHING_IPC_QUERY2_REQUEST_DATE_MODIFIED`)|
|e|accessed (`EVERYTHING_IPC_QUERY2_REQUEST_DATE_ACCESSED`)|
|a|attributes (`EVERYTHING_IPC_QUERY2_REQUEST_ATTRIBUTES`)|
|r|run count (`EVERYTHING_IPC_QUERY2_REQUEST_RUN_COUNT`)|
|R|date run (`EVERYTHING_IPC_QUERY2_REQUEST_DATE_RUN`)|
|M|date recently changed (`EVERYTHING_IPC_QUERY2_REQUEST_DATE_RECENTLY_CHANGED`)|
|N|highlighted name (`EVERYTHING_IPC_QUERY2_REQUEST_HIGHLIGHTED_NAME`)|
|P|highlighted path (`EVERYTHING_IPC_QUERY2_REQUEST_HIGHLIGHTED_PATH`)|
|F|highlighted full path and name (`EVERYTHING_IPC_QUERY2_REQUEST_HIGHLIGHTED_FULL_PATH_AND_NAME`)|
//sort_type// should be one of the `EVERYTHING_IPC_SORT_xxx` constants (the numeric value). Defaults to `0` if not provided.
//max_results// lets you limit the number of results returned. Defaults to the //everything_max_results// advanced Preferences value if not provided.
//offset// specifies the result offset. In conjunction with //max_results// this lets you query large datasets without having to deal with all the results at once.
//timeout// specifies a timeout in milliseconds. Defaults to `1000` if not provided.
$$ RunCountGet
$$
$$ //int//
$$ Returns the run count for the specified file.
$$ RunCountInc
$$
$$ //int//
$$ Increments the run count for the specified file and returns the new count.
$$ RunCountSet
$$ \\
$$ //bool//
$$ Sets the run count for the specified file to the value provided. Returns True on success.
$$ SendCmd
$$ \\
[]
$$ //int//
$$ Sends the specified command to Everything and returns its response. The commands are documented in the Everything API SDK (e.g. 401 equates to `EVERYTHING_IPC_IS_DB_LOADED` and returns 1 to indicate Everything's database is loaded).
$$ Start
$$ //none//
$$ //bool//
$$ Starts Everything if it's not already running and Opus has been configured to auto-start it.
$$ Stop
$$ //none//
$$ //bool//
$$ Stops Everything (tells it to quit).