Jump to content
Ketarin forum

Relative Paths (on download location)


aurelio
 Share

Recommended Posts

I couldn't find the answer for this, so here it goes (it might be a "stupid" question...):

 

--> How Can I enter a Relative Path to each item (software) entry?

 

e.g.:

instead of having on download location:

"S:\Software\_Base.Ins\{category}\{appname} v.{version}.exe"

 

SHOULD(??) I have something like this?

"{root}Software\_Base.Ins\{category}\{appname} v.{version}.{url:ext}"

 

and COULD(??) I have something more SIMILAR to this, knowing that KETARIN FOLDER is "S:\Software\_Base.Ins\_Ketarin\":

"..\{category}\{appname} v.{version}.{url:ext}"

 

and, at last, how would I go about changing all previous items entries to the new "Relative Paths Format"? Is there a "Search and Replace" function I could use? Or should I use an HEX editor to change it all directly in the database (jobs.db, located in the same folder as Ketarin executable)?

Link to comment
Share on other sites

As far as database modding goes choose File - Export All and modify the exported .xml with Notepad++ (or some other capable text editor that has mass replace function). Afterwards you can re-import this .xml to a clean jobs.db.

Link to comment
Share on other sites

As far as database modding goes choose File - Export All and modify the exported .xml with Notepad++ (or some other capable text editor that has mass replace function). Afterwards you can re-import this .xml to a clean jobs.db.

Great Idea! Thank you. :)
Link to comment
Share on other sites

COULD(??) I have something more SIMILAR to this, knowing that KETARIN FOLDER is "S:\Software\_Base.Ins\_Ketarin\":

"..\{category}\{appname} v.{version}.{url:ext}"

 

Yes. Just use that in the 'save to file' path. That's almost exactly what I have, though I save the file within the Ketarin folder, and use another replacement operation to clean up certain strings:

.\{category}\{appname:regexreplace:([\s\t\r\n\-\\&\/]+):_}-{version}.{url:ext}

Link to comment
Share on other sites

Yes. Just use that in the 'save to file' path. That's almost exactly what I have, though I save the file within the Ketarin folder, and use another replacement operation to clean up certain strings: \{category}\{appname:regexreplace:([\s\t\r\n\-\\&\/]+):_}-{version}.{url:ext}
That's very good to know... (I'm in good company. ;) )

Right now mine is

<TargetPath>..\{category}\{appname} v.{reversion}.{extsn}</TargetPath>

I'm using right now a "reversion" variable to "automatically clean-up" almost all obtained version numbers. The keyword here is almost... some softwares must have this variable further customized. That's the reason why I'm hesitating to use a more simple approach with a "global variable" with the same name and avoid declaring it in every single piece of software. So, I would like to know:

 

- Can I override the global variable with a local declaration whenever it becomes necessary?

reversion = {version:multireplace:~: (32-bit)~ (IE)~ (Non-IE)~ Beta~ Alpha~, Build~ Build ~ part ~ beta ~/~(~):~~-NonIE~-bt~-al~.~.~.~.~.~~}

sometimes become, for instance,

reversion = {version:regexreplace: Build (\d\d).(\d\d).(20\d\d):-b_$3.$2.$1}

and some other few necessary corrections, sometimes with the use of a temporary "v1" and "v2" variables to apply multiple consecutive corrections. So, my second question is:

 

- Do I have to use (and declare) temporary variables to make use of consecutive transformations?

(or is there an easier way to do more than one direct and different transformations on a variable output?)

 

I've also just figured out that about 2/3rds of my software entries have the .exe extension (man, that grouping + sorting behavior of Ketarin is just fantastic!);

So, I would like to have my "extsn" variable as a "global one" declared with the value "exe" and only change it locally whenever it becomes necessary;

- Is it possible? Would this work well? or is it just another potential source for problems and I'd better stick with local "extsn" variables?

 

