Welcome to the Invelos forums. Please read the forum rules before posting.

Read access to our public forums is open to everyone. To post messages, a free registration is required.

If you have an Invelos account, sign in to post.

Invelos Forums->Posts by mediadogg Page: 1... 3 4 5 6  Previous   Next
Message Details
Quoting Magmadrag:
Quote:
I can ensure you, as long as there is data in the dummy profile, it doesn't matter if it is owned, ordered or wishlist. There are a few profiles in my wishlist, and even they are part of the update process.

This way I'd like to say that for the program it doesn't matter where the cast & crew is to find in a profile. As soon as they are anywhere without a BY, they became part of the ACTORS/CREW files.

Not sure if this thought could be integrated in THIS tool or needs another one: You remember a few posts before I had the death date issue. Well, there's the same one with birthyears: I found actors with a BY listed in movies which were produced several years before they were born. But I think this check might need another tool, as I got no logically idea how this issue has any connection to the problem I started this thread for.

Not importand but anyhow confusing and funny: To find out if the actors listed in the profiles are the ones with the right BY, I have to check a lot at the IMDB. And today I reached an actress, allready passed away in 1998, and they list several movies "in planning" up to 2026. I can't imagine that she has been kind of mummified and now only plays dead corpse.

That's funny! 

Anyway, don't worry about what the original purpose, etc. I can make the tool do whatever I want. So, what check are you talking about for the hypothetical other tool? I already have in mind a cross reference that includes a column for both birth and death years.
Posted:
Topic Replies: 168, Topic Views: 10324
Good news:

I think I solved the performance issue, without voiding the results.

My database is 1400 profiles. That resulted in over 47,000 unique credits. The dummy profile contains about 60 cast and 40 crew. The whole process took under 5 minutes.

Of course we will all be validating the results as soon as I get something that you can use. I will be working on that for the next few days. As I mentioned before, if you have any specific ideas other than those already presented, speak up, and I will try to get the easiest things done in the first release.

I'm not totally sure, but having the dummy profiles in the Wishlist might not result in the database being permanently updated. I need to do some more testing. It would make sense, as Wishlist profiles are not yet owned.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:

Well, as long as they are the ones with accepted/released Birthyears I think that's neccessary. Or what do we have the BYs for, if nobody cares about their use?

You didn't create BYs. Somebody else who cared about their use, did. And other people maintain a website supporting accepted ones. Get a grip on yourself.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:
Does this mean you don't cere if the data in your collection is correct? That's a shock!

Look don't try to start analyzing or judging me. Do your thing and I'll do mine. Of course I care whether the data is correct. Why do you think I have 20 years of plugin programming to help people who worry about the data.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:
If you would like to enhance your "imagination" how much profiles have to be corrected because of wronlgy used birthyears, just check all your profiles with any "version of "John Moore".

I'd like to say that I had to correct about 70 % of them (most times wrongly used the 1966 insted of the 1968 one).

I will  take a look for education. But I am depending on you for the imagination. I have mostly no clue about this stuff. Writing code and solving problems for people is a hobby and I enjoy it. But I really don't care much about the actual problem in most cases. Of course I need to understand it, but the passion is not there.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:
Quoting Magmadrag:
Quote:
Not sure if I should post this here or create a new thread as this could be a new tool - if even possible.

The difficulty for the possibiliy is that we don't list the death dates anywhere. If available, Luigi lists them, but if not.....

And I got to this as I had to find out that "Peter Cook (1937 - 1995)" is credited in several profiles as an actor after his death (e. g. "Terra Nova")

So if we would have any list of death dates a tool would be interesting to check out cast & crew, if they are credited after their death. That's only possible for "archive footage". The only chance to question if the credits could be correct is "Production Year - 90 > Birthyear".

It's only a thought (for a future far far away^^) but another way to find out probably wrongly used cast & crew


Second recognition about this: Sometimes it's funny - because it can't be real - to have an actor, BY 1950+ credited in a movie before his birth. Another fact to be checked.... manually work is horrible. When I am done tonight, the BY-list is done for actors up to letter C - and I'd like to say that I had to change/correct more than 100 profiles....

What is in my mind is a tool that has the dummy profile entries, the full set of local cast/crew, the common names, and accepted birth years with the ability to interact and make changes to the database.

