Llink:macros
Macros
General Macros
Macro name : Example replacement <!--LLINK_SERVER_NAME--> : "llink" <!--LLINK_FILE_NAME--> : "file.avi" <!--LLINK_FILE_URL--> : "/movies/part1/file.avi" <!--LLINK_FILE_SIZE--> : "4123414" or "4.1MB" or "". See SIZE_TYPE in llink.conf <!--LLINK_FILE_DATE--> : "Thu Dec 27 15:46:56 JST 2007" (man ctime) <!--LLINK_FILE_TVID--> : "12" <!--LLINK_FILE_EXT--> : ".avi" <!--LLINK_PARENT_DIRECTORY--> : "/movies" <!--LLINK_CURRENT_DIRECTORY--> : "/movies/part1" <!--LLINK_DETAIL_SIZE--> : "4123414" <!--LLINK_PAGE_PREV_URL--> : "/movies/part1&from=1" <!--LLINK_PAGE_NEXT_URL--> : "/movies/part1&from=10" See PAGE_SIZE in llink.conf <!--LLINK_PARENT_DIRECTORY_URL--> : "/movies" <!--LLINK_CURRENT_DIRECTORY_URL--> : "/movies/part1" <!--LLINK_ONKEYUP_PREV--> : "onkeyupset=\"prev\"" if this is the first entry listed. <!--LLINK_ONKEYDOWN_NEXT--> : "onkeydownset=\"next\"" if this is the last entry listed. <!--LLINK_PAGE_FOCUS--> : "1" or "10" See PAGE_SIZE in llink.conf. <!--LLINK_ZODIAC--> : "taurus", "pisces". As based on the Zodiac calendar. <!--LLINK_CURRENT_PLAYALL--> : "/movies/&playall=1". Play all in this directory. <!--LLINK_FILE_PLAYALL--> : "/movies/subdir/&playall=1" Play all in sub directory. <!--LLINK_RAND--> : "rand5" Replace with random number, see RAND directive in conf. <!--LLINK_FULL_URL--> : "http//192.168.1.1:8000/ <!--LLINK_CURRENT_VIEWALL--> : "/movies&viewall=1" (Usually used with JPGs) <!--LLINK_VIEW_SONGLIST--> : "http://192.168.1.1:8000/mp3s/&playall=1" (Usually used with viewall) <!--LLINK_PAGE_HELPERS--> : HTML to add tvid for not-shown pages, should be used in tail.html.
Extended Information Macros
Extended directory entry listing. This works by looking for an XML file in the following order:
- "/movies/file.avi.xml"
- "/movies/directory/mymovies.xml"
- "/$redirect/file.avi.xml" (Redirect TYPES, see llink.conf)
So it can support both the style where each movie is in a sub-directory, and has a "mymovies.xml" compatible XML file, and the second style, where all movies live in a directory, with .xml files intermixed.
The following tags are currently parsed from the .XML file:
<!--LLINK_EXTNFO_ICON--> : "/movies/file.png" <!--LLINK_EXTNFO_TITLE--> : "The Ultimate Movie" <!--LLINK_EXTNFO_LOCAL_TITLE--> : "Ze Ultimate Film" <!--LLINK_EXTNFO_COUNTRY--> : "United States" <!--LLINK_EXTNFO_LENGTH--> : "93" <!--LLINK_EXTNFO_TAGLINE--> : "This is a recent movie!" <!--LLINK_EXTNFO_DESCRIPTION--> : "Once upon a time..." <!--LLINK_EXTNFO_GENRES--> : "Action Boredom Thriller" <!--LLINK_EXTNFO_DATE--> : "12 Jun 2007" <!--LLINK_EXTNFO_DIRECTORS--> : "Peter Jackson (Director)" <!--LLINK_EXTNFO_CAST--> : "Peter Jackson, James T. Barnham, Steward Griffin" <!--LLINK_EXTNFO_RATING--> : "9.5/10" <!--LLINK_EXTNFO_IMDBURL--> : "http://www.imdb.com/title/tt0116344/"
CGI commads
Currently, you can encode commands on the CGI url to perform various actions:
Command : Example : Explanation &from=<int> : "&from=40" : Show page starting from item <int>. Should be multiples of page_size. &to=<int> : "&to=50" : Page end. Usually set automatically to "page_size + from". &d=<dir> : "&d=/movies" : Used with RAR & ISO support to specify a directory inside RAR file. &f=<int>,<file>: "&f=123,file.avi" : Used with RAR & ISO support to specify a file inside RAR file. : Full path will be "file.rar&d=/movies&f=1234,file.avi" &code=<int> : "&code=1234" : Enter PIN number to use to enable additional functionality. &menu : "&menu" : Show menu for item. &quit : "&quit" : Shutdown llink and exit. Alas, will appear ungraceful to NMT. &proxy=<url> : "&proxy=http://myvideo.com/streamfile.avi" : Proxy the data from external URL as own. Address should be URL encoded. &focus=<int> : "&focus=12" : Set highlight focus on tvid=12. Default is top tvid of the page. &playall : "&playall" : Build a playlist for all media in current path &viewall : "&viewall" : Build a playlist to view all media in current path &h=<int>,<int> : "&h=10,20,10,0" : History, so going up will show correct page.
PASSES
Normally, we do the directory processing in one pass, and it would send the HTML files in the following order:
head.html line_dir.html -\ line_movie.html ------ Based on the TYPE map in llink.conf, and if dir entry is a dir, or .avi etc ... tail.html
If you define higher PASSES value, in this case 2, it will send (if the files exist):
-------------- Pass 1 -------------- head.html line_dir.html line_movie.html -\ line_dir.html ---- Each one sent based on filename (*.avi, *.mp3 etc) line_music.html -/ separator.html - Sent if you wish to have separate support, every nth media found. See conf. tail.html -------------- Pass 2 -------------- 2head.html 2line_movie.html -\ 2line_dir.html ---- Each one sent based on filename (*.avi, *.mp3 etc) 2line_music.html -/ 2separator.html - Sent if you wish to have separate support, every nth media found. See conf. 2tail.html
And so on for even higher PASSES values. The entries found are cached internally to llink, so it does only one actual directory listing.