(I do not like to use {url:ext} on the TargetPath because it does not display accurately on the column on the interface; also because it is does not get stored in the database, apparently; also because I can't have a custom column to sort and group entries by this value ;) )

 

 

Edit: I forgot another very important question to the "PRO's":

 

- When I edit the "ALL.xml" (all exported entries) with notepad++ and make all the desired corrections, trying to make everything as uniform, simple and functional as possible, I'm afraid as I import it to a new and clean jobs.db there will be probably some values that I had before on the old "jobs.db" that I will loose. Is this true?

Edited by aurelio
Link to comment
Share on other sites

Oh, man...

 

And I forgot to say I'm lovin' the standardization proposed by Shawn on this topic:

http://ketarin.org/forum/index.php/topic/306-standardization-of-variable-names-proposal/page__view__findpost__p__4078

 

I not only is very well organized, but also gave me some very good ideas of things to "include" as variables on all entries.

 

My question is: Do you use all those variables as local items in each entry?

Link to comment
Share on other sites

- Can I override the global variable with a local declaration whenever it becomes necessary?

 

I'd need to see exactly how you intend to do it to be able to respond. You can use functions (as I do) in the 'save to' box. I tried creating one that would solve all version naming issues at once when saving the file...but learned pretty quickly that tuning the version name was far more effective in the specific app profiles. Especially if you're going to be utilizing that information elsewhere.

 

- Do I have to use (and declare) temporary variables to make use of consecutive transformations?

 

Yep. Again, you'll find it better this way in the long run, as while it may be less cosmetically appealing to iterate thru formatting, it makes it far more manageable in the long run.

 

- Is it possible? Would this work well? or is it just another potential source for problems and I'd better stick with local "extsn" variables?

 

IMO, you're better off using "{file:ext}" for the column behavior (this isn't reliant on an active run of the system to obtain 'url' properties). Also, using a global variable like extsn would likely complicate things for you in the long run. Imagine, for example, what happens when the specific URL you're downloading from doesn't actually have an extention? Better to parse these directly each time.

 

- When I edit the "ALL.xml" (all exported entries) with notepad++ and make all the desired corrections, trying to make everything as uniform, simple and functional as possible, I'm afraid as I import it to a new and clean jobs.db there will be probably some values that I had before on the old "jobs.db" that I will loose. Is this true?

 

Global settings will be lost. However, if you import it directly into your existing jobs.db nothing should be lost (back it up first anyway), and since each app profile "now" (via export) has a Guid assigned, they'll import and overwrite the relative app profile within the jobs.db. Good stuff.

 

-Shawn

Link to comment
Share on other sites

I always use 'snotes', 'swebsite', 'schangelog', 'version', and often use 'tag'. The rest are really best applied to templates, as they are more effective for groups of profiles (everything from sourceforge, for example, requires additional parsing fields). Version parsing has been a problem from day one, but iterating thru multiple variants of the the parsed version details to get the real version (stored as 'version') works wonders.

 

These are always local variables.

 

The problem with a global variable is that if you haven't assigned it (such as during an import from the online db), you could totally hose your download details or complicate things within your interface when you're trying to find specific details. I use only a few global variables, and they're all UA strings. I find it's much easier to test for specific browser-based problems if you can change the browser as easily as "{ie64}" or "{opera}".

Link to comment
Share on other sites

@shawn: The most effetive sign that I'm a newbie is that I'm "a bit lost" with some of your answers, but I'll come back and read it again once I'm more experienced (in a few days, probably). Nonetheless, I really do appreciate ALL of it! ;) I can already see there's some really valuable information there; something it would take me a few months and many mistakes to realize; now I can plan and "correct course" beforehand; Many thanks!

 

e.g. 1: FileHippo will give you a predefined {version} that many times has to be cleaned; how would I go about cleaning the {version} variable? Don't I have to create a new one (reversion) to be able to process it? Or can I trow it on a temp variable v1, process it and then reassign the cleaned value to {version} in the end?

 

e.g. 2: My custom column with {url:ext} will show absolutely nothing at all times on Ketarin interface, whereas my variable {extsn} is always showing the correct value for that specific software... (I think)

Edited by aurelio
Link to comment
Share on other sites

You're asking the right questions, which shows you've done a lot of research and that you're really trying to get a handle on this. That's awesome.

 

1) Filehippo sucks at versions, and sometimes the way their system is setup even with Ketarin you can't safely get the version number. You can still use a multireplace function in the 'save as' though if the changes are minimal. Other times FH is literally days or even weeks behind an actual release, so monitoring them instead of the origin source can leave you out in the cold. They've also renamed at least 3 apps I was following over the last few years, so the Filehippo tag simply didn't work anymore...and Ketarin doesn't provide any indication that it's changed. Further, FileHippo WILL ban your IP address(es) when you try to access too much information too quickly, so it's dangerous to use them whenever an alternative source is available (for all FH stuff I always enable the option to "do not download this application sumultaneously with other applications"). With all this in mind, I use Filehippo only as a last resort. I have just shy of 400 apps in Ketarin, but only about a dozen that use FileHippo. About 30 that *used to* use FileHippo, but I switched to something else because FH either wasn't reliable for it, or the info provided was insufficient.

 

