Page 16 of 18

Argus-TV Guide Enhancer v2.3.3 available now!

Posted: Wed Apr 15, 2015 10:56 pm
by ChrisRichner
Solved Issues
  • #19 Implement case INsensitive search (in at least: mapping) [by @ChrisRichner]
  • #17 Remove unnecessary entries from seriesMappings [by @Malyngo, @ChrisRichner]
  • #14 Proposal: common Mapping Repository (Github file) [by @ChrisRichner]
  • #13 sleepTimeInHours = Minutes
  • #11 Impr. Sugg.: also seek for AKA entries [by @Christoph21x]
Changelog
  • added link to copy & paste template [by @Christoph21x]
  • Added German Mini-Series
  • Added multiple seriesMapping INTERNATIONAL
  • removed WebAccess Project
  • removed unused projects
  • replaced Nunit by xUnit
  • Smarter AddUpcomingProgramsAsync fixes #16
  • InvariantCultureIgnoreCase fixed #19
Download -> https://github.com/ChrisRichner/ARGUS-T ... tag/v2.3.3

Don't hesitate to contact me in case of issues or questions

Enjoy

Re: Argus-TV Guide Enhancer

Posted: Sat Apr 18, 2015 4:22 am
by dihoff
ChrisRichner wrote:Please make sure EpisodeTitleMatchMethod is enabled and the first in order
Thanks - I've tweaked this and will see how it goes over the next couple of weeks!

dh.

Re: Argus-TV Guide Enhancer

Posted: Fri May 01, 2015 9:42 am
by sgibbers17
I just installed the newest version and the default language is still overridden be the un-commented

Code: Select all

<add key="TvDbLanguage" value="de"/>
I have tried to comment that line and changing it to "en" but I am still getting German enhancements.

