Jump to content
Ketarin forum

Search the Community

Showing results for 'rename variable'.

  • Search By Author

Content Type


Forums

  • Discussion
    • General discussion
    • Feature requests
    • Bugs
  • Resources
    • Tips and Tutorials
    • Templates

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests


Database GUID

  1. I try to be consistent with variable names for multiple reasons. Sometimes, I would like to rename a variable (in the left side list of Edit Variables window) but there is no way to do it, I have to delete the variable and fully recreate it with the new name. A workaround is to export the app, edit the XML, then reimport it. But either solution is too much work for a simple rename! Thanks
  2. This already exists. F2 will allow you to rename a variable. Highlight it in the list on the left of the Variables window and press F2 and it will prompt you for the new name. There are actually quite a few hidden gem keyboard shortcuts in Ketarin. For example, highlight several apps in the list and CTRL+C to copy them to an XML export, or CTRL+SHIFT+C to copy a tab-delimited list.
  3. I just dropped a hint in another thread, but thought I'd come here and make it official after all :-) It would be very handy to have a "copy variable" function. I'm thinking of variables that are currently defined within the download entry you're working on, but I suppose it could extend to any variables defined in any Ketarin download entry. It's not that big of a deal to define two variables by hand. But if both use the same source URL and/or both have similar scrape instructions, it would be nice to define one and get it working, then copy it to a new name and alter as needed. Similarly, a rename variable function would be handy, though if we had "copy variable" a rename could be handled as a two-step process (copy to new name, delete old name). While I'm here :-) I've sometimes wanted a "disable variable" function. I'd like to leave the variable in the Ketarin entry, but mark it such that Ketarin doesn't process it. Useful if I'm working on an alternate scrape, for example, but don't want Ketarin to spend any cycles on it except when I'm working on it. Probably not a big deal if we don't get it, but hey it can't hurt to ask :-) Thanks and regards, --appyface
  4. Today I accomplish both the 'copy' function and the 'rename' function manually. Still cumbersome especially if it needs to be done with many apps. Yes XML can be edited but I'd still like to work within the variable dialog if possible. Today I go to the variable dialog on an app, find the existing variable I want to copy or rename, and copy out the URL, regex, start/end string info, textual content... to my text editor. I then add a new variable via the variable dialog, and paste in the URL, regex, etc. ('Find start/end' delimiters have to be set up again, if those are in use.) So now I have made a copy of the first variable. If this was intended as a 'rename', I delete the first variable and I'm done. If it was intended as a 'copy' I can now proceed to modify the new variable copy as I desire. If we can have at least the 'copy variable' function, that would cover both of my 'wishes'. The rename function becomes just two steps (clone then delete original variable name). Of course a 'rename variable' option turns that into one step. So far the votes I've collected are for rename. But if I have to choose just one, I'll ask that it be 'copy' instead. --appyface
  5. You can rename a variable with F2. It doesn't rename all instances where the variable is used, but that, IMHO, is a good thing.
  6. Hello ! Thank's for the awesome soft, that I'm testing since yesterday . It's possible to add a function for check if update exist, but who compare the {version} variable vs a local "history.log" ? Because I like to systematically extract the archives and then delete them. Same as the files, which I rename systematically. Therefore ketarin legitimately thinks that a new version is released. I have make a similar fonction in batch, added on the "command before downloading" section. It compare the {version} variable vs an "history.log" file, who obviously contain the number version of application previously downloaded (maked whith the "commands after updating" ). If {version}=="version in history.log", then exit 3. It function good, but here's my "problem" : I would like the "green checked icon" instead of "yellow + floppy disk" icon. So... It's possible to add natively this option ? Or if not, It's possible to implemant an "exit 4", who completely TOTALY break the check / download precedure, AND display the green icon ? My second (big) problem is that "exit*" codes not function on the global "commands before updating" (it's normal ?)... Therefore, it is mandatory to enter my batch for each program individually, which makes it all really fastidious . Consider exit codes on global commands would be very appreciable :). Thank's for reading ! PS : sorry for my very bad English.
  7. Hi all, this is my first template and i´m new on ketarin. So hints and tips are welcome ;-) Requirements: - You need WGET for Windows. Get it on Softpedia and place the wget.exe in the same DIR of Ketarin. - The variable {2DIR} is my custom directory, where the files are stored. Set, change or delete it as you wish under Ketarin. How it works: - First of all you´ll be asked for the URL of your desired Tool on Softpedia. Copy&paste the url of the main page of the tool on Softpedia. - Enter the desired name for your App Rest will done with Regex: - Finding the Linkpage for Download - Finding the Screenshot, defining the name and extension - Getting the "direct link" of redirection page - Parsing the short description As known, Sourceforge redirects are a bit tricky and this template will not work if Softpedia use those links. Unter "Commands" you´ll find some code. - WGET loads the first screenshot and saves it unter <Appname>.<original extension from server>. - ECHO will create a new file with the content of short description for your app The extension is .info and it´s a txt file. Feel free to rename the extension for your needs. Have fun Gozi Version 1.9.4 (working ONLY with > 1.5 beta 5) For Ketarin 1.4 please use version 1.91! Whats new: Little help instructions inside Added template version number. So you´ll see which template version was used Added License parsing from Softpedia <?xml version='1.0' encoding='utf-8'?> <Jobs> <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <WebsiteUrl><placeholder name="Enter the Softopedia url" /></WebsiteUrl> <UserNotes><placeholder name="User Notes" variable="SetUserNotes"/></UserNotes> <LastFileSize>106681</LastFileSize> <LastFileDate>2010-09-26T23:50:38.7502</LastFileDate> <UserAgent>Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)</UserAgent> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator>version</VariableChangeIndicator> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer>{WebsiteUrl}</HttpReferer> <Variables> <item> <key> <string>TemplateVersion</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>1.9.4</TextualContent> <Name>TemplateVersion</Name> </UrlVariable> </value> </item> <item> <key> <string>TemplateAutor</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>Gozi</TextualContent> <Name>TemplateAutor</Name> </UrlVariable> </value> </item> <item> <key> <string>AutorsEditoral</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>Version 1.9.4 by Gozi Requirements: Ketarin version > 1.5 b6 You need WGET for Windows. Get it on Softpedia and place the wget.exe in the same DIR of Ketarin. How it works: First of all you´ll be asked for the URL of your desired Tool on Softpedia. Copy and paste the url of the main page of the tool on Softpedia. Rest will done with Regex: This Template supports auto naming. Finding the Linkpage for Download Finding the Screenshot, defining the name and extension Getting the "direct link" of redirection page Parsing the short description Unter "Commands" you´ll find some code. WGET loads the first screenshot and saves it unter Appname.original extension from server. ECHO will create a new file with the content of short description for your app. The extension is .info and it´s a txt file. Feel free to rename the extension for your needs. Whats new: Parsing license from Sofpedia Site </TextualContent> <Name>AutorsEditoral</Name> </UrlVariable> </value> </item> <item> <key> <string>InfoPage</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>{property:WebsiteUrl}</TextualContent> <Name>InfoPage</Name> </UrlVariable> </value> </item> <item> <key> <string>License</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>href="http://www.softpedia.com/user/licensing.*?>([\S]*)</a></Regex> <Url>{InfoPage}</Url> <TextualContent>{property:WebsiteUrl}</TextualContent> <Name>License</Name> </UrlVariable> </value> </item> <item> <key> <string>APPName</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>5px;">([\s\w]*) description<</Regex> <Url>{InfoPage}</Url> <Name>APPName</Name> </UrlVariable> </value> </item> <item> <key> <string>version</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>Download {APPName} ([\s\d\w.]*) Free</Regex> <Url>{InfoPage}</Url> <Name>version</Name> </UrlVariable> </value> </item> <item> <key> <string>GetDownloadLink</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><a href="([^\s]*)" title="Download </Regex> <Url>{InfoPage}</Url> <Name>GetDownloadLink</Name> </UrlVariable> </value> </item> <item> <key> <string>GetFileLink</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><a href="([^\s]*)" title="Download </Regex> <Url>{GetDownloadLink}</Url> <Name>GetFileLink</Name> </UrlVariable> </value> </item> <item> <key> <string>GetRedirect</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex> If it doesn't, please <a href="([\d\s\w\S]*)" rel</Regex> <Url>{GetFileLink}</Url> <Name>GetRedirect</Name> </UrlVariable> </value> </item> <item> <key> <string>GetSSLink</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>href="http://www.softpedia.com/progScreenshots/([^\s]*)"</Regex> <Url>{InfoPage}</Url> <Name>GetSSLink</Name> </UrlVariable> </value> </item> <item> <key> <string>GetSSImage</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>href="http://www.softpedia.com/screenshots/([^\s]*)"</Regex> <Url>http://www.softpedia.com/progScreenshots/{GetSSLink}</Url> <Name>GetSSImage</Name> </UrlVariable> </value> </item> <item> <key> <string>ImageLink</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>http://www.softpedia.com/screenshots/{GetSSImage}</TextualContent> <Name>ImageLink</Name> </UrlVariable> </value> </item> <item> <key> <string>SetUserNotes</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>class="KonaBody"> ([\w\s\d\W]*) \[</Regex> <Url>{GetDownloadLink}</Url> <Name>SetUserNotes</Name> </UrlVariable> </value> </item> <item> <key> <string>url</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>{GetRedirect}</TextualContent> <Name>url</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand>wget {ImageLink} -O "{2DIR}\{appname}.{GetSSImage:split:.:1}" echo "{SetUserNotes}">"{2DIR}\{appname}.info" echo "License: {License}">>"{2DIR}\{appname}.info"</ExecuteCommand> <ExecutePreCommand></ExecutePreCommand> <Category> Tools</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>q:\Software\WGET_1.5.3.1.zip</PreviousLocation> <DeletePreviousFile>false</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-09-26T23:50:38.7502</LastUpdated> <TargetPath>{2DIR}\{appname}_{version}.{url:ext}</TargetPath> <FixedDownloadUrl>{url}</FixedDownloadUrl> <Name><placeholder name="Enter desired application name" variable="APPName"/></Name> </ApplicationJob> </Jobs> Version 1.9.2 (working ONLY with 1.5 beta 6) With the new beta you´ll be able to set variables in your placeholder. Read more:http://ketarin.canneverbe.com/forum/viewtopic.php?pid=4140#p4140 THX to Floele for this great function :-) Auto naming: Replace the last Placeholder with following code, and Ketarin will name your application with the variable "APPName". For more details take a look into my template. <Name><placeholder name="Enter desired application name" variable="APPName"/></Name> Auto description: Replace the UserNotes-line with following Code, and Ketarin will store the short description. <UserNotes><placeholder name="User Notes" variable="SetUserNotes"/></UserNotes> Version 1.9.1 - Better parsing for Application Name - No question for updating the template - Setting Website variable now working (Ketarin 1.5 b5) <?xml version='1.0' encoding='utf-8'?> <Jobs> <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <WebsiteUrl><placeholder name="Enter the Softopedia url" /></WebsiteUrl> <UserNotes></UserNotes> <LastFileSize>106681</LastFileSize> <LastFileDate>2010-09-26T23:50:38.7502</LastFileDate> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer>http://www.softpedia.com/</HttpReferer> <Variables> <item> <key> <string>InfoPage</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>{property:WebsiteUrl}</TextualContent> <Name>InfoPage</Name> </UrlVariable> </value> </item> <item> <key> <string>APPName</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>">([\S^/]+) description<</Regex> <Url>{InfoPage}</Url> <Name>APPName</Name> </UrlVariable> </value> </item> <item> <key> <string>version</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>Download {APPName} ([\s\d\w.]*) Free</Regex> <Url>{InfoPage}</Url> <Name>version</Name> </UrlVariable> </value> </item> <item> <key> <string>GetDownloadLink</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><a href="([^\s]*)" title="Download </Regex> <Url>{InfoPage}</Url> <Name>GetDownloadLink</Name> </UrlVariable> </value> </item> <item> <key> <string>GetFileLink</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><a href="([^\s]*)" title="Download </Regex> <Url>{GetDownloadLink}</Url> <Name>GetFileLink</Name> </UrlVariable> </value> </item> <item> <key> <string>GetRedirect</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex> If it doesn't, please <a href="([\d\s\w\S]*)" rel</Regex> <Url>{GetFileLink}</Url> <Name>GetRedirect</Name> </UrlVariable> </value> </item> <item> <key> <string>GetSSLink</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>href="http://www.softpedia.com/progScreenshots/([^\s]*)"</Regex> <Url>{InfoPage}</Url> <Name>GetSSLink</Name> </UrlVariable> </value> </item> <item> <key> <string>GetSSImage</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>href="http://www.softpedia.com/screenshots/([^\s]*)"</Regex> <Url>http://www.softpedia.com/progScreenshots/{GetSSLink}</Url> <Name>GetSSImage</Name> </UrlVariable> </value> </item> <item> <key> <string>ImageLink</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>http://www.softpedia.com/screenshots/{GetSSImage}</TextualContent> <Name>ImageLink</Name> </UrlVariable> </value> </item> <item> <key> <string>SetUserNotes</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>class="KonaBody"> ([\w\s\d\W]*) \[</Regex> <Url>{GetDownloadLink}</Url> <Name>SetUserNotes</Name> </UrlVariable> </value> </item> <item> <key> <string>url</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>{GetRedirect}</TextualContent> <Name>url</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand>wget {ImageLink} -O "{2DIR}\{appname}.{GetSSImage:split:.:1}" echo "{SetUserNotes}">"{2DIR}\{appname}.info"</ExecuteCommand> <ExecutePreCommand></ExecutePreCommand> <Category> Tools</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>q:\Software\WGET_1.5.3.1.zip</PreviousLocation> <DeletePreviousFile>false</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-09-26T23:50:38.7502</LastUpdated> <TargetPath>{2DIR}\{appname}_{version}.{url:ext}</TargetPath> <FixedDownloadUrl>{url}</FixedDownloadUrl> <Name><placeholder name="Enter desired application name" /></Name> </ApplicationJob> </Jobs>
  8. If you suspect database corruption, the safest solution is to start with a blank one. First, backup what you have: For each app select it from the main interface window, CTRL+C (which copies that app profile to the clipboard as XML), then switch to Notepad++ (or a similar kick-ass multi-tab text editor) and paste each one into a new document (you don't have to save it in Notepad++, just leave the tab open). Repeat for each app profile you want to save. You *can* select all (in Ketarin) and CTRL+C to copy the entire list out to XML, but this has the potential of copying whatever broken app is causing problems, and is a little more work to split it back out afterwards. Before you're done with backups you'll also want a new text document where you can record the values of the global Ketarin preferences at File, Settings. Navigate each tab and record the results so you can recreate them later. Once the backup is complete, create a new jobs.db. You can either (with Ketarin *closed*) rename your old one to something else (like "jobs-20171209.db"), which will create a new jobs.db when you start Ketarin, or start Ketarin with the /database switch, as so: ketarin.exe /database=newjobs.db Ketarin will start with a new database and all of her settings will be reset. There will be no app profiles. Copy your settings back to File, Settings first. This ensures that any dependent variables are correctly assigned before parsing the jobs you add later. Now, ONE BY ONE, copy the individual app XML profiles (select all, copy, switch to Ketarin, paste, test) back from Notepad++. Your testing should help you identify which one of the apps is broken and causing you problems. If you find that the issue is actually one of invalid settings (like output path, which is a common problem for apps copied from elsewhere) you can perform a find/replace in Notepad++ to replace the matching defective path with the correct value (which I strongly recommend you use a variable or a dotted root (".\{category}\") to ensure that you don't have problems when moving the Ketarin setup to a new computer, path, or drive). If you experience an error during any phase of this process, or discover which apps are causing problems and it's not a simple path problem, let us know (share the XML for the defective app) and we'll do our best to help you fix it.
  9. I'm getting pretty much from every application the changelog with a variable. Also I run a C# code after updating an application: string downloadFolder = app.Variables.ReplaceAllInString("{download_folder}"); string appName = app.Variables.ReplaceAllInString("{appname}"); string version = app.Variables.ReplaceAllInString("{version}"); string changelog = app.Variables.ReplaceAllInString("{changelog}"); if (changelog == "{changelog}") { changelog = ""; } using (System.IO.StreamWriter w = System.IO.File.AppendText(downloadFolder + @"\changelogs.html")) { w.WriteLine("<hr size=10 noshade>"); w.WriteLine("<h1>{0} - {1}</h1>", appName, version); w.WriteLine(changelog); w.WriteLine("<br><br><br>"); } return; After updating my applications I'm getting a changelogs.html that look like: There are now two ways to continue with this file: 1. Rename the file with the actual date and time as a command "after updating all applications"; move "{download_folder}\changelogs.html" "{download_folder}\changelog-{yyyy}-{MM}-{dd}T{HH}-{mm}.html" 2. sending the content from changelogs.html via e-mail to me therefore I made a powershell script: $smtpServer = "email.server.com" $file = "C:\YOUR\DOWNLOAD\FOLDER\changelogs.html" $body = "$(cat $file)" $from ="Ketarin <ketrain@server.com>" $to = "me@server.com" $subject = "Ketarin Updates" send-MailMessage -SmtpServer $smtpServer -To $to -From $from -Subject $subject -Body $body -BodyAsHtml -Encoding ([System.Text.Encoding]::UTF8) Forgot to mention, that mean you can run Ketarin as a task and you getting after an application update an email.
  10. @Flo, I could definitely use the 'rename variable' feature now as one site I am using is slowly phasing in changes to their redirect method and forces me to use my {redir} variable instead of my {download_url} as the actual download link. To keep things consistent, I currently has to delete both variables and rework them from the clipboard. It would be much easier to delete my {download_url} variable and rename my {redir} variable to {download_url}. Just my take on it for your consideration.
  11. That's a lot of depth for someone who's swamped, appyface :-) Darn close. I want: A repository of portable apps, current and previous versions (all app files, not just installers) Automated installation of latest version where practical The same apps available across multiple machines across LAN and Internet (implementation detail: currently successfully done using Windows Live Sync.) In addition, I want to be able to invoke any of these portable apps via the Windows Start menu, not via a separate launcher (PStart, PortableApps, etc.). I've scoured documentation and forums. I've learned all about version scraping and regular expressions, and haven't met a download site yet that I haven't been able to reliably scrape version information from (though I'm sure they exist :-)). I've learned how to use Ketarin variables, and how to automate installation of .exe, .zip and .paf packages, using 7-zip, Universal Extractor and AutoHotkey. And I've seen some good ideas on logging, which I haven't implemented yet. I've even contributed an AHK script to near-silently install PAF files. I think I have a good idea of my objectives and constraints. The biggest (or at least, most pertinent) difference between our objectives is that I'm only dealing with portable apps, and I want to install/extract them at time of download. The other possible difference is how the installed apps are started - I want hem to be accessible the same way my non-portable apps are, via the Start menu. Because of the last requirement (Start menu), I need static shortcuts to the unpacked app's executable file. That means I need a path that doesn't change when new versions are installed, so can't include the version number in it. But I want the app's previous versions to include version# in their paths. That brings me back to my original question: when I'm about to download a new version of an app, how to determine the version# of the about-to-be-obsolete version currently installed, so that I can rename its folder with the version number. At this stage, I'm thinking of logging downloads to a log file, including version number. In a Ketarin pre-download command, I could read the last line of the log file, use a regex to extract the version number, store it temporarily in an environment variable, then rename the about-to-be-obsolete version's folder (i.e. move the app) with its version# read from the environment variable. But I'm wondering if there might be a smarter way to tackle this...
  12. Hi Flo, I just put up Ketarin 0.9.9.20 but this existed in the last version I used (0.9.9.19) and maybe earlier than that. I want to scrape two variables from the same webpage. The first variable I called URL and I put this in for webpage and clicked "load" button: http://www.microsoft.com/hardware/download/DownloadResult.aspx?category=MK&type=Mouse&name=w_lmouse5000&os=XP_32〈=en This is displayed as the entire contents: <HTML><HEAD><META HTTP-EQUIV="Refresh" CONTENT="0.1"> <META HTTP-EQUIV="Pragma" CONTENT="no cache"> <META HTTP-EQUIV="Expires" CONTENT="-1"> </HEAD></HTML> I defined a second variable I called filename and I put the same webpage in and clicked "load" button. The Ketarin window shows the actual contents of the webpage and not just the four lines above. Below is the xml export for the entry. Any idea why the webpage doesn't load the same for the two variables? Is it becase I called my variable URL ? If that is the case it would be nice to have a variable rename command. And/or a copy variable command -- instead of having to add a new variable and construct it by hand, then deleting the old one... (Hint hint for new features ) Thanks and regards, --appyface <?xml version="1.0" encoding="utf-16"?> <Jobs> <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Guid="a09ffb2d-de29-4c76-a13c-5c0d0fbfdcae"> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <HttpReferer>http://www.microsoft.com/hardware/download/DownloadResult.aspx?category=MK&type=Mouse&name=w_lmouse5000&os=XP_32〈=en</HttpReferer> <Variables> <item> <key> <string>URL</string> </key> <value> <UrlVariable> <VariableType>RegularExpression</VariableType> <Regex>(http://download\.microsoft\.com.*?IP32.*?\.exe)</Regex> <Url>http://www.microsoft.com/hardware/download/DownloadResult.aspx?category=MK&type=Mouse&name=w_lmouse5000&os=XP_32〈=en</Url> <Name>URL</Name> </UrlVariable> </value> </item> <item> <key> <string>filename</string> </key> <value> <UrlVariable> <VariableType>RegularExpression</VariableType> <Regex>http://download\.microsoft\.com.*?(IP32.*?\.exe)</Regex> <Url>http://www.microsoft.com/hardware/download/DownloadResult.aspx?category=MK&type=Mouse&name=w_lmouse5000&os=XP_32〈=en</Url> <Name>filename</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand /> <Category>009000</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Stuff\filestore\Microsoft_general\intellipoint_IP32Eng6.30.191.0.exe</PreviousLocation> <DeletePreviousFile>false</DeletePreviousFile> <Enabled>false</Enabled> <FileHippoId /> <LastUpdated>2008-12-09T04:19:06.7045</LastUpdated> <TargetPath>D:\Stuff\filestore\Microsoft_general\intellipoint_{url:basefile}.{url:ext}</TargetPath> <FixedDownloadUrl>{URL}</FixedDownloadUrl> <Name>Microsoft Intellipoint Mouse Software</Name> </ApplicationJob> </Jobs>
  13. Its not exactly on topic but perhaps someone finds some use for these. A while back i was researching a way to get version info from the downloaded file and importing it into a ketarin variable and rename a file based on its version number. While the import does not work, the command to get version number does. This one is all internal. No 3rd party tools needed (Vista/Win7/Win8/Not sure about XP): copy NUL %temp%\VersionInfo.vbs echo set args = WScript.Arguments>>%temp%\VersionInfo.vbs echo Set fso = CreateObject("Scripting.FileSystemObject")>>%temp%\VersionInfo.vbs echo WScript.Echo fso.GetFileVersion(args(0))>>%temp%\VersionInfo.vbs echo Wscript.Quit>>%temp%\VersionInfo.vbs cscript //nologo %temp%\VersionInfo.vbs "{version}" And the second one needs sigcheck.exe: http://technet.micro...s/bb897441.aspx sigcheck -n -q "C:\AppName.exe" > %temp%\Version.txt set /p FileVersion= < %temp%\Version.txt cd /D "C:\" ren "AppName.exe" "AppName v.%FileVersion%.exe" Topic where this was discussed: https://ketarin.org/forum/index.php/topic/734-pipe-system-variable-value-into-ketarin-variable/
  14. This is a template of portableApps I modified from the templates forum. I'm trying to decode what's in the UserNotes tag. <?xml version='1.0' encoding='utf-8'?> <Jobs> <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Guid="35049824-00be-4a7b-951a-50dc65b13111"> <Name> <placeholder name="Name of application" variable="appName:regexreplace:([\s\t\r\n\\&\/]+):" /> </Name> <Category> <placeholder name="Category" options="{categories}" /> </Category> <CanBeShared>false</CanBeShared> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <DeletePreviousFile>true</DeletePreviousFile> <DownloadBeta>Default</DownloadBeta> <Enabled>true</Enabled> <ExclusiveDownload>false</ExclusiveDownload> <FileHippoId /> <FixedDownloadUrl>{dlUrl:urldecode}</FixedDownloadUrl> <HttpReferer>{dlRedirect:urldecode}</HttpReferer> <IgnoreFileInformation>false</IgnoreFileInformation> <PreviousLocation /> <ShareApplication>false</ShareApplication> <SourceType>FixedUrl</SourceType> <TargetPath>{dlPath}</TargetPath> <UserAgent>{sfua}</UserAgent> <UserNotes> <placeholder name="Application description" variable="appDescription:urldecode"/> </UserNotes> <VariableChangeIndicator>appVersion</VariableChangeIndicator> <WebsiteUrl>{appWebsite}</WebsiteUrl> <Variables> <item> <key> <string>appDescription</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(?<=tagline.*?<p>)(.*?)(?=</p)</Regex> <Url>{dlPage}</Url> <Name>appDescription</Name> </UrlVariable> </value> </item> <item> <key> <string>appName</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>(.*?)(?=\s.+Portable)</Regex> <Url>{dlPage}</Url> <Name>appName</Name> </UrlVariable> </value> </item> <item> <key> <string>appSource</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>PortableApps</TextualContent> <Name>appSource</Name> </UrlVariable> </value> </item> <item> <key> <string>appType</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>Portable</TextualContent> <Name>appType</Name> </UrlVariable> </value> </item> <item> <key> <string>appUpFreq</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent> <placeholder name="Application description" value="" options="Urgent|Monthly|Never" /> </TextualContent> <Name>appUpFreq</Name> </UrlVariable> </value> </item> <item> <key> <string>appVersion</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(?<=Portable_.*?)[0-9.]{2,}(?=\.paf)</Regex> <Url>{dlPage}</Url> <Name>appVersion</Name> </UrlVariable> </value> </item> <item> <key> <string>appWebsite</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>href="([^\s]*)" learn more</Regex> <Url>{dlPage}</Url> <Name>appWebsite</Name> </UrlVariable> </value> </item> <item> <key> <string>dlPath</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>{startuppath}..\{appname}-{appVersion}.{dlUrl:ext}</TextualContent> <Name>dlPath</Name> </UrlVariable> </value> </item> <item> <key> <string>dlPage</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent> <placeholder name="Application Page URL"/> </TextualContent> <Name>dlPage</Name> </UrlVariable> </value> </item> <item> <key> <string>dlRedirect</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>http://portableapps.com/bouncer?t=</TextualContent> <Name>dlRedirect</Name> </UrlVariable> </value> </item> <item> <key> <string>dlUrl</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>[^"'=]+(?>\.exe)</Regex> <Url>{dlPage}</Url> <Name>dlUrl</Name> </UrlVariable> </value> </item> <item> <key> <string>installPath</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>{startuppath}..\{appname}</TextualContent> <Name>installPath</Name> </UrlVariable> </value> </item> </Variables> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code> {ahk} "{ahk-paf}" "{file}" "{installPath}" ::Creating and renaming a custom .ini to disable splash screen if exist "{installPath}\*Portable.ini" exit for /f "tokens=*" %a in ('dir /b "{installPath}\Other\Source\*Portable.ini"') do ( set ini={installPath}\Other\Source\%a set file=%a ) For /f "tokens=*" %i in ('type "%ini%"') do if /I "%i" EQU "DisableSplashScreen=false" (echo DisableSplashScreen=true>>"{installPath}\%file%") else (echo %i>>"{installPath}\%file%") for /f "tokens=*" %a in ('dir /b "{installPath}\*.exe"') do set exe=%~na if exist "{installPath}\*Portable.ini" rename "{installPath}\%file%" "%exe%.ini" ::Creating and renaming a custom .ini to disable splash screen del "{file}" /s /q </Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <ExecuteCommand> /*This is a comment line, the line below is the C# script. It will run the instructions found in the Setup Tab. If the command below is encapsulated with stars and slashes merely remove them to make the command function, otherwise it will remain a comment*/ app.Install(null); </ExecuteCommand> <ExecutePreCommand> if "{dlPath}" EQU "" START CMD /C "ECHO {appname}: Unable to find download, investigate & PAUSE & exit& if "{FixedDownloadUrl}" EQU "" if "{FileHippoId}" EQU "" START CMD /C "ECHO {appname}: Unable to find download, investigate & PAUSE & exit& </ExecutePreCommand> <ExecuteCommandType>CS</ExecuteCommandType> </ApplicationJob> </Jobs> Also, there was a case that I needed to urlencode a url - it had spaces, and I wanted them to be %20. The encode, however, made spaces into '+'...
  15. These are some of the 'placeholders' that I am currently using within my custom templates. Ketarin users can modify them to suit their particular needs and situations. These examples include the use of the new 'options' feature which provides the capability of incorporating 'drop-down' style selection menus. IMHO, this ability has provided a dramatic improvement in the power and flexibility of 'placeholders'. Use these at your own risk as some of these are still be tested! Note: 'Placeholder options' require Ketarin 1.0.6b3 or newer. Hint: If you place an additional 'pipe symbol' ( | ) at the end of the 'options' entries, you can easily blank/null an existing value with the 'drop-down' menu for those entries that can be empty. Warning: Be especially careful with the 'commands' as they are for MY setup... THEY MUST BE MODIFIED for YOUR SETUP! Also, refer to 'Flo's primary Ketarin tutorial' in this section for other command options such as 'background execution' by adding the ampersand ( & ) to the end of the command... Examples of use within template tags: <DownloadBeta><placeholder name="Download Beta Versions?" value="Default" options="Default|Avoid|AlwaysDownload" /></DownloadBeta> <CheckForUpdatesOnly><placeholder name="Check for Updates Only?" value="false" options="false|true" /></CheckForUpdatesOnly> <VariableChangeIndicator><placeholder name="Change Indicator?" value="" options="{version}|" /></VariableChangeIndicator> <ExclusiveDownload><placeholder name="Exclusive Download?" value="false" options="false|true" /></ExclusiveDownload> <ExecuteCommand><placeholder name="Execute Command AFTER Downloading?" value="" options="copy /y "{file}" "{archive_folder}\{category}"|copy /y "{file}" "{install_cache_folder}"|copy /y "{file}" "{shared}\{category}"|{run_7-zip} e "{file}" -aoa -o"{install_cache_folder}{appname:replace: :_}_v{version}"|{run_ue} "{file}" "{install_cache_folder}{appname:replace: :_}_v{version}"|{run_7-zip} e "{file}" -aoa -o"{nirsoft_utilities_root_folder}{appname:replace: :_}"|{run_7-zip} e "{file}" -aoa -o{sysinternals_suite_root_folder}|" /></ExecuteCommand> <ExecutePreCommand><placeholder name="Execute Command BEFORE Downloading?" value="copy /y "{file}" "{archive_folder}\{category}"" options="copy /y "{file}" "{archive_folder}\{category}"|move /y "{root_folder}\{category}\{appname:replace: :_}*.*" "{archive_folder}\{category}"|move /y "{target}\{category}\{appname:replace: :_}*.*" "{archive_folder}\{category}"|del /q "{root_folder}\{category}\{appname:replace: :_}*.*"|del /q "{target}\{category}\{appname:replace: :_}*.*"|" /></ExecutePreCommand> <Category><placeholder name="Category?" value="New" options="Antivirus|CD-DVD|Data|Distros|Drivers|Education|Engineering|Finance|Games|Internet|Media|Miscellaneous|New|Office|Personal Productivity|Programming|Security|Test|Text|Utilities" /></Category> <DeletePreviousFile><placeholder name="Delete Previous Version?" value="true" options="false|true" /></DeletePreviousFile> <TargetPath><placeholder name="Save to Location?" value="{root_folder}\{category}\" options="{root_folder}\{category}\|{target}\{category}\" /><placeholder name="Rename Rule Convention?" value="{appname:replace: :_}_v{version}.{url:ext}" options="{appname:replace: :_}_v{version}.{url:ext}|{appname:replace: :_}_install_v{version}.{url:ext}|{appname:replace: :_}_installer_v{version}.{url:ext}|{appname:replace: :_}_setup_v{version}.{url:ext}|{url:basefile}_v{version}.{url:ext}" /></TargetPath> <TargetPath><placeholder name="Save to Location?" value="{root_folder}\{category}\" options="{root_folder}\{category}\|{target}\{category}\" /><placeholder name="Rename Rule Convention?" value="{appname:replace: :_}_v{f:yyyy}-{f:MM}-{f:dd}.{url:ext}" options="{appname:replace: :_}_v{f:yyyy}-{f:MM}-{f:dd}.{url:ext}|{appname:replace: :_}_install_v{f:yyyy}-{f:MM}-{f:dd}.{url:ext}|{appname:replace: :_}_installer_v{f:yyyy}-{f:MM}-{f:dd}.{url:ext}|{appname:replace: :_}_setup_v{f:yyyy}-{f:MM}-{f:dd}.{url:ext}|{url:basefile}_v{f:yyyy}-{f:MM}-{f:dd}.{url:ext}" /></TargetPath> <Name><placeholder name="Application Name?" value="New App Download" /></Name> Miscellaneous Examples: <placeholder name="Recurring 'Anchor String' BEFORE and NEAR Version Number? (Example: Version)" value="Version" options="Current|Current Version|Current Version:|Latest|Latest Version|Latest Version:|Version|Version:" /> <placeholder name="Recurring 'Anchor String' BEFORE and NEAR URL? (Example: Download)" value="Download" options="Current|Current Version|Current Version:|Download|Download:|Download Now|Download Now:|Latest|Latest Version|Latest Version:|Link|Link:" /> <placeholder name="Extension of Desired Download? [Example: exe or zip]" value="exe" options="exe|7z|zip|zip2|arc|bz|bz2|bzip|gz|gzip|jar|lha|lzh|lzw|pak|rar|sit|sit!|sit5|sitd|sithqx|sitx|tz|wsz|cab|msi|bin|img|iso|xpi|pbp" /> <placeholder name="Desired SourceForge Mirror? [internap, voxel, etc.]" value="voxel" options="freefr|internap|internode|kent|osdn|ovh|softlayer|superb-east|superb-west|transact|ufpr|voxel|waix" /> <placeholder name="Policy Agreement Required?" value="no" options="no|yes" /> <placeholder name="Operating System Preference? [Windows OR Linux OR MacOSX]" value="Windows" options="Windows|Linux|MacOSX" /> As you can see from these examples, templates can be greatly enhanced with the clever use of 'placeholder options'... practically limited to one's own ingenuity and creativity! MODIFIED: June 4th, 2009 to include quotes ( " ) (or " specifically) around the variable {file} as used in the 'command placeholders' above to accommodate the changes for Ketarin 1.0.7... They can be removed if you do not have spaces a particular file's path (or use an older version of Ketarin).
  16. Been a while since i've contributed so thought I would now. First things first, the below code is an autohotkey script that will install any portableapps.com package silently and without user interaction. A screen 'might' pop up but it will be automatically minimized. If you experience some minor issue with keyboard/mouse not working while the script is running it is because everytime a command is sent to the window I disable the keyboard/mouse for a second so as whatever you are doing doesn't interfere accidentally. This will NOT work for portableapps that are just add-ons. Stuff like GPG for Thunderbird obviously need to know where thunderbird is etc. but all base installs will work just fine. #NoEnv ;Recommended for performance and compatibility with future AutoHotkey releases. SendMode Input ;Recommended for new scripts due to its superior speed and reliability. SetTitleMatchMode 2 ;Set titlematch to "contains" (default is "starts with"). Affects #IfWinActive's below. If 0 < ;actually looking at %0%, which contains number of arguments. Must be 2. { MSGBOX ERROR: Must have at least 2 arguments (package file, destination folder); exiting. Return } Else { file = %1% destdir = %2% wait = 500 Run, %file%,, Min,runpid Loop { Sleep %wait% IfWinExist, ahk_pid %runpid%, The portable app can not be upgraded while it is running { MsgBox, 4144, User Interaction Required, You are trying to upgrade a program that is currently open!`n`nPlease FIRST close all instances of the program then click OK on these two windows } IfWinExist, ahk_pid %runpid%, Please select a language { BlockInput On ControlSend,, {Return}, ahk_pid %runpid% WinMinimize, ahk_pid %runpid% BlockInput Off } IfWinNotExist, ahk_pid %runpid%, Choose Install Location { BlockInput On ControlSend,, {Return}, ahk_pid %runpid% WinMinimize, ahk_pid %runpid% BlockInput Off } else { Break } } WinWait, ahk_pid %runpid%, Choose Install Location { Sleep %wait% BlockInput On Control, EditPaste, %destdir%, Edit1, ahk_pid %runpid% BlockInput Off Sleep %wait% BlockInput On ControlSend,, {Return}, ahk_pid %runpid% WinMinimize, ahk_pid %runpid% BlockInput Off } WinWait, ahk_pid %runpid%, Finish { Sleep %wait% BlockInput On ControlSend,, {Return}, ahk_pid %runpid% WinMinimize, ahk_pid %runpid% BlockInput Off } } The below template is what I use for ALL my portableapps.com installs. Remember to edit the variables to your needs. <?xml version='1.0' encoding='utf-8'?> <Jobs> <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <WebsiteUrl /> <UserNotes /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator>version</VariableChangeIndicator> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <UserAgent>{sfua}</UserAgent> <HttpReferer /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>[^"'=]+(?>\.exe)</Regex> <Url>{page}</Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>(.*?) \|</Regex> <Url>{page}</Url> <Name>name</Name> </UrlVariable> </value> </item> <item> <key> <string>page</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent><placeholder name="Application Page URL"/></TextualContent> <Name>page</Name> </UrlVariable> </value> </item> <item> <key> <string>version</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>Date updated.*?\n</Regex> <Url>{page}</Url> <Name>version</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand>/*This is a comment line, the line below is the C# script. It will run the instructions found in the Setup Tab. If the command below is encapsulated with stars and slashes merely remove them to make the command function, otherwise it will remain a comment*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand>if "{download}" EQU "" START CMD /C "ECHO {appname}: Unable to find download, investigate & PAUSE & exit& if "{FixedDownloadUrl}" EQU "" if "{FileHippoId}" EQU "" START CMD /C "ECHO {appname}: Unable to find download, investigate & PAUSE & exit&</ExecutePreCommand> <ExecuteCommandType>CS</ExecuteCommandType> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>start /wait "" "{AHK}" "{startuppath}PA.ahk" "{file}" "{installpath}{category}\{appname:regexreplace: \(.*\):}" ::Creating and renaming a custom .ini to disable splash screen if exist "{installpath}{category}\{appname:regexreplace: \(.*\):}\*Portable.ini" exit for /f "tokens=*" %a in ('dir /b "{installpath}{category}\{appname:regexreplace: \(.*\):}\Other\Source\*Portable.ini"') do ( set ini={installpath}{category}\{appname:regexreplace: \(.*\):}\Other\Source\%a set file=%a ) For /f "tokens=*" %i in ('type "%ini%"') do if /I "%i" EQU "DisableSplashScreen=false" (echo DisableSplashScreen=true>>"{installpath}{category}\{appname:regexreplace: \(.*\):}\%file%") else (echo %i>>"{installpath}{category}\{appname:regexreplace: \(.*\):}\%file%") for /f "tokens=*" %a in ('dir /b "{installpath}{category}\{appname:regexreplace: \(.*\):}\*.exe"') do set exe=%~na if exist "{installpath}{category}\{appname:regexreplace: \(.*\):}\*Portable.ini" rename "{installpath}{category}\{appname:regexreplace: \(.*\):}\%file%" "%exe%.ini" ::Creating and renaming a custom .ini to disable splash screen</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Category><placeholder name="Category" options="{categories}" /></Category> <SourceType>FixedUrl</SourceType> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <TargetPath>{downloadpath}{category}\</TargetPath> <FixedDownloadUrl>{download:urldecode}</FixedDownloadUrl> <Name><placeholder name="Name of application" variable="name" /></Name> </ApplicationJob> </Jobs>
  17. @CybTekSol I can't speak for the window position problem itself, but I can tell you that the follow on error I encountered to it ***, is NOT stored in the jobs.db file. I can recreate the follow on error 100% of the time with an empty jobs db file. OK, I do have to manually add at one record to the jobs.db otherwise Ketarin has nothing to do, to evidence the follow on error. I did add the record manually, I did not do any import of template, etc. So if this ever happens to you, I don't think there will be anything wrong with the jobs.db file itself... that's just my experience so far. --appyface *** Follow on error: Once the 'disappearing' normal window thing happened, Ketarin would throw very strange exceptions if I tried to update anything, tried to edit a variable and look at scraped webpage etc. Simplying renaming the directory Ketarin was in at the time of the lost window thing, completely removes the follow-on error and Ketarin works completely normally. If I rename the directory back to the name it had when the window thing happened, Ketarin will again throw weird exceptions. As mentioned above, I can put Ketarin into that original directory name, and let it create a brand-new jobs.db over in Documents and setttings when I first launch it. I can then leave the empty jobs.db over there, or I can move it into the directory with Ketarin.exe, it matters not. I do have to add one app to give Ketarin something to do. As soon as I have done that, I ask Ketarin to update the app and I get the same weird exceptions thrown. Rename the directory and all is well. Very strange .NET thing, I think Flo is right about that. FWIW I posted this on a C# .NET forum to see if anyone had encountered this, but I did not immediately post the actual exception thrown. After getting immediately blasted by two a**hole defenders of .NET that it MUST be an applicaton problem (why do people think they are helping, with that attitude toward the helpee?), I pointed out to them they should not shoot the messenger :-) And that I was careful to state "possible bug" "how can I confirm that it IS a bug with .NET and not an app problem" etc. I then posted the actual exception. There has been absolute silence since then :-) I hope they realize they were rude, but I still would like to get the attention of Microsoft on it, if it is in fact a .NET bug... The window size thing and this exception follow on, helps no one...
  18. Unless I'm gravely misunderstanding what you mean, custom naming conventions are already pretty much fully implemented. When setting up a job, under the 'Download Location' heading, you can specify 'Save to file' and have it rename the downloaded file to whatever you want. Most of mine are set up in this manner. For example, Cain & Abel's setup file is called simply ca_setup.exe, so I have Ketarin scrape the version from the download page and rename the downloaded file to "Cain & Abel {Version}.exe". Ketarin replaces the 'version' variable with the version it scraped from the download page and voila!
  19. Well... I don't think it's all "{property:X}", as I've used others in the template successfully, but unfortunately I stumbled upon {property:PreviousLocation} that will definitely prevent the template from being used. (or so I think...) I... was shamefully using it to get the filename, store in a temp variable and then use this temp variable with a regexreplace to extract the current version of the software stored on disk (to display in a custom collumn); As I was exploring the possibility of helping improve the wiki-pages for Ketarin, as you suggested, I discovered that {file} would give me almost the same result as {property:PreviousLocation} (it seems the only difference is that {file} uses "%20" notation for spaces in the path/filename, but I might be wrong about that); So, now I eliminated the 2 variables ({cur0} and {current}) I was using to populate the custom column with the current version and I just enter "{file:regexreplace:.+(\s|_)v\.([a-zR\d\.\-_]+)(\sPlugins|\-NonIE|\-PRT|\-mega|\-experimental)?\.(7z|exe|msi|rar|xpi|zip):$2}" into the "Column value:". It's not succinct or elegant, but it works... How would you do it if you wanted to display the current version in a custom column? (would you also get the value from {file} or is there another way?) Oh, man..!! How didn't I see this before?...Yes, in fact, for now it would be better for me to remove the template from the SourceForge items that were customized; Later (whenever I have the time), I can increase the complexity of the template and make it automatically adapt to those situations with yet a few more variables; Exactly as you said... brilliant! I would "give the world" to be able to see some of your templates! I'm not a programmer, so I really learn by seeing what others do and trying to understand it and adapt for my needs. I understand that you probably have a lot of templates and app definitions that you can't share, but if you could put the ones you can personally share with me and send me in a zip file (by PM or attached to a response), I would be immensely grateful. (I promise I won't misuse it or pass it around; I will only use it for reference in building my own templates) Being really honest, I was more confused than anything by looking at the few (old) templates available at the forum... I think there's lots of room for improvement on this area for Ketarin: first, there should be a more clear differentiation between "Application Template" and a "General Template" for sites like SourceForge, GoogleCode, Softpedia, MajorGeeks, BetaNews, FileHorse, etc. second, the user who created the application should definitely be identified (and possibly included in the search) third, there should possibly be a more complex rank and moderation for the online templates (give some special users the power the delete, modify, rename and lower the rank of submitted templates). I know this one would take a lot of work to implement and it isn't really practical (but still ideal)... Yes, I am! Thanks for pointing it out. This looks quite interesting; it must be really a "swiss-army-knife" Toolbar; his search examples there are borderline hilarious. I will test it (and just laugh about the "pow!" example every time I use the exclamation mark on it)... I like the idea of having the browser address field - and it's multiple shortcuts - right in my face at the taskbar; as long as it's not as heavy and cumbersome as most of the others desktop-search-toolbars (including Google's), I'll stick by it. P.S.: About helping improve the wiki-pages for Ketarin, I'm not completely comfortable with the idea yet... I just saw yesterday there was a lot of spam pages on it, and I tried to clean it, but couldn't figure out a way to delete a spam page. Also, I'm not sure how to strictly follow the language used in it and the scrict formating to help keep the whole think cohesive enough; another problem is that any screenshots I can (and want to) produce will look nothing like the ones that are already there... (take a look below); I did already produce an excel spreadsheet (grab it here on fileden - it seems I don't have enough privileges to attach files here) with a table I would like to include in this page ( Special variables ) but I think it needs still a lot of refinement. Should I send it in a PM message to floele? <<-- mine (WinXP) <<-- Wiki (Vista?)
  20. Hello! I'm fairly new to Ketarin, but I've spent dozens of hours with it this week and I really love it! But there are several things it could to better or at least would make it more userfriendly. I'll reference to similar requests as far as I found them Note: They are only roughly ordered by importance.. It would be nice to not only to be able to "Import..." a configuration (which updates the current one), but even to replace it completely. Background: I do share my XML-Files with friends and actually if I delete an application, export to XML and my friend imports it the deleted application is still there (even if it's missing in the XML). So to get a proper result he has always to delete all the apps before importing a new list. It would be nice to save the last values of variables to the exported XML, too. At the moment if I import an XML I do lose the Version-Information of downloads. (You might ask, why I don't use several databases. It's rather simple: I can't edit informations directly there. When sending the XML to a friend I'm removing some informations like "Previous Location" or "Last updates" and replace it with the informations of his database, so he don't loses his settings important for update*) It would be nice to not only be able to export via Commandline, but also to import it again. Default application template I've created a template with some placeholders I'm using for new applications (via Import). It would be nice if I could use this via the "Add new application"-Button. I know there is a "Save as default"-Button, but this way I can't use the placeholders, can I? I will also support the request for the link to the Apps website I've used the first Custom-Value column to show the Version-Information, but some of my Tools aren't versionized and therefore there is only {version}. It would be nice if it would be empty in this case (I know this can be workarounded with an empty global variable with the same name). Could it be possible to watch version-strings without adding the need of a binary-download? There are some apps I can't find a proper download-link (e.g. from MediaFire), but it would be nice to be notified if version changes, so I can do it manually (especially nice in combination with going to the download-site via context-menu). I know this can also be done with a Webmonitor, but I like having similar things together. It would be nice if F2 would open the edit-dialog instead of the renaming-dialog or at least provide another shortcut to do this. Another thing live would make easier is to select a newly added app (using import) in the listview and scroll to it's location. I've now more than 170 apps included and it doesn't make fun to scroll allways around. This problem doesn't occure when using "Add new application", so it might be solved if I could use a template as default. It would be usefull to have a variable containing the actual application-path of Ketarin, for example for relative commands (as I already found as problem here.) If I use V{version} as "Variable for custom column" the result is (for example) {V1.2. To get V1.2 I've to create a global variable with just a "V" in it!? Questions: Is there a way to download apps that are invoked by a server-side php-skript? Hmm... there was a second one, but I seem to have forgotten it while typing the first one A Bug I've found so far: A crash when renaming apps. 1) "Add new application", fill out the minimum informations you need to submit (or use a default-setting). 2) Immediately after closing the dialog press "F2" to rename the app. This results in a Win32Exception every time I try it. Similar (I think it's the same bug, but invoked in a little bit other way): 1) "Add new application", fill out the minimum informations you need to submit (or use a default-setting). 2) Reopen the dialog via "Edit" 3) Close the dialog 4) Press "F2" The dialog does open now. 5) Enter a new name --> crashs. So.. I'm shure I've forgotten something, but I might remember soon when working again. But let's say also THANKS for this App, you can't tell how much work this one saves It does offer soo many possibilities other app-updater don't have. Is there a possibility to donate or do you just want my written thanks? Thalon *: In detail: 1) I export my configuration to XML 2) I'm stripping of several field from my export with user-specific data. 3) I've written a little tool which exports the configuration of Ketarin-Instance of my friend 4) It merges his informations with my XML (fills up the user-specific data from him which I've stripped off before) So he doesn't miss any updates and does also not have to download versions which I haven't in my configuration.
  21. the variable doesnt seem to work anymore :/ needed it to get the filename of the .rar I was downloading so I could rename the folder "DrvBK2_1.rar" is the file name so i just want "DrvBK2_1" log is this E:\Repair>ren E:\Repair\Backup\{url:basefile} DriverBackup2 The filename, directory name, or volume label syntax is incorrect. also new beta version doesn't resize the "execute the following commands after downloading" editbox when you drag the corner to resize the window, the top window "execute the following commands before downloading" works though
  22. I'm sorry, I did post a bit too quick, and did the double check I made wrong (original post remains striked through below). The source of the problem is quite different: When importing an application xml, this xml can be malformed so that it produces an error on import and additionally seems to break the database, resulting in the application (and probably some/all others, didn't test that) not showing up any more and re-emitting the error on every start of ketarin. In this special case, I manually edited the xml, duplicating a variable entry, renaming the "key" but missing to rename the "name" node, so the name was there two times. I think ketarin should discard anything tried to import when an error occurs on import to avoid the database being corrupted by this. When I export one of my applications to a file, delete it, and re-import it afterwards, I get an error "Failed to import file: Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt" (german for "an element with the same key has already been added"). The same error message appears when exiting Ketarin afterwards, and starting it again. I did not look into the db file, but I suspect the application does not really get deleted in the first place but only marked as deleted, so the key (name) duplicates when reimporting.
  23. {url:basefile} tried adding an extra command: 7z x {file} -o"{root}Computer-Repair\{category}\{appname}\" -y ren {url:basefile} {appname} to rename the folder but the {url:basefile} variable isnt working the log only shows this after extracting the file: C:\>ren {url:basefile} MozBackup
  24. Basicly i have a script that gets the app version number from the installer and then renames that file with this version number. This is very useful for apps that do not supply up-to-date version numbers anywhere exept the executable itself. For example µTorrent with correct Build number.When a new version comes good luck finding a website that lists the build number correctly (FileHippo alternates between stable/beta buildnumbers so it does now count). It does require a small app from sysinternals: http://technet.microsoft.com/en-us/sysinternals/bb897441.aspx Although i also have a .vbs script that does this without any 3rd party plugins but the sigcheck method is faster and easier to manage. This is the current command: sigcheck -n -q "{Apps x86}\uTorrent *.exe" > %temp%\Version.txt set /p FileVersion= < %temp%\Version.txt cd /D "{Apps x86}" ren "uTorrent *.exe" "uTorrent v.%FileVersion%.exe" As you can see i can succesfully rename the executable but due to this limitation, there is no way to let Ketarin know the new file path and so Ketarin "loses" the file.Next download will be again downloaded alongside while keeping the old and all setup commands brake and setra-yada Basicly the idea was to insert a new value into Ketarin's textual variable so it would always see the exe despite any namechanges.
  25. Ahhh heck appyface... let's just go ahead and ask Flo for BOTH 'copy variable' AND 'rename variable' and maybe we'll get lucky!
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.