For my own use I absolutely REQUIRE a changelog, and too often the info on FH doesn't include one. If they're not including a changelog, why not just get the file the same place as the changelog?

 

2) Use {file:ext} instead of {url:ext}. The {url} variable is ONLY available in web contexts and is not preserved thru closing and re-opening the interface for things like column behavior. On the other hand, the {file} variable *is* available all the time, so can be used for column sorting and such with no problems. Try it.

Link to comment
Share on other sites

You're asking the right questions... trying to get a handle on this...

Thanks. :) I'm really tryin'... This program is totally worth the effort.

 

Right now I'm stuck at trying to set up my templates, trying to format correctly and uniformly my variables for each "job" entry, trying to set up all the most useful custom columns at the program interface, and CLEANING up previous "jobs" entries. I'm using your VARIABLES as a big reference, although I'm tempted to change some of their names, for my own mnemonic reasons... (my memory is quite weak nowadays)

 

1) Filehippo sucks at versions... multireplace function in the 'save as' though... days or even weeks behind an actual release... renamed...apps...Filehippo tag...didn't work anymore... ban your IP address...access too much information too quickly... Filehippo only as a last resort... switched to something else...wasn't reliable...info provided was insufficient...

WOW! :o That's not one, but almost too many reasons to stop using FileHippo... :blink: Too bad, because it's soooo easy to set up. Anyhow, first time users will likely keep enjoying using it just for the almost-too-easy-to-be-true nature of it. Before, I was even thinking about navigating FileHippo entire SiteMap and collecting all basic addresses (and FileHippoId, consequently) to have on a small personal database here (and maybe this kind of info - that is already small enough, but really helpful - could already be incorporated into the program); My Internet connection here is not only limited, but quite weak, and besides being slow (depending on the time of day), it hangs up, drops the line all the time (when I receive my invoice in the end of the month, my connection description is always 6 to 8 pages long, front and back...) So, any off-line information usually is quite helpful (and valuable) for me.

 

Anyhow, I've set up a quite good Softpedia Template here, and it's working like a charm (sometimes it requires small custom details for each job entry, but it's not a big deal). I was thinking about using MajorGeeks before, but Softpedia seams to be a more complete source for all kinds of Software (at least so far).

 

2) Use {file:ext} instead of {url:ext}. The {url} variable is ONLY available in web contexts and is not preserved thru closing and re-opening the interface for things like column behavior. On the other hand, the {file} variable *is* available all the time, so can be used for column sorting and such with no problems. Try it.
That's great to know! Many thanks.

 

- Besides {file:ext}, what kind of information can we get from the {file} variable?

modified dates? {file:modified}? or {filedate:modified}? what's the difference between {filesize:formatfilesize} and {file:size} (if it even exists)?

Link to comment
Share on other sites

Generally its {property:X}

 

One other that deviates from the norm is {appname:regexreplace: \(.*\):}

This removes anything in the curved brackets in the appname. So if you have AppName (Description) it is displayed as AppName in that column. The negative aspect is that the icons are not displayed for apps. Though if your intention is actually to NOT display icons before app name then this would be ideal.

 

This also works for saving the downloaded file without the description.

Link to comment
Share on other sites

Generally its {property:X}

One other that deviates from the norm is {appname:regexreplace: \(.*\):}

This removes anything in the curved brackets in the appname. So if you have AppName (Description) it is displayed as AppName in that column. The negative aspect is that the icons are not displayed for apps. Though if your intention is actually to NOT display icons before app name then this would be ideal.

This also works for saving the downloaded file without the description.

Thanks! ;) I'm already using the {property:X} but it really isn't an "exact science" with those either...

 

For instance, I was really looking forward to having each file "modified" dates on a custom column, but none of the options below yield any desirable results:

 

{property:LastFileDate}:

= (only display the same date as "Last Updated")

{property:LastFileDate:yyyy.MM.dd HH:mm}:

= (only display the same date as "Last Updated" and still displays the seconds and " PM", even with the 24hour format HH)

