forked from hummypkg/webif
159 lines
4.6 KiB
Plaintext
159 lines
4.6 KiB
Plaintext
|
|
Everything is a plugin. Those bundled with the web interface are in
|
|
/mod/webif/lib/auto/plugin/<name> and others are in /mod/webif/plugin/<name>
|
|
|
|
----------------------------------------------------------------------
|
|
Priorities (* - additional package)
|
|
----------
|
|
|
|
Module Scan De-queue
|
|
------ ---- --------
|
|
*newk 1000 -
|
|
expire 900 -
|
|
dedup 800 -
|
|
*sweeper 700 -
|
|
*flatten 750 -
|
|
*flatview 650 -
|
|
decrypt 600 900
|
|
shrink 400 800
|
|
mpg 300 300
|
|
mp3 300 300
|
|
*detectads 300 200
|
|
|
|
Notes:
|
|
|
|
* Anything that moves files around runs first.
|
|
(used to always prefer decryption first to improve the changes that the
|
|
file was DLNA indexed but DLNA helper removes that constraint)
|
|
* Decrypt > Shrink so arbookmarks can run post-decrypt and still have the
|
|
EIT tables present.
|
|
|
|
----------------------------------------------------------------------
|
|
Scan phase hooks
|
|
----------------
|
|
|
|
The scan process looks for 'auto.hook'
|
|
|
|
Plugins register themselves with:
|
|
|
|
::auto::register <module> [priority]
|
|
|
|
If not specified, priority defaults to 500.
|
|
|
|
The framework will call the following callbacks (if defined within the module):
|
|
|
|
::module::init
|
|
|
|
This function will be called before any module runs and can be
|
|
used if the module requires any initialisation.
|
|
|
|
::module::cleanup
|
|
|
|
Called once all modules have completed their work.
|
|
|
|
::module::run
|
|
|
|
This function is called when the module should do its work against
|
|
all recordings.
|
|
|
|
::module::rundir <dir>
|
|
|
|
The module should do its work against the specific provided directory.
|
|
|
|
The following global variables are available for modules to use:
|
|
|
|
::auto::settings - instance of the system settings class.
|
|
::auto::root - root directory of recordings.
|
|
::auto::dustbin - path to the dustbin directory.
|
|
|
|
The following functions are available for modules to use:
|
|
|
|
::auto::log <msg> [level]
|
|
|
|
Log a message to the log file with appropriate prefix.
|
|
The level argument should be a number between 0 and 2 inclusive.
|
|
If level is not provided then it defaults to 1.
|
|
Level 2 is reserved for debugging messages.
|
|
|
|
::auto::dsc [required bytes]
|
|
|
|
Checks that there is enough available system disk space
|
|
(1GiB + 3 * <required bytes>) and aborts processing otherwise.
|
|
If [required bytes] is not provided then it defaults to zero and
|
|
the function just checks fro 1GiB of free disk space.
|
|
|
|
::auto::inuse <ts>
|
|
|
|
Check if a recording is in use (with retries).
|
|
|
|
::auto::autoflagscan <root> <flag> <callback>
|
|
|
|
Starting at the directory indicated by <root>, all directories are
|
|
recursively scanned looking for those containing a file named
|
|
".auto<flag>" or ".auto<flag>r".
|
|
|
|
This function automatically takes care of avoiding the dustbin,
|
|
filesystem loops, disabling recursion when a special folder is found,
|
|
etc. It is used by built-in modules such as "decrypt"
|
|
|
|
The callback will be called once for each flagged directory with
|
|
the directory name passed as the sole argument.
|
|
|
|
If the callback returns the string "STOP" then the directory
|
|
scan stops.
|
|
|
|
::auto::flagscan <root> <fiag> <callback>
|
|
|
|
Starting at the directory indicated by <root>, all directories are
|
|
recursively scanned looking for those containing a file named
|
|
".<flag>".
|
|
|
|
The callback will be called once for each flagged directory with
|
|
the directory name passed as the sole argument.
|
|
|
|
If the callback returns the string "STOP" then the directory
|
|
scan stops.
|
|
|
|
::auto::direntries <directory> <callback>
|
|
|
|
Scan the named directory and call the callback for each loadable
|
|
ts file found. The ts object is passed to the callback function.
|
|
|
|
If the callback returns the string "STOP" then the directory
|
|
scan stops.
|
|
|
|
::auto::recalcdir <directory>
|
|
|
|
Indicate that the unwatched recording count for the given directory
|
|
should be updated at the end of the run.
|
|
|
|
----------------------------------------------------------------------
|
|
De-queue hooks
|
|
--------------
|
|
|
|
::auto::register <module> [priority]
|
|
|
|
If not specified, priority defaults to 500.
|
|
|
|
The framework will call the following callbacks (if defined within the module):
|
|
|
|
::module::dequeue <q> <ts>
|
|
|
|
De-queue the provided queue item and associated ts file object.
|
|
The module must return a list containing <result> [message]
|
|
|
|
Possible results:
|
|
|
|
OK - The queue item was successfully processed.
|
|
FAILED - Processing failed (and should not be re-attempted).
|
|
DEFER - Processing should be tried again later.
|
|
|
|
Examples:
|
|
|
|
return "OK"
|
|
return {"OK" "Processing was successful."}
|
|
return [list "OK" "Processing was successful."]
|
|
return [list "DEFER" "File not yet decrypted."]
|
|
return [list "FAILED" "File is already decrypted."]
|
|
|