[FR][EN] Ant Movie Catalog 4.2.1 (04/11/17)
In version 3.6.0 and 3.7.0, I changed "$$ITEM_PICTUREFILENAME" tag (present in version 3.5.1) with "$$ITEM_PICTUREPATH" tag for some reasons but it was a mistake.PS : I see where is the mismatch. The tag changed
old : $$ITEM_PICTUREPATH
new : $$ITEM_PICTUREFILENAME
So I replaced "$$ITEM_PICTUREPATH" tag with "$$ITEM_PICTUREFILENAME" tag (the original one) in version 3.8.0 and it should not change again.
Sorry for this.
Ant Movie Catalog Unofficial 3.8.1 (18/09/11) released !
Packages updated 20/09/2011 10:45:
- Minor bug with movie picture show/copy fixed.
- Minor bug on movie list sort after movie field change fixed.
- Minor bug on movie picture load fixed.
- Other minor bugs fixed.
- Some optimisations added.
Packages updated 20/09/2011 10:45:
- Minor bug with movie picture show/copy fixed.
- Minor bug on movie list sort after movie field change fixed.
- Minor bug on movie picture load fixed.
- Other minor bugs fixed.
- Some optimisations added.
Last edited by soulsnake on 2011-09-20 08:53:18, edited 11 times in total.
Je suis heureux que tu aimes cette version.Très bien cette version.
J'ai déjà répondu à cette question précédemment mais en anglais.Serait-il possible d'ajouter un flag : déjà vu?
Pour résumer, je sais que le nombre de champs n'est pas suffisant pour tout le monde.
Cependant, si je rajoute des champs, la nouvelle version ne sera plus compatible avec la version officielle actuelle.
Pour le moment, ma priorité est de garder une compatibilité totale avec la version officielle.
Plus tard, dans une nouvelle version majeure (4.X), Antoine et moi rajouterons plusieurs champs et surement un gestionnaire de champs personnalisables.
Mais ces nouvelles fonctionnalités nécessitent beaucoup de modifications sur le programme de base, donc patience...
Pourquoi n'utilise-tu pas l'export SQL (Plus général que SQLite) ?Serait-il possible de rajouter un type d'export SQlite ?
Le fichier SQL généré devrait être directement exploitable pour SQLite non ?
Cordialement,
Soulsnake
AMC unofficial 3.8 suggestions
Bonjour,
Tout d'abord, bon travail d'évolution de la version officielle.
Erait-il possible d'insérer dans une version ultérieure la possibilité de modifier les valeurs en mode "tableau" (et ainsi de faciliter des modifications "de masse" ?
Merci
Cordialement
Tout d'abord, bon travail d'évolution de la version officielle.
Erait-il possible d'insérer dans une version ultérieure la possibilité de modifier les valeurs en mode "tableau" (et ainsi de faciliter des modifications "de masse" ?
Merci
Cordialement
Qu'est-ce que tu entends par modifications "de masse" ?Serait-il possible d'insérer dans une version ultérieure la possibilité de modifier les valeurs en mode "tableau" (et ainsi de faciliter des modifications "de masse" ?
Parce qu'il existe un script appelé "Update Fields" permettant des modifications de masse sur les champs de plusieurs films sélectionnés.
Pour l'édition en mode tableau, pourquoi pas mais je la trouve peu pratique surtout pour les champs avec beaucoup de texte.
Autant utiliser le panneau de droite prévu à cet effet, c'est aussi rapide.
Est-ce que la possibilité de modifier les valeurs de plusieurs films sélectionnés ne serait pas plus pertinent (un peu à la manière du script UpdateFields mais de manière plus ergonomique ?)
Cordialement.
Hi Soulsnake, Hi Antoine,
sorry to post in english, my french is just too bad.
I am the current developer of the MyFilms plugin:
http://forum.team-mediaportal.com/my-fi ... post764644
I (and many user of AMC) would really very much appreciate, if we could
- include the improvements into an "official version update"
- add some more fields so AMC allows to read and write them in XML format and not looses them - this will allow much better integration in the mediacenter and remove some of the current restrictions.
From the mediacenter point of view, it would even be suffiecient, if AMC would just support to read/write the new fields - that is: Extending the DB schema and load/save routines with some additoinal DB fields (like writer, rating, studio, or some userdefines fields, so user can use them as they like).
However, I don't wanna break this thread - especially because of posting in english - so if there is a different place we could discuss that it please point me to it - would be great and highly appreciated.
Thanks in advance and regards,
Guzzi
sorry to post in english, my french is just too bad.
I am the current developer of the MyFilms plugin:
http://forum.team-mediaportal.com/my-fi ... post764644
I (and many user of AMC) would really very much appreciate, if we could
- include the improvements into an "official version update"
- add some more fields so AMC allows to read and write them in XML format and not looses them - this will allow much better integration in the mediacenter and remove some of the current restrictions.
From the mediacenter point of view, it would even be suffiecient, if AMC would just support to read/write the new fields - that is: Extending the DB schema and load/save routines with some additoinal DB fields (like writer, rating, studio, or some userdefines fields, so user can use them as they like).
However, I don't wanna break this thread - especially because of posting in english - so if there is a different place we could discuss that it please point me to it - would be great and highly appreciated.
Thanks in advance and regards,
Guzzi
Hi Guzzy,I (and many user of AMC) would really very much appreciate, if we could
- include the improvements into an "official version update"
- add some more fields so AMC allows to read and write them in XML format and not looses them - this will allow much better integration in the
mediacenter and remove some of the current restrictions.
This two requests are already expected , don't worry.
The next release should add read/write of custom fields in XML format.
I do not plan to add this feature in AMC format to keep compatibility with old versions. Maybe I will add a new format to keep binary files.
Regards,
Soulsnake.
Hi Soulsnake,soulsnake wrote:Hi Guzzy,I (and many user of AMC) would really very much appreciate, if we could
- include the improvements into an "official version update"
- add some more fields so AMC allows to read and write them in XML format and not looses them - this will allow much better integration in the
mediacenter and remove some of the current restrictions.
This two requests are already expected , don't worry.
The next release should add read/write of custom fields in XML format.
I do not plan to add this feature in AMC format to keep compatibility with old versions. Maybe I will add a new format to keep binary files.
Regards,
Soulsnake.
that sounds like really exiting news ! :-)
I am using only the XML format as native format since several years (due to the possibility to have it compatible to MyFilms) - and I think the approach to allow read/write of new fields just for XML format will do exactly what we need for the MyFilms extensions - as we can use those fields and still use AMC without loosing those fields after reading/writing the XML with AMC.
Just for Info:
In current MyFilms implementation, the "internal XML format" uses additional fields as elements (instead of attributes) - this way the XML file is still AMC compatible (but element data will of course be lost, when saving in AMC).
If you plan to extend the attributes, I will change the "extended fields" from elements back to attributes - so I would be compatible with the implementation.
Guzzi
Ok, do you have an XML database example with the new fields.In current MyFilms implementation, the "internal XML format" uses additional fields as elements (instead of attributes) - this way the XML file is still AMC compatible (but element data will of course be lost, when saving in AMC).
Thanks.
Soulsnake
Hi soulsnake,soulsnake wrote:Ok, do you have an XML database example with the new fields.In current MyFilms implementation, the "internal XML format" uses additional fields as elements (instead of attributes) - this way the XML file is still AMC compatible (but element data will of course be lost, when saving in AMC).
Thanks.
Soulsnake
I have attached a generaded XSD that shows what fields I added.
You see the "movie" element of AMC - with all well known fields as attributes - and (on top of AMC fields) you see elements, that are presenting the "new extended fields".
I had to use elements, because otherwise AMC would not be able to read the catalog anymore - using elements works fine (but of course all element data is lost when saving in AMC).
Here is link to a sample AMC xml catalog, using some of the extended field:
http://wiki.team-mediaportal.com/@api/d ... Sample.xml
So the "new extended fields" I added are (followed by their purpose/use):
"RatingUser" - same as Rating, but for personal rating instead of grabbed rating
"Edition" - like "directors cut", "extended edition", etc.
"DateAdded" - internal calculated from "date" for sorting
"Length_Num" - internal caclulated from "length" as numeric
"Fanart" - path to fanart file or diectory for the movie
"Certification" - Certification (grabbed from internet)
"Writer" - as name says, grabbed from internet
"Watched" - field to handle extended watched status (checked only supports boolean)
"DateWatched" - as name says
"IMDB_Id" - to keep IMDBid persistant in DB, as it is used for a lot of interactive actions like Trakt.tv - see blog or MyFilms post
"TMDB_Id" - same as IMDBid - to keep persistant
"SourceTrailer" - same as "source", but links to trailer media files
"TagLine" - grabbed from internet
"Tags" - allows to store Tags for classifications
"Studio" - grabbed from internet
"IMDB_Rank" - Ranking info about the movie
"IsOnline" - to store media availability ersistant
"IsOnlineTrailer" - to store trailer availability persistant
"Aspectratio" - aspectratio of the movie
Code: Select all
<?xml version="1.0" standalone="yes"?>
<xs:schema id="AntMovieCatalog" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="AntMovieCatalog" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Catalog">
<xs:complexType>
<xs:sequence>
<xs:element name="Properties" type="xs:string" minOccurs="0" msdata:Ordinal="1" />
<xs:element name="Contents" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Movie" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="RatingUser" type="xs:decimal" minOccurs="0" msdata:Ordinal="8" />
<xs:element name="Edition" type="xs:string" minOccurs="0" msdata:Ordinal="12" />
<xs:element name="DateAdded" msdata:ReadOnly="true" msdata:Expression="Convert(Date,'System.DateTime')" type="xs:dateTime" minOccurs="0" msdata:Ordinal="30" />
<xs:element name="Length_Num" msdata:ReadOnly="true" msdata:Expression="Convert(Length,'System.Int32')" type="xs:int" default="0" minOccurs="0" msdata:Ordinal="34" />
<xs:element name="Fanart" type="xs:string" minOccurs="0" msdata:Ordinal="36" />
<xs:element name="Certification" type="xs:string" minOccurs="0" msdata:Ordinal="37" />
<xs:element name="Writer" type="xs:string" minOccurs="0" msdata:Ordinal="38" />
<xs:element name="Watched" type="xs:string" minOccurs="0" msdata:Ordinal="39" />
<xs:element name="DateWatched" type="xs:dateTime" minOccurs="0" msdata:Ordinal="40" />
<xs:element name="IMDB_Id" type="xs:string" minOccurs="0" msdata:Ordinal="41" />
<xs:element name="TMDB_Id" type="xs:string" minOccurs="0" msdata:Ordinal="42" />
<xs:element name="SourceTrailer" type="xs:string" minOccurs="0" msdata:Ordinal="43" />
<xs:element name="TagLine" type="xs:string" minOccurs="0" msdata:Ordinal="44" />
<xs:element name="Tags" type="xs:string" minOccurs="0" msdata:Ordinal="45" />
<xs:element name="Studio" type="xs:string" minOccurs="0" msdata:Ordinal="46" />
<xs:element name="IMDB_Rank" type="xs:string" minOccurs="0" msdata:Ordinal="47" />
<xs:element name="IsOnline" type="xs:string" minOccurs="0" msdata:Ordinal="48" />
<xs:element name="IsOnlineTrailer" type="xs:string" minOccurs="0" msdata:Ordinal="49" />
<xs:element name="Aspectratio" type="xs:string" minOccurs="0" msdata:Ordinal="50" />
</xs:sequence>
<xs:attribute name="Number" type="xs:int" />
<xs:attribute name="Checked" type="xs:string" />
<xs:attribute name="MediaLabel" type="xs:string" />
<xs:attribute name="MediaType" type="xs:string" />
<xs:attribute name="Source" type="xs:string" />
<xs:attribute name="Date" type="xs:string" />
<xs:attribute name="Borrower" type="xs:string" />
<xs:attribute name="Rating" type="xs:decimal" />
<xs:attribute name="OriginalTitle" type="xs:string" />
<xs:attribute name="TranslatedTitle" type="xs:string" />
<xs:attribute name="FormattedTitle" type="xs:string" />
<xs:attribute name="Director" type="xs:string" />
<xs:attribute name="Producer" type="xs:string" />
<xs:attribute name="Country" type="xs:string" />
<xs:attribute name="Category" type="xs:string" />
<xs:attribute name="Year" type="xs:string" />
<xs:attribute name="Length" type="xs:string" />
<xs:attribute name="Actors" type="xs:string" />
<xs:attribute name="URL" type="xs:string" />
<xs:attribute name="Description" type="xs:string" />
<xs:attribute name="Comments" type="xs:string" />
<xs:attribute name="VideoFormat" type="xs:string" />
<xs:attribute name="VideoBitrate" type="xs:string" />
<xs:attribute name="AudioFormat" type="xs:string" />
<xs:attribute name="AudioBitrate" type="xs:string" />
<xs:attribute name="Resolution" type="xs:string" />
<xs:attribute name="Framerate" type="xs:string" />
<xs:attribute name="Languages" type="xs:string" />
<xs:attribute name="Subtitles" type="xs:string" />
<xs:attribute name="Size" type="xs:string" />
<xs:attribute name="Disks" type="xs:string" />
<xs:attribute name="Picture" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="AntMovieCatalog_Id" type="xs:int" use="prohibited" />
</xs:complexType>
</xs:element>
<xs:element name="Person">
<xs:complexType>
<xs:sequence>
<xs:element name="ActorId" type="xs:string" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="Born" type="xs:string" minOccurs="0" />
<xs:element name="BirthPlace" type="xs:string" minOccurs="0" />
<xs:element name="MiniBiography" type="xs:string" minOccurs="0" />
<xs:element name="Picture" type="xs:string" minOccurs="0" />
<xs:element name="IMDB_Id" type="xs:string" minOccurs="0" />
<xs:element name="TMDB_Id" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Watched">
<xs:complexType>
<xs:sequence>
<xs:element name="Contents_Id" type="xs:string" minOccurs="0" />
<xs:element name="Number" type="xs:string" minOccurs="0" />
<xs:element name="Title" type="xs:string" minOccurs="0" />
<xs:element name="WatchedDate" type="xs:string" minOccurs="0" />
<xs:element name="UserName" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Hi soulsnake,
just to make it clear:
If you and Antoine prefer adding the fields to native AMC format, I am fine to change them from element type to attribute type.
Advantage would be, that AMC could support them in the GUI too.
So I leave that decision to you and Antoine.
I would then change MyFilms to handle them properly with a "AMC 4.x" version.
Beside the fields mentioned above:
It is for sure wise to add some "userdefined fields" for future purpose.
You can also often reach me on IRC on freenode - "#myfilms" channel, if you'd like to discuss :-)
Guzzi
just to make it clear:
If you and Antoine prefer adding the fields to native AMC format, I am fine to change them from element type to attribute type.
Advantage would be, that AMC could support them in the GUI too.
So I leave that decision to you and Antoine.
I would then change MyFilms to handle them properly with a "AMC 4.x" version.
Beside the fields mentioned above:
It is for sure wise to add some "userdefined fields" for future purpose.
You can also often reach me on IRC on freenode - "#myfilms" channel, if you'd like to discuss :-)
Guzzi
Hi Guzzi,
I think something like this should be more portable.
What do you think ?
I ask the same question to Antoine if you are here .
PS: I added some comments in code.
PS2: I think the best way to keep AMC format compatibility with new custom fields (and don't loose them) is to associate AMC format with other xml file that include all custom fields informations.
For example, the catalog "films.amc" will be associate with "films.amc.xml" that include all custom fields informations for new versions of AMC.
Like this, films.amc is always readable by old versions of AMC without custom fields.
What do you think ?
An example of XML catalog with custom fields :
I think something like this should be more portable.
What do you think ?
I ask the same question to Antoine if you are here .
PS: I added some comments in code.
PS2: I think the best way to keep AMC format compatibility with new custom fields (and don't loose them) is to associate AMC format with other xml file that include all custom fields informations.
For example, the catalog "films.amc" will be associate with "films.amc.xml" that include all custom fields informations for new versions of AMC.
Like this, films.amc is always readable by old versions of AMC without custom fields.
What do you think ?
Code: Select all
<?xml version="1.0" standalone="yes"?>
<xs:schema id="AntMovieCatalog" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="AntMovieCatalog" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Catalog">
<xs:complexType>
<xs:sequence>
<xs:element name="Properties" type="xs:string" minOccurs="0" msdata:Ordinal="1">
<xs:complexType>
<xs:sequence>
<xs:element name="CustomField" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ListItem" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <!-- Values for ftList -->
<xs:complexType>
<xs:attribute name="Text" type="xs:string" />
</xs:complexType>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" /> <!-- Name of custom field -->
<xs:attribute name="Type" type="xs:string" /> <!-- Type of custom field (ftInteger, ftReal, ftDate, ftString, ftList, ftOther=ftString) -->
<xs:attribute name="CustomName" type="xs:string" /> <!-- Custom user name of custom field (for translation) -->
<xs:attribute name="AMCProperties" type="xs:string" /> <!-- AMC properties of custom field (have to be saved by other programs) -->
<xs:attribute name="CustomProperties" type="xs:string" /> <!-- Custom properties of custom field for other programs (saved by AMC) -->
<xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Owner" type="xs:int" />
<xs:attribute name="Mail" type="xs:string" />
<xs:attribute name="Site" type="xs:string" />
<xs:attribute name="Description" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="Contents" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Movie" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="CustomField" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" />
<xs:attribute name="Value" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Number" type="xs:int" />
<xs:attribute name="Checked" type="xs:string" />
<xs:attribute name="MediaLabel" type="xs:string" />
<xs:attribute name="MediaType" type="xs:string" />
<xs:attribute name="Source" type="xs:string" />
<xs:attribute name="Date" type="xs:string" />
<xs:attribute name="Borrower" type="xs:string" />
<xs:attribute name="Rating" type="xs:decimal" />
<xs:attribute name="OriginalTitle" type="xs:string" />
<xs:attribute name="TranslatedTitle" type="xs:string" />
<xs:attribute name="FormattedTitle" type="xs:string" />
<xs:attribute name="Director" type="xs:string" />
<xs:attribute name="Producer" type="xs:string" />
<xs:attribute name="Country" type="xs:string" />
<xs:attribute name="Category" type="xs:string" />
<xs:attribute name="Year" type="xs:string" />
<xs:attribute name="Length" type="xs:string" />
<xs:attribute name="Actors" type="xs:string" />
<xs:attribute name="URL" type="xs:string" />
<xs:attribute name="Description" type="xs:string" />
<xs:attribute name="Comments" type="xs:string" />
<xs:attribute name="VideoFormat" type="xs:string" />
<xs:attribute name="VideoBitrate" type="xs:string" />
<xs:attribute name="AudioFormat" type="xs:string" />
<xs:attribute name="AudioBitrate" type="xs:string" />
<xs:attribute name="Resolution" type="xs:string" />
<xs:attribute name="Framerate" type="xs:string" />
<xs:attribute name="Languages" type="xs:string" />
<xs:attribute name="Subtitles" type="xs:string" />
<xs:attribute name="Size" type="xs:string" />
<xs:attribute name="Disks" type="xs:string" />
<xs:attribute name="Picture" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="AntMovieCatalog_Id" type="xs:int" use="prohibited" />
</xs:complexType>
</xs:element>
<xs:element name="Person"> <!-- ??? -->
<xs:complexType>
<xs:sequence>
<xs:element name="ActorId" type="xs:string" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="Born" type="xs:string" minOccurs="0" />
<xs:element name="BirthPlace" type="xs:string" minOccurs="0" />
<xs:element name="MiniBiography" type="xs:string" minOccurs="0" />
<xs:element name="Picture" type="xs:string" minOccurs="0" />
<xs:element name="IMDB_Id" type="xs:string" minOccurs="0" />
<xs:element name="TMDB_Id" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Watched"> <!-- Include this elements in custom fields -->
<xs:complexType>
<xs:sequence>
<xs:element name="Contents_Id" type="xs:string" minOccurs="0" />
<xs:element name="Number" type="xs:string" minOccurs="0" />
<xs:element name="Title" type="xs:string" minOccurs="0" />
<xs:element name="WatchedDate" type="xs:string" minOccurs="0" />
<xs:element name="UserName" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Code: Select all
<?xml version="1.0" encoding="iso-8859-1"?>
<AntMovieCatalog Format="35" Version="3.8.1 (2011-09-18)" Date="25/09/2011 10:14:02">
<Catalog>
<Properties Owner="Sample" Mail="m.v@gmail.com" Site="mv.online.fr" Description="Sample description">
<CustomField Name="Test1" Type="ftString" CustomName="Test N°1" AMCProperties="AMC Properties" CustomProperties="Other program properties saved by AMC" />
<CustomField Name="Test2" Type="ftDate" />
<CustomField Name="Test3" Type="ftInteger" />
<CustomField Name="Test4" Type="ftReal" />
<CustomField Name="Test5" Type="ftList">
<ListItem Text="Text 1" />
<ListItem Text="Text 2" />
<ListItem Text="Text 3" />
</CustomField>
</Properties>
<Contents>
<Movie Number="1" Checked="True" Date="25/05/2002" Rating="8.0" OriginalTitle="Matrix, The" FormattedTitle="Matrix, The" Director="Andy Wachowski, Larry Wachowski" Country="United States" Category="Action" Year="1999" Length="136" Actors="Keanu Reeves, Laurence Fishburne, Carrie-Anne Moss, Hugo Weaving, Gloria Foster, Joe Pantoliano, Marcus Chong, Julian Arahanga, Matt Doran, Belinda McClory, Anthony Ray Parker, Paul Goddard (I), Robert Taylor (VII), David Aston, Marc Gray" URL="http://us.imdb.com/Title?0133093" Description="In the near future, a computer hacker named Neo (Keanu Reeves) discovers that all life on Earth may be nothing more than an elaborate facade created by a malevolent cyber-intelligence, for the purpose of placating us while our life essence is "farmed" to fuel the Matrix's campaign of domination in the "real" world. He joins like-minded Rebel warriors Morpheus (Laurence Fishburne) and Trinity (Carrie Ann Moss) in their struggle to overthrow the Matrix. " Languages="English" Picture="Sample_1.jpg">
<CustomField Name="Test1" Value="Test value 1" />
<CustomField Name="Test2" Value="25/09/2011" />
<CustomField Name="Test3" Value="2004" />
<CustomField Name="Test4" Value="9.1" />
<CustomField Name="Test5" Value="Text 3" />
</Movie>
<Movie Number="2" Checked="True" Date="25/05/2002" Rating="6.0" OriginalTitle="Lethal Weapon 4" FormattedTitle="Lethal Weapon 4" Director="Richard Donner" Country="United States" Category="Crime" Year="1998" Length="127" Actors="Mel Gibson, Danny Glover, Joe Pesci, Rene Russo, Chris Rock, Jet Li, Steve Kahan, Kim Chan, Darlene Love, Traci Wolfe, Eddy Ko, Jack Kehler, Calvin Jung, Damon Hines, Ebonie Smith" URL="http://us.imdb.com/Title?0122151" Description="Martin Riggs and Roger Murtaugh, after escaping death from the previous movies are put on a hit list by The Triads. When blood thirsty mercenaries are on their tail they team up again with Leo Getz and Lorna Cole, a newcomer (Chris Rock) to finally put an end to the Triads for good. " Languages="English" Picture="Sample_2.jpg">
<CustomField Name="Test1" Value="Test value 3" />
<CustomField Name="Test2" Value="22/09/2011" />
<CustomField Name="Test3" Value="2007" />
<CustomField Name="Test4" Value="7.2" />
<CustomField Name="Test5" Value="Text 1" />
</Movie>
<Movie Number="3" Checked="True" Date="25/05/2002" Rating="8.0" OriginalTitle="Indiana Jones and the Last Crusade" FormattedTitle="Indiana Jones and the Last Crusade" Director="Steven Spielberg" Country="United States" Category="Fantasy" Year="1989" Length="127" Actors="Harrison Ford, Sean Connery, Denholm Elliott, Alison Doody, John Rhys-Davies, Julian Glover, River Phoenix, Michael Byrne (I), Kevork Malikyan, Robert Eddison, Richard Young (I), Alexei Sayle, Alex Hyde-White, Paul Maxwell (I), Isla Blair" URL="http://us.imdb.com/Title?0097576" Description="Renowned archeologist and expert in the occult, Dr. Indiana Jones, returns for the 3rd and final Indy film. Teaming up with his father, Indiana sets out to try and find the Holy Grail. Once again, the Nazis are after the same prize, and try to foil Indianas plans. " Languages="English" Picture="Sample_3.jpg">
<CustomField Name="Test1" Value="Test value 1" />
<CustomField Name="Test2" Value="18/09/2011" />
<CustomField Name="Test3" Value="2006" />
<CustomField Name="Test4" Value="8.8" />
<CustomField Name="Test5" Value="Text 2" />
</Movie>
</Contents>
</Catalog>
</AntMovieCatalog>
First to comment on "Person" and "Watched" - forget about those for now - I created them to bind a table for handling those - but not yet used anyway.soulsnake wrote:Hi Guzzi,
I think something like this should be more portable.
What do you think ?
I ask the same question to Antoine if you are here .
PS: I added some comments in code.
The idea was to have a separate table for persons and store all infos there. Those values are outside the movie records anyway...
Regarding your suggestion about "generic" fields:
I am not sure, how to map that to the dataset handling I use in MyFilms implementation - currently, this is handled mostly automatically and thus is very fast - however, I am not so experienced with those parts of the implementation, so if there is a nice way to do it this way that is also fast (performance wise) I am fine with such an approach.
I think Antoine should comment on that. From AMC point of view, I think such "tricks" are not so nice - and it would imho be best to extend DB schema to a V4.x version (thus upgrading AMC format) - and if the effort is not too much keep the ability to save in old AMC 3.x format. This keeps possibility for users to go forward and back. (If they store in 3.x format, they'll loose the new fields content of course).PS2: I think the best way to keep AMC format compatibility with new custom fields (and don't loose them) is to associate AMC format with other xml file that include all custom fields informations.
For example, the catalog "films.amc" will be associate with "films.amc.xml" that include all custom fields informations for new versions of AMC.
Like this, films.amc is always readable by old versions of AMC without custom fields.
What do you think ?
Looking at the XML side, the "minimum requirement" would be just to make sure, that Element data is loaded and stored, when opening and saving a catalog in AMC in XML format. This would be sufficient for other apps (like MyFilms) to use elements to store data persistant - with the disadvantage, that users cannot handle that data inside the AMC GUI.
If asking me what I think is the best approach, I'd say:
- extend AMC internal data fields by fields missing plus some userdefined fields.
- those fields will be stored in a 4.x AMC format.
- XML format will store those fields as attributes, as those are the AMC "native" fields
- XML format will load and save element data, so it is not lost after opening and saving in AMC (without using it inside the app itself)
- important: This version will be an "official" 4.x version - so it as well accepted to be the new AMC standard - so Antoine would have to support that approach
If that is not possible, I would be happy, if just this could be done:
- XML format will load and save element data, so it is not lost after opening and saving in AMC (without using it inside the app itself)
This does not really entend AMC - but helps other apps (like MyFilms) to be more flexible.
Thanks for your suggestions.
I am waiting Antoine opinion.
But if you think something like this is better, it is not a problem for me.
I am waiting Antoine opinion.
Actually, I don't really know how you load the XML file.Regarding your suggestion about "generic" fields:
I am not sure, how to map that to the dataset handling I use in MyFilms implementation - currently, this is handled mostly automatically and thus is very fast - however, I am not so experienced with those parts of the implementation, so if there is a nice way to do it this way that is also fast (performance wise) I am fine with such an approach.
But if you think something like this is better, it is not a problem for me.
Code: Select all
<?xml version="1.0" encoding="iso-8859-1"?>
<AntMovieCatalog Format="35" Version="3.8.1 (2011-09-18)" Date="25/09/2011 10:14:02">
<Catalog>
<Properties Owner="Sample" Mail="m.v@gmail.com" Site="mv.online.fr" Description="Sample description">
<CustomField Element="Writer" Type="ftString" Name="Test N°1" AMCProperties="AMC Properties" CustomProperties="Other program properties saved by AMC" />
<CustomField Element="Watched" Type="ftBoolean" />
<CustomField Element="DateWatched" Type="ftDate" />
<CustomField Element="BuyYear" Type="ftInteger" />
<CustomField Element="RatingUser" Type="ftReal" />
<CustomField Element="Edition" Type="ftList">
<ListItem Text="Normal" />
<ListItem Text="Director's Cut" />
<ListItem Text="Remastered" />
</CustomField>
</Properties>
<Contents>
<Movie Number="1" Checked="True" Date="25/05/2002" Rating="8.0" OriginalTitle="Matrix, The" FormattedTitle="Matrix, The" Director="Andy Wachowski, Larry Wachowski" Country="United States" Category="Action" Year="1999" Length="136" Actors="Keanu Reeves, Laurence Fishburne, Carrie-Anne Moss, Hugo Weaving, Gloria Foster, Joe Pantoliano, Marcus Chong, Julian Arahanga, Matt Doran, Belinda McClory, Anthony Ray Parker, Paul Goddard (I), Robert Taylor (VII), David Aston, Marc Gray" URL="http://us.imdb.com/Title?0133093" Description="In the near future, a computer hacker named Neo (Keanu Reeves) discovers that all life on Earth may be nothing more than an elaborate facade created by a malevolent cyber-intelligence, for the purpose of placating us while our life essence is "farmed" to fuel the Matrix's campaign of domination in the "real" world. He joins like-minded Rebel warriors Morpheus (Laurence Fishburne) and Trinity (Carrie Ann Moss) in their struggle to overthrow the Matrix. " Languages="English" Picture="Sample_1.jpg">
<Writer>Test value 1"</Writer>
<Watched>True</Watched>
<DateWatched>25/09/2011</DateWatched>
<BuyYear>2004</BuyYear>
<RatingUser>9.1</RatingUser>
<Edition>Remastered</Edition>
</Movie>
<Movie Number="2" Checked="True" Date="25/05/2002" Rating="6.0" OriginalTitle="Lethal Weapon 4" FormattedTitle="Lethal Weapon 4" Director="Richard Donner" Country="United States" Category="Crime" Year="1998" Length="127" Actors="Mel Gibson, Danny Glover, Joe Pesci, Rene Russo, Chris Rock, Jet Li, Steve Kahan, Kim Chan, Darlene Love, Traci Wolfe, Eddy Ko, Jack Kehler, Calvin Jung, Damon Hines, Ebonie Smith" URL="http://us.imdb.com/Title?0122151" Description="Martin Riggs and Roger Murtaugh, after escaping death from the previous movies are put on a hit list by The Triads. When blood thirsty mercenaries are on their tail they team up again with Leo Getz and Lorna Cole, a newcomer (Chris Rock) to finally put an end to the Triads for good. " Languages="English" Picture="Sample_2.jpg">
<Writer>Test value 3</Writer>
<Watched>True</Watched>
<DateWatched>22/09/2011</DateWatched>
<BuyYear>2007</BuyYear>
<RatingUser>7.2</RatingUser>
<Edition>Normal</Edition>
</Movie>
<Movie Number="3" Checked="True" Date="25/05/2002" Rating="8.0" OriginalTitle="Indiana Jones and the Last Crusade" FormattedTitle="Indiana Jones and the Last Crusade" Director="Steven Spielberg" Country="United States" Category="Fantasy" Year="1989" Length="127" Actors="Harrison Ford, Sean Connery, Denholm Elliott, Alison Doody, John Rhys-Davies, Julian Glover, River Phoenix, Michael Byrne (I), Kevork Malikyan, Robert Eddison, Richard Young (I), Alexei Sayle, Alex Hyde-White, Paul Maxwell (I), Isla Blair" URL="http://us.imdb.com/Title?0097576" Description="Renowned archeologist and expert in the occult, Dr. Indiana Jones, returns for the 3rd and final Indy film. Teaming up with his father, Indiana sets out to try and find the Holy Grail. Once again, the Nazis are after the same prize, and try to foil Indianas plans. " Languages="English" Picture="Sample_3.jpg">
<Writer>Test value 1</Writer>
<Watched>True</Watched>
<DateWatched>18/09/2011</DateWatched>
<BuyYear>2006</BuyYear>
<RatingUser>8.8</RatingUser>
<Edition>Director's Cut</Edition>
</Movie>
</Contents>
</Catalog>
</AntMovieCatalog>
Hi Soulsnake,soulsnake wrote:Thanks for your suggestions.
I am waiting Antoine opinion.
Actually, I don't really know how you load the XML file.Regarding your suggestion about "generic" fields:
I am not sure, how to map that to the dataset handling I use in MyFilms implementation - currently, this is handled mostly automatically and thus is very fast - however, I am not so experienced with those parts of the implementation, so if there is a nice way to do it this way that is also fast (performance wise) I am fine with such an approach.
But if you think something like this is better, it is not a problem for me.
MyFilms is using C# and I am loading the XML file via streamreader into a dataset that is defined with visualstudio designer into memory cache.
In the designer, you can define the structure of the XML e.g. if data is mapped to elements or attributes etc. - and it probably is possible to add other definitions by manual partial class definitions.
However, the sample you posted above would work "right away" - I would just add the properties to the xsd and "be happy".
So let's wait what Antoine comments on it :-)
Guzzi
Great - so when you have something that have the XML load/save routines up and running - or even more - and you feel you've got something you'd like to have tested, I can post it to our internal MyFilms tester team too.soulsnake wrote:I am waiting Antoine opinion but for the moment I keep the last sample to add and test this modifications.
The main job now is to add a good CustomField Manager that I have already started thinking .
Soulsnake
Guzzi