{f:yyyy.MM.dd HH:mm}:

= (displays nothing)

{file:yyyy.MM.dd HH:mm}:

= (displays the filename, including the complete path)

{date}:

= (displays nothing)

{date:modified}:

= (displays nothing)

 

On the wiki, it says "{dd}) or like {f:dd}. The latter one refers to the date of the downloaded file, instead of the system date"

 

It took me a good while to figure out that I should be using instead:

 

{f:yyyy}.{f:MM}.{f:dd} {f:HH}:{f:mm}

 

It is so counter-intuitive (and barely documented) that it's no wonder I couldn't find it... Now I can even use {f:yyyy}.{f:MM} to have a special column that will allow me to sort by the month that those files where actually released (since Ketarin usually mimics the "modified" date from the fileservers it downloads from, I think). Why do we have to use "f", instead of "file" and why do we have to repeat it so many times is beyond me...

 

 

Another unrelated doubt that I'm having about cleaning up (after exporting the entire database to a XML file to be able to manually edit, search and replace, etc) is that whenever you import an application through a template, the whole template sits there in each "<ApplicationJob..." description, bloating up the whole database unnecessarily (in my case).

 

I think it would be better to eliminate completely the whole "<SourceTemplate..." section replacing it with <SourceTemplate /> . The only problem is that I'm afraid this will mess things up later on at some point...

 

@shawn: I had already seen and read thoroughly the wiki pages, but I think what they're really missing is some quick use examples to make things more clear for newbies like me... (I might be wrong, though; maybe I'm lacking experience - the good news is that with experience Ketarin will eventually allow me to customize it to behave exactly as I want it. :P )

Link to comment
Share on other sites

Thanks! I'm already using the {property:X} but it really isn't an "exact science" with those either...

It can be. :)

Open an exported xml file and look for the tag names. These are what are the appropriate names for the 'x' in {property:x}

Examples:

{property:LastUpdated}

{property:DownloadDate}

{property:VariableChangeIndicator}

 

It is so counter-intuitive (and barely documented) that it's no wonder I couldn't find it...

The wiki is open for editing. You're welcome to contribute to the docs. ;)

...whenever you import an application through a template, the whole template sits there in each "<ApplicationJob..." description, bloating up the whole database unnecessarily

This is part of the internal functionality and is actually very important. It ensures that if you used a template of any kind to import, that the variable values are preserved. This is especially useful on sites like SourceForge, Github and such where the host may change a relatively minor piece of expected code, breaking all the apps that you have setup for the site. If you used a template to parse them, you need only change the original template, reimport, and it'll "fix" all of them immediately.

Link to comment
Share on other sites

It can be. :)

Open an exported xml file and look for the tag names. These are what are the appropriate names for the 'x' in {property:x}

Examples: {property:LastUpdated} {property:DownloadDate} {property:VariableChangeIndicator}

I see now... good tip!

 