What functions could you imagine to be on the context menu (right click) when you select an item from one of those lists? I know it will be easier once you get the tool to play with, but in case you already thought of something.
Posted:
Topic Replies: 168, Topic Views: 10324
For whomever might be interested, here is the code so far:

(1) Create a master dictionary of cast and crew credits in the local database

The key is: "Cast_fn_mn_ln_{by}" or "Crew_fn_mn_ln_{by}"

The dictionary entry is an instantiation of the  CastCrewEntry class:

        class CastCrewEntry
        {
            private string _FirstName = "";
            private string _MiddleName = "";
            private string _LastName = "";
            private string _Part = "";
            private string _CreditedAs = "";
            public string FirstName
            {
                get => _FirstName;
                set => _FirstName = "" + value;
            }
            public string MiddleName
            {
                get => _MiddleName;
                set => _MiddleName = "" + value;
            }
            public string LastName
            {
                get => _LastName;
                set => _LastName = "" + value;
            }
            public string Part
            {
                get => _Part;
                set => _Part = "" + value;
            }
            public string CreditedAs
            {
                get => _CreditedAs;
                set => _CreditedAs = "" + value;
            }
            public int by = 0;
            public bool Voice = false;
            public bool UnCredited = false;
            public bool Puppeteer = false;
            public int CreditType = 0;
            public int CreditSubType = 0;
        }


(2) Create a dummy profile placeholder for the newly created credits
                    DateTime date = DateTime.Now;
                    string DummyTitle = "Cast and Crew Dummy Profile";
                    string dummyID = "M" + date.ToString("yyyyddMMHHmmss");
                    dVDInfo.SetTitle(DummyTitle);
                    dVDInfo.SetProfileID(dummyID);
                    dVDInfo.SetProfileTimestamp(date);
                    dVDInfo.SetDVDReleaseDate(date);
                    dVDInfo.SetCollectionType((int)PluginConstants.COLLTYPE_WishList);
                    DVDPFauxAPI.FauxAPI.DVDProfilerAPI.SaveDVDToCollection(dVDInfo);

(3) Now scan the master credits dictionary in a loop (this is what I will be trying to speed up)

When an entry has a by>0, then I synthesize a key, using "{0}" for by. If found, I move on.

If not found, I extract the CastCrewEntry object from the dictionary, set by=0, then add that credit (cast or crew) to the dummy profile and save it. Since there was no such credit in the database, this causes a new entry in the database table for cast or crew (at least I think it does).

Continue for all entries in the dictionary.
Final save of the profile.
Call for a database resync to update pointers.
Done.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting GSyren:
Quote:
Quoting mediadogg:
Quote:
And if that does happen, I can envision a fix. Costly in terms of time, but it will work. Once the profile is saved, I can reload it with a refreshed database pointer and compare, and simply re-write to the database with the BY reset back to zero.

I'm not sure that that is going to work. If the added profile contains a birth year, that would mean that Profiler used the existing cast (or crew) record. So changing that birth year would not create a new cast record, but either change the birth year for the existing record or fail, depending on how Profiler handles it internally. At least that's what I think will happen.

What might have a better chance of succeeding would be to assign a fake birth year (like 9999) instead of zero when adding the profile. This would force Profiler to create a new cast entry, which could possibly be changed afterwards to zero. Not sure though if such a change would change the actual database record, or just temporarily change a copy in memory.

The cast is not not actually stored in the profile, just pointers to the database table. Rest assured that there is way to make it happen, using the API, even if you have to use tricks.

I have working code by the way, for the originally proposed tool. No GUI yet, such as menus, progress bar, log, etc.

And with all the ideas, it will be awhile before the first release, but I think it will have some fun stuff.

Next task is to get the code I have working, running faster. It is painfully slow, but maybe not necessarily. Once I get that done, I should probably put a rudimentary GUI on it, so you guys can validate whether is is actually doing what I claim, and we can test any theories about what the API does or can be made to do, because we will have code. Which I am happy to share by the way. Nice thing about FauxAPI, is that you can change the code if you want, compile to dll and replace my version to test any idea you have.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:
Not sure if I should post this here or create a new thread as this could be a new tool - if even possible.

The difficulty for the possibiliy is that we don't list the death dates anywhere. If available, Luigi lists them, but if not.....

