Jump to content
Ketarin forum


  • Content Count

  • Joined

  • Last visited

Everything posted by shawn

  1. 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.
  2. The easy way is to use the multireplace function instead of the regexreplace function. {appname:multireplace:,:\::}
  3. 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.
  4. 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).
  5. 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.
  6. 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.
  7. You can also prevent the BAK files being created by disabling the option at Settings, General, 'Automatically create database backups.'
  8. You can add a feature request to have search opened 24/7 here.
  9. awesome! thanks, @floele. testing it now.
  10. awesome! Thanks, @floele
  11. 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.
  12. 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?
  13. 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
  14. 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.
  15. What have you tried? How are you creating your random variable now? Does your random variable need to be unique a la GUID, or is something like the current timestamp {time} sufficient, or does it need to meet another specific format?
  16. If you don't have a physical file to compare to and 'check for updates only' is enabled then it will check the size, last modified and e-tag against the record data from the last downloaded file. It will not *update* the information it compares against unless it performs a download. There is a way to work around this and update the stored reference information if you want to manage the downloads externally or don't want to actually download the files at all. This is done by returning exit code 3 in the Before Update command. This is ridiculously easy - you just have to add "exit 3" to the end of the script 'execute the following command before downloading' on the Commands tab. If you're using this to monitor something and want to automate it externally you can use this script to push the new file information to a file, send an email, or anything else you can do with the command line or powershell. Just make sure "exit 3" is the last line.
  17. I don't often use FTP URLs, but as far as I can recall, they've always worked for me since 1.8.6. I switched all the ones I had that used FTP to an HTTPS URL though, so don't have a working one to compare with right now. Anyway, I'm adding NcFTP. It uses an FTP URL (surprised?). The download URL includes spaces: ftp://ftp.ncftp.com/ncftp/binaries/Setup NcFTP 3.2.6.msi ftp://ftp.ncftp.com/ncftp/binaries/Setup NcFTP 3.2.6.msi Unfortunately, I get the following error every time: NcFTP The format of the URI "" cannot be determined. (ftp://ftp.ncftp.com/ncftp/binaries/Setup NcFTP 3.2.6.msi) I've tried replacing the spaces with "%20" and "+". Both return a different error (550). I've tried using a different FTP download from the server: NcFTP The format of the URI "" cannot be determined. (ftp://ftp.ncftp.com/ncftpd/2.8.7/ncftpd-2.8.7-aix5.3.0-export.tar.gz) Is it the FTP server that's causing the problem or am I missing something else that's going to be obvious once I investigate?
  18. Yes. Go to File, Settings and Add a Custom column. In the Name field use Notes. In the Value field use {property:UserNotes}.
  19. Yes, two ways I can think of. Option 1) Edit the XML: it might be a bit of a challenge if you're not comfortable with XML. The easy way is to find+replace the command in the raw XML. Select-all in the main Ketarin interface then copy (CTRL+C). Open Notepad++ (or your favorite text editor with accurate find & replace support). Find & replace the previous command(s) with the new one. Select all, copy, paste back into Ketarin. Option 2) Use a database editor to assign the ExecuteCommand value to the new command. Use DB4S to open the jobs.db file. "Browse Data" for the jobs table. Either paste the command into the ExecuteCommand column for each of your maps or use SQL to change it on several at once. If you're comfortable with using an SQL command you can use one of these, but I recommend you backup your jobs.db file first. This one applies the new command to EVERY profile you have: UPDATE jobs SET ExecuteCommand = '"{file}" /S /D="%LocalAppData%\Activision\CoDWaW\mods"'; This one applies the new command to ONLY the profiles in the category "Mods": UPDATE jobs SET ExecuteCommand = '"{file}" /S /D="%LocalAppData%\Activision\CoDWaW\mods"' WHERE Category='Mods'; Good luck.
  20. You could also do this from the command line without having to open DB4S. Download sqlite3.exe (it's in the sqlite-tools-win32 package) and put it in the same folder as your Ketarin database (or in your path). Create a batch file next to your Ketarin database and put this in it: sqlite3 test.db "UPDATE jobs SET PreviousRelativeLocation = replace(PreviousRelativeLocation,'..\repository\','\\CHANGE_ME_FOR_NEW_PATH\');" Be sure to replace '..\repository\' and '\\CHANGE_ME_FOR_NEW_PATH\' to the correct original and new paths. And, this is important, be sure to quote the strings in single-quotes, NOT double-quotes. sqlite3 is a stickler for true SQL syntax, so only allows single-quotes for wrapping string literals.
  21. I don't play COD, so this is based only on what you said. Since the maps are located in the User folder you have three options: 1) You can use the "/D" switch to set the installation directory: "{file}" /S /D="%LocalAppData%\Activision\CoDWaW\mods" 2) You can copy the EXE file there and run it from that folder: copy /y "{file}" "%LocalAppData%\Activision\CoDWaW\mods\" "%LocalAppData%\Activision\CoDWaW\mods\{file:filename}" /S 3) If you want to install it for all users on a device you can run it from the download folder and copy the files into each mods folder (assumes that the download folder has ONLY the installation file and nothing else in it): "{file}" /S for /d %%u in (c:\users\*) do ( robocopy "{file:directory}" "%%u\AppData\Local\Activision\CoDWaW\mods" /xf "{file:filename}" )
  22. we don't normally change titles here. good solution using the replace function.
  23. Welcome, Peter! There is some great documentation for Ketarin on the Wiki. What you're looking for is either {root} or {startuppath}, depending on how you want to write your scripts. The final strings would be something like "{root}\ketarin\..\InstallDir1\Installer1.exe" and "{startuppath}\..\InstallDir2\Installer2.msi", or, for msiexec: msiexec /q /nr "{startuppath}\..\InstallDir2\Installer2.msi" HOWEVER, you may find that a better solution (especially if you're creating a portable drive) is to remap it to the drive letter it's expecting. Pick a high drive letter and you can prep the drive with powershell using something like this: Get-Partition -DriveLetter ($pwd.path.substring(0,1)) | Set-Partition -NewDriveLetter K Run this (elevated) as part of your initial startup routine and you can be a lot more lenient with the drive letters using K: as the Ketarin drive. Of course, don't run this from a script on C:.
  24. While not necessarily a bug, it is a compatibility issue and it's been bothering me for a while. The correct format to wrap a URL is with angle brackets or spaces (per RFC 2396). If there is a likelihood that a URL will wrap, then angle brackets are preferred. Please change both the popup and variable formats to use angle brackets instead. Why? Regular expression matching for URLs assumes that parentheses are part of the URL. This means that when I copy and paste it into Notepad++ or almost any other program that can parse the URLs, it will treat the trailing ")" as part of the URL when generating clickable links. If it's a ">" instead, however, the URL isn't malformed.
  25. It looks like this is a problem with that specific site. The content returned in {download} is the actual file so parsing for http[^']*zip isn't going to get you anywhere. Unfortunately, since that request is being POSTed to the server Ketarin can't (currently) perform the download natively. You can shell use the pre-download script to download it using an external system like wget, curl, powershell, or any other utility that has the ability to POST and download.
  • 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.