Jump to content
Ketarin forum


  • Content Count

  • Joined

  • Last visited

Everything posted by shawn

  1. 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?
  2. Yes. Go to File, Settings and Add a Custom column. In the Name field use Notes. In the Value field use {property:UserNotes}.
  3. 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.
  4. 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.
  5. 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}" )
  6. we don't normally change titles here. good solution using the replace function.
  7. 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:.
  8. 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.
  9. 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.
  10. Sorry @jokerfool for the long delay in response. sometimes i dont get notifications from the forum. Is it downloading to a slow drive or network location? I swapped out my Ketarin storage drive to an SSD and it made a huge improvement in my ability to bump up the simultaneous downloads. Are you writing to an external log or update list file? You could be getting a race condition from simultaneous downloads both trying to write to the log at the same time.
  11. They changed their downloads to use AWS via Github now. Download pattern is now: https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v{version}/npp.{version}.Installer.exe https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v{version}/npp.{version}.Installer.x64.exe
  12. what is your simultaneous download setting?
  13. Here's a working template for the x86 version (the only one that reliably supports TextFX): <?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="071dc699-15b5-4a76-8296-d1d9b91d2449"> <Category>Editors</Category> <WebsiteUrl>https://notepad-plus-plus.org/</WebsiteUrl> <UserAgent>wget</UserAgent> <UserNotes /> <LastFileSize>3982472</LastFileSize> <LastFileDate>2019-11-03T11:08:19.2683762</LastFileDate> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate>2009-03-29T18:49:42</DownloadDate> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator>version</VariableChangeIndicator> <HashVariable /> <HashType>None</HashType> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <SetupInstructions /> <Variables> <item> <key> <string>version</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>&gt;v([\d\.]+)&lt;</Regex> <Url>https://img.shields.io/github/v/release/notepad-plus-plus/notepad-plus-plus.svg</Url> <Name>version</Name> </UrlVariable> </value> </item> <item> <key> <string>sdownload</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>http://download.notepad-plus-plus.org/repository/{version:split:.:0}.x/{version}/npp.{version}.Installer.x64.exe</TextualContent> <Name>sdownload</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand /> <ExecutePreCommand /> <ExecuteCommandType>Batch</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <SourceType>FixedUrl</SourceType> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2019-11-03T11:08:19.2683762</LastUpdated> <TargetPath>..\{category}\{appname:regexreplace:([\s\t\r\n\-\&amp;]+):_}-{version}.{url:ext}</TargetPath> <FixedDownloadUrl>{sdownload}</FixedDownloadUrl> <Name>Notepad++ (x86)</Name> </ApplicationJob> </Jobs>
  14. @jokerfool can you at least pin down whether they're FH or standard jobs? Does it happen every time? Can you select 5 or 10 jobs at a time and see if you can recreate the error to track down whether it's the same jobs? If you can get it to repeat on one or more jobs, please post the job XML here.
  15. With Cloudflare you're pretty well stuck unless you can find a consistent pattern for the download files since the downloads themselves are rarely behind Cloudflare. In this case there is a pattern so you're good. You can get the current version number from this using this pattern: >v([^'"]+)</ You can then construct the download URL by inserting the version numbers in these patterns: http://download.notepad-plus-plus.org/repository/{version:split:.:0}.x/{version}/npp.{version}.Installer.x64.exe http://download.notepad-plus-plus.org/repository/{version:split:.:0}.x/{version}/npp.{version}.Installer.exe The download URL does not support HTTPS, but will download once you've injected the version numbers (and major version number in the first field).
  16. Added as a new feature request now. https://ketarin.userecho.com/communities/1/topics/116-add-option-to-disable-errors-page-after-updates-complete-with-errors
  17. Bug report: Since I added new variables to my general structure I wanted to update my default app template. I clicked 'add new application'. I clicked on 'variables'. I added several variables and set most of them to regex, since that's what I almost always use for those, and two as text. I clicked OK then went to 'advanced settings' and attempted to assign version as the change indicator. It wasn't listed. I had set version as a regex variable. I revisited the variables page and recreated it, noticing that all the regex variables I created were lost. All the text ones were still there. I had not assigned a URL to the regex variables, but IMHO it should never delete variables on me. Worst case scenario it should nag/warn me or provide an idiot prompt ("are you sure you don't want to add a URL for this variable?") and then ignore the variable during processing or automatically disable it when I save it.
  18. Not really. I've been trying to trim down the process in order to make a simple test case and I might have found a way around it. The issue is that *new* Textual variables are not being parsed correctly when using the ReplaceAllInString syntax: $sdownload = $app.variables.ReplaceAllInString("{sdownload}", $sfiletime, $sfilename, $true); I'm currently working around this by testing the type of variable each time and only using ReplaceAllInString for non-Textual variables, and using TextualContent for the Textual variables that do not have curly braces in them. If it has a curly brace I'm pushing it through ReplaceAllInString anyway for safety, but for new Textual variables always returns an empty string at that point. I haven't added many new apps recently so can't say whether this is affecting non-Textual variables. I don't think it is. Unfortunately, this TextualContent-only parsing means that embedded variables are not processed. Thus if I set myvar to "This is version {version}" then {myvar} is not being parsed to "This is version 1.0" but instead appears literally as "This is version {version}".
  19. Hi, @aldric87, You can find the current beta attached to the first post in the current thread.
  20. I tried exporting & importing and it's still not seeing the new variable.
  21. Bug: Using latest 1.8.11 beta posted June 15 and seeing strange behavior. It looks like new variables may not be parsed the same way as variables that already exist for a job. I created a new variable on a job, "svendor". I populated it with a text value (Nirsoft). I use the following PS code in after update to populate a field in a database: $svendor = $app.variables.ReplaceAllInString("{svendor}", $sfiletime, $sfilename, $true); if($svendor -eq "{svendor}"){$svendor = '';} echo 'svendor:'$svendor; Unfortunately, svendor always returns empty. 2019-09-21 11:59:38: PowerShell: svendor: 2019-09-21 11:59:38: PowerShell: 2019-09-21 11:59:38: PowerShell: swebsite: 2019-09-21 11:59:38: PowerShell: https://www.nirsoft.net/utils/browsing_history_view.html I changed svendor in the first param of ReplaceAllInString to swebsite (another variable I use in all my jobs) and it parsed it correctly. 2019-09-21 11:59:03: PowerShell: svendor: 2019-09-21 11:59:03: PowerShell: https://www.nirsoft.net/utils/browsing_history_view.html 2019-09-21 11:59:03: PowerShell: swebsite: 2019-09-21 11:59:03: PowerShell: https://www.nirsoft.net/utils/browsing_history_view.html I've closed and reopened Ketarin and deleted and recreated the variable. I've tried a different variable name. Nothing is getting this value to populate into the powershell script. I've tried this on three jobs now and each is failing. Two are based on a template and I thought that might be the problem, but I tried with one that isn't based on a template and it didn't work either. Any ideas?
  22. The user variables are listed within the left side column. There are some special internal variables, and other values that aren't variables but are usable in your user variables and scripts such as internal values and functions. The functions can be found here and a method for parsing for internal values can be found here.
  23. I was experiencing a problem with the new global "On update failed" command. I'm leaving this comment to help others that might experience the same issue. I'm using it to log issues with apps and record as much about the event as possible. It was working pretty well most of the time, but randomly raised a file access error to the text file I was logging to. EVEN WITH error handling it still raised an error and locked up Ketarin at that point during a deadlock on the log file. It only erred when parallel downloads > 1. If I reduced it to 1 then I had no problems. I switched out the code from using Add-Content to piping to Out-File -Append. That works fine. The revised code I'm using is below. #### Append current log details Try{ ( "`nERROR:`t$($scategory)`t$($sslug)`t$($sname)`t$($sversion)" | Out-File Updates.txt -Append ) } Catch{ echo 'Can not write to Updates.txt'; echo "`nERROR:`t$($scategory)`t$($sslug)`t$($sname)`t$($sversion)"; } #### With the Out-File -Append method I am able to hike parallel downloads back up to 4 without problems. Still hoping for a more descriptive error handler so I can record much the same text that appears in the popup directly to the log. Also, will there be an option to disable the post-check-for-updates error popup? Thanks, @floele!
  24. Is there a way of trapping the specific error message for logging? I'd like to completely eliminate my reliance on the post-update-cycle popup.
  • 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.