Code:
GETMOVIEINFO:
;================= reset controls
GuiControl %$MovieInfoGui%: ,$ExpCover,
GuiControl %$MovieInfoGui%: Move, $ExpCover, w210 h230
GuiControl %$MovieInfoGui%: Text, $ExpTitle, Downloading Info...
GuiControl %$MovieInfoGui%: Text, $ExpRating,
GuiControl %$MovieInfoGui%: Text, $ExpRelease,
GuiControl %$MovieInfoGui%: Text, $ExpRuntime,
GuiControl %$MovieInfoGui%: Text, $ExpBudget,
GuiControl %$MovieInfoGui%: Text, $ExpPlot,
GuiControl %$MovieInfoGui%: Text, $ExpCast,
$TMDbHomepage := ""
$TMDbTrailer := ""
Sleep 200
;=================
LV_GetText($MovieToGetInfo,LV_GetNext("C"),1), LV_GetText($IMDbLink,LV_GetNext("C"),3) ;get movie title and imdblink
;================= delete the file if it exists already
IFExist % $TMDbXMLFile
FileDelete % $TMDbXMLFile
;================= check internet connection
IF NOT ConnectedToInternet() {
Notify("Internet Connection - ERROR", "You are not connected to the internet!", "5", "GC=White TC=Black MC=Black IN=13", $ResDLL)
GuiControl %$MovieInfoGui%: Text, $ExpTitle, No Info Found...
RETURN
}
;================= if imdblink does not exist do normal search
IF $IMDbLink =
{
UrlDownloadToFile, http://api.themoviedb.org/2.1/Movie.search/en/xml/%$TMDbAPIKey%/%$MovieToGetInfo%, %$TMDbXMLFile%
IF not XPath_Load(xml, $TMDbXMLFile)
Notify("Xpath - ERROR", "Xml File could Not be Loaded!", "5", "GC=White TC=Black MC=Black IN=13", $ResDLL)
FileDelete % $TMDbXMLFile
$TMDbTitle := XPath(xml, "/OpenSearchDescription/movies/movie[1]/name/text()")
$TMDbID := XPath(xml, "/OpenSearchDescription/movies/movie[1]/id/text()")
$TMDbCover := XPath(xml, "/OpenSearchDescription/movies/movie[1]/images/image[@size=""mid""]/@url/text()")
$TMDbRating := XPath(xml, "/OpenSearchDescription/movies/movie[1]/rating/text()")
$TMDbRelease := XPath(xml, "/OpenSearchDescription/movies/movie[1]/released/text()")
$TMDbPlot := XPath(xml, "/OpenSearchDescription/movies/movie[1]/overview/text()")
;================= movie.getinfo by id
UrlDownloadToFile, http://api.themoviedb.org/2.1/Movie.getInfo/en/xml/%$TMDbAPIKey%/%$TMDbID%, %$TMDbXMLFile%
DownloadXML_MovieGetInfo = http://api.themoviedb.org/2.1/Movie.getInfo/en/xml/%$TMDbAPIKey%/%$TMDbID%
DownloadFile(DownloadXML_MovieGetInfo)
IF not XPath_Load(xml, $TMDbXMLFile)
Notify("Xpath - ERROR", "Xml File could Not be Loaded!", "5", "GC=White TC=Black MC=Black IN=13", $ResDLL)
FileDelete % $TMDbXMLFile
$TMDbRuntime := XPath(xml, "/OpenSearchDescription/movies/movie[1]/runtime/text()")
$TMDbBudget := XPath(xml, "/OpenSearchDescription/movies/movie[1]/budget/text()")
$TMDbCast := XPath(xml, "/OpenSearchDescription/movies/movie[1]/cast/person[@job=""Actor""]/@name/text()")
$TMDbHomepage := XPath(xml, "/OpenSearchDescription/movies/movie[1]/homepage/text()")
$TMDbTrailer := XPath(xml, "/OpenSearchDescription/movies/movie[1]/trailer/text()")
} ELSE {
;================= else do search by imdb id
RegExMatch($IMDbLink, "/title/\K[^/]+", $IMDbID)
UrlDownloadToFile, http://api.themoviedb.org/2.1/Movie.imdbLookup/en/xml/%$TMDbAPIKey%/%$IMDbID%, %$TMDbXMLFile%
IF not XPath_Load(xml, $TMDbXMLFile)
Notify("Xpath - ERROR", "Xml File could Not be Loaded!", "5", "GC=White TC=Black MC=Black IN=13", $ResDLL)
FileDelete % $TMDbXMLFile
$TMDbTitle := XPath(xml, "/OpenSearchDescription/movies/movie/name/text()")
$TMDbID := XPath(xml, "/OpenSearchDescription/movies/movie/id/text()")
$TMDbCover := XPath(xml, "/OpenSearchDescription/movies/movie/images/image[1][@size=""mid""]/@url/text()")
$TMDbRating := XPath(xml, "/OpenSearchDescription/movies/movie/rating/text()")
$TMDbRelease := XPath(xml, "/OpenSearchDescription/movies/movie/released/text()")
$TMDbPlot := XPath(xml, "/OpenSearchDescription/movies/movie/overview/text()")
;================= movie.getinfo by id
UrlDownloadToFile, http://api.themoviedb.org/2.1/Movie.getInfo/en/xml/%$TMDbAPIKey%/%$TMDbID%, %$TMDbXMLFile%
IF not XPath_Load(xml, $TMDbXMLFile)
Notify("Xpath - ERROR", "Xml File could Not be Loaded!", "5", "GC=White TC=Black MC=Black IN=13", $ResDLL)
FileDelete % $TMDbXMLFile
$TMDbRuntime := XPath(xml, "/OpenSearchDescription/movies/movie/runtime/text()")
$TMDbBudget := XPath(xml, "/OpenSearchDescription/movies/movie/budget/text()")
$TMDbCast := XPath(xml, "/OpenSearchDescription/movies/movie/cast/person[@job=""Actor""]/@name/text()")
$TMDbHomepage := XPath(xml, "/OpenSearchDescription/movies/movie/homepage/text()")
$TMDbTrailer := XPath(xml, "/OpenSearchDescription/movies/movie/trailer/text()")
}
;================= update controls with info
UrlDownloadToFile, %$TMDbCover%, %$TMDbTempCover%
GuiControl %$MovieInfoGui%: ,$ExpCover, % $TMDbTempCover
FileDelete % $TMDbTempCover
$TitleText := % (($TMDbTitle = "") ? ("No Info Found...") : ($TMDbTitle))
GuiControl %$MovieInfoGui%: Text, $ExpTitle, % $TitleText
GuiControl %$MovieInfoGui%: Text, $ExpRating, % $TMDbRating
GuiControl %$MovieInfoGui%: Text, $ExpRelease, % $TMDbRelease
$RuntimeText := (($TMDbTitle = "") ? ("") : ($TMDbRuntime " min"))
GuiControl %$MovieInfoGui%: Text, $ExpRuntime, % $RuntimeText
$TMDbBudgetNew := "$" ThousandsSep($TMDbBudget)
$BudgetText := (($TMDbTitle = "") ? ("") : ($TMDbBudgetNew))
GuiControl %$MovieInfoGui%: Text, $ExpBudget, % $BudgetText
GuiControl %$MovieInfoGui%: Text, $ExpPlot, % $TMDbPlot
GuiControl %$MovieInfoGui%: Text, $ExpCast, % $TMDbCast
RETURN
this is the part that downloads the info and updates the control
it would be nice if the whole thing could be launched in another thread
also is there an alternative to urldownloadtofile like the com example posted that downloads all kinds of files?