Jump to content
Ketarin forum

Omniferum

Members
  • Posts

    304
  • Joined

  • Last visited

Everything posted by Omniferum

  1. As the filename downloaded contains the version number in it there is not much need to specify a version check variable. Ketarin can automatically determine if the file is newer, but if you really want the variable. >Version.*?(\d\d\.[^"']+)</ Thing is for my 150 apps i've never had to define a single version variable, Ketarin really has done fine in determining new files all on its own. I'm actually rather curious as to how it achieves this, shall look through forums. EDIT Ketarin looks for a change in the files date/size/name. Which to be honest works fine for the vast majority of things, but do all download links publish this data? In an old thread floele said without a referer it always linked to a static which didn't publish that information. Would be nice if someone could explain this to me so I could determine in the future if I need to set the version variable or not
  2. Hm, it seems to have stopped itself. For a day it was not translating XML but has gone back to normal thank god. I know it worked fine before purely because I have lots of old templates with naming variables containing < and >. Peculiar, wish I knew what caused it
  3. I decided to take a shot at what I suggested to floele earlier with trying to get Ketarin to check for web page updates. Found an alternative (Page Update Watcher on sourceforge) however I still like the options Ketarin gives. So here you go, I thought i'd make such a template for the community more to show off Ketarin can do things like this. So below is a template that will only ask you for the web page you want to monitor, if it changes AT ALL it will load the page with your default browser. If you want it to monitor a specific part of a webpage you can edit the regex in the {monitor} variable, or just change it to start/end text mode. You will most likely want to do this as all modern pages have lots of changing data that isn't relevant to actual page content. Ads/random images etc. The only regex you'll really need is firstwordyawant.*?secondwordyawant Example <h1>.*?</h1> Pants.*?weee This template assigns the name automatically to the name of the page, if you see strange characters it is because it captures HTML encoding for special characters. So the trademark symbol would appear to be ™ It works perfectly fine, the only issue is that you will have to run 'update' everytime you want to check to see if something is different as Ketarin has no internal scheduler. However there are plenty of third party task schedulers you could use or manually use a hotkey/shortcut to run it when you want. I just keep a second ketarin with a blank file called jobs.db in its folder (to make it portable/independent) and put all the pages you want to monitor in that separate ketarin and run that Ketarin with the /silent command line switch. Alternatively if you just want to use one ketarin install you can just create a blank file called ketamon.db in your current ketarin folder and run ketarin /database=ketamon.db. Running your ketarin normally will load the default jobs.db. The fixed url is https://www.google.c...s/mail_logo.png purely because Ketarin needs a valid url to download, I picked that purely because google is hardly going to go down really and I doubt that URL is going to change anytime soon. However if it does just pick anything that is a valid file you could download. It doesn't really matter what it is, Ketarin won't actually download it. <?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>{page}</WebsiteUrl> <IgnoreFileInformation>true</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator>monitor</VariableChangeIndicator> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <SetupInstructions /> <Variables> <item> <key> <string>monitor</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>.*</Regex> <Url>{page}</Url> <Name>monitor</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>.*?(\S.*?)\s*</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> <Regex /> <TextualContent><placeholder name="URL" /></TextualContent> <Name>page</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand /> <ExecutePreCommand>start "" "{page}" & exit 3</ExecutePreCommand> <ExecuteCommandType>Batch</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Web Page Monitoring</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <TargetPath>Web Page Monitoring\{appname:regexreplace:([^a-zA-Z0-9\_]+):-}</TargetPath> <FixedDownloadUrl>https://www.google.com/images/logos/mail_logo.png</FixedDownloadUrl> <Name><placeholder name="Name of application" variable="name" /></Name> </ApplicationJob> </Jobs> EDIT 1. Added a page variable 2. The "stuck variable" problem was fixed in Ketarin 1.6 beta 6, everything works perfectly now 3. Added exit code 3, introduced in Ketarin 1.6.1 beta 2. Will now provide a timestamp if a page change happens
  4. Ketarin does seem to have a URL length limit that truncates a lot of the codeplex downloads because of the massive length, it may have been why I was getting errors. Pages can use POST data/cookies/user agent all as security methods to authenticate downloads. Sometimes it is just a bitch finding the right one.
  5. The thing you need to put into the POST data you can get if you... well I have to give you my way. Firefox and use an add-on called HTTPFox, go to the download page and activate it before you hit the download link. Let it run until the download has started then you can pause/stop HTTPfox and you'll see the post data it sent on the far right row. Copy and paste that directly into the Ketarin POST Data right column, the left column is just a label you give it for your own personal reference. That's the long and short of it, the POST Data I used was the base URL of the project page with releases/acceptLicense after it if memory serves correct.
  6. You need to use POST data to get past the accept license. I got the URL in its entirety in Ketarin however it still said the URI could not be determined even when I pasted that error message directly into Ketarin it downloaded it fine.
  7. If my batch was something like 50 lines i'd agree with you, but the speed of mine is fast enough to not notice the difference. Maybe if you ran it on a very very slow machine. My batch does take care of the temp folder, just doesn't delete the empty folder afterwards. You would still have to empty your %temp% folder, this is for those that tend to not do that. Again, for those new to any of this.
  8. Would it be possible to add an extra 'between' text entry which we define the specific URL and Ketarin automatically finds the unique text before/after that text? I only know it is feasible because webversions can do it http://users.telenet.be/littlegems/MySoft/WebVersions/Index.html To check out what i'm referring to specifically if you open the program and right click on any app (there is a pre-defined list upon startup) click edit then click advanced options near the bottom and type in the text you want to be 'between' in the "New WebVersion:" field then click find it will populate the first before and first after for you. I'm not sure how complicated it is to achieve but it seems like it would be extra handy and somewhat helpful/noob friendly indeed. It would also help for those of us that use obscure programs that have really stupid download links like /to/csae2fr which is hard to define in regex.
  9. Again, not sure if it is a bug or not however seemed the most likely place. When pre-defining values with variables i.e. name it seems that Ketarin doesn't process variables with regex that contains < or > (That's < and > to in XML if anyone is curious) For example <title(.*?)/title> won't work, it will say "Cannot determine", however it will retrieve it fine if you check the variable in the settings. title(.*?)/title will work, but not retrieve what I actually want. I assume this is because it doesn't translate the < before trying to define the variable.
  10. I have been for a while tinkering with a 'universal' piece of batch code that will be able to install 99% of binaries/executables that can either be unzipped or universal extracted (it's a program to extract exe/msi) Here is something that works for 100+ apps from a wide variety of places. It will install the application you download to {installpath}{appname:regexreplace: \(.*\):}. The {appname:regexreplace: \(.*\):} means the name you give your application in Ketarin but will ignore anything you put in curved brackets. So if you had an app called Pony (Godilovethem) it would install to {installpath}Pony. I use this so I can put certain notes in the appname like x64 build or words like Portable/experimental. Required defined global variables {7z} - The path to your 7z program {ue} - The path to your Universal Extract program {temppath} - A folder that is created for all the code to be performed in, it is just a temp folder so anything will do. {installpath} - The basic start of where you want the application to be installed to {copyfolder} - The command run to copy the contents of what you've extracted Here are how mine are defined, if you need an idea {7z} - start /wait {root}"Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" {ue} - start /wait {root}"Programs\File Management\Universal Extractor\UniExtract.exe" {temppath} - {root}Ketatemp\ {installpath} - {root}Programs\ {copyfolder} - xcopy /C /E /H /I /Y Special note Some apps have their configuration files already defined in an .ini or .xml. There is a bit of code that accounts for it. It is this line. if exist "{installpath}{category}\{appname:regexreplace: \(.*\):}"\mplayer.ini del "%dir%"mplayer.ini Basically goes "Is there something already there called blah.ini? Oh ok, i'll delete it in the temp folder so it doesn't get copied over". This way you will still keep all your old settings, which is kinda the point. Just replace mplayer.ini with whatever filename you know keeps the config data. Usually config.ini or config.xml, for some apps it can also be a .db. For binaries {7z} x "{file}" -o"{temppath}{appname:regexreplace: \(.*\):}" -y for /f "tokens=2 delims=[]" %a in ('dir /b /s "{temppath}{appname:regexreplace: \(.*\):}\*.exe" ^| find /v /n "" ^| findstr /c:[1]') do set dir=%~dpa* {copyfolder} "%dir%" "{installpath}{category}\{appname:regexreplace: \(.*\):}\" rd /s /q "{temppath}{appname:regexreplace: \(.*\):}" For executables {ue} "{file}" "{temppath}{appname:regexreplace: \(.*\):}" for /f "tokens=2 delims=[]" %a in ('dir /b /s "{temppath}{appname:regexreplace: \(.*\):}\*.exe" ^| find /v /n "" ^| findstr /c:[1]') do set dir=%~dpa* {copyfolder} "%dir%" "{installpath}{category}\{appname:regexreplace: \(.*\):}\" rd /s /q "{temppath}{appname:regexreplace: \(.*\):}" Now the only issue at the moment with the above code is that it will leave you with an empty temp folder. The reason for this is you can't delete it if you have other apps that are using it at he same time, otherwise it will just screw everything up. If you put the following rd /s /q "{temppath}" into the "After updating all application" (It is a drop down menu) in the Commands tab in Settings it will clean it up when Ketarin is basically finished with everything. Floele has said he will put in an "Execute command after installing" which we can put it in there then, because manually installing/running the code will still leave you with an empty temp folder. EXTRA There are two places you can place install instructions. In either the commands tab or the Setup tab of the applications settings. In the setup tab if you click "Add Instruction" and select "Custom Command" you can paste the above code into there and it will work. Also if you place the following. /*This is a comment line, the line below is the C# script. It will run the instructions found in the Setup Tab*/ app.Install(null); Into the 'execute the following command after downloading' part of the commands tab and from the drop down menu labelled Command select C# script it will run whatever you put into the Setup Instructions everytime it downloads an update.
  11. Solved my problem, i'm not sure why it needed to be done this way specifically but hey, anything that works is all ok. {7z} x "{file}" -o"{temppath}{appname:regexreplace: \(.*\):}" -y dir /b /s "{temppath}{appname:regexreplace: \(.*\):}"\*.exe > "{temppath}{appname:regexreplace: \(.*\):}"\1.txt set /p f=<"{temppath}{appname:regexreplace: \(.*\):}"\1.txt echo %f% > "{temppath}{appname:regexreplace: \(.*\):}"\2.txt cd "{temppath}{appname:regexreplace: \(.*\):}" for /f "tokens=*" %a in (2.txt) do set dir=%~dpa* if exist "{installpath}{category}\{appname:regexreplace: \(.*\):}"\mplayer.ini del "%dir%"mplayer.ini if exist "{installpath}{category}\{appname:regexreplace: \(.*\):}"\kk.ini del "%dir%"kk.ini if exist "{installpath}{category}\{appname:regexreplace: \(.*\):}"\input.ini del "%dir%"input.ini {copyfolder} "%dir%" "{installpath}{category}\{appname:regexreplace: \(.*\):}\" rd /s /q "{temppath}{appname:regexreplace: \(.*\):}"
  12. Mid-posting I tested something different is all, posted the changes. I even tried setting the variable as %qwe% but still same problem. I also get this error D:\Programs\Internet\Ketarin>xcopy /C /E /H /I /Y "%path%" "D:\Programs\Video\MPlayer WW\" 'xcopy' is not recognized as an internal or external command, operable program or batch file. and again it is only for this specific app that i'm having the trouble, all the other with such commands are perfectly fine. For example here is my notepad++ Batch code {7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y for /F "tokens=*" %d in ('dir "{p2}{appname:regexreplace: \(.*\):}" /ad /b') do set dir="{p2}{appname:regexreplace: \(.*\):}"\%d if exist "{p1}{category}\{appname:regexreplace: \(.*\):}"\config.xml del "%dir%"\config.xml {copy} "%dir%" "{p1}{category}\{appname:regexreplace: \(.*\):}" rd /s /q "{p2}{appname:regexreplace: \(.*\):}" Log 04/12/2010 7:46:58 PM: Notepad++ (Unicode Binary): Executing command: start /wait D:\"Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" x "D:\Software\Programs\Productivity\npp.5.8.5.bin.7z" -o"D:\Ketatemp\Notepad++" -y 04/12/2010 7:46:58 PM: Notepad++ (Unicode Binary): Executing command: for /F "tokens=*" %d in ('dir "D:\Ketatemp\Notepad++" /ad /b') do set dir="D:\Ketatemp\Notepad++"\%d 04/12/2010 7:46:58 PM: Notepad++ (Unicode Binary): Executing command: if exist "D:\Programs\Productivity\Notepad++"\config.xml del "%dir%"\config.xml 04/12/2010 7:46:58 PM: Notepad++ (Unicode Binary): Executing command: xcopy /C /E /H /I /Y "%dir%" "D:\Programs\Productivity\Notepad++" 04/12/2010 7:46:58 PM: Notepad++ (Unicode Binary): Executing command: rd /s /q "D:\Ketatemp\Notepad++" 04/12/2010 7:46:59 PM: Notepad++ (Unicode Binary): Command result: Microsoft Windows [Version 6.1.7600] Copyright (c) 2009 Microsoft Corporation. All rights reserved. D:\Programs\Internet\Ketarin>start /wait D:\"Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" x "D:\Software\Programs\Productivity\npp.5.8.5.bin.7z" -o"D:\Ketatemp\Notepad++" -y D:\Programs\Internet\Ketarin>for /F "tokens=*" %d in ('dir "D:\Ketatemp\Notepad++" /ad /b') do set dir="D:\Ketatemp\Notepad++"\%d D:\Programs\Internet\Ketarin>set dir="D:\Ketatemp\Notepad++"\ansi D:\Programs\Internet\Ketarin>set dir="D:\Ketatemp\Notepad++"\unicode D:\Programs\Internet\Ketarin>if exist "D:\Programs\Productivity\Notepad++"\config.xml del "%dir%"\config.xml Could Not Find D:\Ketatemp\Notepad++\unicode\config.xml D:\Programs\Internet\Ketarin>xcopy /C /E /H /I /Y "%dir%" "D:\Programs\Productivity\Notepad++" D:\Ketatemp\Notepad++\unicode\change.log D:\Ketatemp\Notepad++\unicode\config.model.xml D:\Ketatemp\Notepad++\unicode\contextMenu.xml D:\Ketatemp\Notepad++\unicode\doLocalConf.xml D:\Ketatemp\Notepad++\unicode\langs.model.xml D:\Ketatemp\Notepad++\unicode\license.txt D:\Ketatemp\Notepad++\unicode\notepad++.exe D:\Ketatemp\Notepad++\unicode\NppHelp.chm D:\Ketatemp\Notepad++\unicode\readme.txt D:\Ketatemp\Notepad++\unicode\SciLexer.dll D:\Ketatemp\Notepad++\unicode\shortcuts.xml D:\Ketatemp\Notepad++\unicode\stylers.model.xml D:\Ketatemp\Notepad++\unicode\localization\afrikaans.xml D:\Ketatemp\Notepad++\unicode\localization\albanian.xml D:\Ketatemp\Notepad++\unicode\localization\arabic.xml D:\Ketatemp\Notepad++\unicode\localization\aranese.xml D:\Ketatemp\Notepad++\unicode\localization\azerbaijani.xml D:\Ketatemp\Notepad++\unicode\localization\basque.xml D:\Ketatemp\Notepad++\unicode\localization\belarusian.xml D:\Ketatemp\Notepad++\unicode\localization\bosnian.xml D:\Ketatemp\Notepad++\unicode\localization\brazilian_portuguese.xml D:\Ketatemp\Notepad++\unicode\localization\bulgarian.xml D:\Ketatemp\Notepad++\unicode\localization\catalan.xml D:\Ketatemp\Notepad++\unicode\localization\chinese.xml D:\Ketatemp\Notepad++\unicode\localization\chineseSimplified.xml D:\Ketatemp\Notepad++\unicode\localization\croatian.xml D:\Ketatemp\Notepad++\unicode\localization\czech.xml D:\Ketatemp\Notepad++\unicode\localization\danish.xml D:\Ketatemp\Notepad++\unicode\localization\dutch.xml D:\Ketatemp\Notepad++\unicode\localization\english.xml D:\Ketatemp\Notepad++\unicode\localization\extremaduran.xml D:\Ketatemp\Notepad++\unicode\localization\farsi.xml D:\Ketatemp\Notepad++\unicode\localization\finnish.xml D:\Ketatemp\Notepad++\unicode\localization\french.xml D:\Ketatemp\Notepad++\unicode\localization\friulian.xml D:\Ketatemp\Notepad++\unicode\localization\galician.xml D:\Ketatemp\Notepad++\unicode\localization\georgian.xml D:\Ketatemp\Notepad++\unicode\localization\german.xml D:\Ketatemp\Notepad++\unicode\localization\greek.xml D:\Ketatemp\Notepad++\unicode\localization\hebrew.xml D:\Ketatemp\Notepad++\unicode\localization\hungarian.xml D:\Ketatemp\Notepad++\unicode\localization\hungarianA.xml D:\Ketatemp\Notepad++\unicode\localization\indonesian.xml D:\Ketatemp\Notepad++\unicode\localization\italian.xml D:\Ketatemp\Notepad++\unicode\localization\japanese.xml D:\Ketatemp\Notepad++\unicode\localization\kazakh.xml D:\Ketatemp\Notepad++\unicode\localization\korean.xml D:\Ketatemp\Notepad++\unicode\localization\kyrgyz.xml D:\Ketatemp\Notepad++\unicode\localization\Latvian.xml D:\Ketatemp\Notepad++\unicode\localization\lithuanian.xml D:\Ketatemp\Notepad++\unicode\localization\luxembourgish.xml D:\Ketatemp\Notepad++\unicode\localization\macedonian.xml D:\Ketatemp\Notepad++\unicode\localization\malay.xml D:\Ketatemp\Notepad++\unicode\localization\norwegian.xml D:\Ketatemp\Notepad++\unicode\localization\nynorsk.xml D:\Ketatemp\Notepad++\unicode\localization\occitan.xml D:\Ketatemp\Notepad++\unicode\localization\polish.xml D:\Ketatemp\Notepad++\unicode\localization\portuguese.xml D:\Ketatemp\Notepad++\unicode\localization\romanian.xml D:\Ketatemp\Notepad++\unicode\localization\russian.xml D:\Ketatemp\Notepad++\unicode\localization\samogitian.xml D:\Ketatemp\Notepad++\unicode\localization\serbian.xml D:\Ketatemp\Notepad++\unicode\localization\serbianCyrillic.xml D:\Ketatemp\Notepad++\unicode\localization\slovak.xml D:\Ketatemp\Notepad++\unicode\localization\slovakA.xml D:\Ketatemp\Notepad++\unicode\localization\slovenian.xml D:\Ketatemp\Notepad++\unicode\localization\spanish.xml D:\Ketatemp\Notepad++\unicode\localization\spanish_ar.xml D:\Ketatemp\Notepad++\unicode\localization\swedish.xml D:\Ketatemp\Notepad++\unicode\localization\tagalog.xml D:\Ketatemp\Notepad++\unicode\localization\tamil.xml D:\Ketatemp\Notepad++\unicode\localization\thai.xml D:\Ketatemp\Notepad++\unicode\localization\turkish.xml D:\Ketatemp\Notepad++\unicode\localization\ukrainian.xml D:\Ketatemp\Notepad++\unicode\localization\uzbek.xml D:\Ketatemp\Notepad++\unicode\localization\uzbekCyrillic.xml D:\Ketatemp\Notepad++\unicode\plugins\ComparePlugin.dll D:\Ketatemp\Notepad++\unicode\plugins\NppExport.dll D:\Ketatemp\Notepad++\unicode\plugins\NppFTP.dll D:\Ketatemp\Notepad++\unicode\plugins\NppTextFX.dll D:\Ketatemp\Notepad++\unicode\plugins\PluginManager.dll D:\Ketatemp\Notepad++\unicode\plugins\SpellChecker.dll D:\Ketatemp\Notepad++\unicode\plugins\APIs\actionscript.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\c.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\cmake.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\cpp.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\cs.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\css.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\html.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\java.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\javascript.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\lisp.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\nsis.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\perl.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\php.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\python.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\rc.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\sql.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\tex.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\vb.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\vhdl.xml D:\Ketatemp\Notepad++\unicode\plugins\APIs\xml.xml D:\Ketatemp\Notepad++\unicode\plugins\Config\tidy\AsciiToEBCDIC.bin D:\Ketatemp\Notepad++\unicode\plugins\Config\tidy\HTMLTIDY.CFG D:\Ketatemp\Notepad++\unicode\plugins\Config\tidy\HTMLTIDY.ERR D:\Ketatemp\Notepad++\unicode\plugins\Config\tidy\libTidy.dll D:\Ketatemp\Notepad++\unicode\plugins\Config\tidy\TIDYCFG.INI D:\Ketatemp\Notepad++\unicode\plugins\Config\tidy\W3C-CSSValidator.htm D:\Ketatemp\Notepad++\unicode\plugins\Config\tidy\W3C-HTMLValidator.htm D:\Ketatemp\Notepad++\unicode\plugins\doc\NPPTextFXdemo.TXT D:\Ketatemp\Notepad++\unicode\plugins\doc\NppFTP\license_libssh.txt D:\Ketatemp\Notepad++\unicode\plugins\doc\NppFTP\license_NppFTP.txt D:\Ketatemp\Notepad++\unicode\plugins\doc\NppFTP\license_OpenSSL.txt D:\Ketatemp\Notepad++\unicode\plugins\doc\NppFTP\license_TiXML.txt D:\Ketatemp\Notepad++\unicode\plugins\doc\NppFTP\license_UTCP.htm D:\Ketatemp\Notepad++\unicode\plugins\doc\NppFTP\license_ZLIB.txt D:\Ketatemp\Notepad++\unicode\plugins\doc\NppFTP\Readme.txt D:\Ketatemp\Notepad++\unicode\plugins\doc\PythonScript\PythonScript.chm D:\Ketatemp\Notepad++\unicode\plugins\doc\SelectNLaunch\license.txt D:\Ketatemp\Notepad++\unicode\plugins\doc\SelectNLaunch\readme.txt D:\Ketatemp\Notepad++\unicode\plugins\doc\ZenCodingPython\readme.txt D:\Ketatemp\Notepad++\unicode\themes\Bespin.xml D:\Ketatemp\Notepad++\unicode\themes\Black board.xml D:\Ketatemp\Notepad++\unicode\themes\Choco.xml D:\Ketatemp\Notepad++\unicode\themes\Deep Black.xml D:\Ketatemp\Notepad++\unicode\themes\Hello Kitty.xml D:\Ketatemp\Notepad++\unicode\themes\Mono Industrial.xml D:\Ketatemp\Notepad++\unicode\themes\Monokai.xml D:\Ketatemp\Notepad++\unicode\themes\Obsidian.xml D:\Ketatemp\Notepad++\unicode\themes\Plastic Code Wrap.xml D:\Ketatemp\Notepad++\unicode\themes\Ruby Blue.xml D:\Ketatemp\Notepad++\unicode\themes\Twilight.xml D:\Ketatemp\Notepad++\unicode\themes\Vibrant Ink.xml D:\Ketatemp\Notepad++\unicode\themes\vim Dark Blue.xml D:\Ketatemp\Notepad++\unicode\themes\Zenburn.xml D:\Ketatemp\Notepad++\unicode\updater\gpup.exe 136 File(s) copied D:\Programs\Internet\Ketarin>rd /s /q "D:\Ketatemp\Notepad++" D:\Programs\Internet\Ketarin> Full XML <?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="4323957a-3273-49fb-aeb4-e69e3a590250"> <SourceTemplate><![CDATA[<?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 /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <UserAgent>{sfua}</UserAgent> <HttpReferer></HttpReferer> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(http[^"']+[^"']+(\.zip|\.rar|\.7z))</Regex> <Url>http://sourceforge.net{folder2}</Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>folder1</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+projects[^"']+files[^"']+)/"</Regex> <Url><placeholder name="Application Page URL" value="http://sourceforge.net/projects/notepad-plus/files/" /></Url> <Name>folder1</Name> </UrlVariable> </value> </item> <item> <key> <string>folder2</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+projects[^"']+files[^"']+)/"</Regex> <Url>http://sourceforge.net{folder1}</Url> <Name>folder2</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>title="/(.*?)/</Regex> <Url><placeholder name="Application Page URL" value="http://sourceforge.net/projects/notepad-plus/files/" /></Url> <Name>name</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <SetupInstructions /> <Category><placeholder name="Category" value="Productivity" /></Category> <SourceType>FixedUrl</SourceType> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" variable="name" value="notepad++ releases binary" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent>{sfua}</UserAgent> <UserNotes /> <LastFileSize>3425892</LastFileSize> <LastFileDate>2010-12-02T22:51:33.3122627</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 /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>{7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y & for /F "tokens=*" %d in ('dir "{p2}{appname:regexreplace: \(.*\):}" /ad /b') do set dir="{p2}{appname:regexreplace: \(.*\):}"\%d & if exist "{p1}{category}\{appname:regexreplace: \(.*\):}"\config.xml del "%dir%"\config.xml & {copy} "%dir%" "{p1}{category}\{appname:regexreplace: \(.*\):}" & rd /s /q "{p2}{appname:regexreplace: \(.*\):}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(http[^"']+[^"']+\.bin(\.zip|\.rar|\.7z))</Regex> <Url>http://sourceforge.net{folder2}</Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>folder1</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+projects[^"']+files[^"']+)/"</Regex> <Url>http://sourceforge.net/projects/notepad-plus/files/</Url> <Name>folder1</Name> </UrlVariable> </value> </item> <item> <key> <string>folder2</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+projects[^"']+files[^"']+)/"</Regex> <Url>http://sourceforge.net{folder1}</Url> <Name>folder2</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>title="/(.*?)/</Regex> <Url>http://sourceforge.net/projects/notepad-plus/files/</Url> <Name>name</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Productivity</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Productivity\npp.5.8.5.bin.7z</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-12-02T22:51:33.3122627</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>Notepad++ (Unicode Binary)</Name> </ApplicationJob> </Jobs>
  13. I have other apps with path as the variable, however I tried changing it just in case still gives the same behaviour.
  14. I'm not 100% sure if this is a bug or not, but it seemed the most likely place to post. The code i'm posting does essentially find the first executable file, set the directory that it is in as the variable dir. This helps for zips that get extracted to one or more subfolders. Also a little bit extra code for not overwriting existing ini files. Trouble is the code works fine in batch/cmd line. However putting it in Ketarin it doesn't expand %dir% in this instance. If I do echo %dir% will echo the variable expanded however using it in a command it doesn't seem to expand. I've spent a while on this and i'm not sure why it does this. {7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y dir /b /s "{p2}{appname:regexreplace: \(.*\):}"\*.exe > "{p2}{appname:regexreplace: \(.*\):}"\1.txt set /p f=<"{p2}{appname:regexreplace: \(.*\):}"\1.txt echo %f% > "{p2}{appname:regexreplace: \(.*\):}"\2.txt for /f "tokens=*" %a in ("{p2}{appname:regexreplace: \(.*\):}"\2.txt) do set dir=%~dpa {copy} "%dir%" "{p1}{category}\{appname:regexreplace: \(.*\):}\" rd /s /q "{p2}{appname:regexreplace: \(.*\):}" this is the resulting log output 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: start /wait D:\"Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" x "D:\Software\Programs\Video\mplayer-SVN-r32669.7z" -o"D:\Ketatemp\MPlayer WW" -y 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: dir /b /s "D:\Ketatemp\MPlayer WW"\*.exe > 1.txt 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: set /p f=<1.txt 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: echo %f% > 2.txt 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: for /f "tokens=*" %a in (2.txt) do set path=%~dpa 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: if exist "D:\Programs\Video\MPlayer WW"\mplayer.ini del "%path%"\mplayer.ini 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: if exist "D:\Programs\Video\MPlayer WW"\kk.ini del "%path%"\kk.ini 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: if exist "D:\Programs\Video\MPlayer WW"\input.ini del "%path%"\input.ini 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: xcopy /C /E /H /I /Y "%path%" "D:\Programs\Video\MPlayer WW\" 04/12/2010 5:24:57 AM: MPlayer WW: Executing command: rd /s /q "D:\Ketatemp\MPlayer WW" 04/12/2010 5:24:58 AM: MPlayer WW: Command result: Microsoft Windows [Version 6.1.7600] Copyright (c) 2009 Microsoft Corporation. All rights reserved. D:\Programs\Internet\Ketarin>start /wait D:\"Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" x "D:\Software\Programs\Video\mplayer-SVN-r32669.7z" -o"D:\Ketatemp\MPlayer WW" -y D:\Programs\Internet\Ketarin>dir /b /s "D:\Ketatemp\MPlayer WW"\*.exe > 1.txt D:\Programs\Internet\Ketarin>set /p f=<1.txt D:\Programs\Internet\Ketarin>echo %f% > 2.txt D:\Programs\Internet\Ketarin>for /f "tokens=*" %a in (2.txt) do set path=%~dpa D:\Programs\Internet\Ketarin>set path=D:\Ketatemp\MPlayer WW\mplayer_release\mplayer\ D:\Programs\Internet\Ketarin>if exist "D:\Programs\Video\MPlayer WW"\mplayer.ini del "%path%"\mplayer.ini D:\Programs\Internet\Ketarin>if exist "D:\Programs\Video\MPlayer WW"\kk.ini del "%path%"\kk.ini D:\Programs\Internet\Ketarin>if exist "D:\Programs\Video\MPlayer WW"\input.ini del "%path%"\input.ini D:\Programs\Internet\Ketarin>xcopy /C /E /H /I /Y "%path%" "D:\Programs\Video\MPlayer WW\" 'xcopy' is not recognized as an internal or external command, operable program or batch file. D:\Programs\Internet\Ketarin>rd /s /q "D:\Ketatemp\MPlayer WW" D:\Programs\Internet\Ketarin> I've deleted the app and made it fresh/new, but still the same problem. If someone else has a ketarin install that they may like to try this out on i'd appreciate it. here is the xml for my app <?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="c78ede13-9565-40a4-94d2-a875886e8aa0"> <SourceTemplate><![CDATA[<?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 /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <UserAgent>{sfua}</UserAgent> <HttpReferer></HttpReferer> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(http[^"']+[^"']+(\.zip|\.rar|\.7z))</Regex> <Url>http://sourceforge.net{folder2}</Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>folder1</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+projects[^"']+files[^"']+)/"</Regex> <Url><placeholder name="Application Page URL" value="http://sourceforge.net/projects/mplayer-ww/files/" /></Url> <Name>folder1</Name> </UrlVariable> </value> </item> <item> <key> <string>folder2</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+projects[^"']+files[^"']+)/"</Regex> <Url>http://sourceforge.net{folder1}</Url> <Name>folder2</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>title="/(.*?)/</Regex> <Url><placeholder name="Application Page URL" value="http://sourceforge.net/projects/mplayer-ww/files/" /></Url> <Name>name</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <SetupInstructions /> <Category><placeholder name="Category" value="Video" /></Category> <SourceType>FixedUrl</SourceType> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" variable="name" value="MPlayer_Release" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent>{sfua}</UserAgent> <UserNotes /> <LastFileSize>8556426</LastFileSize> <LastFileDate>2010-12-04T02:38:59.3821005</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 /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>{7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y dir /b /s "{p2}{appname:regexreplace: \(.*\):}"\*.exe > 1.txt set /p f=<1.txt echo %f% > 2.txt for /f "tokens=*" %a in (2.txt) do set path=%~dpa if exist "{p1}{category}\{appname:regexreplace: \(.*\):}"\mplayer.ini del "%path%"\mplayer.ini if exist "{p1}{category}\{appname:regexreplace: \(.*\):}"\kk.ini del "%path%"\kk.ini if exist "{p1}{category}\{appname:regexreplace: \(.*\):}"\input.ini del "%path%"\input.ini {copy} "%path%" "{p1}{category}\{appname:regexreplace: \(.*\):}\" rd /s /q "{p2}{appname:regexreplace: \(.*\):}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>class="status.*?(http[^"']+[^"']+(\.zip|\.rar|\.7z))</Regex> <Url>http://sourceforge.net{folder1}</Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>folder1</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+projects[^"']+files[^"']+)/"</Regex> <Url>http://sourceforge.net/projects/mplayer-ww/files/</Url> <Name>folder1</Name> </UrlVariable> </value> </item> <item> <key> <string>folder2</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+projects[^"']+files[^"']+)/"</Regex> <Url>http://sourceforge.net{folder1}</Url> <Name>folder2</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>title="/(.*?)/</Regex> <Url>http://sourceforge.net/projects/mplayer-ww/files/</Url> <Name>name</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Video</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Video\mplayer-SVN-r32669.7z</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-12-04T02:38:59.3821005</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>MPlayer WW</Name> </ApplicationJob> </Jobs>
  15. Is there anyway to completely unload the variable if it is 'no match'? at least then Ketarin will naturally encounter a 'no url' error. This is more a problem for the fixed download url as your average person won't think there is a problem if nothing tells him there is one.
  16. I only recently discovered that none of my sourceforge apps were updating due to site changes on their end, which is (annoying) fine. However the problem is more that I use a variable {download} where I get the actual filename from and the regex expression returns nothing beacuse of sourceforges changes. However ketarin still gives me a green check mark "Successful update!" and keeps on going. I only noticed because 3 of my SF apps still found stuff from the regex and returned errors. I checked my others and voila. So my {download} variable is empty essentially because it doesn't find a filename (none to be found on the page I originally assigned to it) but Ketarin still says "all is ok, no update needed". Using the latest version for reference sake EDIT Just confirming I have a few other apps with empty variables as the download pages have changed yet Ketarin is still returning "Successful update". Wouldn't have known otherwise. Does ketarin not empty variables completely? As an example if I put a global variable in the sourceforge HTTP referer however define it as empty/nothing it still fails. However I delete that variable and the download works fine. It would explain why it is still saying the URL is ok because at laest something is there not returning an error message specifically.
  17. 1.) The simplest solution I can think of is just to keep two databases. One that has all the programs you want on your pc, one that has all the stuff you want on the other computer. You can run ketarin from a batch that loads it with the specified .db Alternatively, althought requires a bit of effort. Make all your apps in the "Execute the following command after downloading" a C# with the following. /*This is a comment line, the line below is the C# script. It will run the instructions found in the Setup Tab*/ app.Install(null); Put all the commands you usually had in there into the Setup tab -> Add Instruction -> Custom Command Then make a custom install list for the PC with apps you don't want everything for, but that would always run everything in that list not just what was updated. 2.) Sourceforge is easily tamed with the following settings. Spoof HTTP referer: http://sourceforge.net User agent: (!) The User agent could actually be anything you want, I just went with that because someone else found it out first. You don't actually NEED the referer, at least I haven't. The User agent is vital though.
  18. Would it be possible to get an extra button in the "Add new application" section which gives us a drop down list of templates? The templates could just be stored in jobs.db or just look in a sub-directory called 'templates' for the necessary .xml Also will it ever be possible to allow the online Ketarin database to host templates as well? Seems like a logical progression. If we housed online prototype templates and say sourceforge changes something we only need to change the online prototype template and BLAM everyone that subscribes to that templates has working apps again.
  19. for /F "tokens=*" %d in ('dir /b "%temp%\OpenAL\*.exe" ') do set exe=%d That line of batch code will create such a variable for you that you call by doing "%exe%" So long as you know your program will be the only .exe in the folder that you extract it to but so long as you always extract it to a folder you know nothing else uses there isn't a clash. I use a global variable in my ketarin so all my setup instructions are carried out in a Ketatemp folder to {appname} variables (which are obviously unique) which gets deleted when i've finished all my setup. In the end your code will look exactly like this 7z e -aoa -y "{file}" -o%temp%\OpenAL\ for /F "tokens=*" %d in ('dir /b "%temp%\OpenAL\*.exe" ') do set exe=%d "%exe%" /F /NU /S
  20. Thought I would share a template to demonstrate. When you add an app from a sourceforge page, it will automatically name the program for you amongst other things. Note the Regex may need to be tweaked if you want an .exe <?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 /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <UserAgent>(!)</UserAgent> <HttpReferer>http://sourceforge.net</HttpReferer> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(http[^"']+[^"']+(\.zip|\.rar|\.7z))</Regex> <Url><placeholder name="Application Page URL"/></Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>content="get (.*?) at</Regex> <Url><placeholder name="Application Page URL"/></Url> <Name>name</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <SetupInstructions /> <Category><placeholder name="Category" /></Category> <SourceType>FixedUrl</SourceType> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <TargetPath><placeholder name="Download To"/></TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" variable="name" /></Name> </ApplicationJob> </Jobs>
  21. Thought you might appreciate a piece of code This is a variable that will identify the name for you, just tweak the regex depending on the template. For example i've made the regex below code automatically extract the name from download.com pages. <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>(.*?) -</Regex> <Url><placeholder name="Download URL"/></Url> <Name>name</Name> </UrlVariable> </value> </item> Only thing regarding the above piece of code, I didn't see a placeholder for the download URL in your download.com however if you had a placeholder with the same name "Download URL" you would only need to enter the value once as you can extract the name and the file both from the download.com app page. This below piece of code will just automatically name your app without having to manually enter anything, if it doesn't find anything it will give you the option of manually naming it. <Name><placeholder name="Name of application" variable="name" /></Name>
  22. As the title suggests, i've made apps specifically for the Universal Extractor that will keep its third party executables updated. It will download the required files, extract the relevant ones and replace the ones. It searches for wherever uniextract.exe is, assuming it is on the same drive Ketarin is. The only thing you will need to edit is the download location as I use a global variable of {s1} and my global variable of {7z} is just the location to my 7-zip executable. Any problems let me know, would like to expand on this but i've found these are the most updated (as in the last year or two) and the list is a bit long. Thought this would be good for whoever, did not think it belonged in Tips or Templates. 7-Zip <?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="a06f6aaf-f6fa-489c-bb98-46e99d742399"> <SourceTemplate><![CDATA[<?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 /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.putfileexentsionhere)) OR (http[^"']+[^"']+(\.putfileextensionhere)) </Regex> <Url><placeholder name="Download URL" value="http://sourceforge.net/projects/sevenzip/" /></Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <Category><placeholder name="Category" value="Universal Extractor App" /></Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" value="7-Zip" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent>(!)</UserAgent> <UserNotes /> <LastFileSize>1109706</LastFileSize> <LastFileDate>2010-11-13T05:39:32.9804528</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://sourceforge.net</HttpReferer> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %d in ('dir "\uniextract.exe" /b /s') do set dir=%~pdbin & {7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y & xcopy /C /H /I /Y {p2}"{appname:regexreplace: \(.*\):}"\7z.exe "%dir%" & xcopy /C /H /I /Y {p2}"{appname:regexreplace: \(.*\):}"\7z.dll "%dir%" & rd /s /q "{p2}{appname:regexreplace: \(.*\):}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(http[^"']+[^"']+(\d\.exe))</Regex> <Url>http://sourceforge.net/projects/sevenzip/files/</Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Universal Extractor App</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Universal Extractor App\7z919.exe</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-11-13T05:39:32.9804528</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>7-Zip</Name> </ApplicationJob> </Jobs> Inno Setup Unpacker <?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="bbdb46e7-3ed3-41b9-9473-ee46bd3ef43f"> <SourceTemplate><![CDATA[<?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 /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <UserAgent>(!)</UserAgent> <HttpReferer>http://sourceforge.net</HttpReferer> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.zip|\.rar|\.7z))</Regex> <Url><placeholder name="Application Page URL" value="http://sourceforge.net/projects/innounp/files/" /></Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>content="get (.*?) </Regex> <Url><placeholder name="Application Page URL" value="http://sourceforge.net/projects/innounp/files/" /></Url> <Name>name</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <SetupInstructions /> <Category><placeholder name="Category" value="Universal Extractor App" /></Category> <SourceType>FixedUrl</SourceType> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" variable="name" value="Inno" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent>(!)</UserAgent> <UserNotes /> <LastFileSize>122527</LastFileSize> <LastFileDate>2010-11-13T05:39:28.8842185</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://sourceforge.net</HttpReferer> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %d in ('dir "\uniextract.exe" /b /s') do set dir=%~pdbin & {7z} x "{file}" -o"%dir%" -y & del "%dir%\innounp.htm</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(http[^"']+[^"']+(\.zip|\.rar|\.7z))</Regex> <Url>http://sourceforge.net/projects/innounp/files/</Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>content="get (.*?) at</Regex> <Url>http://sourceforge.net/projects/innounp/files/</Url> <Name>name</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Universal Extractor App</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Universal Extractor App\innounp035.rar</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-11-13T05:39:28.8842185</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>Inno Setup Unpacker</Name> </ApplicationJob> </Jobs> lzop <?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="64f7c386-06a9-4992-be9a-860b9bcef8f2"> <SourceTemplate><![CDATA[<?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 /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.putfileexentsionhere)) OR (http[^"']+[^"']+(\.putfileextensionhere)) </Regex> <Url><placeholder name="Download URL" value="http://www.lzop.org/" /></Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <Category><placeholder name="Category" value="Universal Extractor App" /></Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" value="lzop" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileSize>74546</LastFileSize> <LastFileDate>2010-11-13T05:39:25.9650515</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 /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %d in ('dir "\uniextract.exe" /b /s') do set dir=%~pdbin & {7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y & for /F "tokens=*" %c in ('dir "{p2}{appname:regexreplace: \(.*\):}" /ad /b') do set dir2="{p2}{appname:regexreplace: \(.*\):}"\%c & xcopy /C /H /I /Y "%dir2%"\lzop.exe "%dir%" & rd /s /q "{p2}{appname:regexreplace: \(.*\):}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.zip))</Regex> <Url>http://www.lzop.org/</Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Universal Extractor App</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Universal Extractor App\lzop103w.zip</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-11-13T05:39:25.9650515</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>http://www.lzop.org/{download}</FixedDownloadUrl> <Name>lzop</Name> </ApplicationJob> </Jobs> PEiD <?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="c0b0f578-c3f6-49e1-85d2-eb7fb585dbfe"> <SourceTemplate><![CDATA[<?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 /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.putfileexentsionhere)) OR (http[^"']+[^"']+(\.putfileextensionhere)) </Regex> <Url><placeholder name="Download URL" value="http://www.peid.info/" /></Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <Category><placeholder name="Category" value="Universal Extractor App" /></Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" value="PEiD" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileSize>398311</LastFileSize> <LastFileDate>2010-11-13T05:39:35.6266041</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 /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %d in ('dir "\uniextract.exe" /b /s') do set dir=%~pdbin & {7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y & xcopy /C /H /I /Y {p2}"{appname:regexreplace: \(.*\):}"\peid.exe "%dir%" & rd /s /q "{p2}{appname:regexreplace: \(.*\):}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(id=.))</Regex> <Url>http://www.peid.info/download.html</Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Universal Extractor App</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Universal Extractor App\PEiD-0.95-20081103.zip</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-11-13T05:39:35.6266041</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>http://www.peid.info{download}</FixedDownloadUrl> <Name>PEiD</Name> </ApplicationJob> </Jobs> TrID <?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="79e98a82-5061-44cf-9504-a444025d8968"> <SourceTemplate><![CDATA[<?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 /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.putfileexentsionhere)) OR (http[^"']+[^"']+(\.putfileextensionhere)) </Regex> <Url><placeholder name="Download URL" value="http://mark0.net/soft-trid-e.html" /></Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <Category><placeholder name="Category" value="Universal Extractor App" /></Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" value="TrID" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileSize>25982</LastFileSize> <LastFileDate>2010-11-13T05:39:27.6661488</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 /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %d in ('dir "\uniextract.exe" /b /s') do set dir=%~pdbin & {7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y & xcopy /C /H /I /Y {p2}"{appname:regexreplace: \(.*\):}"\trid.exe "%dir%" & rd /s /q "{p2}{appname:regexreplace: \(.*\):}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+)">ZIP</Regex> <Url>http://mark0.net/soft-trid-e.html</Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Universal Extractor App</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Universal Extractor App\trid_w32.zip</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-11-13T05:39:27.6661488</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>TrID</Name> </ApplicationJob> </Jobs> TrID Definition File <?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="a1b0cd29-e329-4f6b-8a71-4c8066ab8d91"> <SourceTemplate><![CDATA[<?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 /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.putfileexentsionhere)) OR (http[^"']+[^"']+(\.putfileextensionhere)) </Regex> <Url><placeholder name="Download URL" value="http://mark0.net/soft-trid-e.html" /></Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <Category><placeholder name="Category" value="Universal Extractor App" /></Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" value="TrID" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileSize>509864</LastFileSize> <LastFileDate>2010-11-13T05:39:30.5103115</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 /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %d in ('dir "\uniextract.exe" /b /s') do set dir=%~pdbin & {7z} x "{file}" -o"%dir%" -y</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>true</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+)">ZIP</Regex> <Url>http://mark0.net/soft-trid-e.html</Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Universal Extractor App</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Universal Extractor App\triddefs.zip</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-11-13T05:39:30.5103115</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>TrID Definition File</Name> </ApplicationJob> </Jobs> UPX <?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="ae3618e1-8bd8-4e17-a136-cdfeb40dada1"> <SourceTemplate><![CDATA[<?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 /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.putfileexentsionhere)) OR (http[^"']+[^"']+(\.putfileextensionhere)) </Regex> <Url><placeholder name="Download URL" value="http://upx.sourceforge.net/" /></Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <Category><placeholder name="Category" value="Universal Extractor App" /></Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" value="UPX" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileSize>348018</LastFileSize> <LastFileDate>2010-11-13T05:39:24.7979847</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 /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %d in ('dir "\uniextract.exe" /b /s') do set dir=%~pdbin & {7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y & for /F "tokens=*" %c in ('dir "{p2}{appname:regexreplace: \(.*\):}" /ad /b') do set dir2="{p2}{appname:regexreplace: \(.*\):}"\%c & xcopy /C /H /I /Y "%dir2%"\upx.exe "%dir%" & rd /s /q "{p2}{appname:regexreplace: \(.*\):}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.zip))</Regex> <Url>http://upx.sourceforge.net/</Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Universal Extractor App</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Universal Extractor App\upx307w.zip</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-11-13T05:39:24.7979847</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>http://upx.sourceforge.net/{download}</FixedDownloadUrl> <Name>UPX</Name> </ApplicationJob> </Jobs> WinRar <?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="76efa29d-323d-41aa-9d59-4f7f586ac3ec"> <SourceTemplate><![CDATA[<?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 /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.putfileexentsionhere)) OR (http[^"']+[^"']+(\.putfileextensionhere)) </Regex> <Url><placeholder name="Download URL" value="http://www.rarlab.com/download.htm" /></Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <Category><placeholder name="Category" value="Universal Extractor App" /></Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" value="WinRAR" /></Name> </ApplicationJob> </Jobs>]]></SourceTemplate> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileSize>1364522</LastFileSize> <LastFileDate>2010-11-13T05:39:33.5504854</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 /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %d in ('dir "\uniextract.exe" /b /s') do set dir=%~pdbin & {7z} x "{file}" -o"{p2}{appname:regexreplace: \(.*\):}" -y & xcopy /C /H /I /Y {p2}"{appname:regexreplace: \(.*\):}"\unrar.exe "%dir%" & rd /s /q "{p2}{appname:regexreplace: \(.*\):}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>["']([^"']+[^"']+(\.exe))</Regex> <Url>http://www.rarlab.com/download.htm</Url> <Name>download</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*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Universal Extractor App</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Software\Programs\Universal Extractor App\wrar393.exe</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2010-11-13T05:39:33.5504854</LastUpdated> <TargetPath>{s1}{category}\</TargetPath> <FixedDownloadUrl>http://www.rarlab.com{download}</FixedDownloadUrl> <Name>WinRAR</Name> </ApplicationJob> </Jobs>
  23. It isn't really that much extra tweaking required though to get it like that is it? You already have an online database, you just need to have a select group of people (or if you really want you can do it yourself) to make sure that the instructions are 'good' for that app. Upon loading Ketarin for the first time you'd just have to ask a few questions Simple or Power User mode Power user mode is just Ketarin as we know it now and Simple mode is when you get the choice to basically just be given the approved online database list of options, you checkbox the ones you want to keep up to date and click "Install/Update all" and away you go. Install Instructions For install instruction just upon loading Ketarin ask the user what he wants the install path to be for all his apps, which you automatically make into a global variable for them which is in the install instructions of all the 'approved' database apps. If you want it to keep a local copy that could be a checkbox. Just a few questions upon loading Ketarin would essentially achieve the same result. Looking at it now it is much more a cosmetic change and two extra questions asked on loading Ketarin. Actually you could in general just get Ketarin to, even for power users, predefine a base install path for all apps that is put into a global app to make sharing apps easier. Same with the download to path. So if I my {installpath} is {root}Programs\{category}\ and someone elses is {root}Programs\{appname}\ then we can share apps and they both go to the same place. We can of course set a different one if we want it but it isn't a bad default to have. These are just some defaults Ketarin could ask to define upon loading to make interoperability much simpler for all. But to get Ketarin from where it is now to Ninite is quite minimal.
  24. Most probably because I just shortened it from prototype template. It was a new feature in one of the beta builds of Ketarin. I gave you all the relevant information though, so long as your template has a GUID and placeholders Ketarin will treat it as a Prototype Template. The relevant thread is in the General Discussion area on the first page, one of hte 1.5 beta build threads.
×
×
  • 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.