And I got to this as I had to find out that "Peter Cook (1937 - 1995)" is credited in several profiles as an actor after his death (e. g. "Terra Nova")

So if we would have any list of death dates a tool would be interesting to check out cast & crew, if they are credited after their death. That's only possible for "archive footage". The only chance to question if the credits could be correct is "Production Year - 90 > Birthyear".

It's only a thought (for a future far far away^^) but another way to find out probably wrongly used cast & crew

At this point, anything is on the table. It is a new tool so we can do whatever we want. I will be in London for a week with my Son and family, so I will enjoy having some kind of project to play with when the kids are asleep.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting DJ Doena:
Quote:
Quoting GSyren:
Quote:
Quoting mediadogg:
Quote:
So changing that birth year would not create a new cast record, but either change the birth year for the existing record.


In the API you don't really have access to the cast/crew as people. You just can tell a profile that it contains this first, last and middle name with that birth year. There is no way to edit an actual person.


That is not me you are quoting. You know that I know better. Editing the cast and crew comes pretty close to editing a person. You can even make new ones.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting GSyren:
Quote:
Just a thought:

When you download a profile and it has a person w/o birth year, and your local database has the same name with a birthyear, the person in the downloaded profile will get that birthyear. This is the problem that Magmadrag wants to avoid.

But ... what's to say that the exact same thing doesn't happen if you add a profile (without a birthyear) through the API? It might be a good idea to test this - if not already done - before investing a lot of time and effort.
And if that does happen, I can envision a fix. Costly in terms of time, but it will work. Once the profile is saved, I can reload it with a refreshed database pointer and compare, and simply re-write to the database with the BY reset back to zero. It will work this time because the new cast/crew entry will now already be in the database. Actually I would save the entire credit entry and restore it, if I discover the BY is not still zero.
Posted:
Topic Replies: 168, Topic Views: 10324
Sausage and peppers please! 

(Well they are pretty standard, IMHO) 
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting GSyren:
Quote:
Just a thought:

When you download a profile and it has a person w/o birth year, and your local database has the same name with a birthyear, the person in the downloaded profile will get that birthyear. This is the problem that Magmadrag wants to avoid.

But ... what's to say that the exact same thing doesn't happen if you add a profile (without a birthyear) through the API? It might be a good idea to test this - if not already done - before investing a lot of time and effort.

A good idea, although much of the effort that part of has already been expended. The other ideas I have are related, but independent of how the data arrives.

I agree it would be interesting to know the answer. If you have a couple of profiles I could use to observe, it would help, since I am on a thin line of understanding this stuff. No rush.
Posted:
Topic Replies: 168, Topic Views: 10324
Thanks. I have so many ideas now. You will be amazed.
Posted:
Topic Replies: 168, Topic Views: 10324
I found it!!!

http://www.luigifilocamo.it/BY.html

What does it mean when an "accepted" By has "(19??)"? Does that mean BY=0 (no birth year)?

What does this mean: Robert Young (1935-2011)?

Why no middle names?
Posted:
Topic Replies: 168, Topic Views: 10324
Also thinking about this:

"A tool which "knows" all the accepted/released BYs and checks all cast & crew in any profile I want it to check if there is any cast/crew WITHOUT a BY but is in the list WITH a BY. So then I know that I have to check this person if I allready have it in my database with one BY or another."

It was easy for me to get all the common names for CLTBoss (latest update I forgot to release). There doesn't seem to be as organized a list of accepted birth years. Am I wrong? Any developer that has code already that gets them?

As far as common names, do they automatically have accepted birth years?
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:
And the dummy profile is my "guide", too:

Whenver one of the cast & crew in the dummy profile has a count higher than 1, I know that there is someone I need to check.
OK, I will  think about that. Of course it would be not hard to have a display of all cast / crew with count > 1.
Posted:
Topic Replies: 168, Topic Views: 10324
I think I can now describe my confusion:

In your fist post, you gave an example. As the tool is working, it finds a name with a BY, but there is no corresponding credit in the local database with no BY, so it creates one.

