mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			413 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			413 lines
		
	
	
	
		
			10 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
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Decode an URL-encoded string - optionally decoding the "+" sign to space.
 | |
| 
 | |
| @class				function
 | |
| @name				urldecode
 | |
| @param str			Input string in x-www-urlencoded format
 | |
| @param decode_plus	Decode "+" signs to spaces if true (optional)
 | |
| @return				The decoded string
 | |
| @see				urlencode
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| URL-encode given string.
 | |
| 
 | |
| @class				function
 | |
| @name				urlencode
 | |
| @param str			String to encode
 | |
| @return				String containing the encoded data
 | |
| @see				urldecode
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Strip HTML tags from given string.
 | |
| 
 | |
| @class				function
 | |
| @name				striptags
 | |
| @param value		String containing the HTML text
 | |
| @return				String with HTML tags stripped of
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| Safely quote value for use in shell commands.
 | |
| 
 | |
| @class				function
 | |
| @name				shellquote
 | |
| @param value		String containing the value to quote
 | |
| @return 			Single-quote enclosed string with embedded quotes escaped
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| 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
 | |
| nterpreted 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 occurrences 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 occurrences
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| 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 iterator 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
 | |
| ]]
 | |
| 
 | |
| ---[[
 | |
| 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 unnecessary 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
 | |
| ]]
 | |
| 
 |