The wiki is open for editing. You're welcome to contribute to the docs. ;)
I'll definitely look into it. Maybe create a few examples/tutorials/improve the references. I didn't know it was open. This program is so damn good, I feel almost obliged to contribute and "give back" (even though I'm still a newbie).

 

This is part of the internal functionality and is actually very important. It ensures that if you used a template of any kind to import, that the variable values are preserved. This is especially useful on sites like SourceForge, Github and such where the host may change a relatively minor piece of expected code, breaking all the apps that you have setup for the site. If you used a template to parse them, you need only change the original template, reimport, and it'll "fix" all of them immediately.

That's very good (and important) info, but the problem with my specific case is that in a few days I already changed my main Softpedia Template at least a dozen times. Until it is "mature" and really good, I'd rather it didn't make any part of the jobs I have already set up. Later on, when I feel confident enough, I can edit the whole XML and "force" the new Softpedia Template into all those apps that use the site for downloading reference (I think).

 

It would be good if we could control whenever importing from a template, if we would like to keep or discard the template. It would same me some valuable time.

Link to comment
Share on other sites

When you're importing from a modified template that's properly formed (includes a Guid and is different from the templates previously used with the same Guid), then you'll be prompted to update and are NOT required to. If you're really maintaining a template though, you'll find you want to update the child profiles whenever you do, so you can ensure that your template is fully functional. It takes much less effort to test with the apps you've already created off of it with the pre-defined variables than it does to create a new app profile each time, and if you are being 'safe' by keeping a backup copy of the template, you're not at risk of losing the ability to revert to it should you need to.

 

Assigning the Guid is really the deciding factor. If your template doesn't have a Guid, then it's not really a template and wouldn't affect your other profiles regardless of changes. This is detailed in one of the changelog posts from mid-year last year when this functionality was added.

 

Oh...that reminds me, if you really want to see where the functionality is detailed, check out the changelog posts! You'll find them under the 'general discussion' forum with names such as "Ketarin 1.6.1 beta 2".

Link to comment
Share on other sites

  • 2 weeks later...
...importing from a modified template...properly formed (includes a Guid and is different...prompted to update...NOT required
It took me a while to see this because (yes, my own fault) I wasn't using a Guid on my Template...

 

...maintaining a template...you want to update the child profiles...ensure that your template is fully functional.
That's my current problem right now... I guess I'm not good enough (yet) at writing templates, as I don't know how to "avoid the trap" of customizing certain small characteristics and values given by the template here and there (editing some applications) and not loose these customizations when "updating" the template.

 

A good (and trivial) example:

I want to display the current version of the software in a custom column, so I have a {cur0} and {current} custom variables that's added to all my entries and included in all templates;

<!-- ### cur0 = temp var. to obtain the FileName (with path) ### -->
<TextualContent>-property:PreviousLocation}</TextualContent>
<!-- ### current = the current version of the Software, obtained from the FileName on Disk ### -->
<TextualContent>{cur0:regexreplace:.+(\s|_)v\.([\d\.\-_btalR]+(al|bt|\d|\d[a-z]))(\D.+)?\.(7z|exe|jar|msi|rar|xpi|zip):$2}</TextualContent>

It took me literally hours to figure out that I couldn't have "{property:PreviousLocation}" on a variable in a Template, so the only workaround I found was to swap the first "{" delimiter for a "-"; So, now, if I update a template, the least I have to do is export all entries; edit the resulting .XML file, swap back the first "-" for a "{" delimiter on the {cur0} entry; import the .XML file back again (and loose all the current values of custom variables of all entries).

 

Another good example is the SourceForge template:

in some rare occasions, the project in question will put all of their files in a single directory, without creating a separate folder with the specific version in the folder name; on these occasions, I have to "tweak" the template's values for certain fields a little bit.

If I update my SourceForge template (which is bound to happen) I will loose all those "tweaks", right? How can I avoid that?

 

Assigning the Guid is really the deciding factor. If your template doesn't have a Guid, then it's not really a template...
I think you had already said it before, but it took me a while (and some more experience) to realize what this meant and understand it better.

 

It all comes down to the fact that exporting a certain entry in Ketarin's main interface and selecting "Save as type:" with "Application Template" will only give you the basic frame for you to edit and create your own template, but it will come without a Guid, and, unless you actually go to the Online GUID Generator and get one (or more) Guid to manually put in your new template, it won't be a fully-functional template, as you said.

 

Oh...that reminds me, if you really want to see where the functionality is detailed, check out the changelog posts! You'll find them under the 'general discussion' forum with names such as "Ketarin 1.6.1 beta 2".
That's yet another great tip!

This forum is incredibly full of tips and good content, but it's all quite "spread out" in different posts, and the posts headers will only tell "a tiny part of the story" and most times, some of the content you're trying to find isn't related to the post header at all...

Unlike a few other forums (and I realize this should probably be a limitation of the IP.Board software), you can't modify or assign a specific "subject" to your Replies, so it makes it even harder to look for content without these "local bookmarks" (the "title" or "subject" of the message reply).

I've only now come to realize that using a custom Google search to look for content inside the forum is a bit more efficient... (I guess, it's hard to compete will Google's algorithms and capabilities anyways).

Link to comment
Share on other sites

I wasn't aware that the "{property:*}" syntax wasn't available within variables. That's disappointing, though in several years of use I've never needed to, so not really a deal-killer. What exactly are you trying to accomplish with parsing it?

 

As far as situations like SourceForge where you need behavioral changes in the template you have several options:

 

1) Use another template! If you have created a template that solves 90% of the downloads on a repository for SourceForge or another large site like that - use it for that 90% and make custom profiles for the fringe cases. It doesn't make sense to code a template that *will* work in every situation, but having to keep testing, updating and coding around issues for every single fringe case you might encounter. You'll find eventually that every case is a fringe case!

 

