Jump to content
Ketarin forum

File Updates


Nologic
 Share

Recommended Posts

Okay here is the problem...Ketarin is downloading stuff I already have present...further more it's already been at least once verified by Ketarin.

 

Steps to reproduce:

1. Export your current DB to XML, regex it to only have basic information...this must be done on a large collection to run into the problem. I have a set of around 400 app's and like 60 of them want to be updated again.

2. Clear your database through the GUI to where there are no app's present.

3. Close Ketarin & then reopen.

4. Import your XML and check for updates.

 

Example Entry:

<ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <WebsiteUrl>http://www.adobe.com/products/air/</WebsiteUrl>
 <UserAgent />
 <UserNotes />
 <IgnoreFileInformation>false</IgnoreFileInformation>
 <DownloadBeta>Avoid</DownloadBeta>
 <DownloadDate xsi:nil="true" />
 <CheckForUpdatesOnly>false</CheckForUpdatesOnly>
 <VariableChangeIndicator>version</VariableChangeIndicator>
 <CanBeShared>true</CanBeShared>
 <ShareApplication>false</ShareApplication>
 <ExclusiveDownload>false</ExclusiveDownload>
 <HttpReferer />
 <SetupInstructions />
 <Variables />
 <ExecuteCommand />
 <ExecutePreCommand />
 <ExecuteCommandType>Batch</ExecuteCommandType>
 <ExecutePreCommandType>Batch</ExecutePreCommandType>
 <Category>Browsers and Plugins</Category>
 <SourceType>FileHippo</SourceType>
 <PreviousLocation></PreviousLocation>
 <DeletePreviousFile>true</DeletePreviousFile>
 <Enabled>true</Enabled>
 <FileHippoId>adobe_air</FileHippoId>
 <TargetPath>{startuppath}Updates\{category}\Adobe Air {version}.{url:ext}</TargetPath>
 <FixedDownloadUrl />
 <Name>Adobe Air (Freeware)</Name>
</ApplicationJob>

Link to comment
Share on other sites

