mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			378 lines
		
	
	
	
		
			9.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			378 lines
		
	
	
	
		
			9.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| ---[[
 | |
| LuCI utility functions.
 | |
| ]]
 | |
| module "luci.util"
 | |
| 
 | |
| ---[[
 | |
| Create a Class object (Python-style object model).
 | |
| 
 | |
| The class object can be instantiated by calling itself.
 | |
| Any class functions or shared parameters can be attached to this object.
 | |
| Attaching a table to the class object makes this table shared between
 | |
| all instances of this class. For object parameters use the __init__ function.
 | |
| Classes can inherit member functions and values from a base class.
 | |
| Class can be instantiated by calling them. All parameters will be passed
 | |
| to the __init__ function of this class - if such a function exists.
 | |
| The __init__ function must be used to set any object parameters that are not shared
 | |
| with other objects of this class. Any return values will be ignored.
 | |
| @class function
 | |
| @name class
 | |
| @param base	The base class to inherit from (optional)
 | |
| @return		A class object
 | |
| @see			instanceof
 | |
| @see			clone
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Test whether the given object is an instance of the given class.
 | |
| 
 | |
| @class function
 | |
| @name instanceof
 | |
| @param object	Object instance
 | |
| @param class		Class object to test against
 | |
| @return			Boolean indicating whether the object is an instance
 | |
| @see				class
 | |
| @see				clone
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Create a new or get an already existing thread local store associated with
 | |
| 
 | |
| the current active coroutine. A thread local store is private a table object
 | |
| whose values can't be accessed from outside of the running coroutine.
 | |
| @class function
 | |
| @name threadlocal
 | |
| @return	Table value representing the corresponding thread local store
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Write given object to stderr.
 | |
| 
 | |
| @class function
 | |
| @name perror
 | |
| @param obj	Value to write to stderr
 | |
| @return		Boolean indicating whether the write operation was successful
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Recursively dumps a table to stdout, useful for testing and debugging.
 | |
| 
 | |
| @class function
 | |
| @name dumptable
 | |
| @param t	Table value to dump
 | |
| @param maxdepth	Maximum depth
 | |
| @return	Always nil
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Create valid XML PCDATA from given string.
 | |
| 
 | |
| @class function
 | |
| @name pcdata
 | |
| @param value	String value containing the data to escape
 | |
| @return		String value containing the escaped data
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Strip HTML tags from given string.
 | |
| 
 | |
| @class function
 | |
| @name striptags
 | |
| @param value	String containing the HTML text
 | |
| @return	String with HTML tags stripped of
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Splits given string on a defined separator sequence and return a table
 | |
| 
 | |
| containing the resulting substrings. The optional max parameter specifies
 | |
| the number of bytes to process, regardless of the actual length of the given
 | |
| string. The optional last parameter, regex, specifies whether the separator
 | |
| sequence is interpreted as regular expression.
 | |
| @class function
 | |
| @name split
 | |
| @param str		String value containing the data to split up
 | |
| @param pat		String with separator pattern (optional, defaults to "\n")
 | |
| @param max		Maximum times to split (optional)
 | |
| @param regex 	Boolean indicating whether to interpret the separator
 | |
| --					pattern as regular expression (optional, default is false)
 | |
| @return			Table containing the resulting substrings
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Remove leading and trailing whitespace from given string value.
 | |
| 
 | |
| @class function
 | |
| @name trim
 | |
| @param str	String value containing whitespace padded data
 | |
| @return		String value with leading and trailing space removed
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Count the occurences of given substring in given string.
 | |
| 
 | |
| @class function
 | |
| @name cmatch
 | |
| @param str		String to search in
 | |
| @param pattern	String containing pattern to find
 | |
| @return			Number of found occurences
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Return a matching iterator for the given value. The iterator will return
 | |
| 
 | |
| one token per invocation, the tokens are separated by whitespace. If the
 | |
| input value is a table, it is transformed into a string first. A nil value
 | |
| will result in a valid interator which aborts with the first invocation.
 | |
| @class function
 | |
| @name imatch
 | |
| @param val		The value to scan (table, string or nil)
 | |
| @return			Iterator which returns one token per call
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Parse certain units from the given string and return the canonical integer
 | |
| 
 | |
| value or 0 if the unit is unknown. Upper- or lower case is irrelevant.
 | |
| Recognized units are:
 | |
| --	o "y"	- one year   (60*60*24*366)
 | |
|  o "m"	- one month  (60*60*24*31)
 | |
|  o "w"	- one week   (60*60*24*7)
 | |
|  o "d"	- one day    (60*60*24)
 | |
|  o "h"	- one hour	 (60*60)
 | |
|  o "min"	- one minute (60)
 | |
|  o "kb"  - one kilobyte (1024)
 | |
|  o "mb"	- one megabyte (1024*1024)
 | |
|  o "gb"	- one gigabyte (1024*1024*1024)
 | |
|  o "kib" - one si kilobyte (1000)
 | |
|  o "mib"	- one si megabyte (1000*1000)
 | |
|  o "gib"	- one si gigabyte (1000*1000*1000)
 | |
| @class function
 | |
| @name parse_units
 | |
| @param ustr	String containing a numerical value with trailing unit
 | |
| @return		Number containing the canonical value
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Appends numerically indexed tables or single objects to a given table.
 | |
| 
 | |
| @class function
 | |
| @name append
 | |
| @param src	Target table
 | |
| @param ...	Objects to insert
 | |
| @return		Target table
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Combines two or more numerically indexed tables and single objects into one table.
 | |
| 
 | |
| @class function
 | |
| @name combine
 | |
| @param tbl1	Table value to combine
 | |
| @param tbl2	Table value to combine
 | |
| @param ...	More tables to combine
 | |
| @return		Table value containing all values of given tables
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Checks whether the given table contains the given value.
 | |
| 
 | |
| @class function
 | |
| @name contains
 | |
| @param table	Table value
 | |
| @param value	Value to search within the given table
 | |
| @return		number indicating the first index at which the given value occurs
 | |
| --			within table or false.
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Update values in given table with the values from the second given table.
 | |
| 
 | |
| Both table are - in fact - merged together.
 | |
| @class function
 | |
| @name update
 | |
| @param t			Table which should be updated
 | |
| @param updates	Table containing the values to update
 | |
| @return			Always nil
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Retrieve all keys of given associative table.
 | |
| 
 | |
| @class function
 | |
| @name keys
 | |
| @param t	Table to extract keys from
 | |
| @return	Sorted table containing the keys
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Clones the given object and return it's copy.
 | |
| 
 | |
| @class function
 | |
| @name clone
 | |
| @param object	Table value to clone
 | |
| @param deep		Boolean indicating whether to do recursive cloning
 | |
| @return			Cloned table value
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Create a dynamic table which automatically creates subtables.
 | |
| 
 | |
| @class function
 | |
| @name dtable
 | |
| @return	Dynamic Table
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Recursively serialize given data to lua code, suitable for restoring
 | |
| 
 | |
| with loadstring().
 | |
| @class function
 | |
| @name serialize_data
 | |
| @param val	Value containing the data to serialize
 | |
| @return		String value containing the serialized code
 | |
| @see			restore_data
 | |
| @see			get_bytecode
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Restore data previously serialized with serialize_data().
 | |
| 
 | |
| @class function
 | |
| @name restore_data
 | |
| @param str	String containing the data to restore
 | |
| @return		Value containing the restored data structure
 | |
| @see			serialize_data
 | |
| @see			get_bytecode
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Return the current runtime bytecode of the given data. The byte code
 | |
| 
 | |
| will be stripped before it is returned.
 | |
| @class function
 | |
| @name get_bytecode
 | |
| @param val	Value to return as bytecode
 | |
| @return		String value containing the bytecode of the given data
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Strips unnescessary lua bytecode from given string. Information like line
 | |
| 
 | |
| numbers and debugging numbers will be discarded. Original version by
 | |
| Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
 | |
| @class function
 | |
| @name strip_bytecode
 | |
| @param code	String value containing the original lua byte code
 | |
| @return		String value containing the stripped lua byte code
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Return a key, value iterator which returns the values sorted according to
 | |
| 
 | |
| the provided callback function.
 | |
| @class function
 | |
| @name spairs
 | |
| @param t	The table to iterate
 | |
| @param f A callback function to decide the order of elements
 | |
| @return	Function value containing the corresponding iterator
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Return a key, value iterator for the given table.
 | |
| 
 | |
| The table pairs are sorted by key.
 | |
| @class function
 | |
| @name kspairs
 | |
| @param t	The table to iterate
 | |
| @return	Function value containing the corresponding iterator
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Return a key, value iterator for the given table.
 | |
| 
 | |
| The table pairs are sorted by value.
 | |
| @class function
 | |
| @name vspairs
 | |
| @param t	The table to iterate
 | |
| @return	Function value containing the corresponding iterator
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Test whether the current system is operating in big endian mode.
 | |
| 
 | |
| @class function
 | |
| @name bigendian
 | |
| @return	Boolean value indicating whether system is big endian
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Execute given commandline and gather stdout.
 | |
| 
 | |
| @class function
 | |
| @name exec
 | |
| @param command	String containing command to execute
 | |
| @return			String containing the command's stdout
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Return a line-buffered iterator over the output of given command.
 | |
| 
 | |
| @class function
 | |
| @name execi
 | |
| @param command	String containing the command to execute
 | |
| @return			Iterator
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Issue an ubus call.
 | |
| 
 | |
| @class function
 | |
| @name ubus
 | |
| @param object		String containing the ubus object to call
 | |
| @param method		String containing the ubus method to call
 | |
| @param values		Table containing the values to pass
 | |
| @return			Table containin the ubus result
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Convert data structure to JSON
 | |
| 
 | |
| @class function
 | |
| @name serialize_json
 | |
| @param data		The data to serialize
 | |
| @param writer	A function to write a chunk of JSON data (optional)
 | |
| @return			String containing the JSON if called without write callback
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Returns the absolute path to LuCI base directory.
 | |
| 
 | |
| @class function
 | |
| @name libpath
 | |
| @return		String containing the directory path
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function
 | |
| 
 | |
| @class function
 | |
| @name coxpcall
 | |
| @param f		Lua function to be called protected
 | |
| @param err	Custom error handler
 | |
| @param ...	Parameters passed to the function
 | |
| @return		A boolean whether the function call succeeded and the return
 | |
| --				values of either the function or the error handler
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| This is a coroutine-safe drop-in replacement for Lua's "pcall"-function
 | |
| 
 | |
| @class function
 | |
| @name copcall
 | |
| @param f		Lua function to be called protected
 | |
| @param ...	Parameters passed to the function
 | |
| @return		A boolean whether the function call succeeded and the returns
 | |
| --				values of the function or the error object
 | |
| ]]
 | |
| 
 |