Jump to content
Ketarin forum

shawn

Moderators
  • Posts

    1,181
  • Joined

  • Last visited

Everything posted by shawn

  1. 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
  2. 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.
  3. 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?
  4. 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.
  5. 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?
  6. Yes. Go to File, Settings and Add a Custom column. In the Name field use Notes. In the Value field use {property:UserNotes}.
  7. 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.
  8. 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.
  9. 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}" )
  10. we don't normally change titles here. good solution using the replace function.
  11. 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:.
  12. 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.
  13. 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.
  14. 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.
  15. 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
  16. what is your simultaneous download setting?
  17. 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>
  18. @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.
  19. 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).
  20. 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
  21. 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.
  22. 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}".
  23. Hi, @aldric87, You can find the current beta attached to the first post in the current thread.
  24. I tried exporting & importing and it's still not seeing the new variable.
×
×
  • 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.