Here is my current .config file.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="seriesMapping" type="GuideEnricher.Config.SeriesNameMapsSection, GuideEnricherService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true"/>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    <section name="MatchMethodsSection" type="GuideEnricher.Config.MatchMethodsSection, GuideEnricherService"/>
  </configSections>
  <!--
      This section allows you to create mappings from names in the 
      guide data (i.e., SchedulesDirect) to names in thetvdb.com.
      
      You need this because the names are not always equal.  It comes
      in handy for shows that have the same name a really old shows....
      Like Chase on NBC needs to have a mapping to Chase (2010) to help 
      this tool find the proper series.

      Use the logs to help debug.

      If a regular name mapping does not work, you can use thetvdb.com
      show ID as a direct map as shown with $..! My Dad Says below.
      
      Also, you can use regular expressions to handle schedulesDirectNaming
      problems for series names that occasionally have too much information 
      in it.  The third example shows the use of a regex to tvdb.com name.
      The fourth example shows using a regex to tvdb.com id

      For shows that you record but know you're not going to find reliable
      data on thetvdb.com, you can just choose to ignore them.  See 
      the fifth entry for an example.  The tvdbComName still needs to be there
      for the XML parser, so just make it an empty string like the example.

    <seriesMap schedulesDirectName="$..! My Dad Says" tvdbComName="id=164951" />
    <seriesMap schedulesDirectName="regex=Boston Leg.*" tvdbComName="Boston Legal" />
    <seriesMap schedulesDirectName="regex=Boston Lega.*" tvdbComName="id=74058" />GuideEnricher.tvdb.TvdbLibAccess
    <seriesMap schedulesDirectName="regex=The Daily Show.*" tvdbComName="" ignore="true" />
   -->
  <seriesMapping>
    <!-- Check out seriesMapping.xml (https://github.com/ChrisRichner/ARGUS-TV-GuideEnhancer/blob/develop/Setup/seriesMapping.xml) for copy & paste seriesMaps! -->
  </seriesMapping>
  <MatchMethodsSection>
    <MatchMethods>
      <add name="GuideEnricher.EpisodeMatchMethods.EpisodeTitleMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.NoPunctuationMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.RemoveCommonWordsMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.InQuotesInDescriptionMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.FirstSentenceInDescriptionMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.DescriptionStartsWithEpisodeTitleMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.SeasonAndEpisodeInDescriptionMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.NumericSeasonEpisodeMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.AirDateMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.AbsoluteEpisodeNumberMatchMethod" />
    </MatchMethods>
  </MatchMethodsSection>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="guideenricher.log"/>
      <appendToFile value="true"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="5MB"/>
      <rollingStyle value="Size"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %message%newline"/>
      </layout>
    </appender>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="RollingLogFileAppender"/>
      <appender-ref ref="Console"/>
    </root>
    <!-- 
      If you wish to overide logging level for specific class or namespace you can do so like the following
      <logger name="GuideEnricher.EpisodeMatchMethods.AbsoluteEpisodeNumberMatchMethod">
        <level value="warn" />
      </logger>
      
      or
      <logger name="GuideEnricher.EpisodeMatchMethods">
        <level value="error" />
      </logger>
    -->
  </log4net>
  <appSettings>
    <!-- Location to store cache of thetvdb.com data -->
    <add key="TvDbLibCache" value="c:\\tvdblibcache\\"/>
    <!-- uncomment the following line and set it to your language if you want to use another language than en (de for German, fr for French, ...) -->
    <add key="TvDbLanguage" value="en"/>
    <!-- 
         serviceUrl:
         This is the url used for FTR to call teh guideenricher
         Make sure the port is not used by anything else... i.e.,
         if you have issues, try changing the port.
      -->
    <add key="serviceUrl" value="net.tcp://localhost:49830/GuideEnricher"/>
    <!-- 
         how long the wait thread waits before doing a run of guide enricher 
         
       -->
    <add key="sleepTimeInHours" value="12"/>

    <!--
         This number determines the maxiumum number of shows that can be updated at once.
         If more than this need to be updated, the GuideEnricher will loop through 
         the shows by maxShowNumberPerUpdate until they are all updated.

         The reason to limit the number of shows is due to the FTR server timing out
         the webservice call for taking too long to update the shows.  So the number is
         probably dependent on the FTR server performance
      -->
    <add key="maxShowNumberPerUpdate" value="20"/>

    <!--
         The next properties are used to build the
         URL to the FTR server
      -->
    <add key="ftrUrlHost" value="localhost"/>
    <add key="ftrUrlPort" value="49943"/>
    <!-- leave ftrUrlPassword blank if you don't use password -->
    <add key="ftrUserName" value=""/>
    <add key="ftrUrlPassword" value=""/>
    <!-- 
      set dumpepisodes to 'true' if you want all episodes for a series dumped in the log file
      make sure logging is set to at least info level
    -->
    <add key="dumpepisodes" value="false"/>
    <!-- 
      set updateAll to true if you want to refresh all information in your schedules with the infromation from theTvDb
      This is useful if a shows information is completely changed on theTvDb, or you suspect a bad run of the enricher.
    -->
    <add key="updateAll" value="true"/>
    <!--
      If you want to filter your recordings based on season number the only way possible for now is to use the description field with a contains filter.
      In your recordings you would set Description Contains "S02E" for example.
    -->
    <add key="episodeInDescription" value="false"/>
    <!-- 
      set updateTitle to true if you want to update any of your schedules programs with the subtitle that it is 
      matched with from thetvdb.  Note however that if something is incorrectly matched, that this will overwrite 
      the current title for one that may be incorrect...
    -->
    <add key="updateSubtitles" value="true"/>
  </appSettings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
I tried uploading my log file but it keeps saying extension not allowed. I tried changing the extension to something else but was still not able to upload it.

Re: Argus-TV Guide Enhancer

Posted: Fri May 01, 2015 4:09 pm
by Christoph21x
Hi sgibbers! Long time not read :)

For Argus Forum you have to zip the files.
Could you provide please both files, I guess, this is not your full config file (If so, it CANĀ“T work - as the nodes are not closed) AND log file?

Greetz - Chris
sgibbers17 wrote:I just installed the newest version and the default language is still overridden be the un-commented

Code: Select all

<add key="TvDbLanguage" value="de"/>
I have tried to comment that line and changing it to "en" but I am still getting German enhancements.

