Jump to content
Ketarin forum

Omniferum

Members
  • Posts

    304
  • Joined

  • Last visited

Everything posted by Omniferum

  1. So you are saying that you want changes to propagate throughout all applications made with that template? So all applications made with the download.com template automatically change based on changes to the original template? Have I got that right? If that is the case then you want to look at prototype templates which do need a GUI. Use this http://www.guidgenerator.com/online-guid-generator.aspx. Ketarin will treat a template as a prototype template if it has a GUID AND placeholders. After that just re-import the Template into Ketarin and it should ask "wanna update everything?" In my case I just export all apps as .xml and do a mass text find & replace.
  2. The only thing I said in relation to your template was that a GUID value should be omitted altogether, yes. Ketarin automatically assigns a GUID per application created from a template. A GUID has to be unique for each application, if you specify a GUID in your template then everytime you add an application it will always overwrite whatever you made before with Ketarin. But if NOTHING is updating if you either use ours or your own then perhaps there is more a problem with your Ketarin? Mine work fine for me. Try my Nvidia driver template here on the forum and if that doesn't download then you may want to see what is happening with your Ketarin. If you share your log with us we can be a bit more helpful. Just click on View -> Show Log before you update anything so you can see what is happening.
  3. Templates shouldn't have their GUID defined (except for proto templates, which I haven't gotten around to poking just yet), just remove that value altogether. If you'd like a comparison, here is my greasemonkey userscript template. Note that I automatically extract the name of the template from the download URL. <?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"> <WebsiteUrl /> <UserNotes /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <SetupInstructions> <SetupInstruction xsi:type="CustomSetupInstruction"> <Code>for /F "tokens=*" %c in ('dir /b /s {p1}\DBI.bat') do set path=%~dpc & for /F "tokens=*" %d in ('dir /b "%path%"\*.exe ') do set file=%d & "%file%" "{file}"</Code> <Type>Batch</Type> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>http[^'"]+[^'"]+\.user\.js</Regex> <Url><placeholder name="Download URL"/></Url> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>name</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex><title>(.*?) for Greasemonkey</Regex> <Url><placeholder name="Download URL"/></Url> <Name>name</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand>/*This is a comment line, the line below is the C# script. It will run the instructions found in the Setup Tab*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Greasemonkey Userscripts</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>{s1}{category}\{appname}.user.js</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name><placeholder name="Name of application" variable="name" /></Name> </ApplicationJob> </Jobs> For reference sake {s1} is a global variable of mine of where my stuff gets downloaded, easier to make mass changes to one global variable than to export xml, find and replace the text then go back in. Management is key. Also the setup instructions won't work for anyone else, I run portable versions of all browsers plus my drive letters change a lot so the instructions there point to a unique filename (which is a bat file I use to pick my portable browser and is in the root of that directory) and etc. etc. so don't try to use it unless you put a file called DBI.bat (doesn't have to have any text in it) in the directory of the browser you want the userscripts to be installed to. Just explaining it, not recommending it per se. Would be simpler for you to replace that part of the command to something else. i.e. change {p1}\DBI.bat to the full directory path to your browser executable. D:\Firefox\Firefox.exe, something like that.
  4. Edited to clean Primarily there are only two groups of extensions that windows programs come in. Binaries - rar/zip/7z (These only require to be unzipped to be installed) Executables - exe/msineed (These can be either extracted using the program Universal Extractor, installed manually or silently with switches/parameters) Extras/Addons - Things like greasemonkey userscripts that are .user.js or thunderbird/firefox addons which are .xpi I use only one regex that works for EVERY app I have. Edited only in two ways for each app. One is I change the last three letters of my regex to the actual file extension I want to find. So from this [^"'=]+\.zip if I want to find an exe I just do [^"'=]+\.exe The \. is to tell the regex it has to find the period character, if you just put .zip it will find any character before zip which you don't want. So it would only find godilovezip from godilovezip.zip, which will return an error obviously. To find specific words in URL (Like x32 or x64 builds) all you need to do is add the text after the first + sign. To find multiple just keep adding [^'']+ followed by the keyword. Keep in mind it is sequential. [^"'=]+64[^"']+\.zip Keep in mind that if the 64 is directly before the file extension the regex won't match, so just remove a character and you'll be fine. So the above would turn into [^"'=]+6[^"']+\.zip If your download page lists the latest release from the bottom of the page instead of the top, just enclose your regex with .*( at the beginning and ) at the end. So it would end up looking like .*([^"'=]+64[^"']+\.zip) I have yet to find a way to 'exclude' specific words, more specifically words like source or src as sometimes the first match is a source file which I have no use for. I've been asking on a few forums but sometimes I need to be spoonfed then hit on the head. For those instances where I have run into the source/src problem I just add extra inclusion words that aren't in the found source link. Anything and everything i've garnished from Regex was from asking the people in this forum, who were kind enough to give me stuff to fiddle with and chew on. I would not say I have a good grasp of regex, just that this 'functions' and it the simplest one i've seen so far and seeing as our primary purpose for regex is to find the download link I believe this fits the bill. SPECIAL CIRCUMSTANCES There may be a time where that regex doesn't accurately capture download links that have an equal sign in them. To get that as well you only need to do the following. [^"'=]+=[^"']+\.zip Also a helpful hint is that if you find it is capturing some weird part of the page try adding / instead to make it look for something that has a folder structure. [^"'=]+/[^"']+\.zip
  5. Fair enough, I get random bouts of exploring Ketarin is all and it is nice to know the limitations, if any. Just hard to find out on my own if it is a limit of Ketarin or a limit of my knowledge, I tend to assume it is my fault rather than anybody else.
  6. Clarification \.zip|\.rar|\.7z is option 1, pure text entry \.exe|\.msi is option 2, pure text entry
  7. I made a topic a little while ago about retooling Ketarin to check for web page updates at specified intervals and then produce a pop up you can click on to open any updated webpages with a specified browser (or system defined) Webmon was suggested as a 'filler' while floele considered but it wasn't portable for me, which is a big thing. Just thought i'd share my current finding for this sort of program. http://pwatcher.sourceforge.net/ It hasn't been updated in a while but if you uniextract it and delete $pluginsdir and in the 'connections' tab select 'manually specify when on-line' and then uncheck the work offline option in the File drop down menu it will function more or less pretty good. It is an old program that needed a bit more love but for now it more or less does the trick. It only supports checking for differences by looking between two scraped specific text points, but that is still more than enough for now. Scrapes the page and away ya go.
  8. Sadly enough there was no way I was able to get the suggestion to work. Again i'm not great on syntax but I looked at the link to try some other lookaround processing but still ended up with not much.
  9. I've been trying to find a way to exclude a specific word from my regex matches, in this case the word source. My current 'attempt' has only found to be working if the word source or src is found to happen right BEFORE the extension. I assume it is because of the characters in the square brackets? Either way I was just curious if anyone could just spot what I needed doing and give me the (no doubt) 4 extra characters required to make it exclude matches with a specified word. http[^'"]+64[^'"]+7z Now if I do http[^'"]+64[^'"source]+7z It will work, only if the filename ends like vrasr444source.7z I obviously want it to apply to the entire match, not just the position.
  10. <placeholder name="Please select the file extension type" options="[\.zip|\.rar|\.7z]|[\.exe|\.msi]" /> Where the square brackets are is where I REALLY want the "OR" to operate, every other time I just want it to be treated like a literal character. I don't know much about XML (or coding in general) and a quick google didn't really reveal a whole lot to me. It is just part of a template for regex, as you can see it will just simplify "Are you looking for a binary file or an installer?" and I haven't found anything on the forum regarding this. sooo short story is is there a way to escape special characters? I think it is Ketarin and not specifically XML that is... bleh, I dunno. Thought it easier to ask than kill myself over it again.
  11. Yeah, that is what I was afraid of. Fair enough, the method I initially used (posted the template already in the templates forum) will suffice. It was more an aesthetic thing than anything else, i'm sure people aren't going to bitch about something that they will only need to see once for 5 seconds being a teeny bit messy.
  12. Shouldn't really be using this topic but more the moron is me. I'm not 100% sure how to regex with this scenario. Thing is it would be a regexreplace type scenario. <placeholder name="Desktop" options="Desktop|Laptop" regexreplace="Desktop:299"/> I know regexreplace isn't supported there but I just wanted to show what I was trying to achieve. I just don't know how to get it to replace the Desktop value with the 299. Also can you do multiple iterations of regex without hassle? Just so I can do it for each 'option' basically.
  13. Not sure why I felt like doing it but hey, I did so meh. The below template will basically ask you for What Operating system you are using (from windows xp 32 to win7 x64) and whether or not it is a desktop/laptop/notebook. That's all ya need to do. The rest is maaaagic. Any troubles let me know, or general feedback is fine too. FOR REFERENCE THIS IS ONLY FOR GEFORCE DRIVERS, which would account for 99% of people that I know/meet so enjoy. <?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"> <SourceTemplate><![CDATA[]]></SourceTemplate> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <SetupInstructions /> <Variables> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>http://[^'"]+exe</Regex> <Url>http://us.download.nvidia.com{refer2}</Url> <TextualContent /> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>refer1</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>http://[^'"]+[^'"]+\.html</Regex> <Url>http://www.nvidia.com/Download/processDriver.aspx?{psid}&{pfid}&{osid}〈=en-us</Url> <Name>refer1</Name> </UrlVariable> </value> </item> <item> <key> <string>refer2</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>url=([^'"]+exe)</Regex> <Url>{refer1}</Url> <Name>refer2</Name> </UrlVariable> </value> </item> <item> <key> <string>psid</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>psid=52</TextualContent> <Name>psid</Name> </UrlVariable> </value> </item> <item> <key> <string>pfid</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>pfid=<placeholder name="Desktop is 299 Laptop is 500 Please select one of the above" options="299|500"/></TextualContent> <Name>pfid</Name> </UrlVariable> </value> </item> <item> <key> <string>osid</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>osid=<placeholder name=" Windows XP x86 is 6 Windows XP x64 is 7 Windows Vista/7 x86 is 18 Windows Vista/7 x64 is 19 Please select one of the above" options="6|7|18|19" /></TextualContent> <Name>osid</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand>/*This is a comment line, the line below is the C# script. It will run the instructions found in the Setup Tab*/ app.Install(null);</ExecuteCommand> <ExecutePreCommand /> <ExecuteCommandType>CS</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category>Driver</Category> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath></TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>Nvidia Driver</Name> </ApplicationJob> </Jobs> EDIT: Updated template as Nvidia recently made some changes to their site.
  14. Was just fiddling with templates and I wanted to check before I spent another hour on it, does the placeholder regex= work for options= or is it only for value=? I was wanting to offer a drop down list of textual items but it wasn't what was actually entered. i.e. I need a numerical value of 500 but want the user to only see "Desktop Drivers" If it isn't possible that's fine, was merely curious.
  15. 1. It may be beneficial to have Ketarin auto-expand any user defined global variable found upon exporting an app to XML or to the online database. It should be relatively simple, just have it search for all non-internal variables. Basically anything encapsulated in {} that Ketarin doesn't recognize without looking up the 'global variables' table. Also upon importing an XML 'or' database app it will first consult all your global variables that you have in your Ketarin and then re-global variabalize them (I love making new words). So basically upon importing an XML Ketarin will go "Here is all the text found in all the global variables" then perform a "search and replace" function on anything found in the XML. So if there is a {root}Programs\Audio\Foobar2000 it will replace the {root}Programs\Audio with whatever the pre-defined global variable is. For arguments sake let's just say it is {installpath}. So simplified when you export an app that has {installpath} you will in the XML get {root}Programs\Audio and when you import that XML ketarin will automagically turn {root}Programs\Audio back into {installpath} if that global variable is still present. This should help greatly with sharing of apps and the like. 2. I listed this earlier but gave a stupid topic header for it but I would appreciate another icon for when Ketarin is actually performing install instructions. At the moment it just stays a green arrow throughout download/install, maybe a picture of a computer blinking or a HDD spinning to indicate local activity? 3. App processing prioritization, been propped up a few times but never really heard Floele's opinion. A lot of things get lost in the forums sadly enough so this is just being propping it up again. The ol' "Oh, this app has a number 1! I will process this first then number 2 if I find it and the remaining apps in the current sort order" I used to have a long list but it got deleted in some mystical corruption, but I would appreciate it if we could allow global variables to contain all functions and whatnot in Ketarin pwetty pwease? Feedback would be appreciated, just trying to help Ketarin get to where Floele wants it to go which is to be more user/noob friendly.
  16. I assume you exported an application made from a template rather than give us the template here, given some of the values being pre-defined even if you have placeholders for them. Some of those values really shouldn't be in a template though like LastFileSize and LastFileDate as those values aren't applicable to anything created with the template. Also most templates are created for a specific website i.e. Sourceforge or CNET, you can of course make a more generic template as such for filling in basic information but you'll find yourself tweaking the defaults too often when you come across a site like sourceforge.
  17. A pain in the ass, I do something bad? Well, at the risk of this being deleted as well. One further UI tweak, could you just make an icon to indicate when the download is finished and the application is actually installing/running commands? It is just that it displays the down green arrow the entire time, would just look cleaner if it just had even a little scroll to indicate a script is running and all the download stuff is done with.
  18. Ah... I think that is what I get for posting at 3:00am and being woken up by my bloody apartment buildings 'Fire Alarm Test' at 9. Ignore that post, for I am a silly person and posted something silly.
  19. The following aren't expanded in the global variable {appname:regexreplace: \(.*\):} {file} I'm not sure what you meant by 'relaxed' for global variables. Merely reporting anyway as it is the only thing left I need before I can globalize everything. wee
  20. Go go gadget ignorance I suppose. Just hadn't had that batch problem before is all and I do remember just encapsulating the entire damn thing, perhaps just one of those coding things where you tweak for several hours to a large number of items and forget the changes made over time. Just twiddled for a bit "app.Install(null);" <- doesn't work app.Install(null); <- works, yes i'm allowed to feel stupid. One of those things Is there anything hidden about this command for reference sake? will it cause troubles with some batch commands or will it call the setup instructions in entirety and run it as a batch just as if you had the code there. Merely curious.
  21. Ah, my ignorance of C# Need to change the command to C# and encapsulate the command as so /* "app.Install(null);" */ Sort of surprised those things aren't included by default when you change to C#. However this does give me "script exectued succesfully" whilst not actually running anything that is in the Install Instructions. Checked the log, nothing is actually logged when I run the script.
  22. Copied and pasted the exact line, tried with and without quotes. Changed the command to C# script. I got nada I mean poopy poo as it recognizes it in a strange way. For example for {7z} start /wait "{root}Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" It will give "windows cannot find x. Make sure you typed the name correctly and try again" Where x is the switch for 7z. Full command is {7z} x "{file}" -o"{p1}{category}\{appname:regexreplace: \(.*\):}" -y If I change the {7z} to the following start /wait {root}"Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" it will execute perfectly fine. Dear god please floele, I would love you forever if you could allow other variables in global :'( I just want to be able to place the below command as a global variable and all that need 7z and I can just put {7z} without caring. {7z} x "{file}" -o"{p1}{category}\{appname:regexreplace: \(.*\):}" -y Just a lot of my programs don't really need that much to get them installed. Even my ahk and universal extract programs are just "{AHK}" "{startuppath}\PA.ahk" "{file}" "{p1}{category}\{appname:regexreplace: \(.*\):}" "{ue}" "{file}" "{p1}{appname:regexreplace: \(.*\):}"
  23. ooooh, found a... thingy ma bobba I haven't needed to run ketarin since b9, updated to b10 and sorta did nothing for a few days. I've since then found that for global variables if I encapsulate {root} in any sort of quotation marks "{root}" it will cause the subsequent program to fail. For example start /wait {root}"Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" will work fine Either of the following will make itself go poopy poo start /wait "{root}Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" "start /wait {root}Programs\File Management\7-ZipPortable\App\7-Zip\7z.exe" <- this is how I configured all my apps from the beginning Checking the log the variable is parsed perfectly fine, I see no errors in the path it gives. It just decides to crap itself is all, no idea why
  24. If you use a C# script "app.Install(null);" it should work. For now without GUI option. Sadly this just gives me a Script can not be executed. Script cannot be compliled: ; expected
  25. Well yes my initial suggestion was more for a re-tooling, not to fork it. I just wanted to point out that it isn't so different that it could even just be a slightly tweaked "Add application" button really. It would be better if it was just Ketarin dumbed down for webpages, call it Ketamon with these features. What is essentially missing for it to be Webmon (but better): Scheduler Limited character change identification (more of a preference for simplification but this isn't essential) Pop up notification that goes "click here to open all found updated webpages with your desired program" Now I know ALL THREE of those things could be handled by external applications. But by then it would become somewhat a pain in the ass. However if you ahve no interest in doing that it is most likely what i'm going to end up doing.
×
×
  • 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.