XMM Documentation Project

eXtreme Movie Manager (abbreviated: XMM) is probably the most advanced Movies/TV Series/Actors collection manager around. It can catalog movies stored on your hard disk and removable devices in seconds with all information about codecs, resolutions etc. automatically. XMM imports movie information and covers directly from online databases.

With this XMM documentation project we want to help the developer to concentrate on coding, answering forum posts and replying to emails. Everybody is invited to contribute to the XMM community with writing a documentation snippet for this great software product.

You need to create a user account before being able to edit and/or create new pages in this wiki. We recommend to use the same username as of the official XMM forum (if we don't recognize your username it might happen that we delete your changes to this Wiki). Please keep in mind that the author of eXtreme Movie Manager is allowed to use parts of this wiki's content without notice in his products.

For additional informations regarding editing please read following pages:

Any general discussion regarding this Wiki is taken place in following XMM forum thread: http://www.binaryworks.it/forum/topic.asp?TOPIC_ID=5617


Table of Contents


MagicScript Technology Programmer's Guide

Copyright


 

Contents


 

Disclaimer

The author is in no way responsible for any damage, loss or costs that the installation or use of this program (or attempted installation or use) may cause you or your equipment. Installation and use of this program is entirely at your own risk. This program comes with no guarantees and is provided on an 'as is' basis. The author makes no guarantees on its soundness, reliability or suitability for any given purpose.

This program is Freeware. You may distribute this program freely but you must request permission and include the full unmodified setup package including all program files and documentation. If you wish to distribute this program commercially, you must request permission from the author.

TOP

What Is MagicScript

MagicScript Technology is the new way to import information about your favourite movies from the web. In its past version, eXtreme Movie Manager allowed you to import information from two important websites only: imdb.com & dvdempire.com. With this new version, you can, in theory, import information from all the websites you want!

TOP

How To Use MagicScript

MagicScript is a mini programming language that will allow you to write code to obtain information from a HTML page. For this purpose, you can use IF and REPEAT-WHILE statements, and many others. Of course, this language isn't as powerful as other complete languages like Basic etc., but it is sufficiently powerful for eXtreme Movie Manager's goals.

A Script won't be simple to build if you don't know any other programming languages. In this case you can use the Ready-Made Scripts available on my web page.

TOP

Script Structure

A Script is a normal TXT file composed of INSTRUCTIONS, BLOCKS and STATEMENTS that you can edit with any editor.

Every Script file is associated with one movie site, so there will be a Script file for IMDb, another one for dvdempire, etc...

The structure of the text is free. This means that you can add notes and comments where you want, because all keywords are written inside sharps, like this : #IF#

The basic structure that must be present in every Script is formed by the keyword #WEBQUERY# and the Block #RIGHTPAGEFOUND#. We will discuss their functions in detail later.

A Script consists of a series of BLOCKS. Functions & Instruction inside Blocks are executed sequentially until the end of every BLOCK is reached.

When you want to import information, MagicScript opens the Script of the Web site you want and proceeds to gathering information as described in the Script. Of course, a script written for IMDb will not work in the dvdempire.com site, and you will probably have an unpredictable end of program.

As I have said, the Keyword #WEBQUERY# must be contained in every script to question the DB of a movie website. The BLOCK #RIGHTPAGEFOUND# is vital too. It can check if you have found what you are looking for. All other blocks are optional. For example, if the information retrieved from IMDb is satisfactory to you, but you want all the BoxCover from dvdempire.com, you can write a Full Script for IMDb and a little script for dvdempire with only the BLOCK to take the images : #POSTER#...#ENDPOSTER# Of course there is another way to do it : you can simply check the Cover Option in eXtreme Movie Manager Import Config and you will take only that.

TOP

Why Block Structure?

For every item of information imported there is a special Block. This is because if a user wants to import only a particular item, he can uncheck all the others directly inside the software, without modify the script. For example, to take the TITLE of a movie, you should write all of the instructions inside this Block:

    #MOVIETITLE#
        ......
        ......
        #TITLE#=#03# #ONERROR#=*ASK*
    #ENDMOVIETITLE#

Of couse, you can also use only one Block ( #MOVIETITLE# in this case) to write ALL the instructions for gathering all information, but your script will be less configurable by users.


TOP

First, Second and Third Script Generation

From eXtreme Movie Manager 1.0 to 4.8, the engine can handle two different types of Scripts : the OLD, also known as First Generation, and the Latest, or Second Generation. The instructions and functions are the same for both ( 2. has some new ), but the difference is the HTML. When the engine detects a First Generation script, the HTML is "pre-processed". This means that the HTML is rewritten in more lines, how it is if you edit with a normal text editor. The Second Generation doesn't pre-process the HTML (so the speed is increased), but the HTML in most cases is contained in only one line. This means that a Second Generation script cannot work with Divxmanager 0.9, because the HTML is always pre-processed.

Divxmanager 1.0 can work with both 1. and 2.  because it can "read" the generation with this line :

#SCRIPTGENERATION#=2

The 2. also has another Header variable : #REPLACESPACES#= This tells the engine what characters must be used to replace spaces in the movie title when querying the Web sites. This is indispensable for sites like ALLOCINE.FR (or the movie will not be found).

From eXtreme Movie Manager 5.0, the engine can handle only Third Generation Scripts. The instructions and functions are the same as Second Generation, but there are several new ones to import TV series and to parse the HTML better . In the Third Generation, the HTML is "pre-processed" (like Generation 1), because it is easier and quicker to make scripts in this way.

The most uptodate Script Generation is 5 (five!).

TOP


 

INSTRUCTIONS:  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A: #ADDACTOR#
#ADDFILMOGRAPHY#
C: #CHECKACTOREXIST#
#CHECKVARIABLE#
#CLEARBUFFERACTORS#
#CLEARTAGS#
#COMPUTECURSOR#
#COMPUTEVAR#
#CONDITIONRIGHTPAGE#
D: #DELETEWORD#
#DOWNLOADTRAILER1#...#DOWNLOADTRAILER2#
E: #ENDIF#
F: #FIND#
#FINDLINE#
#FINDLINEPREVIOUS#
#FINDLINEVAR#
#FINDPREVIOUS#
#FINDPREVIOUSVAR#
#FINDVAR#
G: #GETACTORVAR#
#GETMOVIEVAR#
#GETWEBSITELINE#
#GETTITLE#
#GOTO#
I: #IF#
#ISNUMERICAL#
L: #LOADCURSOR#
#LOADWEBSLOT1#
O: #OPENNEWWEB#
#OPENWEBSLOT1#...#OPENWEBSLOT5#
#ORIGINALTITLE#
P: #PUT#
#PUTCURSOR#
R: #READNEXTLINE#
#READPREVIOUSLINE#
#REPEAT#
#RESETCURSOR#
#RESTOREMAIN#
#RESTOREWEB#
#RESTOREWEBSITELINE#
S: #SAVEEPISODEINFO#
#SAVEMOVIE#
#SAVEWEBSITELINE#
#SETCURSOR#
#SETOPTION#
#SHOWVAR#
  #SIMILARSHOWS#
#STARTDELETETAGS#
#STARTREADWEB#
#STARTSUBSTITUTETAGS#
#STRING#
#SUBSTITUTEWEBQUERYWORD#
#SUBSTITUTEWORD#
T: #TAKEACTOR#
#TAKEACTORBDATE#
#TAKEACTORBIO#
#TAKEACTORBIRTHNAME#
#TAKEACTORBPLACE#
#TAKEACTORCOUNTRY#
#TAKEACTORFILM#
#TAKEACTORNAME#
#TAKEACTORPROFESSION#
#TAKEACTORSERIE#
#TAKEACTORSEX#
#TAKEACTORWEB#
#TAKEAUDIODVD#
#TAKEAWARDS#
#TAKECHAPTERS#
#TAKECOMMENTS#
#TAKECOUNTRY#
#TAKECUSTOM1#...#TAKECUSTOM11#
#TAKEDEATHDATE#
#TAKEDIRECTLINK#
#TAKEDIRECTOR#
#TAKEDISTRIBUTOR#
#TAKEDVDYEAR#
#TAKEEDITION#
#TAKEFEATURE#
#TAKEGENRE#
#TAKELANGUAGE#
#TAKEMEDIA#
#TAKEMEDIALANGUAGE#
#TAKEMEDIAYEAR#
#TAKEMOVIEID#
#TAKEMPAA#
#TAKEMUSIC#
#TAKENUMBER#
#TAKEOFFICIALWEB#
#TAKEORIGINAL#
#TAKEPACKAGING#
#TAKEPHOTOGRAPHER#
#TAKEPICTURE#
#TAKEPICTUREINMOVIES#
#TAKEPLOT#
#TAKEPOSTER#
#TAKEPOSTERBACK#
#TAKEPOSTEREPISODE#
#TAKEPOSTERFANART#
#TAKEPOSTERSERIE#
#TAKEPREMIERED#
#TAKEPRODCODE#
#TAKEPRODUCER#
#TAKEQUOTES#
#TAKERATING#
#TAKEREGION#
#TAKEREVIEW#
#TAKERUNTIME#
#TAKESCREENDVD#
#TAKESEASON#
#TAKESTORY#
#TAKESTUDIO#
#TAKESUBGENRE#
#TAKESUBTITLE#
#TAKETAGLINE#
#TAKETRAILER1#...#TAKETRAILER2#
#TAKEUPC#
#TAKEWORD#
#TAKEWORDLEN#
#TAKEWRITER#
#TAKEYEAR#
#TITLE#
#TRIM#
W: #WHILE#
#WRITETITLELIST#
#WRITEWARNING#

TOP


BLOCKS:  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Start of Block --> End of Block Function(s) Description
A: #ACTORDATA# --> #ENDACTORDATA# #ADDFILMOGRAPHY#
#TAKEACTORBDATE#
#TAKEACTORBIO#
#TAKEACTORBIRTHNAME#
#TAKEACTORBPLACE#
#TAKEACTORCOUNTRY#
#TAKEACTORFILM#
#TAKEACTORNAME#
#TAKEACTORPROFESSION#
#TAKEACTORSEX#
#TAKEACTORWEB#
Get actor's movies
Get actor's birthdate
Get actor's biography
Get actor's birthname
Get actor's birth place
Get actor's birth country
Get actor's movie in database
Get actor's real name
Get actor's profession
Get actor's sex
Get actor's web site
Contains all functions to get every data of an actor.
#ACTORS# --> #ENDACTORS# #TAKEACTOR# Get all actors of a movie.
#AUDIODVD# --> #ENDAUDIODVD# #TAKEAUDIODVD# Get audio of the DVD
#AWARDS# --> #ENDAWARDS# #TAKEAWARDS# Get awards infos
C: #CHAPTERS# --> #ENDCHAPTERS# #TAKECHAPTERS# Get chapters of the DVD
#COMMENTS# --> #ENDCOMMENTS# #TAKECOMMENTS# Get comments
#COUNTRY# --> #ENDCOUNTRY# #TAKECOUNTRY# Get country
#CREATEEPISODELIST# --> #ENDCREATEEPISODELIST# #WRITETITLELIST# Create a list of all episodes of a tv show
#CREATEMOVIELIST# --> #ENDCREATEMOVIELIST# #WRITETITLELIST# Create a list of all movies that fit the search word
#CUSTOM1#...#CUSTOM11# --> #ENDCUSTOM1#...#ENDCUSTOM11# #TAKECUSTOM1# Get custom infos no. 1 to 11
D: #DELETETAGS# --> #ENDDELETETAGS# #DELETEWORD# Delete tags in here
#DIRECTOR# --> #ENDDIRECTOR# #TAKEDIRECTOR# Get the director
#DISTRIBUTOR# --> #ENDDISTRIBUTOR# #TAKEDISTRIBUTOR# Get the distributor
E: #EDITION# --> #ENDEDITION# #TAKEEDITION# Get edition info
  #EPISODEAIRDATE# --> #ENDEPISODEAIRDATE# #TAKEPREMIERED# Get the episode's premiere date
#EPISODEDIRECTOR# --> #ENDEPISODEDIRECTOR# #TAKEDIRECTOR# Get the episode's director
#EPISODEPLOT# --> #ENDEPISODEPLOT# #TAKEPLOT# Get the episode's plot
  #EPISODESHOWSTARS# --> #ENDEPISODESHOWSTARS# #TAKEACTORSERIE# Get episode's actors
#EPISODESTORY# --> #ENDEPISODESTORY# #TAKESTORY# Get the episode's story
#EPISODETITLE# --> #ENDEPISODETITLE# #TITLE# Get the episode's title
#EPISODEWRITER# --> #ENDEPISODEWRITER# #TAKEWRITER# Get the episode's writer
F: #FEATURES# --> #ENDFEATURES# #TAKEFEATURES# Get the features of a DVD
G: #GENRE# --> #ENDGENRE# #TAKEGENRE# Get the genre
L: #LANGUAGE# --> #ENDLANGUAGE# #TAKELANGUAGE# Get the original language of a DVD
#LOADOPTIONS# --> #ENDLOADOPTIONS# #SETOPTION# Load script's options
#LOADWEBSLOTS# --> #ENDLOADWEBSLOTS# #LOADWEBSLOT1# Load web slots (1 to 5)
M: #MEDIA# --> #ENDMEDIA# #TAKEMEDIA# Get the media type
#MEDIALANGUAGE# --> #ENDMEDIALANGUAGE# #TAKEMEDIALANGUAGE# Get the languages of a DVD
#MEDIAYEAR# --> #ENDMEDIAYEAR# #TAKEMEDIAYEAR# Get the publication year of a DVD
#MOVIEID# --> #ENDMOVIEID# #TAKEMOVIEID# Get the movie's web site id
#MOVIETITLE# --> #ENDMOVIETITLE# #GETTITLE# Get the movie's title
#MPAA# --> #ENDMPAA# #TAKEMPAA# Get the MPAA for a movie
#MUSIC# --> #ENDMUSIC# #TAKEMUSIC# Get the music info of a movie
N: #NUMBER# --> #ENDNUMBER# #TAKENUMBER# Get number of discs
O: #OFFICIALWEB# --> #ENDOFFICIALWEB# #TAKEOFFICIALWEB# Get official web site of a movie
#ORIGINAL# --> #ENDORIGINAL# #TAKEORIGINALTITLE# Get the original title of a movie
P: #PACKAGING# --> #ENDPACKAGING# #TAKEPACKAGING# Get packaging info of a movie
#PHOTOGRAPHER# --> #ENDPHOTOGRAPHER# #TAKEPHOTOGRAPHER# Get the photographer
#PLOT# --> #ENDPLOT# #TAKEPLOT# Get the plot
#POSTER# --> #ENDPOSTER# #TAKEPOSTER# Get all posters of a movie
#PREMIERED# --> #ENDPREMIERED# #TAKEPREMIERED# Get the premiere date of a movie
#PRODUCER# --> #ENDPRODUCER# #TAKEPRODUCER# Get the producer
R: #RATING# --> #ENDRATING# #TAKERATING# Get the official rating
#REGION# --> #ENDREGION# #TAKEREGION# Get the regeion of a DVD
#REVIEWS# --> #ENDREVIEWS# #TAKEREVIEWS# Get the reviews of a movie
#RIGHTPAGEFOUND# --> #ENDRIGHTPAGEFOUND# #CONDITIONRIGHTPAGE# Block to analyze if the search returns directly the Movie Page or the List of Movies to show
#RUNTIME# --> #ENDRUNTIME# #TAKERUNTIME# Get the runtime of a movie
S: #SCREENDVD# --> #ENDSCREENDVD# #TAKESCREENDVD# Get the resolution of a DVD
#SERIEAWARDS# --> #ENDSERIEAWARDS# #TAKEAWARDS# Get the awards for a tv show
#SERIECOUNTRY# --> #ENDSERIECOUNTRY# #TAKECOUNTRY# Get the country of a tv show
#SERIEGENRE# --> #ENDSERIEGENRE# #TAKEGENRE# Get the genre of a tv show
#SERIELANGUAGE# --> #ENDSERIELANGUAGE# #TAKELANGUAGE# Get the language of a tv show
#SERIEPLOT# --> #ENDSERIEPLOT# #TAKEPLOT# Get the plot of a tv show
#SERIEPOSTER# --> #ENDSERIEPOSTER# #TAKEPOSTERSERIE# Get the poster of a tv show
#SERIEPREMIERED# --> #ENDSERIEPREMIERED# #TAKEPREMIERED# Get the premiere date of a tv show
#SERIESUBGENRE# --> #ENDSERIESUBGENRE# #TAKESUBGENRE# Get the subgenre of a tv show
#SERIETITLE# --> #ENDSERIETITLE# #ORIGINALTITLE# Get the title of a tv show
#SETVARIABLES# --> #ENDSETVARIABLES# #SETOPTION# Predefine script's variables
#SIMILARSHOWS# --> #ENDSIMILARSHOWS# #SIMILARSHOWS# Get similar shows
#STUDIO# --> #ENDSTUDIO# #TAKESTUDIO# Get the production studio of a movie
#SUBGENRE# --> #ENDSUBGENRE# #TAKESUBGENRE# Get the subgenre of a movie
#SUBSTITUTETAGS# --> #ENDSUBSTITUTETAGS# #SUBSTITUTEWORD# Substitute tags in here
#SUBSTITUTEWEBQUERY# --> #ENDSUBSTITUTEWEBQUERY# #SUBSTITUTEWEBQUERYWORD# Substitute tags in #MOVIE# in here
#SUBTITLES# --> #ENDSUBTITLES# #TAKESUBTITLES# Get the subtitles of a DVD
T: #TAGLINE# --> #ENDTAGLINE# #TAKETAGLINE# Get the tag line of a movie
#TRAILER# --> #ENDTRAILER# #TAKETRAILER1# Get the trailer(s) or adress(es) of them
U: #UPC# --> #ENDUPC# #TAKEUPC# Get the UPC code
W: #WRITER# --> #ENDWRITER# #TAKEWRITER# Get the writer of a movie
Y: #YEAR# --> #ENDYEAR# #TAKEYEAR# Get the production year of a movie

TOP


SCRIPT HEADER:

#DATEBUILD#= Date of script's creation or last modification
#ICONQUALITY#= Quality of the pics
#LANGUAGESORT#= Language of the web site info
#MADEBY#= Name of script's creator or modifier
#NOTE#= Characteristic of script
#OPTIONS#= 0=No options|1=With options
#RELEASE#= Minimum XMM release
#REPLACESPACES#= Characters that must replace the spaces in the movie's title (for query the web)
#SCRIPTFORACTORS#= TRUE|FALSE
#SCRIPTGENERATION#= Generation of the script (actual=5)
#SCRIPTQUALITY#= Quality of the script
#TVSERIES#= TRUE|FALSE
#TYPE#= 0=Complete|1=Only covers|2=Only informations
#WEBSITE#= URL of web site

TOP


CONSTANTS:

#WEBQUERY#= Search adress (http://akas.imdb.com/find?s=all&q=#MOVIE#)
#WEBQUERYID#= Web adress (http://akas.imdb.com/Details?#MOVIEUPDATEID#)
#MOVIE#= Search Name of the Movie
#MOVIEUPDATEID#= Last used movie link for import
#SCRIPTWEBSITE#= Base web adress (http://akas.imdb.com/)

TOP



#ADDACTOR#

Adds the Name of an Actor to Database.

Syntax:

#ADDACTOR#=#??#

Parameters:

#??# Required. The Variable where the NAME of the Actor is stored.

Examples:

1. #ADDACTOR#=#03#
This example takes the Name of Actor that is stored on the #03# variable. You can use this function several time to add all actors to Database.

Instructions | Top




#ADDFILMOGRAPHY#

Adds a Movie to Actor's data.

Syntax:

#ADDFILMOGRAPHY#=#??#

Parameters:

#??# Required. The Variable where the INFO of the Movie is stored.

Examples:

1. #ADDFILMOGRAPHY#=#03#
This example takes the Info of a Movie that is stored on the #03# variable. You can use this function several time to add all movies.

Remarks:
The Info must have following structure: TITLE (YEAR)§Link to Movie§Script name
Example: Avatar (2009)§http://www.imdb.com/title/tt0499549/§IMDB.COM (Complete).txt
Instructions | Top




#CHECKACTOREXIST#

Checks if the Name of an Actor is already in Database.

Syntax:

#CHECKACTOREXIST#=#?1#,#?2#

Parameters:

#?1# Required. The Variable where the RESULT is stored. 0 or Actor's ID in database.
#?2# Required. The Variable where the NAME of the Actor is stored.

Examples:

1. #CHECKACTOREXIST#=#03#,#04#
This example takes the Name of Actor that is stored on the #04# variable and returns the result on the #03# variable.

Instructions | Top




#CHECKVARIABLE#

Prepares a VARIABLE for #DELETETAGS#, #CLEARTAGS# or #SUBSTITUTETAGS#.

Syntax:

#CHECKVARIABLE#=#??#

Parameters:

#??# Required. The Variable that should be used.

Examples:

1. #CHECKVARIABLE#=#03#
This example takes the #03# variable and prepares it for #DELETETAGS#, #CLEARTAGS# or #SUBSTITUTETAGS#.

Instructions | Top




#CLEARBUFFERACTORS#

Clears all data of a previously import of an Actor.

Syntax:

#CLEARBUFFERACTORS#

Parameters:

none

Instructions | Top




#CLEARTAGS#

Clears all tags inside a variable.

Syntax:

#CLEARTAGS#=#??#

Parameters:

#??# Required. The Variable that must be cleared.

Instructions | Top




#COMPUTECURSOR#

Makes a SUM or SUBTRACTION to the CURSOR variable.

Syntax:

#COMPUTECURSOR#=±number

Parameters:

± Required. Is the operation you want make.
number Required. Is the Value to SUM or SUBTRACT

Examples:

1. #COMPUTECURSOR#=+2
This Example sum to the value of CURSOR "2".

Instructions | Top




#COMPUTEVAR#

Makes a SUM or SUBTRACTION to a variable that contains a numerical variable.

Syntax:

#COMPUTEVAR#=#??#±number

Parameters:

#??# Required. The numerical Variable that should be used for operation.
± Required. Is the operation you want make.
number Required. Is the Value to SUM or SUBTRACT

Examples:

1. #COMPUTECURSOR#=+2
This Example sum to the value of CURSOR "2".

Instructions | Top




#CONDITIONRIGHTPAGE#

Specifies if you have found directly the page of a movie.

Syntax:

#CONDITIONRIGHTPAGE# #?1#==#?2#

Parameters:

#?1# Required. The first variable to compare.
#?2# Required. The second variable to compare.
== Required. The Operator. It can assume this value :
"==" this means "Equal To"
"<>" this means "Different to"

Examples:

1. #CONDITIONRIGHTPAGE# #03#<>#04#

Here the page you found is directly of the movie if value of #03# variable is different from value of #04#.

Remarks:
You can use with this function only Variables, so if you need to compare a variable with a string, first you must #PUT# you string in another variable and then compare.

Instructions | Top
 


#DELETEWORD#

Delete defined words inside a variable.

Syntax:

#DELETEWORD#=text

Parameters:

text Required. Any String that has to be deleted from a Variable.


Remarks:
Variable has to be prepared with #CHECKVARIABLE#. Function must be inside #DELETETAGS# block.

Instructions | Top




#DOWNLOADTRAILER1#

Downloads the Link of a Trailer or the Link to the web page containing the Trailer.

Syntax:

#DOWNLOADTRAILER1#=#?1##?2#

Parameters:

#?1# Required. Link of the Trailer.
#?2# Optional. Extension of the Trailer.

Examples:

1. #DOWNLOADTRAILER1#=#03#
This example stores the Link to the page of the Trailer in #03# variable.

2. #DOWNLOADTRAILER1#=#03##04#
This example stores the Link to the Trailer in #03# variable and the file extension in #04# variable.

Instructions | Top




#IF# ... #ENDIF#

The Engine can supports the IF Statement, but you can't make an IF statement inside another IF. It Means that you can use any IF you want but each one must be used separatly; however, you can put an IF Statement inside a REPEAT...WHILE and vice-versa
This release of MagicScript Doesn't support the "ELSE" statement, but you have the #GOTO# Function that will help you in many different cases. The Structure is :

#IF# #?1#==#?2#
.....
.....
#ENDIF#

The IF compares two (RED) VARIABLES, and supports only these variables. If the result of the comparison is positive, Engine will execute the instruction inside IF-ENDIF, else all instructions will be ignored.This means that if you want to compare two strings, you must put it on empty VARIABLES first and then use the IF Statement. This isn't a big limitation for this kind of application.

Operators

Operators you can use with IF Statement :

"==" that means "Equal To", you can use it for strings and number comparisons
"<>" that means "Different", you can use it for strings and number comparisons
"<<" that means "Minor" , this makes a comparison only between numbers
">>" that means "Major" , this makes a comparison only between numbers

It isn't supported any operator like <= or >= because these operators are useless.

Instructions | Top
 


#FIND#

Search for a string only in the CURRENT LINE of HTML page.

Syntax:

#FIND#=text#??##ONERROR#=*options*

Parameters:

text Required. The text to find in the HTML.
#??# Required. The number of Variable where Function store the result of the Search.
If the text is found, the variable will contain his position , if no text is found, value 0
#ONERROR#=*options* Optional. In the options you can specify what Engine must do in case of ERROR of the Function :
STOP -> Will terminate the BLOCK where is the Function.
ASK -> Will show you the message of error and the script-line where is located
OK -> Will ignore the error and go on with executing the others functions

Examples:

1. #FIND#=<title>#12##ONERROR#=*ASK*
2. #FIND#=<title> #12##ONERROR#=*OK*
Note that these two functions search for different strings! the first searches "<title>", the Second the String "<title> " .Be careful!
This Instruction is similar to the #FINDLINE#, but searches for the text only in the current line of HTML.

Remarks:
This function writes also on the main variable CURSOR the position where the string you search starts. remember that all other functions start to
search text from the position of the CURSOR variable.

Instructions | Top




#FINDLINE#

Search downwards for a string in a HTML page.

Syntax:

#FINDLINE#=text#??##ONERROR#=*options*

Parameters:

text Required. The text to find in the HTML.
#??# Required. The number of Variable where Function store the result of the Search.
If the text is found, the variable will contain value 1 , if no text is found, value 0
#ONERROR#=*options* Optional. In the options you can specify what Engine must do in case of ERROR of the Function :
STOP -> Will terminate the BLOCK where is the Function.
ASK -> Will show you the message of error and the script-line where is located
OK -> Will ignore the error and go on with executing the others functions

Examples:

1. #FINDLINE#=<title>#12##ONERROR#=*STOP*
2. #FINDLINE#=<title> #01##ONERROR#=*ASK*

Note that these two functions search for different strings! the first search "<title>", Second the String "<title> " .Be careful!

This Instruction is useful when you want to search for a particular string in the whole HTML , but you don't know where it is. It is different from the #FIND#
function that searches for a string only in the CURRENT Line of HTML. To know the the position in the string where is text you are looking for begin,
you can use the CURSOR Variable.

Remarks:
This function writes on the main variable CURSOR the position where the string you are searching starts. Remember that all others functions start to
search text from the position of the CURSOR variable!.

Instructions | Top




#FINDLINEPREVIOUS#

Search upwards for a string in a HTML page.

Syntax:

#FINDLINEPREVIOUS#=text#??##ONERROR#=*options*

Parameters:

text Required. The text to find in the HTML.
#??# Required. The number of Variable where Function store the result of the Search.
If the text is found, the variable will contain value 1 , if no text is found, value 0
#ONERROR#=*options* Optional. In the options you can specify what Engine must do in case of ERROR of the Function :
STOP -> Will terminate the BLOCK where is the Function.
ASK -> Will show you the message of error and the script-line where is located
OK -> Will ignore the error and go on with executing the others functions

Examples:

1. #FINDLINEPREVIOUS#=<title>#12##ONERROR#=*STOP*
2. #FINDLINEPREVIOUS#=<title> #01##ONERROR#=*ASK*

Note that these two functions search for different strings! the first search "<title>", Second the String "<title> " .Be careful!

This Instruction is useful when you want to search for a particular string in the whole HTML , but you don't know where it is. It is different from the #FINDPREVIOUS#
function that searches for a string only in the CURRENT Line of HTML. To know the the position in the string where is text you are looking for begin,
you can use the CURSOR Variable.

Remarks:
This function writes on the main variable CURSOR the position where the string you are searching starts. Remember that all others functions start to
search text from the position of the CURSOR variable!.

Instructions | Top
 


#FINDLINEVAR#

Search downwards for a variable in a HTML page.

Syntax:

#FINDLINEVAR#=#?1#?2##ONERROR#=*options*

Parameters:

#?1# Required. The variable containing the text to find in the HTML.
#?2# Required. The number of Variable where Function store the result of the Search.
If the text is found, the variable will contain value 1 , if no text is found, value 0
#ONERROR#=*options* Optional. In the options you can specify what Engine must do in case of ERROR of the Function :
STOP -> Will terminate the BLOCK where is the Function.
ASK -> Will show you the message of error and the script-line where is located
OK -> Will ignore the error and go on with executing the others functions

Examples:

1. #FINDLINEVAR#=#11##12##ONERROR#=*STOP*
This Instruction is useful when you want to search for a particular string in the whole HTML , but you don't know where it is. It is different from the #FIND#
function that searches for a string only in the CURRENT Line of HTML. To know the the position in the string where is text you are looking for begin,
you can use the CURSOR Variable.

Remarks:
This function writes on the main variable CURSOR the position where the string you are searching starts. Remember that all others functions start to
search text from the position of the CURSOR variable!.

Instructions | Top
 


#FINDPREVIOUS#

Search for a string backwards only in the CURRENT LINE of HTML page.

Syntax:

#FINDPREVIOUS#=text#??##ONERROR#=*options*

Parameters:

text Required. The text to find in the HTML.
#??# Required. The number of Variable where Function store the result of the Search.
If the text is found, the variable will contain his position , if no text is found, value 0
#ONERROR#=*options* Optional. In the options you can specify what Engine must do in case of ERROR of the Function :
STOP -> Will terminate the BLOCK where is the Function.
ASK -> Will show you the message of error and the script-line where is located
OK -> Will ignore the error and go on with executing the others functions

Examples:

1. #FINDPREVIOUS#=<title>#12##ONERROR#=*ASK*
2. #FINDPREVIOUS#=<title> #12##ONERROR#=*OK*
Note that these two functions search for different strings! the first searches "<title>", the Second the String "<title> " .Be careful!
This Instruction is similar to the #FINDLINE#, but searches for the text only in the current line of HTML.

Remarks:
This function writes also on the main variable CURSOR the position where the string you search starts. remember that all other functions start to
search text from the position of the CURSOR variable.

Instructions | Top
 


#FINDPREVIOUSVAR#

Search backwards for a variable only in the CURRENT LINE of HTML page.

Syntax:

#FINDPREVIOUSVAR#=#?1##?2##ONERROR#=*options*

Parameters:

#?1# Required. The variable containing the text to find in the HTML.
#?2# Required. The number of Variable where Function store the result of the Search.
If the text is found, the variable will contain his position , if no text is found, value 0
#ONERROR#=*options* Optional. In the options you can specify what Engine must do in case of ERROR of the Function :
STOP -> Will terminate the BLOCK where is the Function.
ASK -> Will show you the message of error and the script-line where is located
OK -> Will ignore the error and go on with executing the others functions

Examples:

1. #FINDPREVIOUSVAR#=#11##12##ONERROR#=*ASK*
This Instruction is similar to the #FINDPREVIOUS#, but searches for the text only in the current line of HTML.

Remarks:
This function writes also on the main variable CURSOR the position where the string you search starts. remember that all other functions start to
search text from the position of the CURSOR variable.

Instructions | Top
 


#FINDVAR#

Search for a variable only in the CURRENT LINE of HTML page.

Syntax:

#FIND#=#?1##?2##ONERROR#=*options*

Parameters:

text Required. The text to find in the HTML.
#??# Required. The number of Variable where Function store the result of the Search.
If the text is found, the variable will contain his position , if no text is found, value 0
#ONERROR#=*options* Optional. In the options you can specify what Engine must do in case of ERROR of the Function :
STOP -> Will terminate the BLOCK where is the Function.
ASK -> Will show you the message of error and the script-line where is located
OK -> Will ignore the error and go on with executing the others functions

Examples:

1. #FIND#=<title>#12##ONERROR#=*ASK*
This Instruction is similar to the #FINDLINE#, but searches for the text only in the current line of HTML.

Remarks:
This function writes also on the main variable CURSOR the position where the string you search starts. remember that all other functions start to
search text from the position of the CURSOR variable.

Instructions | Top




#GETACTORVAR#

Take the Actor variables directly from database.

Syntax: #GETACTORVAR#=#??#=%WEBID%

Parameters:

#??# Required. The Variable where put the data taken from the Database.
%WEBID% Required. Example, this is for take the WebID of the actor .

Examples:

1. #GETACTORVAR#=#12#=%WEBID%
This Instruction is used to know if an Actor is alread on the Database, especially for IMDB).

Instructions | Top




#GETMOVIEVAR#

Put Movie Name in a variable.

Syntax: #GETMOVIEVAR#=#??#=%MOVIE%

Parameters:

#??# Required. The Variable where the title movie must be loaded.
%MOVIE% Required. The Title passed from XMM.

Examples:

1. #GETMOVIEVAR#=#12#=%MOVIE%

Instructions | Top




#GETTITLE#

Put the title of the movie in a variable, useful if you need the movie's title in the script.

Syntax:

#GETTITLE#=#??#

Parameters:

#??# Required. The Variable where the title movie must be loaded.

Examples:

1. #GETTITLE#=#03#

Instructions | Top




#GETWEBSITELINE#

Function to know the Current Text Line number of the Website HTML

Syntax:

#GETWEBSITELINE#=#??#

Parameters:

#??# Required. The Variable where the number must be loaded.

Examples:

1. #GETWEBSITELINE#=#03#

Instructions | Top



#GOTO#

Helping you to write powerful scripts, the #GOTO# Instruction is at your disposal. When the Engine will find this, the execution will jump to the LABEL Specified.
The Structure of this Instruction is :

#GOTO#=LABEL

Where label is a LABEL in another line of the Script.
A LABEL statement is composed by a colon followed by text : ":LABEL1"

When you want to go to this label, you must use this instruction :

"#GOTO#=LABEL1"

It is important not to put the colons in the #GOTO# instruction! : "#GOTO#=:LABEL1" and to cancel all spaces to the right! If you write a goto like this : "#GOTO#=LABEL1 ", the Engine will not find the Label and will report to you an error!

Particular attention must be payed when you use #GOTO# inside REPEAT..WHILE Statement :

Example

Good Code :
In this part of code everything is OK, the #GOTO# Instruction points to a LABEL that is out of any IF and REPEAT.

#REPEAT#
#FIND#=Href="#10# #ONERROR#=*OK*
#IF# #10#==#09#
#GOTO#=CAST2
#ENDIF#
#FIND#=>#01# #ONERROR#=*ASK*
#FIND#=<#02# #ONERROR#=*ASK*
#TAKEWORD#=#03#,#01#,#02#
#TAKEACTOR#=#03#
#WHILE# #09#<>#10#
:CAST2

BAD Code :
This code is BADLY written, because the #GOTO# Instruction points to a LABEL inside another REPEAT! At this time of development, MagicScript will not warn you this error, and the result of this script ARE UNPREDICTABLE!

#REPEAT#
#FIND#=Href="#10# #ONERROR#=*OK*
#IF# #10#==#09#
#GOTO#=CAST2
#ENDIF#
#TAKEWORD#=#03#,#01#,#02#
#TAKEACTOR#=#03#
#WHILE# #09#<>#10#
#REPEAT#
#FIND#=Href="#10# #ONERROR#=*OK*
:CAST2
#TAKEWORD#=#03#,#01#,#02#
#TAKEACTOR#=#03#
#WHILE# #09#<>#10#

Instructions | Top




#ISNUMERICAL#

Checks if a variable is numerical.

Syntax:

#ISNUMERICAL#=#?1#,#?2#

Parameters:

#?1# Required. The Variable to be checked.
#?2# Required. The Result of the check. 1=numeric, 0=alphanumeric

Examples:

1. #ISNUMERICAL#=#01#,#02#

Instructions | Top




#LOADCURSOR#

Loads a value in the Cursor Variable.

Syntax:

#LOADCURSOR#=#??#

Parameters:

#??# Required. The Variable where the value is stored.

Examples:

1. #LOADCURSOR#=#03#

Instructions | Top




#LOADWEBSLOT1#

Sets a previously loaded web page as active.

Syntax:

#LOADWEBSLOT1#

Parameters:

none

Examples:

1. #LOADWEBSLOT1#
Remarks:
Five Webslots are available: #LOADWEBSLOT1# to #LOADWEBSLOT5#

Instructions | Top




#OPENNEWWEB#

Particular attention must be focused on this Special Function #OPENNEWWEB#. Basically MagicScript Works with the HTML specified on #WEBQUERY# when you find directly the page of a movie, or another HTML you select from the LIST of MOVIE FOUND. With this instruction, you can OPEN and work to another HTML Until #RESTOREWEB# instruction is reached. This is particularly useful when some information (like plot in imdb.com, box covers in dvdempire.com) is stored in a different page. It is important that you SAVE the position of the CURSOR before using this function, so that you will find it when you go back to the original HTML.

Example

#OPENNEWWEB#=#50#
#REPEAT#
#FINDLINE#=http://posters.imdb.com#12##ONERROR#=*STOP*
#FIND#=http://posters.imdb.com#01# #ONERROR#=*STOP*
#IF# #12#<>#09#
#FIND#="#02# #ONERROR#=*STOP*
#TAKEWORD#=#03#,#01#,#02#
#STRING#=#04#=h#03#
#TAKEPOSTER#=#04#
#ENDIF#
#WHILE# #09#<>#12#
#RESTOREWEB#

This is a part of imdb's Script. In the variable #50# is stored the URL of the page that contains the posters.
The Engine with #OPENNEWWEB# re-initializes itself. To start reading the new HTML, set the first line at the top (without #STARTREADWEB# function) and set CURSOR to 1. The functions inside #OPENNEWWEB# are executed sequentially until #RESTOREWEB# is reached.

NOTE: You can use this function where you want in the script and as many times as you want, BUT you can't use it inside another #OPENNEWWEB#-#RESTOREWB#.

You can have :

#OPENNEWWEB#=#50#
.....
#RESTOREWEB#
....
#OPENNEWWEB#=#50#
.....
#RESTOREWEB#

But it is not correct to write:

#OPENNEWWEB#=#50#
......
#OPENNEWWEB#=#50#
......
#RESTOREWEB#
......
#RESTOREWEB#

The result of this Script are UNPREDICTABLE

Instructions | Top




#OPENWEBSLOT1#

Loads a web page into a slot.

Syntax:

#OPENWEBSLOT1#=#??#

Parameters:

#??# Required. The Variable containing the address of the web page.

Examples:

1. #OPENWEBSLOT1#=#03#
Remarks:
Five Webslots are available: #OPENWEBSLOT1# to #OPENWEBSLOT5#

Instructions | Top




#ORIGINALTITLE#

Takes the Original Title.

Syntax:

#ORIGINALTITLE#=#??#

Parameters:

#??# Required. The Variable where to store the Original Title.

Examples:

1. #ORIGINALTITLE#=#03#

Instructions | Top




#PUT#

Puts a text or a number into a variable.

Syntax:

#PUT#=Text#??#

Parameters:

Text Required. The Text (or number) you want put into the variable.
#??# Required. The Variable where put the text.

Examples:

1. #PUT#=mytext#02#
This Example put in the Variable #02# the text "mytext".

Remarks:
Remember that your text must be inside "="<-and first->"#" : the function #PUT#=text#02# is different from #PUT#=text #02# !.

Instructions | Top
 


#PUTCURSOR#

Puts the value of CURSOR into a variable.

Syntax:

#PUTCURSOR#=#??#

Parameters:

#??# Required. The Variable where put the value of CURSOR.

Examples:

1. #PUTCURSOR#=#01#
This Example puts the CURSOR into #01# variable.

Instructions | Top




#READNEXTLINE#

Read the next line of HTML and set the CURSOR Variable to 1;

Syntax:

#READNEXTLINE#

Parameters:

none


Remarks:
This instruction is useful when you have found a particular thing with #FINDLINE# instruction and you want analyze the text line by line.

Instructions | Top




#READPREVIOUSLINE#

Read the previous line of HTML and set the CURSOR Variable to 1;

Syntax:

#READPREVIOUSLINE#

Parameters:

none


Remarks:
This instruction is useful when you have found a particular thing with #FINDLINE# instruction and you want analyze the text line by line.

Instructions | Top




#REPEAT#...#WHILE#

The Engine can support REPEAT...WHILE Statement, but you can't make a REPEAT statement inside another REPEAT. It Means that you can use any REPEAT you want but each one must be used separatly. Inside a REPEAT, you can put all the instructions you want, also IF Statements (and vice-versa).
The Structure is :

#REPEAT#
.....
.....
#WHILE# #??#==#??#

The WHILE compares two (RED) VARIABLES, and supports only these variables. If the result of the comparison is positive, Engine will execute the cycle of instructions again, otherwise it will terminate the REPEAT-WHILE Statement.If you want to compare two strings, you must first put them on empty VARIABLES and then use the WHILE. This isn't a big limitation for this kind of application.

Operators

Operators you can use with the WHILE Statement are :

"==" that means "Equal To", you can use it for strings and number comparison
"<>" that means "Different", you can use it for strings and number comparison

You must be careful when you use a #GOTO# Instruction! See Example :

Good Code :
In this part of code everything is OK, the #GOTO# Instruction points to a LABEL that is out of any IF and REPEAT.

#REPEAT#
#FIND#=Href="#10# #ONERROR#=*OK*
#IF# #10#==#09#
#GOTO#=CAST2
#ENDIF#
#FIND#=>#01# #ONERROR#=*ASK*
#FIND#=<#02# #ONERROR#=*ASK*
#TAKEWORD#=#03#,#01#,#02#
#TAKEACTOR#=#03#
#WHILE# #09#<>#10#
:CAST2

BAD Code :
This code is BADLY written, because the #GOTO# Instruction points to a LABEL that is inside another REPEAT! At this time of development, MagicScript will not warn you of this error, and the result of this script ARE UNPREDICTABLE!

#REPEAT#
#FIND#=Href="#10# #ONERROR#=*OK*
#IF# #10#==#09#
#GOTO#=CAST2
#ENDIF#
#TAKEWORD#=#03#,#01#,#02#
#TAKEACTOR#=#03#
#WHILE# #09#<>#10#
#REPEAT#
#FIND#=Href="#10# #ONERROR#=*OK*
:CAST2
#TAKEWORD#=#03#,#01#,#02#
#TAKEACTOR#=#03#
#WHILE# #09#<>#10#

Instructions | Top




#RESETCURSOR#

Reset the Cursor variable.

Syntax:

#RESETCURSOR#

Parameters:

none

Examples:

1. #RESETCURSOR#

Instructions | Top




#RESTOREWEBSITELINE#

Restore the previously saved website line.

Syntax:

#RESTOREWEBSITELINE#

Parameters:

none

Examples:

1. #RESTOREWEBSITELINE#

Instructions | Top




#RESTOREMAIN#

Function to Re-Open in memory the Main HTML. Used when you load other webpages with #LOADWEBSLOT?#

Syntax:

#RESTOREMAIN#

Parameters:

none

Examples:

1. #RESTOREMAIN#

Instructions | Top




#SAVEEPISODEINFO#

This instruction save the Current Episode Information and clear the variables for Next Episode

Syntax:

#SAVEEPISODEINFO#

Parameters:

none

Examples:

1. #SAVEEPISODEINFO#

Instructions | Top




#SAVEMOVIE#

Force the Engine to Save Current Imported info in the Database without wait the End of Import Process

Syntax:

#SAVEMOVIE#

Parameters:

none

Examples:

1. #SAVEMOVIE#

Instructions | Top




#SAVEWEBSITELINE#

Save the actual website line.

Syntax:

#SAVEWEBSITELINE#

Parameters:

none

Examples:

1. #SAVEWEBSITELINE#

Instructions | Top




#SETCURSOR#

Puts a value in the CURSOR Variable.

Syntax:

#SETCURSOR#=number

Parameters:

number Required. The number you want put into the CURSOR variable.

Examples:

1. #SETCURSOR#=12
This Example puts in the value 12 in the CURSOR variable.

Instructions | Top




#SETOPTION#

Set an option.

Syntax:

#SETOPTION#=#?1#?[text]text

Parameters:

#?1# Required. The Option Variable.
? Required. The Option's value.
[text] Required. The Name of the Option.
text Required. The Description of the Option

Examples:

1. #SETOPTION#=#80#1[Title Import]0=Do not Take The Title|1=Take the Title

Instructions | Top




#SHOWVAR#

Show a variable, used for Debug

Syntax:

#SHOWVAR#=#??#

Parameters:

#??# The Variable to Show

Examples:

1. #SHOWVAR#=#??#

Instructions | Top




 

#SIMILARSHOWS#

Function to Import Similar TVShow

Syntax:

#SIMILARSHOWS#=#??#

Parameters:

#??# Required. The Varible of the Similar Show

Examples:

1. #SIMILARSHOWS#=#??#

Instructions | Top


#STARTDELETETAGS#

Call DELETETAGS block for a selected (#CHECKVARIABLE#) variable and delete text parts.

Syntax:

#STARTDELETETAGS#

Parameters:

none

Examples:

1. #STARTDELETAGS#

Instructions | Top




#STARTREADWEB#

Reset the Read Engine to the first line of HTML and set the CURSOR Variable to 1.

Syntax:

#STARTREADWEB#

Parameters:

No Parameter

This Instruction Tell to engine that you want start your search to the top of the HTML file.

Remarks:
It's recommended that you put this instruction in all Blocks for re-initializing the Engine. If you read the title of a movie that is at the bottom of the HTML file, and then read the Director that is at the top,you will not find Director's info if you didn't re-initialize the engine with this instruction .

Instructions | Top




#STARTSUBSTITUTETAGS#

Call SUBSTITUTETAGS block for a selected (#CHECKVARIABLE#) variable and replace text parts.

Syntax:

#STARTSUBSTITUTETAGS#

Parameters:

none

Examples:

1. #STARTSUBSTITUTETAGS#

Instructions | Top




#STRING#

Puts a string into a variable , the string can contain text and variables.

Syntax:

#STRING#=#?1#=[Text1][#?2#]{Text#??#}

Parameters:

#?1# Required. The Variable where put the string.
Text1, Text ... Optional. The Text you want put in the string.
#??# Optional. The Variable you want put in the string at the particular position.

Examples:

1. #PUT#=www.emuitalia.com/#01#
#PUT#=aletsg/#02#
#STRING#=#04#=http:/#01##02#divxmanager/
This Example put in the Variable #04# the text "http://www.movieplayer.it/divxmanager/" that is formed of various text and variables .

Remarks:
With this function you can build your strings before sending it to the Engine.

Instructions | Top
 


#SUBSTITUTEWEBQUERYWORD#

Replace defined words inside variable #MOVIE#.

Syntax:

#SUBSTITUTEWEBQUERYWORD#=text1=text2

Parameters:

text1 Required. Any String that has to be replaced in variable #MOVIE#.
text2 Required. Any String that replaces a text in variable #MOVIE#.

Remarks:
Function must be inside #SUBSTITUTEWEBQUERY# block.

Instructions | Top




#SUBSTITUTEWORD#

Replace defined words inside a variable.

Syntax:

#SUBSTITUTEWORD#=text1=text2

Parameters:

text1 Required. Any String that has to be replaced in a Variable.
text2 Required. Any String that replaces a text in a Variable.


Remarks:
Variable has to be prepared with #CHECKVARIABLE#. Function must be inside #DELETETAGS# block.

Instructions | Top




#TAKEXXX#

Take the XXX Variable.

Syntax:

#TAKEXXX#=#??#

Parameters:

#??# Required. The Variable where the XXX of the Movie is stored.

Examples:

1. #TAKEXXX#=#03#
This Example Takes the XXX on the #03# variable.

Instructions | Top




#TAKEWORD#

Takes a string from the current line.

Syntax:

#TAKEWORD#=#?1#,#?2#,#?3#

Parameters:

#?1# Required. The Variable where is the Text Extracted.
#?2# Required. The Variable of starting point of the Text to extract.
#?3# Required. The Variable of ending point of the Text to extract. If you set this = "0", you will take all the line!

Examples:

1. #TAKEWORD#=#03#,#01#,#02#
This Example takes a string from CURRENT LINE, starting from the position stored on variable #01# through #02# , and puts the text in the #03# Variable.

Remarks:
This function is fundamental for working with strings, it doesn't modify the CURSOR Variable.

Instructions | Top
 


#TAKEWORDLEN#

Takes a string from the current line;

Syntax:

#TAKEWORDLEN#=#?1#,#?2#,#?3#

Parameters:

#?1# Required. The Variable where is the Text Extracted.
#?2# Required. The Variable of starting point of the Text to extract.
#?3# Required. The length of the string to extract.

Examples:

1. #TAKEWORD#=#03#,#01#,#02#
This Example take a string LONG #02# from CURRENT LINE, starting at position stored on variable #01#, and puts the text in the #03# Variable.

Remarks:
This function is fundamental for working with strings, it doesn't modify the CURSOR Variable.

Instructions | Top
 


#TITLE#

Take the Title Variable.

Syntax:

#TITLE#=#??#

Parameters:

#??# Required. The Variable where the Title of the Movie is stored.

Examples:

1. #TITLE#=#03#
This Example Takes the Title on the #03# variable.

Instructions | Top




#TRIM#

Delete all leading and trailing spaces out of a selected (#CHECKVARIABLE#) variable.

Syntax:

#TRIM#

Parameters:

none

Examples:

1. #TRIM#

Instructions | Top




#WRITETITLELIST#

Writes the string in the MOVIE LIST FOUND; the string can contain text and variables.

Syntax:

#WRITETITLELIST#=[Text1][#?2#] --->{Text#??#}

Parameters:

Text1, Text ... Optional. The Text you want write.
#??# Optional. The Variable you want put in the string at the particular position.
" --->" Required. This String is REQUIRED : Engine use this for separate the URL of a movie from his TITLE!

Examples:

1. #PUT#=Title=?0133093#06#
#PUT#=Matrix, The#07#
#WRITETITLELIST#=http://imdb.com/#06# ---> #07#
This Example write the URL and the TITLE of the "Matrix" Movie.

Remarks:
You MUST use this function for create the list of all movies found on a page.

Instructions | Top
 


#WRITEWARNING#

Show a Messagebox with a text.

Syntax:

#WRITEWARNING#=Text

Parameters:

Text Required. The Text you want to write.

Examples:

1. #WRITEWARNING#=This may take some time to finish!

Instructions | Top



 

Templates:

ActorCard:

Actorcards are based on HTML but with one big difference. The concept of actorcards is to place spaceholders called html-replacers in a blank html file, the program replaces these spaceholders with actual values of the database fields when you choose to display an actor::

1. HTML-replacer for the field name, e.g. when you want to put the field name for the actor filmography onto the actorcard you have to wrtite "_TACTOR_FILMOGRAPHY_" in the html-code. 2. HTML-replacer for the field content, e.g. when you want to put the field content for actor filmography onto the moviecard you have to wrtite ""_ACTOR_FILMOGRAPHY_" in the html-code.

As most people want something original of their own design, e.g. to make it match the general look and feel of the rest of their website, there is the possibility to create own actorcards. You need to have a HTML editor (such as MS FrontPage, Netscape etc.), or a text editor such as NotePad. Basic HTML knowledge is required. The best startingpoint for this is of course the "all" actorcard that contains all data fields and has a plain and simple layout.

There are two actorcard types you can use:

1. Ordinary Actorcard (as described above)

Field Name Field Content Description
_ACTOR_NAME_ Actor's name
_ACTOR_ID_ Actor's ID
_ACTOR_COVER_ Actor's cover
_TACTOR_BIRTHNAME_ _ACTOR_BIRTHNAME_ Actor's birth name
_TACTOR_BIRTHPLACE_ _ACTOR_BIRTHPLACE_ Actor's birth place
_TACTOR_COUNTRY_ _ACTOR_COUNTRY_ Actor's country
_TACTOR_BIRTHDATE_ _ACTOR_BIRTHDATE_ Actor's birth place
_TACTOR_DEATHDATE_ _ACTOR_DEATHDATE_ Actor's death date
_TACTOR_SEX_ _ACTOR_SEX_ Actor's sex
_TACTOR_WEBPAGE_ _ACTOR_WEBPAGE_ Actor's web page
_TACTOR_SCRIPTUSED_ _ACTOR_SCRIPTUSED_ Last used script
_TACTOR_LINK_SCRIPT_ _ACTOR_LINK_SCRIPT_ Actor's link script
_TACTOR_BIOGRAPHY_ _ACTOR_BIOGRAPHY_ Actor's biography
_TACTOR_FILMOGRAPHY_ _ACTOR_FILMOGRAPHY_ Actor's filmography
_TACTOR_COMMENTS_ _ACTOR_COMMENTS_ Actor's comments
_TACTOR_AWARDS_ _ACTOR_AWARDS_ Actor's awards
_TACTOR_PICTURES_ _ACTOR_COVERX_ Actor's covers
_TACTOR_PROFESSION_ _ACTOR_PROFESSION_ Actor's profession
_MOVIE_ACTOR_COVER_  
_MOVIE_ACTOR_TITLE_  
_MOVIE_ACTOR_YEAR_  
_MOVIE_ACTOR_PLOT_  

 

2. GeneralDB2HTML-Template

In the xMM documents folder there is a subfolder "(x)HTML-DB" where you can find an addon called GeneralDB2HTML . With this really cool application you can create all (x)HTML-databases you want with all fields you like. Warning: Syntax for html-id-tag differs from ordinary or other (x)HTML-compatible moviecards, which means that you have to create an own template for GeneralDB2HTML (see overview). JavaScript is case-sensitive. So please use the tags exactly as they are shown in the table (or inside GeneralDB2HTML)!


For a short overview take a look at the following table:

Description
"GeneralDB2HTML Template"

HTML-ID
<... id="..." name="..."...>

Actor Awards
-
Actor Birthdate
BirthDate
Actor Birthname
BirthName
Actor Birthplace
BirthPlace
Actor Biography
Biography
Actor Comments
Comment
Actor Country
Country
Actor Deathdate
-
Actor Filmography
Filmography
Actor Cover
Picture
Actor Cover Nr.X
-
Actor ID
Actor ID
Actor Link Script
WebLinkActor
Actor Name
Name
Actor Profession
-
Actor Sex
Sex
Actor Used Script
ScriptUsed
Actor Webpage
WebPage
 

MovieCard:

Moviecards are based on HTML but with one big difference. The concept of moviecards is to place spaceholders called html-replacers in a blank html file, the program replaces these spaceholders with actual values of the database fields when you choose to display a movie:

1. HTML-replacer for the field name, e.g. when you want to put the field name for the original title onto the moviecard you have to wrtite "_TMOVIE_ORIGINALTITLE_" in the html-code. 2. HTML-replacer for the field content, e.g. when you want to put the field content for the original title onto the moviecard you have to wrtite "_MOVIE_ORIGINALTITLE_" in the html-code.

As most people want something original of their own design, e.g. to make it match the general look and feel of the rest of their website, there is the possibility to create own moviecards. You need to have a HTML editor (such as MS FrontPage, Netscape etc.), or a text editor such as NotePad. Basic HTML knowledge is required. The best startingpoint for this is of course the "all" moviecard that contains all data fields and has a plain and simple layout.

There are three moviecard types you can use:

1. Ordinary Moviecard (as described above)

Field Name Field Content Description
_TMOVIE_NCD_ _MOVIE_NCD_ Number of discs
_TMOVIE_TITLE_ _MOVIE_TITLE_ Movie's title
_TMOVIE_COUNTRY_ _MOVIE_COUNTRY_ Movie's country
_TMOVIE_TAGLINE_ _MOVIE_TAGLINE_ Movie's tagline
_TMOVIE_RATED_ _MOVIE_RATED_ Movie's rating
_TPERSONAL_RATING_ _MOVIE_PERSONALRATING_ Movie's personal rating
_MOVIE_ID_ Movie ID
_MOVIE_FANART_ Movie's fanart pic
_MOVIE_FANART1_ Additional fanart pic
_MOVIE_FANART2_ Additional fanart pic
_MOVIE_FANART3_ Additional fanart pic
_MOVIE_FANART4_ Additional fanart pic
_MOVIE_FANART5_ Additional fanart pic
_MOVIE_FANART6_ Additional fanart pic
_MOVIE_FANART7_ Additional fanart pic
_MOVIE_FANART8_ Additional fanart pic
_MOVIE_FANART9_ Additional fanart pic
_MOVIE_COVER_ Movie's cover pic
_MOVIE_COVER1_ Additional cover pic
_MOVIE_COVER2_ Additional cover pic
_MOVIE_COVER3_ Additional cover pic
_MOVIE_COVER4_ Additional cover pic
_MOVIE_COVER5_ Additional cover pic
_MOVIE_COVER6_ Additional cover pic
_MOVIE_COVER7_ Additional cover pic
_MOVIE_COVER8_ Additional cover pic
_MOVIE_COVER9_ Additional cover pic
_MOVIE_BACKCOVER_ Movie's backcover pic
_MOVIE_BACKCOVER1_ Additional backcover pic
_MOVIE_BACKCOVER2_ Additional backcover pic
_MOVIE_BACKCOVER3_ Additional backcover pic
_MOVIE_BACKCOVER4_ Additional backcover pic
_MOVIE_BACKCOVER5_ Additional backcover pic
_MOVIE_BACKCOVER6_ Additional backcover pic
_MOVIE_BACKCOVER7_ Additional backcover pic
_MOVIE_BACKCOVER8_ Additional backcover pic
_MOVIE_BACKCOVER9_ Additional backcover pic
_TMOVIE_SEEN_ _MOVIE_SEEN_ seen/unseen
_TMOVIE_CDBOXID_ _MOVIE_CDBOXID_ CatalogN°
_TMOVIE_MEDIA_ _MOVIE_MEDIA_ Mediatype
_TMOVIE_MEDIAST_ _MOVIE_MEDIAST_ Status
_TMOVIE_LENGTH_ _MOVIE_LENGTH_ Movie's runtime
_TDATE_INSERT_ _DATE_INSERT_ Date of insertion
_TLAST_MODIFY_ _LAST_MODIFY_ Date of last modification
_TLOCATION_ _LOCATION_ Location
_TMOVIE_ORIGINALTITLE_ _MOVIE_ORIGINALTITLE_ Movie's original title
_TMOVIE_YEAR_ _MOVIE_YEAR_ Movie's year
_TMOVIE_GENRE_ _MOVIE_GENRE_ Movie's genre
_TMOVIE_SUBGENRE_ _MOVIE_SUBGENRE_ Movie's subgenre
_TMOVIE_MPAA_ _MOVIE_MPAA_ Movie's MPAA
_TMOVIE_PLOT_ _MOVIE_PLOT_ Movie's plot
_TMOVIE_COMMENT_ _MOVIE_COMMENT_ Movie's comments
_TMOVIE_REVIEW_ _MOVIE_REVIEW_ Movie's reviews
_TMOVIE_NOTES_ _MOVIE_NOTES_ Movie's notes
_TMOVIE_STUDIO_ _MOVIE_STUDIO_ Movie's studio
_TMOVIE_DISTRIBUTOR_ _MOVIE_DISTRIBUTOR_ Movie's distributor
_TMOVIE_LANGUAGE_ _MOVIE_LANGUAGE_ Movie's languages
_TLOAN_DATE_ _LOAN_DATE_ Loan date
_TLOANED_BY_ _LOANED_BY_ Leaned by
_TMOVIE_SITEID_ _MOVIE_SITEID_ Movie's site ID
_TMOVIE_SCRIPTUSED_ _MOVIE_SCRIPTUSED_ Last used script
_EPISODE_SEASON_ Episode's season
_EPISODE_NUMBER_ Episode's number
_EPISODE_ID_ Episode's ID
_EPISODE_TITLE_ Episode's title
_IS_TVSHOW_ Is entry a movie or a show
_TMOVIE_ACTORS_   Starring
_MOVIE_ACTORS_ID_ Actor's ID
_MOVIE_ACTORS_NAME_ Actor's name
_MOVIE_ACTORS_ROLE_ Actor's role
_TMOVIE_DIRECTOR_ _MOVIE_DIRECTOR_ Movie's director
_TMOVIE_PRODUCER_ _MOVIE_PRODUCER_ Movie's producer
_TMOVIE_WRITER_ _MOVIE_WRITER_ Movie's writer
_TMOVIE_PHOTOGRAPHER_ _MOVIE_PHOTOGRAPHER_ Movie's photographer
_TMOVIE_MUSIC_ _MOVIE_MUSIC_ Movie's composer
_TMOVIE_AWARDS_ _MOVIE_AWARDS_ Movie's awards
_TMOVIE_REGION_ _MOVIE_REGION_ Region
_TMOVIE_EDITION_ _MOVIE_EDITION_ Edition
_TMOVIE_SCREENRATIO_ _MOVIE_SCREENRATIO_ Screen ratio
_TMOVIE_AUDIOFORMAT_ _MOVIE_AUDIOFORMAT_ Audio format
_TUPC_CODE_ _UPC_CODE_ UPC
_TMEDIA_YEAR_ _MEDIA_YEAR_ Media's year
_TDVD_CHAPTERS_ _DVD_CHAPTERS_ Media chapters
_TMOVIE_VIDEOSTANDARD_ _MOVIE_VIDEOSTANDARD_ Video standard
_TDATE_PURCHASED_ _DATE_PURCHASED_ Date purchased
_TPRICE_ _PRICE_ Price
_TDATE_SEEN_ _DATE_SEEN_ Date seen
_TSEEN_WHERE_ _SEEN_WHERE_ Seen at
_TOWNER_ _OWNER_ Owner
_TAQUIRED_FROM_ _AQUIRED_FROM_ Aquired from
_TVALUE_ _VALUE_ Value ????
_TMOVIE_CODEC_ _MOVIE_CODEC_ Codec
_TMOVIE_BITRATE_ _MOVIE_BITRATE_ Bitrate
_TMOVIE_RESOLUTION_ _MOVIE_RESOLUTION_ Resolution
_TMOVIE_AUDIO_ _MOVIE_AUDIO_ Audio
_TMOVIE_SUBTITLE_ _MOVIE_SUBTITLE_ Movie's subtitles
_TMOVIE_ABITRATE_ _MOVIE_ABITRATE_ Audio bitrate
_TMOVIE_SRATE_ _MOVIE_SRATE_ Sample rate
_TMOVIE_CHANNELS_ _MOVIE_CHANNELS_ Channels
_TMOVIE_FILESIZE_ _MOVIE_FILESIZE_ Movie's file size
_TMOVIE_RIPPER_ _MOVIE_RIPPER_ Ripper
_MOVIE_AUDIOQUALITY_ Audio rating
_MOVIE_AUDIODVD_ AudioDVD
_MOVIE_CATEGORY_ Category
_MOVIE_COLOR_ Colour
_TMOVIE_CUSTOMFIELD1_ _MOVIE_CUSTOMFIELD1_ Custom field 1
_TMOVIE_CUSTOMFIELD2_ _MOVIE_CUSTOMFIELD2_ Custom field 2
_TMOVIE_CUSTOMFIELD3_ _MOVIE_CUSTOMFIELD3_ Custom field 3
_TMOVIE_CUSTOMFIELD4_ _MOVIE_CUSTOMFIELD4_ Custom field 4
_TMOVIE_CUSTOMFIELD5_ _MOVIE_CUSTOMFIELD5_ Custom field 5
_TMOVIE_CUSTOMFIELD6_ _MOVIE_CUSTOMFIELD6_ Custom field 6
_TMOVIE_CUSTOMFIELD7_ _MOVIE_CUSTOMFIELD7_ Custom field 7
_TMOVIE_CUSTOMFIELD8_ _MOVIE_CUSTOMFIELD8_ Custom field 8
_TMOVIE_CUSTOMFIELD9_ _MOVIE_CUSTOMFIELD9_ Custom field 9
_TMOVIE_CUSTOMFIELD10_ _MOVIE_CUSTOMFIELD10_ Custom field 10
_TMOVIE_CUSTOMFIELD11_ _MOVIE_CUSTOMFIELD11_ Custom field 11
_TMOVIE_DOLBY_ _MOVIE_DOLBY_ Dolby
_MOVIE_FEATURES_ Media features
_MOVIE_FILMQUALITY_ Film rating
_TMOVIE_FREETIME_ _MOVIE_FREETIME_ Free time
_TMOVIE_FPS_ _MOVIE_FPS_ FPS
_TMOVIE_LANGUAGEENCODED_ _MOVIE_LANGUAGEENCODED_ Media Language
_TMOVIE_MOVIEFILE1_ _MOVIE_MOVIEFILE1_ Movie file 1
_TMOVIE_MOVIEFILE2_ _MOVIE_MOVIEFILE2_ Movie file 2
_TMOVIE_MOVIEFILE3_ _MOVIE_MOVIEFILE3_ Movie file 3
_TMOVIE_MOVIEFILE4_ _MOVIE_MOVIEFILE4_ Movie file 4
_TMOVIE_MOVIEFILE5_ _MOVIE_MOVIEFILE5_ Movie file 5
_TMOVIE_MOVIEFILE6_ _MOVIE_MOVIEFILE6_ Movie file 6
_TMOVIE_OFFICIALWEB_ _MOVIE_OFFICIALWEB_ Movie's official web site
_TPACKAGING_ _PACKAGING_ Packaging
_TMOVIE_PLAYER_ _MOVIE_PLAYER_ Player
_TMOVIE_START_ _MOVIE_START_ Starting position
_MOVIE_TOTALACTORS_ Total number of actors
_MOVIE_TOTALMOVIES_ Total number of movies
_TMOVIE_TRAILERFILE1_ _MOVIE_TRAILERFILE1_ Trailer file 1
_TMOVIE_TRAILERFILE2_ _MOVIE_TRAILERFILE2_ Trailer file 2
_MOVIE_VIDEODVD_ Video DVD
_TMOVIE_VIDEOMODE_ _MOVIE_VIDEOMODE_ Video mode
_MOVIE_VIDEOQUALITY_ Video rating
_MOVIE_WEBIMPORTED_ Web imported
_TMOVIE_WEBLINK_ _MOVIE_WEBLINK_ Web link
_MOVIE_ACTORS_PICTURE_ Actor's pic

 


2. (x)HTML-database compatible Moviecard

If you want to use your moviecard for the export as (x)HTML-database you have to write a special html-id-tag additionally, otherwise the content will not be exported. At the moment not all fields can be exported into the (x)HTML-database!


3. GeneralDB2HTML-Template

In the xMM documents folder there is a subfolder "(x)HTML-DB" where you can find an addon called GeneralDB2HTML . With this really cool application you can create all (x)HTML-databases you want with all fields you like. Warning: Syntax for html-id-tag differs from ordinary or other (x)HTML-compatible moviecards, which means that you have to create an own template for GeneralDB2HTML (see overview). JavaScript is case-sensitive. So please use the tags exactly as they are shown in the table (or inside GeneralDB2HTML)!


For a short overview take a look at the following table:

Description
"(X)HTML Moviecard"
"GeneralDB2HTML Template"
HTML-ID
<.. id="..." name="..."..>

HTML-ID
<.. id="..." name="..."..>

Aquired From
-
AquiredFrom
Audio
mAudio
AudioCodec
A.Bitrate
mABR
AudioBitRate
Audio Format
mADVD
AudioDVD
Audio Rating
-
-
AudioDVD
-
-
Awards
-
Awards
Bitrate
mBR
Bitrate
CatalogN°
mRefNo
CatalogNo
Category
-
-
Channels
mACH
Channels
Chapters
-
Chapter
Codec
mCodec
Codec
Colour
-
Colour
Comments
mComm
Comments
Cover
mCover
Cover
Custom Field 1
-
Custom1
Custom Field 2
-
Custom2
Custom Field 3
-
Custom3
Custom Field 4
-
Custom4
Custom Field 5
-
Custom5
Custom Field 6
-
Custom6
Custom Field 7
-
Custom7
Custom Field 8
-
Custom8
Custom Field 9
-
Custom9
Custom Field 10
-
Custom10
Custom Field 11
-
Custom11
Country
mCountry
Country
Date Last Loan
-
DateLoan
Date Of Insert
mDoI
DateInsert
Date Purchased
-
DatePurchased
Date Seen
-
SeenWhen
Director
mDIR
Director
Disks
mNCD
Disk
Distributor
mDistr
Distributor
Dolby
mDolby
DolbyCodec
Edition
mEdition
Edition
Features
-
-
Film Rating
-
-
Free Time
mFTime
FreeTime
FPS
mFPS
FPS
Genre
mGenre
Genre
Last Loan
-
Loaner
Last Modify
-
Modified
Length
mTime
Length
Loaned
-
Loan
Location
-
Location
Marked
-
Marked
Media
mMedia
Media
Media Language
mLang
Language
Media Year
-
-
Movie File 1
-
MovieFile1
Movie File 2
-
MovieFile2
Movie File 3
-
MovieFile3
Movie File 4
-
MovieFile4
Movie File 5
-
MovieFile5
Movie File 6
-
MovieFile6
Movie ID
mMediaID
MovieID
Movie Title
mTitle
Title
MPAA
mPAA
MPAA
Music
-
Musician
Notes
mNotes
Notes
Official Web
-
URL
Original Language
mOLang
OriginalLanguage
Original Title
mOTitle
OriginalTitle
Owner
-
Owner
Packaging
-
Packaging
Personal Rating
-
-
Photographer
mPhtg
Photographer
Player
-
Player
Plot
mPlot
Plot
Price
-
Price
Producer
mProd
Producer
Rating
mRated
Rating
Region
mRegion
Region
Resolution
mRES
Resolution
Review
-
-
Ripper
mRipper
Ripped
S.Rate
mSR
SampleRate
Screen Ratio
mVDVD
VideoDVD
Script Used
 -
ScriptUsed
Seen At
-
SeenWhere
seen/unseen
-
Seen
Site ID
-
InternetID
Starring
mActors
Actors
Starting Position
mPOS
Position
Status
mStatus
Status
Studio
mStudio
Studio
SubGenre
-
Subgenre
SubTitle
mSubT
Subtitles
Tagline
mTagline
TagLine
Total Actors
 -
-
Total Filesize
mFSize
Filesize
Total Movies
 -
 -
Trailer File 1
-
TrailerFile1
Trailer File 2
-
TrailerFile2
UPC Code
-
UPC
Value
-
Value
VideoDVD
-
-
Video Mode
mMode
Mode
Video Rating
-
-
Video Standard
mVStd
VideoStandard
Web Imported
-
WebImported
Web Link
-
WebLinkScript
Writer
mWriter
Writer
Year
mYear
Year
 
 

EpisodeCard:

Field Name Field Content Description
_EPISODE_RATED_ Episode's rating
_EPISODE_NCD_ Episode's number of media
_EPISODE_COUNTRY_ Episode's Country
_EPISODE_SEEN_ Seen/Unseen
_EPISODE_GENRE_ Episode's genre
_EPISODE_TITLE_  Episode's title
_EPISODE_SERIEID_ Episode's serie ID
_EPISODE_SERIETITLE_ Episode's serie title
_EPISODE_SEASON_ Episode's season
_EPISODE_NUMBER_ Episode number
_PREV_EPISODE_ID_ Previous episode
_NEXT_EPISODE_ID_ Next episode
_EPISODE_COVER_ Episode's pic
_TEPISODE_PERSONALRATING_ _EPISODE_PERSONALRATING_ Episode's personal rating
_TEPISODE_AIRDATE_ _EPISODE_AIRDATE_ Episode's air date
_TEPISODE_DIRECTOR_ _EPISODE_DIRECTOR_ Episode's director
_TEPISODE_WRITER_ _EPISODE_WRITER_ Episode's writer
_TEPISODE_STORY_ _EPISODE_STORY_ Episode's story
_TEPISODE_RATING_ _EPISODE_RATING_ Episode's rating
_TEPISODE_PLOT_ _EPISODE_PLOT_ Episodes's plot
_TEPISODE_CAST_ _EPISODE_CAST_ Episode's cast
_TEPISODE_NOTES_ _EPISODE_NOTES_ Episode's notes
_TEPISODE_COMMENTS_ _EPISODE_COMMENTS_ Episode's comments
_TEPISODE_REVIEWS_ _EPISODE_REVIEWS_ Episodes' reviews
_TEPISODE_TRIVIA_ _EPISODE_TRIVIA_ Episode's trivia
_TEPISODE_QUOTES_ _EPISODE_QUOTES_ Episode's quotes
_TEPISODE_AUDIOFORMAT_ _EPISODE_AUDIOFORMAT_ Episode's audio format
_TEPISODE_CODEC_ _EPISODE_CODEC_ Episode's codec
_TEPISODE_BITRATE_ _EPISODE_BITRATE_ Episode's bitrate
_TEPISODE_RESOLUTION_ _EPISODE_RESOLUTION_ Episode's resolution
_TEPISODE_AUDIO_ _EPISODE_AUDIO_ Episode's audio
_TEPISODE_ABITRATE_ _EPISODE_ABITRATE_ Episode's audio bitrate
_TEPISODE_SRATE_ _EPISODE_SRATE_ Episode's sample rate
_TEPISODE_CHANNELS_ _EPISODE_CHANNELS_ Episode's channels
_TEPISODE_FILESIZE_ _EPISODE_FILESIZE_ Episode's file size

 

Special Card Options:

_SEASONS_DISPLAY_ (Un)fold seasons
_EPISODES_DISPLAY_ (Un)fold episodes
_ACTORS_DISPLAY_ (Un)fold actors
_CREW_DISPLAY_ (Un)fold crew
_AWARDS_DISPLAY_ (Un)fold awards
_OTHER_DISPLAY_ (Un)fold Other Informations