2022-02-23, 21:29
That's the current behaviour, yes. It would be nice if the next source was then queried. A lot of concert videos also have an entry only in TMDB.
hh:mm:ss
, new was set to hh.mm.ss
, date part was the same), and that somehow screwed up EMM's handling of the watched state.
(2022-03-28, 02:33)McButton Wrote: I have "sort files into folders before each library update" selected under Movies.I've found a bug in this function if there are to much files to compare and move. You have to disable this function or use another tool to move the files. A fixed releases is in the pipeline... (don't ask when it will be released).
(2022-04-05, 21:41)DanCooper Wrote:I actually deleted the file that was stopping it and the rest scanned through fine. It seems like perhaps the file was an exact name of another stored on the main folder. If it continues, I'll name myself, but this one may have been a ME issue. Thanks!(2022-03-28, 02:33)McButton Wrote: I have "sort files into folders before each library update" selected under Movies.I've found a bug in this function if there are to much files to compare and move. You have to disable this function or use another tool to move the files. A fixed releases is in the pipeline... (don't ask when it will be released).
(2022-04-30, 16:49)Remus Wrote: There is no need for any of this since the nfo files are validIf NFO files are renamed to *.info then the files are not valid. That means the XML contains Integer/Double nodes with an empty String value (its not possible for Integer or Double) or a misspelled Boolean value (TRUE, True, FALSE or False instead of true or false). You can check the Ember log files to see the number of the wrong lines in these XML. The next version of Ember will have some sort of an auto correction function, but you should use only valid XML files.
(2022-05-01, 00:54)DanCooper Wrote: XML contains Integer/Double nodes with an empty String value
[...]
a misspelled Boolean value (TRUE, True, FALSE or False instead of true or false).
xml:<?xml version="1.0" encoding="utf-8"?>
<tvshow xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id type="tvdb">378023</id>
<uniqueid type="imdb" default="false">tt11794642</uniqueid>
<uniqueid type="tvdb" default="true">378023</uniqueid>
<uniqueid type="tmdb" default="false">100010</uniqueid>
<uniqueid type="tvmaze" default="false">46062</uniqueid>
Right off the xml and tvshow node entries are different, and the uniqueid 'type' and 'default' attributes are reversed - but I'm not sure those are order specific. The standalone attribute in the xml definition is functionally equivalent to the external xmlns: name space definition, but both are correct.xml:<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tvshow>
<title>Big Sky</title>
<uniqueid default="false" type="tmdb">100010</uniqueid>
<uniqueid default="false" type="imdb">tt11794642</uniqueid>
<uniqueid default="false" type="tvmaze">46062</uniqueid>
<uniqueid default="true" type="tvdb">378023</uniqueid>
[Sanner] [IsValidDir] [NotValidDirIs] Path "s:\Media\TV Shows\Big Sky (2020)\.actors" has been skipped (path name is ".actors")
[Sanner] [IsValidDir] [NotValidDirIs] Path "s:\Media\TV Shows\Big Sky (2020)\Season 1\.actors" has been skipped (path name is ".actors")
[Sanner] [IsValidDir] [NotValidDirIs] Path "s:\Media\TV Shows\Big Sky (2020)\Season 2\.actors" has been skipped (path name is ".actors")
[Sanner] [IsValidDir] [NotValidDirIs] Path "s:\Media\TV Shows\Big Sky (2020)\extrafanart" has been skipped (path name is "extrafanart")
php:
@echo off
:: Change this to match your installation!
set "logfile=E:\Shared\Media\postprocess.log"
::
:: Create nfo filename from %radarr_moviefile_path% & fill if necessary - might be a movie upgrade
::
set "newname=%radarr_moviefile_path:~0,-4%.nfo"
echo New movie %radarr_movie_title% >> "%logfile%"
:: Generate a basic nfo file if necessary; see https://kodi.wiki/view/NFO_files/Movies
if not exist "%newname%" (
echo Creating nfo file %newname% >> "%logfile%"
set "default=true"
:: escape xml characters <, >, ', ", and & with ^, and add ? for good measure.
echo ^<^?xml version=^"1.0^" encoding=^"utf-8^"^?^> > "%newname%"
echo ^<!-- Created by postRadarr command file --^> >> "%newname%"
echo ^<movie xmlns:xsd=^"http://www.w3.org/2001/XMLSchema^" xmlns:xsi=^"http://www.w3.org/2001/XMLSchema-instance^"^> >> "%newname%"
echo ^<title^>%radarr_movie_title%^</title^> >> "%newname%"
if "%radarr_movie_imdbid%" neq "" (
echo ^<uniqueid type=^"imdb^" default=^"%default%^"^>%radarr_movie_imdbid%^</uniqueid^> >> "%newname%"
set "default=false"
)
if "%radarr_movie_tmdbid%" neq "" (
echo ^<uniqueid type=^"tmdb^" default=^"%default%^"^>%radarr_movie_tmdbid%^</uniqueid^> >> "%newname%"
set "default=false"
)
echo ^</movie^> >> "%newname%"
set "default="
)
php:
@echo off
:: Change this to match your installation!
set "logfile=E:\Shared\Media\postprocess.log"
::
:: Create nfo filename from %sonarr_series_path%, and fill if necessary
::
set "newname=%sonarr_series_path%\tvshow.nfo"
if not exist "%newname%" (
echo New TV Show %sonnar_series_title% >> "%logfile%"
echo Creating nfo file %newname% >> "%logfile%"
set "default=true"
:: see https://kodi.wiki/view/NFO_files/TV_shows
echo ^<^?xml version=^"1.0^" encoding=^"UTF-8^"^?^> > "%newname%"
echo ^<!-- Created by postSonarr command file --^> >> "%newname%"
echo ^<tvshow xmlns:xsd=^"http://www.w3.org/2001/XMLSchema^" xmlns:xsi=^"http://www.w3.org/2001/XMLSchema-instance^"^> >> "%newname%"
echo ^<title^>%sonarr_series_title%^</title^> >> "%newname%"
if "%sonarr_series_tvdbid% " neq "" (
echo ^<uniqueid type=^"tvdb^" default=^"%default%^"^>%sonarr_series_tvdbid%^</uniqueid^> >> "%newname%"
set "default=false"
)
if "%sonarr_series_imdbid%" neq "" (
echo ^<uniqueid type=^"imdb^" default=^"%default%^"^>%sonarr_series_imdbid%^</uniqueid^> >> "%newname%"
set "default=false"
)
if "%sonarr_series_tvmazeid%" neq "" (
echo ^<uniqueid type=^"tvmaze^" default=^"%default%^"^>%sonarr_series_tvmazeid%^</uniqueid^> >> "%newname%"
set "default=false"
)
echo ^<user_note /^> >> "%newname%"
echo ^</tvshow^> >> "%newname%"
set "default="
)
(2022-05-01, 16:17)Remus Wrote: the uniqueid 'type' and 'default' attributes are reversedNo problem at all. As I sayed, search in the .\Ember Media Manager\Logs\*.csv for an entry like (sorry, I've only a german log example and only for a wrong string node, but the error should look very similiar):
EXCEPTION OCCURRED:System.InvalidOperationException: Fehler im XML-Dokument (20,13). ---> System.Xml.XmlException: Unerwarteter Knotentyp Element. Die ReadElementString-Methode kann nur für Elemente mit einfachem oder leerem Inhalt aufgerufen werden. Zeile 20, Position 13.
(2022-05-01, 16:17)Remus Wrote: All the <tag> node entries are gone, along with <watched>, <lastplayed>, <playcount>, and <dateadded>That's because Ember can't read any information from the XML if the XML has errors and only search for an IMDb ID.
(2022-05-01, 16:17)Remus Wrote: the info version is missing a <language> entryNot a problem. If no <language> information is existing the default language you set for a source will be used for scraping.
(2022-05-01, 16:17)Remus Wrote: blank entries such as <mpaa /> and <certification /> and is missing <order>Blank String entries are valid and can be written in both ways like
<mpaa/>
or <mpaa></mpaa>
(2022-05-01, 16:17)Remus Wrote: missing <order> entries for the actorsAlso not a problem. I think in this case the actors will be readed and saved in the order they are listed in the NFO file.
(2022-05-01, 16:17)Remus Wrote: Which node attributes is EMM expecting as integers or doubles?Use the source, Luke: Link
\s*(<boxeeTvDb><\/boxeeTvDb>|<displayepisode><\/displayepisode>|<displayseason><\/displayseason>|<episode><\/episode>|<filesize><\/filesize>|<order><\/order>|<playcount><\/playcount>|<season><\/season>|<subepisode><\/subepisode>|<top250><\/top250>|<userrating><\/userrating>|<value><\/value>|<votes><\/votes>)
(2022-05-02, 10:09)DanCooper Wrote: This is a regex for TextCrawler to search for empty Integer/Double values in NFO/INFO files and should be a complete list of all relevant nodes:
Code:\s*(<boxeeTvDb><\/boxeeTvDb>|<displayepisode><\/displayepisode>|<displayseason><\/displayseason>|<episode><\/episode>|<filesize><\/filesize>|<order><\/order>|<playcount><\/playcount>|<season><\/season>|<subepisode><\/subepisode>|<top250><\/top250>|<userrating><\/userrating>|<value><\/value>|<votes><\/votes>)
php:2022-04-30 09:20:49.8283,EmberAPI.NFO,EmberAPI.NFO.LoadFromNFO_TVShow,6,ERROR,LoadFromNFO_TVShow,"EXCEPTION OCCURRED:System.InvalidOperationException: There is an error in XML document (20, 4). ---> System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTVShow.Read9_TVShow(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTVShow.Read10_tvshow()
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
at EmberAPI.NFO.LoadFromNFO_TVShow(String sPath)* at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
at EmberAPI.NFO.LoadFromNFO_TVShow(String sPath)"
2022-04-30 09:20:50.0243,EmberAPI.ModulesManager,EmberAPI.ModulesManager.RunGeneric,6,TRACE,[ModulesManager] [RunGeneric] [Start] <OnNFORead_TVShow>,
2022-04-30 09:20:50.0243,EmberAPI.ModulesManager,EmberAPI.ModulesManager.RunGeneric,6,WARN,[ModulesManager] [RunGeneric] No generic modules defined <OnNFORead_TVShow>,
2022-04-30 09:20:50.0243,EmberAPI.ModulesManager,EmberAPI.ModulesManager.RunGeneric,6,TRACE,[ModulesManager] [RunGeneric] [Start] <Sync_TVShow>,
2022-04-30 09:20:50.0243,EmberAPI.ModulesManager,EmberAPI.ModulesManager.RunGeneric,6,TRACE,[ModulesManager] [RunGeneric] Run generic module <Kodi>,
2022-04-30 09:20:50.1183,generic.Interface.Kodi.Kodi.APIKodi,generic.Interface.Kodi.Kodi.APIKodi+VB$StateMachine_55_IsScanningVideo.MoveNext,24,TRACE,[APIKodi] [Study] IsScanningVideo: True,
2022-04-30 09:20:50.1183,EmberAPI.Scanner,EmberAPI.Scanner.RegexGetTVEpisode,6,INFO,[Scanner] [RegexGetTVEpisode] Found episode match s:\Media\TV Shows\Eden (2021)\Season 1\Eden (2021) - S01E01 - Episode 1.mkv (s1e1) [s([0-9]+)[ ._-]*e([0-9]+(??:[a-i]|\.[1-9])(?![0-9]))?)([^\\\/]*)$],
2022-04-30 09:20:50.2383,EmberAPI.NFO,EmberAPI.NFO.LoadFromNFO_TVEpisode,6,ERROR,LoadFromNFO_TVEpisode,"EXCEPTION OCCURRED:System.InvalidOperationException: There is an error in XML document (24, 4). ---> System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderEpisodeDetails.Read11_EpisodeDetails(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderEpisodeDetails.Read12_episodedetails()
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
at EmberAPI.NFO.LoadFromNFO_TVEpisode(String sPath, Int32 SeasonNumber, Int32 EpisodeNumber)* at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
at EmberAPI.NFO.LoadFromNFO_TVEpisode(String sPath, Int32 SeasonNumber, Int32 EpisodeNumber)"
Looks like the textreader failed at line 20 with the string <userrating>0.0</userrating> which contains a float.xml:<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--created on 2022-04-23 20:19:02 -->
<tvshow>
<title>Eden</title>
<originaltitle>エデン</originaltitle>
<showtitle>Eden</showtitle>
<sorttitle/>
<year>2021</year>
<ratings>
<rating default="false" max="10" name="themoviedb">
<value>6.9</value>
<votes>40</votes>
</rating>
<rating default="false" max="10" name="imdb">
<value>6.6</value>
<votes>1110</votes>
</rating>
</ratings>
<userrating>0.0</userrating>
<outline/>
<plot>Thousands of years in the future, a city known as "Eden 3" is inhabited solely by robots whose former masters vanished a long time ago. On a routine assignment, two farming robots accidentally awaken a human baby girl from stasis questioning all they were taught to believe -- that humans were nothing more than a forbidden ancient myth. Together, the two robots secretly raise the child in a safe haven outside Eden.</plot>
<tagline/>
<runtime>25</runtime>
<thumb aspect="poster">https://image.tmdb.org/t/p/original/AkXC8EuJCjuonHZIkxkUmiCdSGe.jpg</thumb>
<thumb aspect="poster" season="1" type="season">https://image.tmdb.org/t/p/original/o9ciDh5uyCORcno63Pe0CuNPP0P.jpg</thumb>
<fanart>
<thumb>https://image.tmdb.org/t/p/original/d5bmGNNToXndTWNtWurGCPEEZZy.jpg</thumb>
</fanart>
<mpaa/>
<certification/>
<id>371311</id>
<imdbid>tt10545250</imdbid>
<tmdbid>92584</tmdbid>
<uniqueid default="false" type="tmdb">92584</uniqueid>
<uniqueid default="false" type="imdb">tt10545250</uniqueid>
<uniqueid default="true" type="tvdb">371311</uniqueid>
<premiered>2021-05-27</premiered>
<status>Ended</status>
<watched>false</watched>
<playcount/>
<genre>Animation</genre>
<genre>Drama</genre>
<genre>Science Fiction</genre>
<studio>Netflix</studio>
<studio>Qubic Pictures</studio>
<studio>CGCG Inc.</studio>
<country>Japan</country>
<tag>future</tag>
<tag>truth</tag>
<tag>slice of life</tag>
<tag>distant future</tag>
<tag>mecha</tag>
<tag>miniseries</tag>
<tag>robot</tag>
<tag>anime</tag>
[actors stripped for brevity]
<trailer/>
<dateadded>2022-04-23 12:47:30</dateadded>
<!--end-->
<user_note/>
</tvshow>
again, <userrating>0.0</userrating> at line 24 is a float.xml:<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--created on 2022-04-23 20:19:02 -->
<episodedetails>
<title>Episode 1</title>
<originaltitle/>
<showtitle>Eden</showtitle>
<season>1</season>
<episode>1</episode>
<displayseason>-1</displayseason>
<displayepisode>-1</displayepisode>
<id>8016679</id>
<uniqueid default="false" type="tmdb">1895655</uniqueid>
<uniqueid default="true" type="imdb">tt13366092</uniqueid>
<uniqueid default="false" type="tvdb">8016679</uniqueid>
<ratings>
<rating default="false" max="10" name="themoviedb">
<value>8.5</value>
<votes>2</votes>
</rating>
<rating default="false" max="10" name="imdb">
<value>7.1</value>
<votes>76</votes>
</rating>
</ratings>
<userrating>0.0</userrating>
<plot>A millennium after humans vanished from Earth, two farming robots find a little human girl and start to take care of her, at great risk to themselves.</plot>
<runtime>25</runtime>
<thumb>https://image.tmdb.org/t/p/original/rMblBtrp7BfL0Bgf1EfuBFgzL3e.jpg</thumb>
<mpaa/>
<premiered>2021-05-27</premiered>
<aired>2021-05-27</aired>
<watched>false</watched>
<playcount>0</playcount>
<studio>Netflix</studio>
<studio>Qubic Pictures</studio>
<studio>CGCG Inc.</studio>
<credits>Kimiko Ueno</credits>
<director>Yasuhiro Irie</director>
[actors stripped for brevity]
<trailer/>
<dateadded>2022-04-23 12:47:30</dateadded>
<epbookmark/>
<code/>
<fileinfo>
<streamdetails>
<video>
<codec>HEVC</codec>
<aspect>2.0</aspect>
<width>1920</width>
<height>960</height>
<durationinseconds>1558</durationinseconds>
<stereomode/>
</video>
<audio>
<codec>AAC</codec>
<language>eng</language>
<channels>6</channels>
</audio>
</streamdetails>
</fileinfo>
<!--end-->
<source>UNKNOWN</source>
<original_filename>Eden (2021) - S01E01 - Episode 1.mkv</original_filename>
<user_note/>
</episodedetails>
In EMM, only integers can be set for this field when editing. In KODI, Estuary skin provides for integer selections only. I have 3 dedicated KODI devices running different skins but sharing a common database hosted on the file server; I just looked at the userrating field for both movies & tvshow databases, and it is indeed integer. The fix should be easy enough, but now I need to find what's been writing that field incorrectly.xml:<userrating></userrating> Personal rating set by the user
(2022-05-03, 07:42)Remus Wrote: In EMM, only integers can be set for this field when editing. In KODI, Estuary skin provides for integer selections only. I have 3 dedicated KODI devices running different skins but sharing a common database hosted on the file server; I just looked at the userrating field for both movies & tvshow databases, and it is indeed integer. The fix should be easy enough, but now I need to find what's been writing that field incorrectly.Yes, I selected Integer for this field because you only can set integers from 0 to 10 in Kodi. I think "0" means not rated.
(2022-05-03, 07:42)Remus Wrote: the line numbers don't match up ... textreader line counting issue or am I way off base here?Good question...