In this file, you will find all the global variables used in Getleft. As usual, this file is Copyright 1999-2007 Andrés García and its contents are distributed under the terms of the GPLv2, which means, among other things, that it comes with no warranty, if the contents of this file blow up your computer killing some passersby, you will have noone to blame but yourself. directories: Array with data about the local directories Getleft uses. - directories(local): directory of the file Getleft is processing. - directories(base): directory where you told Getleft to store the download. dirGetleft: Array containing the different directories Getleft is in. - dirGetleft(main): directory where 'Getleft.tcl' is in. - dirGetleft(scripts): where the scripts like 'Ayuda.tcl' are in. - dirGetleft(doc): where the documentation is. - dirGetleft(images): for the images of the program that are common among themes. - dirGetleft(icons): for the images that change between themes. - dirGetleft(languages): for the translations of Getleft. - dirGetleft(conf): where the logs and such are kept. - dirGetleft(lastDir): where the last downloaded site was saved. - dirGetleft(toolDir): the directory where we last used the 'Purge files' or 'Restore orig' tools. done: Not a real global variable, I use it in some dialogs so they can grab focus until the value of 'done' changes. errorCode: Global variable where Tcl puts error info. getleftState: Array with information about Getleft present state: - encoding: charset enconding of the first page downloaded. - getleftState(autoDown): '1' if Getleft is in full automatic download. - getleftState(filesChosen): '1' if the user has already chosen which links to download. - getleftState(delayedDown): '1' if the download being done has been programmed. - getleftState(delaySet): '1' if there is a download programed for future downloading. - getleftState(delayPressed): '1' if the button for delayed downloading should appear pressed. - getleftState(downloading): '1' if Getleft is downloading a site. - getleftState(errorFound): '1' if there was any error during the download. - getleftState(gotTileqt): '1' if the TileQt theme can be loaded. - getleftState(imgExt): Either 'gif' or 'png' depending on which set of icons we will be using. - getleftState(mapDone): If the user request a map of the site, this will be one if the map is already done. - getleftState(chosenLinks): A list of '0' and '1' representing the links chosen in the 'Choose files' dialog. - getleftState(mapLinks): A list with links the user told Getleft to follow to create the map. - getleftState(os): The platform we are in: 'win', 'mac' or 'unix'. 'mac' means MacOs X, not classic. - getleftState(startNow): '1' if the url has to be downloaded as soon as the data is entered, '0' if it only has to be in the queue. - getleftState(togo): '1' if Getleft is to be use in a 'portable' way like in a USB memory stick without a real install. - getleftState(url): The current url being downloaded. - getleftState(urlQueue): A list with all the urls that are queued to be downloaded. - getleftState(urlsToAuto): A list with all the urls that are selected to be downloaded in automatic mode. env: Global variable in which Tcl keeps the enviromental variables. indexButtons, indexDialogs and indexMenus: Arrays, the key of each element is the label of a widget, the content is the index of the character of the label that should appear underwriten. accMenus Array, with the string to show as a menus accelerator. labelButtons Array with the labels for the buttons in the language chosen by the user. labelDialogs: Array with the labels of the dialogs in the language chosen by the user. labelMenus: Array with the label of the menus in the language chosen by the user. labelMessages: Array with the messages in the language chosen by the user. labelMonths: Array with the names of the months in the language chosen by the user. labelTitles: Array with the titles of the windows in the language chosen by the user. getleftOptions: Array that keeps the user options that affect Getleft behaviour, most are boolean variables. - getleftOptions(lang): Code of the language Getleft is using. - getleftOptions(pauseNow): Set to '1' when the user want to pause the file as it is being downloaded, it is used in case instead of downloading we are processing a file. - getleftOptions(pauseFile): If '1' downloading will pause after the current file. - getleftOptions(pausePage): If '1' downloading will stop after getting all links in the current page. - getleftOptions(proxy): '1' if Getleft should use proxies. - getleftOptions(httpProxy): Address and port of the proxy for http requests. - getleftOptions(ftpProxy): Address and port of the proxy for ftp requests. - getleftOptions(sameProxy): '1' if Getleft has to use the same proxy for http and ftp. - getleftOptions(useAuthProxy): '1' if you need authentificacion to use the proxy. - getleftOptions(saveAuthPass): '1' if you want Getlef to save your password to the proxy. - getleftOptions(proxyUser): Your username to the proxy. - getleftOptions(proxyPass): and your password. - getleftOptions(resumeSites): List with the domains of the sites whose download was interrupted and will be completed in the future. - getleftOptions(stopPage): If '1' downloading will stop after the current page. - getleftOptions(stopFile): If '1' downloading will stop after the current file. downOptions: Array that keeps the user options that affect the current download, most are boolean variables. - downOptions(cgi): Whether to follow link to cgi pages. - downOptions(dir): If '1' Getleft will download files that are above the first one in the directory structure of the remote site. - downOptions(exlevels): Number of levels to follow for external sites. - downOptions(external): '1' if Getleft should follow links outside the site. - downOptions(filter): The filter used to decide which files to download. - downOptions(images): Takes the values '0', '1', '2' in case you want to download all images, only thumbnails or without thumbnails. - downOptions(levels): number of levels Getleft will recursively download. - downOptions(map): If '1' Getleft will do a map of the site. - downOptions(onlyHtml): If '1' only html pages will be downloaded. - downOptions(update): Whether the downloading is updating a former one. downOptionsTemp: Contains the same info as 'downOptions', it is used when entering a new url in the queue, so that we don't pollute the options of the download taking place. defautlDownOptions: Contains the same elements as downOptions, it keeps the options set as default by the user. siteUrl: Array with information about the remote site of the url entered by the user. - siteUrl(url): Url entered by the user. - siteUrl(prot): Protocol of the site. - siteUrl(www): Name of the site, e.g, www.scriptics.com - siteUrl(dir): Directory that holds the file, e.g, /pub. The root directory is represented by an empty string. - siteUrl(base): Directory of the file you entered. siteIndex: In case we ask Getleft to get the map of the site, when it's done, siteIndex is the number of links of the site plus one. siteMap: Array with the map of the site, it has a row for every link, the columns: - 'level': levels Getleft descended to find that link. - 'url': link. - 'descrip': description of the link. supportedLang: Array with the languages Getleft supports. It keeps the name of the language, the two-letter code to identify it, and the encoding requiered for its font. For example, for English we have: - supportedLang(English) == en - supportedLang(en) == iso8859-1 - supportedLang(langList) List with the names of all the languages to which Getleft has been translated. tcl_platform Array in which Tcl keeps the info about the platform it is running in. urlIndex: The last Urls entered are keep in the list 'urlHistory', this variable keeps the index in which the next url will be entered. urlHistory: List with the last urls entered. urlsToDownload: An array with information about the urls in the queue: - urlsToDownload(the_url_entered): It simply contains a '1' as proof we have the data. - urlsToDownload(the_url_entered,dir): The directory where it will be stored. - urlsToDownload(the_url_entered,resume): How many times it has already been resumed. - urlsToDownload(the_url_entered,options): A list with the downOptions for the download as given by: array get downOptions. From now on you will find the variables used in namespaces In case you are wondering: - Ayuda == Help - Descargar == Download - Dialogos == Dialogs - Herramientas == Tools - Ventana == Window - Rizo == Curl - Progreso == Progress Namespace Ayuda - browserTemp: The contents of the entry in which to write the name of the browser you want to use as default. - window: Array with the path of some elements of the toplevel window to choose the default browser in Linux: - window(browserEntry): The path of the entry in which to enter the name of the browser you want to use. - window(topleve): The path of the toplevel window. Namespace Herramientas - ip: Every element of this array contains the path to one of the entries in which you put the network address and port of the proxy. - n: In the events of the proxy configuration dialog, 'n' represents the next entry. - fileLog: - fileLog(file): File with the error log. - fileLog(win): Top level window with the error log. - fileLog(text): Path of the text widget where the log is written. Namespace Ventana - action Either 'head' or 'body' depending on whether Getleft is getting the headers or the body of a link. - file File name and path in the local computer of the link being downloaded. - link: Link being downloaded. - menus: Path of the menus for the 'Pause' and 'Stop' menus buttons. - mother Referrer page of the link. - waitingPid The identifier of the event to change the title of the downloading window while we are waiting after a timout. - window Array with the paths of the elements of the downloading window: - window(top): The toplevel path. - window(url): Label with the site domain name. - window(dir): Label with the directory of the file in the remote site. - window(file): Label with the name file. - window(left): Label where the time left of downloding. - window(bar): The path of the progress bar. - window(cancel): The path to the cancel button. - window(pause): The path to the pause button. - window(resume): The path to the resume button. Namespace Rizo - curlError In case 'curl' returns an error, this variable will have the error code. - curlReport: Array that keeps some information about the download being done by curl: - scurlReport(end): curl has finished downloading the link. - curlReport(left): In the long reports, curl estimates how much time of downloading is left, this time is kept in this variable. - curlReport(nextFile): The contents of this variable are incremented, when Getleft can start downloading a new link. It is used in a 'tkwait' statement. - curlReport(pause): '1' while the user asks for the downloading to be paused. - curlReport(percentage): Percentage of the file downloaded. - curlReport(speed): The speed of the downloading. - curlReport(stop): '1' if the user wants to stop the downloading. - errorMessage: Gets the error message raised by 'curl' or the server. - leftIndex and speedIndex On version 6.4 curl changed the format of its report, these variables hold the place in that report of the time left and the current speed. - meta: Array with the headers of the requested link: - meta(code): Error code return by the server. - meta(content): MIME type of the link, for example "text/html" - meta(error): Error message returned by the server. - meta(lastModified): Date of the last time the linked file was modified. Unfortunately, some servers don't return this info with the headers. - meta(relocate): '1' if the headers say that the link has been relocated. - meta(totalBytes): Size of the link - meta(versionServer): version of http used by the server. - pipe: Handle of the pipe used to write the file. Namespace Dialogos This namespace takes care of the dialog used to choose a directory. It is adapted from a example found in 'Practical Programming in Tcl/Tk' by Brent Welch (http://www.beedub.com), I made most of the changes to it a few years ago, when I knew even less about Tcl than I know now, so please, don't blame Mr Welch for whatever you find there. - fileselect Array with information about the elements of the dialog window. - fileselect(dir): Current directory. - fileselect(dirEnt): Path of the entry widget in which the current directory is shown. - fileselect(done): This is used as a marker in a tkwait statement, if it equals '1' the user has entered something, if it equals '0' the user has canceled the action. - fileselect(path): Path entered by the user. - fileselect(pathEnt): Path of the entry where the user can write the chosen directory. - pressedButton When the user presses a button in a dialog, like those 'Yes' 'No' buttons, this variable will keep the name of the button pressed. Namespace HtmlParser - entities: array with the mapping of the Html character entities, for example: 'entities(lt)==>' - pageEncoding: if the page includes the encoding used in a meta tag, this variable will have it, otherwise, if will have an empty string. - links: array with information about the links found in a page, indexes begin at '1': - descrip: The description for the link. - file: The link as it appears in the page. - type: What kind of link, so far it can be 'image', 'thumb' or nothing at all. - ok: boolean, '1' if the file is going to be downloaded, '0' if it has been filtered. - shown: boolean, '1' if the link is shown in the 'Choose files' dialog. - url: The full url of the link. - linksToIgnore: Array with the url that were rejected in the Choose links dialog, so that they won't be download no matter what. - nLinks: Number of links plus one found in the last page processed. So if you want to use it, you need something like: for {set i 1} {$i<$nLinks} {incr i} {} Namespace Commands - workFile: Array used to load a file into memory, it's structure: - workFile(0)=="First line of the file" ............ - sedChanges: Array with the changes that will be applied to the file. The 'sed' prefix comes from the time I used to call 'sed' to do this job for me. It's structure: - sedChanges(0,old)==Regular expresion with the string to change. - sedChanges(0,new)==The new string. - sedIndex: Index of 'sedChanges' in which the next change to make will be placed. - workFileLines: A list with the lines in WorkFile() which contain a '=' sign, here is where we will look for links to change. Problem is the links don't have to be in the same line of the file, they can be written like: something Just because I have never seen it, doesn't mean it isn't a bug waiting to happen. - startLine: Index of the workFileLines list in which Getleft will start trying to match the change. Namespace Descargar - filesNotFound Array where Getleft stores the links which the server refuses to serve, like when it doesn't find them or the are forbidden or whatever. They are stored as with 'filesProcessed' - filesProcessed Array where Getleft stores which files have already been processed for links. The key is the full name of the file, the value is the level of recursion in which the link was found. If the levels of recursion are not limited Getleft uses this not to process the same file twice, if they are, it will process it more than once if it finds it again at a lower level. For example: set filesProcessed(/home/Andres/download/index.html) 1 - filesRelocated Array with the urls from the site that are realocated, so that we only ask once for them, in the descriptions, 'url' is the original link. - filesRelocated(link,url): New url of the link after relocation. - filesRelocated(link,ok): Whether to follow it or not. - filesRelocated(link,file): The local file for the relocated link. - filesRelocated(link,html): Whether the file in html or not. - relocated: In case Getleft finds a file that has been relocated, it will put all necessary info in this array. - relocated(ok): '1' if there has been a relocation. - relocated(url): The new file, including path, to download. - updated When the 'Update' option is checked this array will keep track of the files that have already been updated. For example, updated(/home/Andres/bounty/images/something.jpg) == 1 Namespace Cookies - cookies: Array with info about the cookies stored: - index,domain: Site the cookie applies to. - index,share: Whether the cookie is shared among the sites of the domain. - index,path: Path within the domain. - index,secure: Either 'TRUE' or 'FALSE'. - index,expires: The moment, in seconds since 1-Jan-1970, the cookies expires. - index,cookie: The name of the cookie. - index,value: The value of the cookie. Namespace ChooseFiles activeLink: The path to the checkButton where the user right-clicked to show the context menu. win: - win(links): The frame that contains the checkbuttons. - win(linksId): The canvas id of the frame with the links. - win(menu): Path to the context menu. - win(text): Path to the text widget where the links are shown - win(top): Path to the toplevel window of the dialog. refererUrl: The url of the page from which we have taken the links. Namespace mainWin iconImages: Array with the images for the icons in the taskbar. firstSelectedRow Index of the first line in the url listbox selection. mainWin: Array with the paths of several elements of the window, like the listbox, the scroll bars, ... menus: Array with the path of the menus. OldContent When editing the content of a cell, this will save the content it had before the editing started. selectedRows A list with the indexes of the lines selected in the url listbox. selectedUrl The url of the active line in the listbox. taskbar: Array with the paths of the buttons in the taskbar. Namespace getLog fileTaskbar: Array with the path of the buttons in the taskbar of the file log. fileLog: Array with the path of the elements of the file log toplevel. siteLog: Array with the paths of elements of the site log toplevel. siteTaskbar: Array with the path of the buttons in the taskbar of the site log. urlLog: Array with data about the url in the log. - urlLog(urlList): A list with the urls. - urlLog($url,localDir): Directory in which the site was saved. - urlLog($url,date): Moment in which we finished the download. - urlLog($url,options): A list with the options used for the download. - urlLog($url,keep): '0' if we can delete it when the log is full. Namespace Delay window: Array with the path of several widget in the dialog. - window(endHour): path of the spinbox with the hour to end. - window(endMinute): path of the spinbox with the minute to end. - window(startHour): path of the spinbox with the hour to start. - window(startMinute): path of the spinbox with the minute to start. - window(win): Path of the toplevel window of the dialog. delayedDownload: Array with info about the programmed download. - delayedDownload(startTime): Time in seconds from '01-01-1970' in which the next programmed download will begin. - delayedDownload(endTime): Time in seconds from '01-01-1970' in which the programmed download will end. - delayedDownload(startEvent): Tcl event that will start the download. - delayedDownload(endEvent): Tcl event that will end the download. - delayedDownload(noEnd): '1' if there is no time limit. - delayedDownload(days): '1' if you define the days in which to download. - delayedDownload(how): How the download will stop if there is a time limit: - 0: Inmediately. - 1: After the current file is downloaded. - 2: After all links in the current page are downloaded. - delayedDownload(monday): '1' if it will be downloaded on Monday delayedDownloadTemp: Array with the same info as 'delayedDownload', this is the one the dialog works with, so that if you cancel the dialog, the real one won't be polluted with the rejected changes. timing Array with the textvariables of the spinboxes with the hours and minutes the download should begin and end.