2) Use a variable to determine the behavior. In a couple of my templates it was important to do exactly what you're after: parse content from a site that MIGHT have a child folder that's based on some other value or is completely different, but needs to be determined. Using a variable that represents the child folder is the way around this. You can default it to something like "{version}/" for the common case, and then in the URL to the download you have something like "example.com/files/{child}{filename}"

 

3) Don't use a template at all! Templates are really ideal for minimizing labor of creating a bunch of app profiles that are consistent in almost every way. But for the fringe cases, or where the differences are just so distinct that it's not possible to plan around it, don't! Just make a one-off to deal with that specific app. The most significant benefit gained from a template is that it saves time because it's easy to update all of the child templates when a change on the target site invalidates their behavior. But realistically, if it's costing you this much time to get it all working perfectly, why choose to waste the time now instead of a future that may never come? Solve it for the current situation only, and address the future when the time comes.

 

If you're interested in nifty tools, check out DQSD - there's a command specific to generating a GUID in it: guidgen

Link to comment
Share on other sites

I wasn't aware that the "{property:*}" syntax wasn't available within variables...
Well... I don't think it's all "{property:X}", as I've used others in the template successfully, but unfortunately I stumbled upon {property:PreviousLocation} that will definitely prevent the template from being used. (or so I think...)

 

What exactly are you trying to accomplish with parsing it?
I... was shamefully using it to get the filename, store in a temp variable and then use this temp variable with a regexreplace to extract the current version of the software stored on disk (to display in a custom collumn);

 

As I was exploring the possibility of helping improve the wiki-pages for Ketarin, as you suggested, I discovered that {file} would give me almost the same result as {property:PreviousLocation} (it seems the only difference is that {file} uses "%20" notation for spaces in the path/filename, but I might be wrong about that);

 

So, now I eliminated the 2 variables ({cur0} and {current}) I was using to populate the custom column with the current version and I just enter "{file:regexreplace:.+(\s|_)v\.([a-zR\d\.\-_]+)(\sPlugins|\-NonIE|\-PRT|\-mega|\-experimental)?\.(7z|exe|msi|rar|xpi|zip):$2}" into the "Column value:". It's not succinct or elegant, but it works... How would you do it if you wanted to display the current version in a custom column? (would you also get the value from {file} or is there another way?)

 

...situations like SourceForge...behavioral changes i...several options:

1) Use another template

2) Use a variable to determine the behavior.

3) Don't use a template at all!

Oh, man..!! How didn't I see this before?...

Yes, in fact, for now it would be better for me to remove the template from the SourceForge items that were customized; Later (whenever I have the time), I can increase the complexity of the template and make it automatically adapt to those situations with yet a few more variables; Exactly as you said... brilliant! :)

 

In a couple of my templates it was important to do exactly what you're after

I would "give the world" to be able to see some of your templates! I'm not a programmer, so I really learn by seeing what others do and trying to understand it and adapt for my needs. I understand that you probably have a lot of templates and app definitions that you can't share, but if you could put the ones you can personally share with me and send me in a zip file (by PM or attached to a response), I would be immensely grateful. :) (I promise I won't misuse it or pass it around; I will only use it for reference in building my own templates)

 

Being really honest, I was more confused than anything by looking at the few (old) templates available at the forum... I think there's lots of room for improvement on this area for Ketarin:

  • first, there should be a more clear differentiation between "Application Template" and a "General Template" for sites like SourceForge, GoogleCode, Softpedia, MajorGeeks, BetaNews, FileHorse, etc.
  • second, the user who created the application should definitely be identified (and possibly included in the search)
  • third, there should possibly be a more complex rank and moderation for the online templates (give some special users the power the delete, modify, rename and lower the rank of submitted templates). I know this one would take a lot of work to implement and it isn't really practical (but still ideal)...

If you're interested in nifty tools, check out DQSD - there's a command specific to generating a GUID in it: guidgen
Yes, I am! Thanks for pointing it out. ;) This looks quite interesting; it must be really a "swiss-army-knife" Toolbar; his search examples there are borderline hilarious. :lol: I will test it (and just laugh about the "pow!" example every time I use the exclamation mark on it)... I like the idea of having the browser address field - and it's multiple shortcuts - right in my face at the taskbar; as long as it's not as heavy and cumbersome as most of the others desktop-search-toolbars (including Google's), I'll stick by it.

 

P.S.: About helping improve the wiki-pages for Ketarin, I'm not completely comfortable with the idea yet... I just saw yesterday there was a lot of spam pages on it, and I tried to clean it, but couldn't figure out a way to delete a spam page. Also, I'm not sure how to strictly follow the language used in it and the scrict formating to help keep the whole think cohesive enough; another problem is that any screenshots I can (and want to) produce will look nothing like the ones that are already there... (take a look below); I did already produce an excel spreadsheet (grab it here on fileden - it seems I don't have enough privileges to attach files here) with a table I would like to include in this page ( Special variables ) but I think it needs still a lot of refinement. Should I send it in a PM message to floele?

 

