Jump to content
Ketarin forum

rome

Members
  • Posts

    19
  • Joined

  • Last visited

Everything posted by rome

  1. Template variable description - neither of the options you gave. Something more along the lines of <item> <key> <string>appSource</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableDescription>This is some description of the variable for future reference</VariableDescription> <VariableType>Textual</VariableType> <TextualContent><!-- Fill here --></TextualContent> <Name>appSource</Name> </UrlVariable> </value> </item> For the rest - Thanks. I'll play around some more and see what I can get.
  2. * DB cleanup method Could there be an internal command of such, for the likes of me who don't have sqlite setup on my windows system, nor would really want to setup one just for that? * SUMo like version control Wouldn't it beat the purpose to download all the programs each and everytime? Most of the templates have a variable called version as it is, and it is used to determine if a newer version is available. The SUMo just makes it easier, making that variable more reliable and not be possibly useless if and when the site changes. * Silent install Nope. It's not so obvious that Ketarin is able to install any downloaded software - Hitting install in the GUI just says I don't have any setup determined, so I figured I need to add all the silent switches myself. and anyway I wonder - what exactly does the /slient switch do? * Place backups in Backup folder I guess anything can be scripted to fit my needs, but alas - I have no clue in batch scripting. Only shell scripting:) Needless to say that some of your fragment is Chinese to me. Specifically this - robocopy "." "%TARGET%" /MIR /BYTES /ETA There was a late edit to my first post, adding the variable description request. Just for convenience I'll re-add it here: * Template variable description It's sometimes easy to get lost, especially when you share a template. A short description of each variable could clarify exactly its purpose and means to an end.
  3. Yep, that's what I ended up doing. Still weird. About the description - that somewhat beats the purpose of having a description of the file in the information tab, and I don't want to create another variable just for that, but I guess that would do. Thanks.
  4. I like good programs. This is one of those. But I do have a few suggestions and requests: * DB cleanup method I noticed that after deleting programs, even to the extent of an empty list, the db size doesn't really change - as if the files were not really deleted from it. Sometimes to the point that Ketarin would say that a program is already present with the same key, rendering my whole DB useless. * Place backups in Backup folder this is a minor one. I just don't like to see my folder cluttered with files that should be better off grouped in a folder of their own:) * Template variable description It's sometimes easy to get lost, especially when you share a template. A short description of each variable could clarify exactly its purpose and means to an end. * SUMo like version control http://www.softpedia.com/get/System/System-Miscellaneous/SUMo.shtml Is a nifty little tool that can scan directories for executables (or be dragged n' dropped into) to calculate the version of the program (from the binary itself). Although it doesn't ALWAYS find the version number, I found that out of 10 programs I use, it does find 9. It can also search the web to find out automatically if there's a newer version available. However, it can't provide a direct link to download, nor perform any command before or after. * Silent install Up to now I could'nt figure out if there's a universal method to install files in Ketarin. I figured that there isn't one. I did stumble upon, however, on a site that provides silent switches to most packaging systems in windows. http://unattended.so.../installers.php There are a couple of examples that allow for silent install. Ninite.com is one example, Chocolatey.org is another. But if they can, why couldn't we? * Common scripts integrated, or script DB. There are a couple of things I usually use, but some that I tried to find out but couldn't. For example, I tried to find a way to check if the program I'm about to install is already running. If it does, close it, install and then restart it. I did find something in one of the templates, but it didn't work. Since I have no clue in C#, I couldn't even debug it. Some of these scripts would be fit to be integrated within Ketarin IMHO. Thanks for your patience:) If any of the above already been proposed, let me know.
  5. This is a template of portableApps I modified from the templates forum. I'm trying to decode what's in the UserNotes tag. <?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="35049824-00be-4a7b-951a-50dc65b13111"> <Name> <placeholder name="Name of application" variable="appName:regexreplace:([\s\t\r\n\\&\/]+):" /> </Name> <Category> <placeholder name="Category" options="{categories}" /> </Category> <CanBeShared>false</CanBeShared> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <DeletePreviousFile>true</DeletePreviousFile> <DownloadBeta>Default</DownloadBeta> <Enabled>true</Enabled> <ExclusiveDownload>false</ExclusiveDownload> <FileHippoId /> <FixedDownloadUrl>{dlUrl:urldecode}</FixedDownloadUrl> <HttpReferer>{dlRedirect:urldecode}</HttpReferer> <IgnoreFileInformation>false</IgnoreFileInformation> <PreviousLocation /> <ShareApplication>false</ShareApplication> <SourceType>FixedUrl</SourceType> <TargetPath>{dlPath}</TargetPath> <UserAgent>{sfua}</UserAgent> <UserNotes> <placeholder name="Application description" variable="appDescription:urldecode"/> </UserNotes> <VariableChangeIndicator>appVersion</VariableChangeIndicator> <WebsiteUrl>{appWebsite}</WebsiteUrl> <Variables> <item> <key> <string>appDescription</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(?<=tagline.*?<p>)(.*?)(?=</p)</Regex> <Url>{dlPage}</Url> <Name>appDescription</Name> </UrlVariable> </value> </item> <item> <key> <string>appName</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>(.*?)(?=\s.+Portable)</Regex> <Url>{dlPage}</Url> <Name>appName</Name> </UrlVariable> </value> </item> <item> <key> <string>appSource</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>PortableApps</TextualContent> <Name>appSource</Name> </UrlVariable> </value> </item> <item> <key> <string>appType</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>Portable</TextualContent> <Name>appType</Name> </UrlVariable> </value> </item> <item> <key> <string>appUpFreq</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent> <placeholder name="Application description" value="" options="Urgent|Monthly|Never" /> </TextualContent> <Name>appUpFreq</Name> </UrlVariable> </value> </item> <item> <key> <string>appVersion</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(?<=Portable_.*?)[0-9.]{2,}(?=\.paf)</Regex> <Url>{dlPage}</Url> <Name>appVersion</Name> </UrlVariable> </value> </item> <item> <key> <string>appWebsite</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>href="([^\s]*)" learn more</Regex> <Url>{dlPage}</Url> <Name>appWebsite</Name> </UrlVariable> </value> </item> <item> <key> <string>dlPath</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>{startuppath}..\{appname}-{appVersion}.{dlUrl:ext}</TextualContent> <Name>dlPath</Name> </UrlVariable> </value> </item> <item> <key> <string>dlPage</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent> <placeholder name="Application Page URL"/> </TextualContent> <Name>dlPage</Name> </UrlVariable> </value> </item> <item> <key> <string>dlRedirect</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>http://portableapps.com/bouncer?t=</TextualContent> <Name>dlRedirect</Name> </UrlVariable> </value> </item> <item> <key> <string>dlUrl</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>[^"'=]+(?>\.exe)</Regex> <Url>{dlPage}</Url> <Name>dlUrl</Name> </UrlVariable> </value> </item> <item> <key> <string>installPath</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent>{startuppath}..\{appname}</TextualContent> <Name>installPath</Name> </UrlVariable> </value> </item> </Variables> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code> {ahk} "{ahk-paf}" "{file}" "{installPath}" ::Creating and renaming a custom .ini to disable splash screen if exist "{installPath}\*Portable.ini" exit for /f "tokens=*" %a in ('dir /b "{installPath}\Other\Source\*Portable.ini"') do ( set ini={installPath}\Other\Source\%a set file=%a ) For /f "tokens=*" %i in ('type "%ini%"') do if /I "%i" EQU "DisableSplashScreen=false" (echo DisableSplashScreen=true>>"{installPath}\%file%") else (echo %i>>"{installPath}\%file%") for /f "tokens=*" %a in ('dir /b "{installPath}\*.exe"') do set exe=%~na if exist "{installPath}\*Portable.ini" rename "{installPath}\%file%" "%exe%.ini" ::Creating and renaming a custom .ini to disable splash screen del "{file}" /s /q </Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <ExecuteCommand> /*This is a comment line, the line below is the C# script. It will run the instructions found in the Setup Tab. If the command below is encapsulated with stars and slashes merely remove them to make the command function, otherwise it will remain a comment*/ app.Install(null); </ExecuteCommand> <ExecutePreCommand> if "{dlPath}" EQU "" START CMD /C "ECHO {appname}: Unable to find download, investigate & PAUSE & exit& if "{FixedDownloadUrl}" EQU "" if "{FileHippoId}" EQU "" START CMD /C "ECHO {appname}: Unable to find download, investigate & PAUSE & exit& </ExecutePreCommand> <ExecuteCommandType>CS</ExecuteCommandType> </ApplicationJob> </Jobs> Also, there was a case that I needed to urlencode a url - it had spaces, and I wanted them to be %20. The encode, however, made spaces into '+'...
  6. Tried again. And nope. Doesn't work for me. It's not a url I'm trying to get, so maybe that's the problem. I'm trying to decode the app description that sometimes add ascii codes. I tried to create a new variable and give it the {variable:urldecode} but it didn't work...
  7. Superb. Thanks. I did see the option in one of the templates, but didn't figure I needed the beta to use it.
  8. I actually tried that. It didn't work O_o
  9. Is there a way to define a list of categories, for example, globally? Say {categories} = System|Graphics|Utility and then use it in the template? It throws an error whenever I try to do something like that...
  10. Sometimes I get all sorts of ascii characters, (e.g. &), and I want to replace them with the original form (e.g. &). After searching the web for a bit, I didn't stumble upon anything... Have you had any experience and could share a snippet?
  11. Never mind, answered both of my questions by playing around with the templates. Thanks:)
  12. Ok, never mind. Case closed. I understand now the variables:) Defining a variable called "dlTarget" (for example) and placing some syntax, E.g. {portable-temp}{appname}-{appVersion}.{dlUrl:ext}, will change whenever its modified.
  13. Ok, note taken, but that might be a shame. Say I have these variables: {portable-temp} = {startuppath}..\Temp\ {target-path} = {portable-temp}{appname}-{appVersion}.{dlUrl:ext} If I define target-path globally, it wouldn't accept app-specific variables. If I define it locally (in the template), I wouldn't be able to change it easily in case I want to define another naming convention - in another post I was told it wouldn't accept static changes. So in case I want to change the target path in all my related apps to (for example): {portable-temp}{appname}-{appVersion}-{filesize}.{dlUrl:ext} How should I accomplish that without exporting, find and replace and importing back...?
  14. What does variable assignment classes mean? Here is the code if it would help to explain. Note that I changed name to appName (I realize it's not conventional to XML using camelCase). <?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"> <Name> <placeholder name="Name of application" variable="appName" /> </Name> <Category> <placeholder name="Category" /> </Category> <UserAgent>{sfua}</UserAgent> <CanBeShared>true</CanBeShared> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <DeletePreviousFile>true</DeletePreviousFile> <DownloadBeta>Default</DownloadBeta> <Enabled>true</Enabled> <ExclusiveDownload>false</ExclusiveDownload> <FileHippoId /> <FixedDownloadUrl>{dlUrl:urldecode}</FixedDownloadUrl> <HttpReferer>{dlRedirect:urldecode}</HttpReferer> <IgnoreFileInformation>true</IgnoreFileInformation> <PreviousLocation /> <SetupInstructions /> <ShareApplication>false</ShareApplication> <SourceType>FixedUrl</SourceType> <TargetPath>{target-install}</TargetPath> <UserNotes> <placeholder name="Application description" variable="appDescription" /> </UserNotes> <VariableChangeIndicator>appVersion</VariableChangeIndicator> <WebsiteUrl> <placeholder name="Application website" variable="appWebsite" /> </WebsiteUrl> <Variables> <item> <key> <string>appDescription</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(?<=tagline.*?<p>)(.*?)(?=</p)</Regex> <Url>{dlPage}</Url> <Name>appDescription</Name> </UrlVariable> </value> </item> <item> <key> <string>appName</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>(.*?)(?=\sPortable)</Regex> <Url>{dlPage}</Url> <Name>appName</Name> </UrlVariable> </value> </item> <item> <key> <string>appSource</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent> <placeholder name="Source of application" value="PortableApps" /> </TextualContent> <Name>appSource</Name> </UrlVariable> </value> </item> <item> <key> <string>appType</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent> <placeholder name="Type of application" value="Portable" /> </TextualContent> <Name>appType</Name> </UrlVariable> </value> </item> <item> <key> <string>appVersion</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>(?<=Portable_.*?)[0-9.]{2,}(?=\.paf)</Regex> <Url>{dlPage}</Url> <Name>appVersion</Name> </UrlVariable> </value> </item> <item> <key> <string>appWebsite</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>^.*href="(.*?)(?=".learn more)</Regex> <Url>{dlPage}</Url> <Name>appWebsite</Name> </UrlVariable> </value> </item> <item> <key> <string>dlPage</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent> <placeholder name="Application Page URL" /> </TextualContent> <Name>dlPage</Name> </UrlVariable> </value> </item> <item> <key> <string>dlRedirect</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <TextualContent> <placeholder name="Download redirect path" value="http://portableapps.com/bouncer?t=" /> </TextualContent> <Name>dlRedirect</Name> </UrlVariable> </value> </item> <item> <key> <string>dlUrl</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>[^"'=]+(?>\.exe)</Regex> <Url>{dlPage}</Url> <Name>dlUrl</Name> </UrlVariable> </value> </item> </Variables> </ApplicationJob> </Jobs> And one last thing - If I do want to change static values, the only way would be to export, search and replace and import back?
  15. I also noticed that the WebsiteUrl and UserNotes don't accept variables like others, and I have to place a placeholder with the variable, which of course doesn't update as well.
  16. I'm trying to configure my global variables using native vairables, or already defined globals. It doesn't seem to work. Or I'm doing something else wrong. For example, I have these global variables defined: {ue} - start /wait {startuppath}"..\UniExtract\UniExtract.exe" {install-path} - {startuppath}"..\"{appname:regexreplace: \(.*\):} {ue-extract} - {ue} "{file}" {install-path} In the after download command I placed {ue-extract} It doesn't do anything. Help?
  17. I love the idea of prototyping the templates, and I created one to play with. I did notice, however, a strange behavior I wouldn't expect - 1. Changing settings doesn't seem to update - Say I change <IgnoreFileInformation>true</IgnoreFileInformation> to <IgnoreFileInformation>false</IgnoreFileInformation> After updating the applications, the checkbox is still checked. 2. Reverting changes doesn't take effect: Say I change <Name><placeholder name="Name of application" variable="name" /></Name> to <Name><placeholder name="Name of application" variable="name" /> (Portable)</Name> and then back again, Ketarin doesn't even notify me the xml was changed, and I have to manually remove the (Portable). It wasn't throughoutly tested, but could it be quirks of the templating system?
  18. Few questions - 1. How can I (and should I) test to see if the task is actually running before sending the kill command? 2. Wouldn't it possibly harm the application, and/or possibly corrupt data? 3. Can I also send a command to restart the task after the download and update is complete? Regarding your suggestion about UniExtract - Since I'm probably using this work-space on several computers, and don't want to leave any traces after me, adding it to the path doesn't seem like a good idea. Or can I somehow "portably" add a path?
×
×
  • 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.