Jump to content
Ketarin forum

Ambimind

Members
  • Content count

    51
  • Joined

  • Last visited

Everything posted by Ambimind

  1. Ketarin variables and their equivalents: The variables are placed into four groups according to essential character. Ketarin Powershell -------- ------------ [Native] {filesize} $app.LastFileSize {category} $app.Category {appname} $app.Name or $app {appguid} $app.Guid {file} [$file =] $app.CurrentLocation [Derived : refer to {file}] {url:ext} (Get-Item $file).Extension {url:basefile} (Get-Item $file).Basename (result: ccleaner) {root} split-path $file -Qualifier (result: C:) (PWD).drive.root (result: C:\) Job/App dir (Get-Item $file).DirectoryName (no trailing \) File.Ext (Get-Item $file).Name {startuppath} PWD (assumes no prior CD) (no trailing \) [Job specific user defined variables] {"myvar"} $app.variables."myvar".CachedContent $app.variables."myvar".TextualContent [User-defined global variables] {"myglobalvar"} $globalvars."myglobalvar".CachedContent How to make their use more convenient ? The native Ketarin syntax is very convenient. To assist in making the Powershell equivalents more so, you may do the following. At the beginning of each cammand input insert a predefined, saved snippet that looks something like this: $file = $app.CurrentLocation $fdir = (Get-Item $file).DirectoryName $fnm = (Get-Item $file).Basename $fext = (Get-Item $file).Extension $fnmext = (Get-Item $file).Name $kroot = PWD How do you know this without official documentation ? From within a Ketarin command input, set to "Powershell script", and type: $app | Select-Object * | Out-File c:\app.txt -width 400 $globalvars | Select-Object * | Out-File c:\globalvars.txt -width 400 Repeat whenever you encounter a property which refers to a sub-object, ie. {.....}. Also, don't forget "Get-Member" and "Get-Member -Force".
  2. Ambimind

    Download from 2 or more URLs

    @Sydnelson What I do atm : 1. Create separate Ketarin jobs for each version. 2. During installation run both, but ... 3. Each job checks for the windows version and architecture appropriate for the program. 4. Installation occurs only when conditions are met. In case you need to download additional files, use Powershell's wget\Invoke-WebRequest, or GNU wget, stored next to the Ketarin executable, eg. "{startuppath}\BIN\wget.exe". If you're new to Ketarin I can provide a more detailed step-by-step answer if you like?
  3. Ambimind

    Ketarin 1.8.10 beta

    @Etz What errors does Ketarin log show? Tried the script with slight modifications, to account for assumption not met by my system, without issue. Functional modifications : Finds executables in current app dir, rather than dir specified in "portable". Tested as an app\job specific script, not global. Global variable shortcuts = C:\ $PortableAppsPath = (Get-Item $app.CurrentLocation).DirectoryName $WShell = New-Object -ComObject WScript.Shell $Executables = Get-ChildItem (Get-Item $app.CurrentLocation).DirectoryName -Filter '*.exe' -Recurse if ($Executables.Count -gt 1) { $ShortCutPath = Join-Path $globalvars.'shortcuts'.CachedContent $app.Name if (-Not(Test-Path $ShortCutPath -PathType Container)) { New-Item $ShortCutPath -ItemType Directory -Force } } else { $ShortCutPath = Join-Path $globalvars.'shortcuts'.CachedContent $app.Name } foreach ($Executable in $Executables) { $ShortCut = $WShell.CreateShortcut("$ShortCutPath\$($Executable.BaseName).lnk") $Shortcut.TargetPath = $Executable.FullName $Shortcut.WorkingDirectory = (Join-Path $PortableAppsPath $App.Name) $Shortcut.IconLocation = $Executable.FullName $Shortcut.Save() }
  4. Ambimind

    Ketarin 1.8.9

    Thank you! ----- Download link : https://ketarin.org/download
  5. Ambimind

    Ketarin 1.8.9

    Yes :
  6. Ambimind

    Ketarin 1.8.9

    Thanks for the feedback. I've identified the number of download segments as cause for the difference between our results. In my original post the value is set to 1, resulting in an extended delay of 2-4 minutes - not present with segments set to 2 or more(your case). Seems to apply only to the first job run; after the file is downloaded successive job runs are not delayed in either case. I wrongly assumed failure because of this extended delay and lack of valid download indicator.
  7. Ambimind

    Ketarin 1.8.9

    Google Drive direct links not downloading, with unusual behavior Context Have written a Powershell script to get direct download URL of Google Drive stored files. The URL produced can be used in any web-browser to download the file directly, but not in Ketarin(depending on file type). To reproduce Import gdrive_test.xml into Ketarin. Update the job. Expected outcome Qualifications This behavior depends on the file-type : .zip and .mp4 files will fail, while .jpg and .doc files will download. Different files may be tested by changing the "gid" variable to a valid Google Drive file id(the included refers to a zip file). The derived url being used is logged under "====== GOOGLE DRIVE URL ======". Thanks for taking a look
  8. Wondering if this is possible? What I tried : The "$app.variables" object has the following method : void Add(string key, Ketarin.UrlVariable value) This tells me I need to create an instance of "Ketarin.UrlVariable": I try this : New-Object -TypeName Ketarin.UrlVariable Error message results : "A constructor was not found .." So I thought maybe the constructor requires some parameters: I tried to find them : ([Type]"Ketarin.UrlVariable").GetConstructors() | ForEach {$_.GetParameters()} | Select * No output in log. So does this mean we don't have access to the "Ketarin" namespace? Thx
  9. Ambimind

    Ketarin 1.8.9

    Thank you. It was a silly user(my) error, pardon me.
  10. Ambimind

    Ketarin 1.8.9

    After attempting to update to beta 4(thanks), I get the following - Ketarin does not start:
  11. Ambimind

    Ketarin 1.8.9

    Possible issue with multi-segment downloads To reproduce: 1. Set download options to : 2. Import and run attached job file : glasswire.xml Observed problem: 1. On update, Ketarine first presents the following error: 2. And then :
  12. I've attached a working job file which you can import into Ketarin(1.8.7) : File > Import. You will notice that no special settings are required to get it working. I believe Ketarin can handle simple file redirects of this kind without issue; however problems do arise when one is redirected to a website which requires running of javascript to generate the url. Please note that you must change the download directory according to your setup. Edit : On the next day the job stopped working, I've made the required changes and re-uploaded. FreeFileSync.xml
  13. Ambimind

    Ketarin 1.8.7

    Beta 3 : Impressions after a week of use : The new features are extremely useful, but they should be used sparingly. Specifically the use of url-variables-as-scripts, in custom columns : This means each job has a variable which holds a script; this variable is referenced and run to produce the value of a custom column. The script being run, in my case, compares the creation date of each file and calculates the days since update : (New-TimeSpan (GI $app.CurrentLocation).LastWriteTime (Date)).Days Issues were myriad and some intermittent : 5-10s startup times(~100 jobs) crash on start crash during update cycle unresponsive/flickering interface during update cycle app update checks timing out("connection timeout": 30) much slower over-all update cycle("parallel downloads":6) I also had a global (pre-download) script running, which added this 'script-variable' to jobs automatically(another new feature): #### ADD DATE VARIABLE IF NOT EXISTING # Parameters $varnm = "SinceUpdate" $vartp = "Textual" #StartEnd #Textual #RegularExpression # # Derived access property $varcnt = if($vartp -eq "Textual"){"TextualContent"}Else{"CachedContent"} # If it doesn't exist, then create a new one if(-Not $app.variables.$varnm){ ECHO "========== $varnm NOT FOUND ==========" $newvar = New-Object -TypeName Ketarin.UrlVariable -ArgumentList $varnm,$app.variables $newvar.VariableType = $vartp $app.variables.Add($varnm, $newvar) $app.Save() } #Set newly created variable $app.variables.$varnm.$varcnt = '(New-TimeSpan (GI $app.CurrentLocation).LastWriteTime (Date)).Days' #### I've had no issues with multi-segment downloads(using 4 segments). I'm not classing these behaviors as 'bugs', just something to keep in mind when using these features.
  14. Ambimind

    Ketarin 1.8.7

    No. Will try again in a few weeks time.
  15. Ambimind

    Ketarin 1.8.7

    Thanks logged in. However both image uploads and external image embedding is disabled, as is page creation(not needed atm). I've added a section to the functions page, with bare links to the external image host.
  16. Ambimind

    Ketarin 1.8.7

    Not able to add to the wiki. Tried and failed: - logging in with forum details - creating mediawiki account, and using those details Login attempts result in : " There is no user by the name[...] "
  17. Ambimind

    Need help with a few programs

    Working regex : (?<=v)\d+\.\d+\.\d+(-beta\.\d+)? Note : It should continue to work even after the beta, assuming they don't change versioning scheme. Ketarin will match the first instance only and then stop. Luckily, in most cases the latest version is the first to appear on a page, permitting a much simplified regex.
  18. Ambimind

    Ketarin 1.8.7

    Bug report : beta 3 : Issue : Multi-segment downloads don't seem to support ftp server. Once a job decides it needs updating, it begins the download process, however it hangs without failure. To reproduce : Just use following url in an app, set multiple-segments to 3 : ftp://ftp.musicbrainz.org/pub/musicbrainz/picard/picard-setup-1.3.2.exe
  19. Ambimind

    Need help with a few programs

    Karan, I hope you understand you only get one of these Dashlane : URL : hxxps://www.dashlane.com/directdownload?platform=win Works fine for me with Ketarin 1.8.6 b3 Etcher: URL : hxxps://resin-production-downloads.s3.amazonaws.com/etcher/{version}/Etcher-win32-x64.exe version src : hxxps://github.com/resin-io/etcher/releases Gamesaver : URL: hxxp://www.gamesave-manager.com/?s=download&a=dl referer: hxxp://www.gamesave-manager.com/?s=download User-agent : Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Works fine for me with Ketarin 1.8.6 b3 MuzicBrainz Picard Looks like you may have discovered a bug - the date variables don't like ftp urls? Remove the date variables and it will work. If not remove spaces form app name. Since the file name from the server includes a version, you can just "Save in folder" - that is, without a filename specficiation. Unified Remote Server URL:hxxps://www.unifiedremote.com/download/windows Works fine for me with Ketarin 1.8.6 b3 Edit : Replace "hxxp" with "http"
  20. Ambimind

    Ketarin 1.8.7

    Sure. Not confident in my ability to do this, but I'll give it a shot this coming weekend.
  21. Ambimind

    Forcing a delay between updates

    Ketarin 1.8.6 b3 introduced a feature which is exactly suited to this goal. Please follow the visual instruction below :
  22. Ambimind

    Ketarin 1.8.7

    Very useful updates, thank you kindly for your efforts floele. Beta 3 : Observations and Examples of the new features : Segmented downloading (enable in Settings -> Connection) Tested with 10MB, ~300MB and ~700MB files; segments set to 3. Integrity of files is maintained after download. Have confirmed 3 open sockets, consuming all available download speed. Made UrlVariable constructor public Works as advertised, thx. It's a little confusing that a variable name is required, both when creating the variable-object and adding it to the job. An example use of this feature, along with context and usage notes Function runpowershell / ps for executing variable content as power shell script and returning its result After testing as shown in examples below, I found no fault in the implementation. This feature brings several new possibilities to Ketarin : a. Derivation of variable value from a Powershell script, in the moment of use.(global,app or column variable) b. Execution of Powershell scripts before 'pre-download' scripts, during checks for updates c. Execution of Powershell scripts to determine the download url d. Execution of Powershell scripts before evaluation of custom-column-variables. NOTE : - Global and app/url-varaibles containing Powershell scripts will not execute unless used. - Where one uses a variable, determines at what stage of the update cycle it is executed. - Custom-column-values will be calculated every update - Custom-column-values will be calculated every time Ketarin starts. Delays in startup time will occur if your are running a powershell script for many jobs. Example 1 : Shows the use of a url-variable as script, used within the download URL. Note that in this specific case, the script returns nothing. Its purpose is just to execute a script before all others, and to do this on every check for updates. Var : {a_script} Use : {a_script:ps} Example 2 : This example demonstrates a ketarin-global-variable as a script, used within the download path. In this case it references a system-global-variable. Var : {COMPUTERNAME} Use : {COMPUTERNAME:ps} Another example, which enables the introduction of arbitrary time delays between updates [21_August_2016] : Added usage note : "Custom-column-values will be calculated every time Ketarin starts. Delays in startup time will occur if your are running a powershell script for many jobs."
  23. As an example of the new feature, following the release of Ketarin 1.8.6 beta 3 / 1.8.6.700, please find below the working version of the prior mock-script : #### ADD DATE VARIABLE IF NOT EXISTING # Parameters $varnm = "LastUpdate" $vartp = "Textual" #StartEnd or #Textual or #RegularExpression # # Derived access property, ie. app.variables.$varnm.$varcnt $varcnt = if($vartp -eq "Textual"){"TextualContent"}Else{"CachedContent"} # If it doesn't exist, then create a new one if(-Not $app.variables.$varnm){ # ECHO "========== $varnm NOT FOUND, ADDING IT ==========" # # Add var to job/app $newvar = New-Object -TypeName Ketarin.UrlVariable -ArgumentList $varnm,$app.variables $newvar.VariableType = $vartp $app.variables.Add($varnm, $newvar) $app.Save() } #Set it to the current date, short format(should be sortable) $app.variables.$varnm.$varcnt = Get-Date -UFormat %d-%m-%y # #### Usage Notes : Step 1 : Add a custom volumn. The value, variable name, corresponds to $varnm in the script Step 2 : Input the script to run for every job/app, after download is complete
  24. Ambimind

    Ketarin 1.8.7

    THANK YOU! Testing now.
  25. Ambimind

    IDEA IntelliJ download

    As a general rule, when a website uses JS to populate html dynamically, it may make an XHR request. If so we can use the data, usually simple JSON text, to get what we need. In this case, the XHR request URL is : https://data.services.jetbrains.com/products/releases?code=IIU%2CIIC&latest=true&type=release Note : If they decide to change the API, it is possible that they make use of cookies and post data not encoded in the url. In this case you'll need to check the headers. I've included a working job. Check the "URL" variable in case they modify their versioning scheme. IntelliJ_IC.xml
×

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.