ketarin2aexample.png <<-- mine (WinXP)

 

Custom-column.png<<-- Wiki (Vista?)

Link to comment
Share on other sites

using it to get the filename, store in a temp variable and then use this temp variable with a regexreplace to extract the current version of the software stored on disk (to display in a custom collumn);

As far as I know, this is the exact behavior of the version column. Are you seeing differences in the behavior?

I would "give the world" to be able to see some of your templates!

Each of the templates that's "ready" for public consumption has been posted to the [a=https://ketarin.org/forum/index.php/forum/7-templates/]'templates' forum[/a]. For specific examples of behavior parsing check out the [a=https://ketarin.org/forum/index.php/topic/592-codeplex-template/]codeplex template[/a], [a=https://ketarin.org/forum/index.php/topic/550-official-nvidiacom-site-drivers-template/]official nvidia drivers[/a], and [a=https://ketarin.org/forum/index.php/topic/495-shawns-microsoft-template-revised-2011-07-08/]Shawn's Microsoft template[/a].

These demonstrate path parsing, using a variable list and a few other important behaviors. Also, check out [a=http://synergyfoss.org/]Synergy[/a]. There's a [a=https://ketarin.org/forum/index.php/topic/720-synergy-template/]template for it[/a], and it's awesome. :)

there should be a more clear differentiation between "Application Template" and a "General Template"

I believe almost every template from the last couple years on the templates forum is what you consider a 'general template'. The distinction is really only whether or not there's a 'placeholder' in the template. Without that, it's an app profile - and those are now shared pretty much exclusively thru the online database.

the user who created the application should definitely be identified (and possibly included in the search)

You can search with the forum search tool. The author is almost always the one posting the template, so search 'posts by author'.

there should possibly be a more complex rank and moderation for the online templates (give some special users the power the delete, modify, rename and lower the rank of submitted templates).

I don't see how this would be useful. They're shared thru a forum - my only real complaint is that you can't always easily copy the actual template out without having to edit it to fix HTML-ization of some of the entities. I can only imagine how difficult it is for people that don't code all day long.

This looks quite interesting; it must be really a "swiss-army-knife" Toolbar;

I've been on the dev team for DQSD about a decade. I *love* it, and it's the absolutely first thing I install on a new computer. WIN+S will get you there. Type something and it searches google by default. Prefix it with a command code (such as yh) will change the behavior to a different search engine. When in doubt about what searches are available, type a search keyword and a questionmark (guid?) to get usage instructions. This tool saves me hours every day in menial labor from things like reformatting text for HTML, converting the clipboard to lowercase, searching for code samples, finding people and so on. I live in that toolbar.

About helping improve the wiki-pages for Ketarin, I'm not completely comfortable with the idea yet... I just saw yesterday there was a lot of spam pages on it, and I tried to clean it, but couldn't figure out a way to delete a spam page.

We do appreciate everything you're willing and able to do - including tagging spam for removal. I personally haven't worked on the Wiki (and I closed one of my son's wiki's just a month or two ago because it was getting spammed to death). I love the idea of a peer-submitted and managed information resource, but in my experience wiki's always turn to crap unless you've got a very heavy-handed wiki manager or awfully restrictive settings.

Should I send [the attached file] in a PM message to floele?

No. He visits the forums as time is available, and will get it from here when he does (if necessary). We have a couple other people that are more keen on editing the wiki and frequent the forum more often.

Link to comment
Share on other sites

As far as I know, this is the exact behavior of the version column. Are you seeing differences in the behavior?

Well... If I use {version} to retrieve whatever content the web pages will give me as the last version (or current version there, online) and I use a regex applied to {file} to retrieve the current version on disk, they will certainly have different values, unless I update every single entry, every single time. With bandwidth restrictions, and wishing to know which version I currently have, {version} would give me the wrong versions for some entries if I don't update them every time. (see the image examples below)

 

Right after a "check all for updates only":

ketarinupdate1.png

 

After you then exit the program, if you come back (another day); observe the difference between what is extracted from {file} and {version} :

ketarinupdate2.png

 

Each of the templates that's "ready" for public consumption has been posted to the 'templates' forum
Thanks for the links. I will take a second look at those templates. The first time around I looked at them I found them a bit complex and confusing for me; besides, there is 'zero-comment' in the code, so it makes it even harder for newbies like me with no real coding experience. I saved all of those codes you pointed me towards and I know if I take my time looking at them, I will find great solutions that I can adapt for myself.

 

I've been on the dev team for DQSD...This tool saves me hours every day...I live in that toolbar.

I think I know how you feel... I have my Ghisler Total Commander with me everywhere I go on my pendrive. I do absolutely everything in it and from it; I like it so much I gave it as a birthday present to my father once; unfortunately, he didn't appreciate it as much as I had hoped he would... :D

 

We do appreciate everything you're willing and able to do - including tagging spam for removal. I personally haven't worked on the Wiki... We have a couple other people that are more keen on editing the wiki and frequent the forum more often...

I want to help with content, but as a newbie, I have my doubts if the content I will include will be accurate enough and use the proper language and formatting; There's always the option of rolling back whatever I edit anyways (and I surely won't be offended by it), but I don't want to be an inconvenience; I want both to help new users like me with the little knowledge I'm gaining and give back a little work for a freeware program that is so helpful to us.

 

