Jump to content
Ketarin forum

shawn

Moderators
  • Posts

    1,179
  • Joined

  • Last visited

Everything posted by shawn

  1. Removing "-iftw" for v7 works for the 32-bit version, but the v7 x64 version doesn't. If anyone has any ideas for workarounds let me know.
  2. I found a workaround for the full offline installer packages using static URLs without dependence on client-side javascript. This method uses the automatic update URLs from jusched.exe, so should be permanently stable since it's unlikely they can rework how that operates without actually releasing a new major version, and since it uses these static URLs it can work to get the latest Java 7 without special licensing. This method consumes the new URLs, extracting data from a couple different XML files, and requires a little content munging. It does work though. First, start here. (For Java 7 you can start here.) Parse the resulting XML for the first <url> value. The first <url> entry is the current version. Now request that URL and collect it's <url> value. This is almost the final URL. If you want you can get the version number from the <version> value, too. Now we have to munge it, or we'll get the auto-update version which is a web-based installer and includes crapware. replace "-au.exe" with "-i586.exe" for the 32-bit version and "-x64.exe" for the 64-bit version. That's your download URL. Here's an XML app profile for Java (x86): <?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>https://www.java.com/en/</WebsiteUrl> <UserAgent>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36</UserAgent> <UserNotes /> <IgnoreFileInformation>false</IgnoreFileInformation> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator>version</VariableChangeIndicator> <HashVariable /> <HashType>None</HashType> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <Variables> <item> <key> <string>versionstub</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>&lt;version&gt;1.([^&lt;&gt;-]+)</Regex> <Url>{versionurl}</Url> <Name>versionstub</Name> </UrlVariable> </value> </item> <item> <key> <string>version</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>{versionstub:regexreplace:\.0_:u}</TextualContent> <Name>version</Name> </UrlVariable> </value> </item> <item> <key> <string>versionurl</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>&lt;url&gt;([^&lt;&gt;]+)&lt;/url&gt;</Regex> <Url>https://javadl-esd-secure.oracle.com/update/1.8.0/map-m-1.8.0.xml</Url> <Name>versionurl</Name> </UrlVariable> </value> </item> <item> <key> <string>sdownloadstub</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>&lt;url&gt;([^&lt;&gt;]+)&lt;/url&gt;</Regex> <Url>{versionurl}</Url> <TextualContent /> <Name>sdownloadstub</Name> </UrlVariable> </value> </item> <item> <key> <string>sdownload</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>{sdownloadstub:replace:-au.exe:-i586.exe}</TextualContent> <Name>sdownload</Name> </UrlVariable> </value> </item> </Variables> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FixedDownloadUrl>{sdownload}</FixedDownloadUrl> <Name>Java (x86)</Name> </ApplicationJob> </Jobs>
  3. weird - it's not caching the contents. when i have some time i'll look for my backup that used this process. it has been a couple years so it's possible the underlying code has changed.
  4. Welcome aboard, @johnson I just noticed this myself, and it's especially annoying since the new security update for Java was released today. I'm getting really sick of the switch to a JS-only web. I haven't had much time to investigate, but all I'm finding are the links through the "manual" page. They do continue to work, so distribution is fine with those but detection and initial download is woefully flawed. If you find another way please share.
  5. Since this uses a session to ensure that you've agreed to their terms you might find that using a different URL will be more effective. For example, downloading one of their nightly builds does not, so you can use this link to always download the latest v14 version. You should compare the signatures on the two files to see if they're the same. I suspect they are since there isn't a changelog and no indication of any SEMVER builds for any of the earlier releases either.
  6. Since Sophos abandoned it you can safely assume that the resulting content from those links is never going to be updated even if it requires new unique key and session validation for each download. Just download them once and don't worry about it. If you need to provide subsequent downloads you can upload them to your own repo and share from there. Alternatively, you can donate to Xanasoft (so he can properly sign his binaries) and then get them easily from Github here.
  7. In order to provide feedback for a specific problem it's always best to share an app XML profile so we can see what you're doing. Select it within the Ketarin list and press CTRL+C to copy it and paste it in a `code` block here. The problem you describe is one I've personally experienced, though. The fix is obvious once you realize it: store the contents of the entire page in a single variable and use variable parsing functions to extract the data you need from the new variable. You can use a regex type variable with ".+" to collect the entire page contents. Use variables of type textual to parse subsequent variables.
  8. shawn

    Weird error

    Can you please share the XML? Select the item in Ketarin and copy (CTRL+C), then paste it here in a code block.
  9. I was working on something else and found a link to the NSIS switch information page that might be useful for you. Notably, the /D switch must be the last parameter and NOT include quotes even if there are spaces in the path. The correct command then is: "{file}" /S /D=%LocalAppData%\Activision\CoDWaW\mods I would be concerned with this since it means that ampersands (&) in the username could result in executing files on the client side in the context of Ketarin. For example, a username like 'Bob & Sue" would translate to: "{file}" /S /D=c:\users\Bob & Sue\AppData\Local\Activision\CoDWaW\mods The ampersand means that this is actually two commands: "{file}" /S /D=c:\users\Bob Sue\AppData\Local\Activision\CoDWaW\mods
  10. They've changed the zeranoe Builds page several times over the years. I gave up parsing it long ago. I always parse the version number from ffmpeg.org here: https://ffmpeg.org/download.html#releases While that is the current "release" from the FFmpeg project, there is a small window where it might not be the actual release version on the zeranoe site (unlikely though since it's a triggered build). You could also get the version number directly from the Git repo here: https://git.ffmpeg.org/gitweb/ffmpeg.git/blob_plain/HEAD:/RELEASE Then you can use the latest-static download link from zeranoe: https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-latest-win64-static.zip https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-latest-win32-static.zip If you wanted to solve the problem you actually described instead of work around the JS-built website problem, you'd need to set at least three variables. One to download the initial site and cache the URL to the app*.js file. Then parse that for the git.ffmpeg.org call to collect the release versions, then parse the latest version from the tags. It's a lot of work for a single value though and fraught with potential issues should the JS file name pattern change or the appJS content structure change.
  11. The easy way is to use the multireplace function instead of the regexreplace function. {appname:multireplace:,:\::}
  12. It's entirely possible that they're not all using the same engine or have disabled the Silent switch. Have you tried the ones that don't work in automation from a command line to see if it's something with the download or permissions? LocalAppData is also a user-specific folder so, if you have Ketarin running elevated, they may not resolve.
  13. Yes, and it's actually quite easy. You can use either the Setup instructions or the after-updating script to perform your installation. The general process is: exit program install update start program How you exit the program depends on the program. Some you can trigger from outside so it can exit gracefully, others you'll end up using taskkill or pskill. This can be accomplished with taskkill using "taskkill.exe /IM excel.exe" where excel.exe is the program you need to kill. To start the program again just execute it (usually you'll want to use the full path).
  14. The sorting for variables is actually the result of a feature request. There's no functional difference. Variables that are not referenced still aren't processed and variables that depend on other variables are processed in the order that they are dependent. This was the behavior prior as well, the only change is that the variables are now sorted alphabetically.
  15. The upgrade to 1.8.11 caused havoc with my replace operations in the output filename (slashes and ampersands), too. Fixing 700+ profiles manually proved to be more than I was willing to do, so I ended up using DB4S end repairing all the replace commands using SQL. After that everything worked correctly.
  16. You can also prevent the BAK files being created by disabling the option at Settings, General, 'Automatically create database backups.'
  17. You can add a feature request to have search opened 24/7 here.
  18. awesome! thanks, @floele. testing it now.
  19. Thank you, @floele! You inspired me to dig through the app again and I discovered there was an unused variable that was opening a defective URL and *that* is what was triggering the error. Once I removed that variable it's working fine. Sigh.
  20. This might be by design, but I hope not. Using "exit 3" in the pre-download command doesn't run post-update command, though "exit 3" means: Skip downloading, but update the "last updated" date of the application and mark as "update downloaded". Allows you to use an external download application to download the file, but still mark it as properly updated in Ketarin. I just noticed that using "exit 3" hasn't been running my post-update command, so it hasn't been updating my external logging system. I really need it to be able to use the standard post-update command so that it'll allow updates to push the results to my server. I don't want to have to maintain the post-update command in multiple locations ("global" plus in each pre-update command for those that use "exit 3"). I know it's possible to parse the post-update command from the database and inject it in the pre-update command using powershell, but I'd prefer to not have to use more than "exit 3" if possible. If necessary, I'm open to using "open 4" or any other exit code to preserve backward compatibility and offer post-update only to the new exit code. Thoughts?
  21. If you know what the filename is you want to use, just change the save-as behavior to use the filename you want. I usually use this pattern: ..\{category}\{appname:regexreplace:([\s\t\r\n\-\&]+):_}-{version}.{url:ext} Assuming that you want the filename to be "[UGX]nazi_zombie_rats v2.zip" you could use: ..\{category}\[UGX]nazi_zombie_rats v2.zip Of course, if you're already using that as the app name you could just use: ..\{category}\{appname:regexreplace:([\s\t\r\n\-\&]+):_}.zip
  22. 1) Show us the template. Anything we advise without it is only a guess. For example, it could be that the change you made was a "default", not an explicit value or part of the non-variable template structure. 2) No. The updates apply to the template as it differed from the original import, which may have used any variation in the specific template. The structure around the actual app should be modified fine, but the template reference should not. 3) No. For referential information (in case variables were in a different order originally, you changed them after the fact, or other minor edits to the specific app) the template, as it was originally created, needs to be the reference point.
×
×
  • 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.