So let me get this straight: you purged the jobs.db, added a new app profile (for which a file existed in it's place on the drive) and when you ran the update it downloaded the file again?

 

That's expected behavior.

 

The database stores more information about files than simply what's exported. In this instance, since you've purged the data the file information is purged as well, and Ketarin does not make any assumptions about the existing file-system when it performs updates. If you don't want to have to download the application again, don't purge the db.

 

Some sources, including FileHippo, sometimes push the same file even when you've already downloaded it and have not purged the database. In these situations you can use "version" as a change indicator and it'll prevent the endless repetition of downloads.

Link to comment
Share on other sites

So let me get this straight: you purged the jobs.db, added a new app profile (for which a file existed in it's place on the drive) and when you ran the update it downloaded the file again?

Correct

 

That's expected behavior.

hmm shouldn't be

 

 

 

The database stores more information about files than simply what's exported. In this instance, since you've purged the data the file information is purged as well, and Ketarin does not make any assumptions about the existing file-system when it performs updates. If you don't want to have to download the application again, don't purge the db.

It may very well store all kinds of goodies...but the fact that I provide a matching path to a valid file, that does contain version number as outlined in the "<TargetPath>" element is ample to verify the file on that alone, that fact that file size can be also determined from the local and download file prior to download is also an additional step to prevent further downloads.

 

It would be completely understandable if my local file didn't contain that information or was else where on the file system.

 

 

Some sources, including FileHippo, sometimes push the same file even when you've already downloaded it and have not purged the database. In these situations you can use "version" as a change indicator and it'll prevent the endless repetition of downloads.

hmm unless FileHippo is editing the download...file size match should prevent download.

 

I think the behavior can be changed...I can do this stuff in AutoIt so it's absolutely certain this can be done in .Net. :)

Link to comment
Share on other sites

Why would the program assume that a file of the same name as the source is the same file? That's insufficient knowledge for the program to determine whether it's a duplicate. More importantly, since you've purged any "state" data from the import file *and* Ketarin, there's no way for it to know whether these files were ever checked *by Ketarin* in the past. If you go to a doctor for a physical with a cast on your arm, would you expect him to ignores the entire arm, and assume that "someone else" must be taking care of it? Or would you still expect him to do a complete physical?

 

That you're including the version in the file name is meaningless. It's *cosmetic only* - you can include the date, a timestamp or a random line from Spaceballs, but it is not going to (and SHOULD not) change the behavior of Ketarin just because another file has the same name or a similar sequence of characters in it. I would be far more concerned if it did, as that would prevent it from actually performing the updates when they were necessary.

 

unless FileHippo is editing the download...

FileHippo does *not* store all files locally. Many are redirected thru to another CDN or the original source. Adobe is one of those providers that has strict requirements for redistribution. As I said in the other thread you started today, if the server doesn't provide sufficient information to inform browsers of the file then it is (and should be) assumed it's new/unique.

 

file size match should prevent download

File size should NEVER be used as a sole determination of whether a file is changed. While some servers don't provide the file size in the response headers, even if they did there are many situations where an update wouldn't change the filesize. Applications compiled by some compilers always sync to a certain byte-width (VB6, IIRC, always compiles to a 16 byte offset) - adding anything from one character up to 8 additional commands might have no effect on the file size whatsoever, and if other commands are removed as well, the possibility of creating files of the same size is increased significantly.

Link to comment
Share on other sites

Okay why would it assume that a file on my file system is the correct file when it's named correctly and has the apparent correct file size...probably because it's logical that it is.

 

You seem to be fine with downloading a file that doesn't have a MD5 hash present...so how exactly is that better than file size...answer it isn't...even if it does have a hash...is it known to be in fact correct...why no it isn't.

 

Prompting me asking me if it should accept or redownload would seem like a reasonable thing to do...or if I have the option...and it's set to allow by version tag in name...or just simply being present...then it should accept such wishes...and not go running off thinking it knows better.

 

There is NO way ketarin should be wasting my day or some file hosts bandwidth just because it's to fucking arrogant for it's own good.

 

I find it interesting that you believe in little green men that drop files on people systems...rather than believing that the person using the machine put them there and knows what they are doing.

 

version name in file naming is cosmetic....yeah like ceterline rims are cosmetic when all I need are radio flier wheels right?

 

As for seeing the doctor...if that son of a bitch goes taking a saw to my arm when I came in to see him about the sniffles...I'll bust that SOB's arm...where I'm from taking a saw to someone for giggles is assault.

 

All I got to say is that auto machanic's must love seeing you roll in...what need your tires filled...well you transmission looks overly dirty...let me go open that up for you and see if I can find the problem.

 

fucking idiot.

 

You want to make excuses for bad design chooses...that's fine by me...but sure as the hell don't go trying to shove that shit down my throat and call it ice cream.

Link to comment
Share on other sites

Clearly your name isn't a misnomer. You truly lack the ability to use logic. And the ad hominem attacks are doing you no favors.

 

If you don't want it to overwrite files that Ketarin already downloaded DO NOT purge the Ketarin database. Blaming an application for not behaving how you expect when *you* change the rules is the height of hypocrisy. If you don't understand how something works, ask.

 

If you want to prevent it from downloading when a file of that name exists use the "before updating an application" script to determine if a file of that name already exists, and "exit 3". You can do this from "file, settings, commands", so it'll work on a global basis.

 

You could alternatively check the file size or any of the other random values you think are legitimate within that script. Of course, anything other than the output filename will not be available at this time - so you need to obtain the other data (such as MD5, filesize and so on) from the applications webpage.

 

We've been at this a couple days now and you have yet to actually say whether you've even tried the "change indicator" option which I suggested in my first response to you. Do you know how it works?

Link to comment
Share on other sites

hmm clearly you grasp the basic issue here...if the DB gets damaged everything is out the window....you seem to be fine with that.

 

Oh I can use logic...and I find it puzzling that such simple options aren't in place...and instead you wish the end user to pump code in time after time to make up for such short comings.

 

If I'm wring all this code to down load app's...why not do it once and write my own app...this whole thing is little more than a over glorified batch script in and of it's self.

 

As for your "change indicator" don't see it any where.

 

Anyways this is all for not...my time and code are going else where...writing something like Ketarin is little more than a weekend task...even with me not being experienced in C#.

 

So go ahead and keep telling folks it's okay for them to pump 15 or so lines of code into EACH app request...rather than doing the 50 or so to add it to the app.

 

Truly brilliant...can't even read a fucking XML file without fucking up...christ.

Link to comment
Share on other sites

I'm not the author of the program. I'm a volunteer that works on the forum for an application I love so much that I use it every single day.

 

You astound me. You've spent 2 days bashing the app without having even fully explored the options. You've been extremely critical of it based on your own lack of experience and understanding, and even had the audacity to come on the forum here and fling insults at me for trying to help you. You've been rude, to put it politely. Nevertheless, I've tried to answer your questions and address your concerns.

 

There's a wiki dedicated to explaining a lot of the variables and features, including various demonstrations of the scripting capabilities.

 

The change indicator option is on each app profile under the "advanced settings" tab. It says "use the following variable as indicator for changes" and has a dropdown with a list of variables that apply to that app profile. In the XML output it's the "VariableChangeIndicator" tag.

 

The "15 lines on each app profile" can be as simple as one line in the *single* option I've already told you to look at (File, Settings, Commands):

IF EXIST "{TargetPath}" exit 3

 

But I'm sure creating your very own "weekend project" to replace all the functionality already exposed by Ketarin will be a far sight better than adding these mere 30 characters in a single option. Better get right on that. I suggest against publishing it online though, as there are some really sad idiots frequenting user forums that go around whining about things they don't ever bother to research on their own.

Link to comment
Share on other sites

Thank fucking god your not the author other wise things would clearly be in worse shape, then again I haven't met the author...so I could be wrong on that.

 

I've gone though the wiki, it brushes over things and is near useless.

 

Insult you...hell you've spent most your time on this subject straight out defending the app rather than actually trying to resolve shit...further basically been calling me an idiot from the get go.

 

Now whether it's 1 line or 15 lines matters little given it's a simple bit of code that SHOULD be in the frame work...yet isn't...end users have to write that code or other repetitively per app...when this simply shouldn't be so.

 

Hell I have released software to the net several times...and when I make bad design calls, and it's brought to my attention I see about resolving it...plus why not...there are always morons looking to defend dead code like it's some young helpless child...it's disgusting.

 

The fact you don't recognize that this simple functionality should be part of the default feature set goes a long ways to proving you're a moron.

 

Frankly it makes more sense to write one app that does ALL the base work than writing hundreds of sub programs to do the same shit over and over again...flat bad design.

 

Idiot

Link to comment
Share on other sites

  • 2 months later...

For the record, I just started using ketarin today and figured out what you were describing from reading the wiki lol. The variables and commands arent brain science cool guy. Just need to follow instructions, or rather listen to someone trying to help so that they can do just that. Cocky people in programming never end up being successful btw. Theres always someone to put that flame out for ya.

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.