Jump to content
Ketarin forum

shawn

Moderators
  • Posts

    1,181
  • Joined

  • Last visited

Posts posted by shawn

  1. In Internet Explorer on both machines (NOT Edge), go to Menu, Tools, Internet Options, Security, Trusted Sites, Sites. This list probably includes the \\syno device on one of your devices but not the other.

     

    On this list REMOVE the "require server verification" checkbox, then add \\syno\ to your list. Close, OK, reboot.

     

    Try the registry import via Ketarin again.

  2. This is an excellent time to remind everyone that file download services like FileHippo and SourceForge are pretty big baskets to put all your eggs into. I personally always attempt to get as close to the originating source as I possibly can, so as to avoid bulk issues should something like this happen -- whether it be an outage at FileHippo or a slight coding change that results in dozens of apps no longer working until you can debug and correct all the app profiles.

     

    I also use debugging within Ketarin to troubleshoot errant app profiles. For example, I use the following command in global pre-update:

    if "{version}"=="" echo ERROR /// {category:replace:&:^&} /// {appname:replace:&:^&} >> "Updates.txt"
    

    This ensures that I have the ability to review my update log (Updates.txt) for errors instead of manually checking for signals from Ketarin after each run.

  3. This is the problem:

    settings = \\SYNO\backup\Settings

    Looks like you've installed Win10 recently on this device. You most likely didn't recreate the mapped shares with proper rights after Win10 installation. Win10 dumps administrative shares, so you have to re-add them if you're running Ketarin elevated. If you're running Ketarin as a service you will need to map the drive during the installation process. If you're not running Ketarin elevated then I suspect a behavioral difference in Regedit.

     

    In any case, instead of relying on an external file, why not use REG.EXE instead of regedit.exe and just add the individual values directly?

    reg /add "HKLM\SOFTWARE\Manifesto" /v "Manifesto" /t REG_DWORD /d 1 /f
    

    This will allow you to avoid system/setting path problems completely.

  4. From Adobe:

     

    To improve security for all Flash Player users, we will be decommissioning the following distribution pages and download links:

    Starting January 22nd, 2016: https://www.adobe.com/products/flashplayer/distribution3.html

    Starting June 15th, 2016: https://www.adobe.com/products/flashplayer/distribution4.html

    The replacement for these pages will be live on December 8th, 2015: https://www.adobe.com/products/players/flash-player-distribution.html
    To access this page, you will need a valid Adobe ID and have a current license. If your license has expired, you can re-apply starting on December 8th, 2015 by visiting the Adobe Flash Player Distribution page. When applying you will be required to create an Adobe ID if you do not have one. The rest of the application process remains unchanged.

     

    This means you'll need to use the Ketarin POST methods to authenticate your Adobe ID starting next year in order to access versioned Flash distribution files. :(

     

    When the time comes, I'll post a modified Flash app profile demonstrating how to access thru the new authentication layer.

  5. Adobe removed the nulls from their site and things have been working reliably for a week or so.

     

    The issue was that when Ketarin downloaded the http://www.adobe.com/software/flash/about/ page it was only seeing about 30% of the content in the 'content' section of the Ketarin variable window. Everything below a malformed section of their site (where about 200 NUL characters were inserted into the output) was not visible.

     

    I'm afraid I didn't keep any copies of the original page. However, I'd still like the ability to bypass this issue if possible. If you can strip the NUL characters out of HTML content that's being parsed for variable values, that would ensure that Ketarin isn't easily defeated by webmasters that don't want automation to be used against their sites. At this point, all they have to do is add a few NUL characters right below the BODY tag and it'll prevent Ketarin from being able to see anything beyond that. :/

  6. Is anyone else having Adobe website issues recently? Regardless of what UA I use in Ketarin I'm getting a standard form response with just the page structure. This is happening on the Flash About page, Flash FPDist page, Adobe Reader and DC. The same URLs load correctly outside of Ketarin.

  7. Custom columns can't be shared in an xml file, so you'll have to do that part manually. File, settings, general, "Add", then in column name "Last" and in column value "{property:WebsiteUrl}" (no quotes), then click OK, OK. If the column doesn't display immediately, right-click over one of the column headers and check the box for "Last".

     

    Here's a working xml app profile:

     

    <?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="64411570-bd2a-4601-b44a-a57478746106">
        <Category>Tools</Category>
        <WebsiteUrl>15.08</WebsiteUrl>
        <UserAgent>pycurl/7.18.2</UserAgent>
        <UserNotes />
        <LastFileSize>1360355</LastFileSize>
        <LastFileDate>2015-10-18T03:17:54-07:00</LastFileDate>
        <IgnoreFileInformation>false</IgnoreFileInformation>
        <DownloadBeta>Default</DownloadBeta>
        <DownloadDate>2008-11-17T20:43:12</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>files/7-Zip/([\d\.]+)/</Regex>
                <Url>http://sourceforge.net/projects/sevenzip/files/7-Zip/</Url>
                <Name>version</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>dl</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex>http\:\/\/downloads\.sourceforge\.net\/sevenzip\/7z[\d+.]+\-x64.msi</Regex>
                <Url>http://7-zip.org/download.html</Url>
                <TextualContent>http://downloads.sourceforge.net/sevenzip/7z{version:replace:.:}-x64.exe</TextualContent>
                <Name>dl</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>snotes</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex />
                <TextualContent />
                <Name>snotes</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>schangelog</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex />
                <TextualContent>http://www.7-zip.org/history.txt</TextualContent>
                <Name>schangelog</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>swebsite</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex />
                <TextualContent>http://sourceforge.net/projects/sevenzip/files/7-Zip/</TextualContent>
                <Name>swebsite</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>spc</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex />
                <TextualContent>7zip</TextualContent>
                <Name>spc</Name>
              </UrlVariable>
            </value>
          </item>
        </Variables>
        <ExecuteCommand />
        <ExecutePreCommand>/* This obtains the base filename from the previous download */
    FileInfo fi = new FileInfo(app.PreviousLocation);
    string filename = System.IO.Path.GetFileNameWithoutExtension(fi.Name);
    /* This removes the App name which has been munged in 'save as' */
    string appname = System.Text.RegularExpressions.Regex.Replace(app.Name, "[\\s\\t\\r\\n\\-\\\\&\\/]+", "_");
    filename = filename.Replace(appname, "");
     
    /* This removes the separating dash */
    string oldversion = filename.Substring(1);
     
    /* This stores the "old" version (based on last download) into the Website field */
    app.WebsiteUrl = oldversion;</ExecutePreCommand>
        <ExecuteCommandType>Batch</ExecuteCommandType>
        <ExecutePreCommandType>CS</ExecutePreCommandType>
        <SourceType>FixedUrl</SourceType>
        <PreviousLocation>K:\_Ketarin\Ketarin\..\Tools\7-Zip_x64-15.09.exe</PreviousLocation>
        <DeletePreviousFile>true</DeletePreviousFile>
        <Enabled>true</Enabled>
        <FileHippoId />
        <LastUpdated>2015-10-29T16:57:12.0456102-07:00</LastUpdated>
        <TargetPath>..\{category}\{appname:regexreplace:([\s\t\r\n\\&\/]+):_}-{version}.{url:ext}</TargetPath>
        <FixedDownloadUrl>{dl}</FixedDownloadUrl>
        <Name>7-Zip x64</Name>
      </ApplicationJob>
    </Jobs>

     

    What I was saying though is that if you just copy the code I shared into the File, Settings, Commands, "before updating an application" box, this will immediately apply to all the apps.

  8. There might be a way to edit the variables directly, but I don't have time to test it right now. There's a way if you use one of the native properties, though. You'll need to use File, Settings to add the following as a new column:

     

    Last

    {property:WebsiteUrl}

    Turn on "Last" by right-clicking the headers to ensure it's checked and visible.

     

    Now in the PRE-update command box for your app use:

    /* This obtains the base filename from the previous download */
    FileInfo fi = new FileInfo(app.PreviousLocation);
    string filename = System.IO.Path.GetFileNameWithoutExtension(fi.Name);
    
    /* This removes the App name */
    filename = filename.Replace(app.Name, "");
     
    /* This removes the separating dash */
    string oldversion = filename.Substring(1);
     
    /* This stores the "old" version (based on last download) into the Website field */
    app.WebsiteUrl = oldversion;

    This will REPLACE whatever is currently in the "Website" field on the Information tab of your app, but it is displayable as a column this way, and can be easily manipulated from C#.

     

    This method also uses the exposed information from the "previous" download and the app name to massage the data so as long as you're using something like the following pattern in your "save to file" field it should contain ONLY the version:

    ..\{category}\{appname}-{version:regexreplace:(\s):-}.{url:ext}

    Since the pre-download code only runs when a new update is preparing to download, this SHOULD preserve the correct "old" version in the Website field as long as you don't force an update. Forcing an update would necessarily replace the "old" version with the current version if the versions don't change, since it depends only on the last filename, and not on the actual version number of a previous version. "Force" is like that. :)

     

    If you perform any other save-as formatting in the "save to file" box, you'll need to replicate those within the C# "filename" variable before you capture the old version. For example, if you're replacing funky characters with _ as I do ( {appname:regexreplace:([\s\t\r\n\-\\&\/]+):_} ), then you'll also have to perform the same manipulations against the App name before performing the replacement:

    /* This obtains the base filename from the previous download */
    FileInfo fi = new FileInfo(app.PreviousLocation);
    string filename = System.IO.Path.GetFileNameWithoutExtension(fi.Name);
    
    /* This removes the App name which has been munged in 'save as' */
    string appname = System.Text.RegularExpressions.Regex.Replace(app.Name, "[\\s\\t\\r\\n\\-\\\\&\\/]+", "_");
    filename = filename.Replace(appname, "");
     
    /* This removes the separating dash */
    string oldversion = filename.Substring(1);
     
    /* This stores the "old" version (based on last download) into the Website field */
    app.WebsiteUrl = oldversion;

    Even better, as long as you use consistent structure and formatting across your "save as" fields, since this consumes a native property instead of a custom property, you can even use the global pre-update command box instead of individual app pre-update commands in order to make it easier on yourself.

  9. If you only want one version, enable "always delete previously downloaded file" option from the bottom of the "advanced settings" page and ensure that the "use the following variable as indicator for changes" represents an appropriate value (such as version). If you just want to display the old version number then that's a problem. Either {VariableChangeIndicatorLastContent} or {property:VariableChangeIndicatorLastContent} *should* work, but they don't. I guess theoretically you could write it out to a file in post-update and then read it back in during pre-update, but that's going to be unpredictable.

  10. It sounds like what you're actually trying to do is create an offline archive of multiple versions, and your method of doing so is to test the filename and version number.

     

    Don't do that.

     

    The better option is to simply UNCHECK the "always delete previously downloaded file" option from the bottom of the "advanced settings" page. If you use an output filename such as this you'll be able to have versioned copies stored for each release:

     

    D:\software\archive\{url:basefile}-{version}.{url:ext}
×
×
  • 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.