But by definition, they are two different people. Isn't that what BY is for? To distinguish between people with the same name, but a different BY? Why is having a dummy profile with the wrong credit in it, helpful? It seems you are creating exactly the same problem you describe. When a new profile comes into the database with no BY for this case, there is no way to know if the credit we created is for the same person. Exactly the problem you are trying to solve.
Posted:
Topic Replies: 168, Topic Views: 10324
Ok, I have some code written in test mode. There is no GUI (progress indicator, etc.), but it basically works. However, I am having a confusing time convincing myself that it does what you want. I'll get some sleep and think about it some more. Tomorrow, I'm spending mostly with my wife on Mother's Day.

For my collection of 1400 profiles, it took about 2 minutes.
Posted:
Topic Replies: 168, Topic Views: 10324
This is what I am doing:

"So it would be neccessary to have every cast & crew WITHOUT a birthyear as soon as there is the same name WITH birthyear in the local database."

When my tool is done, there will be a dummy profile that has every cast and crew in the local database, with BY=0.

Is my understanding correct?
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:
I have answere this twice: I keep the dummy profile in my wish list!


Was that comment really necessary? What I was asking for, was the information you went on to explain. I am asking these question so that I don't waste my time writing a tool that does not do what you need. If it annoys you to spend a few minutes helping me understand, so that I save you hundreds of hours?

Thanks for that explanation. I should have something for you to try soon. There are still a couple of areas of confusion for me, but I will try to write my code so that I can change these areas if I find I made the wrong guess about what you want.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:
@mediadogg

Quoting DJ Doena:
Quote:
The problem is that DVD Profiler is stuck in Windows XP 32-bit world with the known "foreign letters" ANSI technology on top. At some point you will just reach the natural limits of what this program is capable of.


As I got "enough" foreign films with special French, Scandinavian and other foreign letters, I would need to find out which profile(s) cause those trobles - if it depends on those special characters.

But doing that search with a database of that size is something I simply don't have the time for. So far I didn't have any reason to export the database (might be neccessary if I will start a new homepage again - but actually that is a very BIG if). And in the past I tried several AddOns to find the reason for this problem (and others).... but we all know: More AddOns/Plugins, more danger to crash the database. And as I had this more than once....

Well, so I simply avoid all Tools I don't need. Which means that there are 2 constantly in use so far: Your "BulkEdit" and DJ Doena's "Initialize TVShow Child Profiles". And since I only work with those two, the number of datbase-crashes was reduced nearly to Zero.

Music to my ears. BulkEdit has been my "tour de force". Many hundreds of hours of programming and testing by me and loyal users, full of tricks and API bug workarounds, and so far (crossed fingers), no reports of a lost database. Keep praying ... 

Now regarding the new tool I am about to start, it might help me to know: what do you plan to do with the cast / crew entries in the dummy profile(s)?

By the way, Gunnar and I have sorted out several cases of corrupt profiles in the years we have been working together. I will watch for it in the new tool - maybe I will find the one that is causing the problem. Otherwise, you are likely to be hitting some kind of computational limit.

The most often corruption I have seen in a profile, not due to an API malfunction, is a "formfeed" (0xC in hexadecimal) character in the Overview. When somebody has done a copy / paste into the overview from a source intended to be sent to a printer.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting GSyren:
Quote:
What I mean is that if the database is already compromised (export crashes) then I wouldn't try to add data en masse. Not through the API or otherwise. Not meant to disparage plugins in any way.

Posted:
Topic Replies: 168, Topic Views: 10324
Quoting GSyren:
Quote:
Quoting Magmadrag:
Quote:
I would need to export my (whole) collection to xml and export doesn't work anymore. It runs and runs... and at about 99 % the Error-Popup comes...

DVD Profiler can be a bit unstable. So if I had that problem, I wouldn't want to mess up my database further by trying to add stuff via the API. But that's just me. At least not without first finding a way to fix that export problem.

I assume that you have tried a database repair? I realize it's really slow with a database of that size, but it should be done.

That's hilarious. Adding stuff with the API is the Invelos provided, and sanctioned way to do things programmatically. In general, you don't "mess up" the database any more than the main program does when it has a bug. That's why we test and make backups. People should not fear plugins.
Posted:
Topic Replies: 168, Topic Views: 10324
Quoting Magmadrag:
Quote:
Okay, I found it and istalled it....

Perfect, now if you can just answer the questions (see in RED), I will get started.

Actually the last question was dumb, you can ignore that one.
Posted:
Topic Replies: 168, Topic Views: 10324
Invelos Forums->Posts by mediadogg Page: 1... 3 4 5 6  Previous   Next