I can see 2 areas that are really missing content right now on the wiki:

  • Custom Columns (some examples and screen caps on the wiki are still from the time you apparently only had 1 or 2 Custom Columns fields available on the interface)
  • property:X variables (there's only a vague reference to look at the exported XML, and I think it could be incredibly useful for newbies if the content were to be more detailed)

Link to comment
Share on other sites

Its not exactly on topic but perhaps someone finds some use for these. A while back i was researching a way to get version info from the downloaded file and importing it into a ketarin variable and rename a file based on its version number. While the import does not work, the command to get version number does. This one is all internal. No 3rd party tools needed (Vista/Win7/Win8/Not sure about XP):

copy NUL %temp%\VersionInfo.vbs
echo set args = WScript.Arguments>>%temp%\VersionInfo.vbs
echo Set fso = CreateObject("Scripting.FileSystemObject")>>%temp%\VersionInfo.vbs
echo WScript.Echo fso.GetFileVersion(args(0))>>%temp%\VersionInfo.vbs
echo Wscript.Quit>>%temp%\VersionInfo.vbs
cscript //nologo %temp%\VersionInfo.vbs "{version}"

 

And the second one needs sigcheck.exe: http://technet.micro...s/bb897441.aspx

sigcheck -n -q "C:\AppName.exe" > %temp%\Version.txt
set /p FileVersion= < %temp%\Version.txt
cd /D "C:\"
ren "AppName.exe" "AppName v.%FileVersion%.exe"

 

Topic where this was discussed: https://ketarin.org/forum/index.php/topic/734-pipe-system-variable-value-into-ketarin-variable/

Link to comment
Share on other sites

Right after a "check all for updates only"...

Ah. That would be why. I use a multihomed internet connection with two separate ISPs in order to ensure that my 'net never goes down. I don't think I've ever used the option to 'check only'. I can now see why that ability would be important.

...Total Commander...

Flashbacks! Wow, that was the bomb back in the 90s - everything you loved about Win 3.x on Win98. :)

I can see 2 areas that are really missing content right now on the wiki

Do what you can. :)

Link to comment
Share on other sites

Tomorrow, the first sample you provide should be passing the filename & path of the specific file, not the version number. But more than that, is Ketarin actually able to *return* information from a parsed script like this? I didn't think it was possible to assign or parse variable values outside of the "Edit Variables" page.

 

On THAT note though, it sure would be awesome to be able to use a script such as C#, batch or VBS to parse for a variable on the system. Adding that capability to "content from URL (start/end)", "content from URL (regex)" and "textual content" would significantly extend the ability to parse for this kind of situation. Flo, is this possible?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • 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.