Here is my current .config file.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="seriesMapping" type="GuideEnricher.Config.SeriesNameMapsSection, GuideEnricherService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true"/>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    <section name="MatchMethodsSection" type="GuideEnricher.Config.MatchMethodsSection, GuideEnricherService"/>
  </configSections>
  <!--
      This section allows you to create mappings from names in the 
      guide data (i.e., SchedulesDirect) to names in thetvdb.com.
      
      You need this because the names are not always equal.  It comes
      in handy for shows that have the same name a really old shows....
      Like Chase on NBC needs to have a mapping to Chase (2010) to help 
      this tool find the proper series.

      Use the logs to help debug.

      If a regular name mapping does not work, you can use thetvdb.com
      show ID as a direct map as shown with $..! My Dad Says below.
      
      Also, you can use regular expressions to handle schedulesDirectNaming
      problems for series names that occasionally have too much information 
      in it.  The third example shows the use of a regex to tvdb.com name.
      The fourth example shows using a regex to tvdb.com id

      For shows that you record but know you're not going to find reliable
      data on thetvdb.com, you can just choose to ignore them.  See 
      the fifth entry for an example.  The tvdbComName still needs to be there
      for the XML parser, so just make it an empty string like the example.

    <seriesMap schedulesDirectName="$..! My Dad Says" tvdbComName="id=164951" />
    <seriesMap schedulesDirectName="regex=Boston Leg.*" tvdbComName="Boston Legal" />
    <seriesMap schedulesDirectName="regex=Boston Lega.*" tvdbComName="id=74058" />GuideEnricher.tvdb.TvdbLibAccess
    <seriesMap schedulesDirectName="regex=The Daily Show.*" tvdbComName="" ignore="true" />
   -->
  <seriesMapping>
    <!-- Check out seriesMapping.xml (https://github.com/ChrisRichner/ARGUS-TV-GuideEnhancer/blob/develop/Setup/seriesMapping.xml) for copy & paste seriesMaps! -->
  </seriesMapping>
  <MatchMethodsSection>
    <MatchMethods>
      <add name="GuideEnricher.EpisodeMatchMethods.EpisodeTitleMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.NoPunctuationMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.RemoveCommonWordsMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.InQuotesInDescriptionMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.FirstSentenceInDescriptionMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.DescriptionStartsWithEpisodeTitleMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.SeasonAndEpisodeInDescriptionMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.NumericSeasonEpisodeMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.AirDateMatchMethod"/>
      <add name="GuideEnricher.EpisodeMatchMethods.AbsoluteEpisodeNumberMatchMethod" />
    </MatchMethods>
  </MatchMethodsSection>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="guideenricher.log"/>
      <appendToFile value="true"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="5MB"/>
      <rollingStyle value="Size"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %message%newline"/>
      </layout>
    </appender>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="RollingLogFileAppender"/>
      <appender-ref ref="Console"/>
    </root>
    <!-- 
      If you wish to overide logging level for specific class or namespace you can do so like the following
      <logger name="GuideEnricher.EpisodeMatchMethods.AbsoluteEpisodeNumberMatchMethod">
        <level value="warn" />
      </logger>
      
      or
      <logger name="GuideEnricher.EpisodeMatchMethods">
        <level value="error" />
      </logger>
    -->
  </log4net>
  <appSettings>
    <!-- Location to store cache of thetvdb.com data -->
    <add key="TvDbLibCache" value="c:\\tvdblibcache\\"/>
    <!-- uncomment the following line and set it to your language if you want to use another language than en (de for German, fr for French, ...) -->
    <add key="TvDbLanguage" value="en"/>
    <!-- 
         serviceUrl:
         This is the url used for FTR to call teh guideenricher
         Make sure the port is not used by anything else... i.e.,
         if you have issues, try changing the port.
      -->
    <add key="serviceUrl" value="net.tcp://localhost:49830/GuideEnricher"/>
    <!-- 
         how long the wait thread waits before doing a run of guide enricher 
         
       -->
    <add key="sleepTimeInHours" value="12"/>

    <!--
         This number determines the maxiumum number of shows that can be updated at once.
         If more than this need to be updated, the GuideEnricher will loop through 
         the shows by maxShowNumberPerUpdate until they are all updated.

         The reason to limit the number of shows is due to the FTR server timing out
         the webservice call for taking too long to update the shows.  So the number is
         probably dependent on the FTR server performance
      -->
    <add key="maxShowNumberPerUpdate" value="20"/>

    <!--
         The next properties are used to build the
         URL to the FTR server
      -->
    <add key="ftrUrlHost" value="localhost"/>
    <add key="ftrUrlPort" value="49943"/>
    <!-- leave ftrUrlPassword blank if you don't use password -->
    <add key="ftrUserName" value=""/>
    <add key="ftrUrlPassword" value=""/>
    <!-- 
      set dumpepisodes to 'true' if you want all episodes for a series dumped in the log file
      make sure logging is set to at least info level
    -->
    <add key="dumpepisodes" value="false"/>
    <!-- 
      set updateAll to true if you want to refresh all information in your schedules with the infromation from theTvDb
      This is useful if a shows information is completely changed on theTvDb, or you suspect a bad run of the enricher.
    -->
    <add key="updateAll" value="true"/>
    <!--
      If you want to filter your recordings based on season number the only way possible for now is to use the description field with a contains filter.
      In your recordings you would set Description Contains "S02E" for example.
    -->
    <add key="episodeInDescription" value="false"/>
    <!-- 
      set updateTitle to true if you want to update any of your schedules programs with the subtitle that it is 
      matched with from thetvdb.  Note however that if something is incorrectly matched, that this will overwrite 
      the current title for one that may be incorrect...
    -->
    <add key="updateSubtitles" value="true"/>
  </appSettings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
I tried uploading my log file but it keeps saying extension not allowed. I tried changing the extension to something else but was still not able to upload it.

Re: Argus-TV Guide Enhancer

Posted: Fri May 01, 2015 8:10 pm
by sgibbers17
It should be the whole config file. I'll try uploaded the log file later today.

Re: Argus-TV Guide Enhancer

Posted: Sat May 02, 2015 3:55 am
by sgibbers17
Here is my Log and Config file.

Re: Argus-TV Guide Enhancer

Posted: Sat May 02, 2015 10:58 am
by sgibbers17
sjeffrey wrote:I just tried against 2.01 with your config file and it worked just fine.
I'm not sure what could go wrong as it connects to Argus successfully.
Have you tried rebooting? Does Argus TV work correctly overall?

I am using Argus 2.3 with Guide Enhancer 2.3.3.29888 from gethub and an XMLTV from tvguide.com using webgrab+plus 1.1.1/54

Every thing seems to be working fine other than it is changing my EPG to German.

Is there a way to disable the guide enhancer other than uninstalling it or disable the service with in windows, possibly by changing a line to "false" or commenting out a line.

Re: Argus-TV Guide Enhancer

Posted: Sat May 02, 2015 11:28 pm
by Christoph21x
Did you delete your cache?
Simply delete everything within the directory tvdblibcache (resides by default directly on C:\). All subfolders and files. Deletion is harmless, it will be rebuilt reading it from TheTVDB.org (in the correct language, I guess. Let us know.

Greetz - Chris

Re: Argus-TV Guide Enhancer

Posted: Tue May 05, 2015 12:11 am
by sgibbers17
I'll have to try that when I get a chance.

Re: Argus-TV Guide Enhancer

Posted: Mon May 11, 2015 8:28 pm
by tripkip
ChrisRichner, Christoph21x and other Argus-TV Guide Enhancer devs,

Once Argus-TV can store more EPG related data in its db are you guys willing to built the Argus-TV Guide Enhancer into Argus TV server?

Argus-TV Guide Enhancer could provide most of the properties that we are missing today for movies and tv shows.
This would be a great step up. I hope you see some light in this :mrgreen:

Edit: I believe it would be possible to do this without merging Argus-TV Guide Enhancer into Argus TV server, but nonetheless I think your great tool deserves a place in the core itself especially if it will provide all this useful data to our EPGs.