Argus-TV Guide Enhancer

ChrisRichner
Posts: 42
Joined: Tue Dec 25, 2012 11:16 am
Location: Lucerne, Switzerland
Contact:

Argus-TV Guide Enhancer v2.3.3 available now!

Post by ChrisRichner » Wed Apr 15, 2015 10:56 pm

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

dihoff
Posts: 27
Joined: Tue Sep 07, 2010 12:29 pm

Re: Argus-TV Guide Enhancer

Post by dihoff » Sat Apr 18, 2015 4:22 am

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.

sgibbers17
Posts: 80
Joined: Thu Mar 13, 2014 12:08 am

Re: Argus-TV Guide Enhancer

Post by sgibbers17 » Fri May 01, 2015 9:42 am

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.

Christoph21x
Posts: 1070
Joined: Wed Oct 19, 2011 9:39 am
Location: Berne / Switzerland

Re: Argus-TV Guide Enhancer

Post by Christoph21x » Fri May 01, 2015 4:09 pm

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.
"One must still have chaos within oneself, to give birth to a dancing star." (F. Nietzsche)

sgibbers17
Posts: 80
Joined: Thu Mar 13, 2014 12:08 am

Re: Argus-TV Guide Enhancer

Post by sgibbers17 » Fri May 01, 2015 8:10 pm

It should be the whole config file. I'll try uploaded the log file later today.

sgibbers17
Posts: 80
Joined: Thu Mar 13, 2014 12:08 am

Re: Argus-TV Guide Enhancer

Post by sgibbers17 » Sat May 02, 2015 3:55 am

Here is my Log and Config file.
Attachments
Guide Enricher.zip
(74.79 KiB) Downloaded 183 times

sgibbers17
Posts: 80
Joined: Thu Mar 13, 2014 12:08 am

Re: Argus-TV Guide Enhancer

Post by sgibbers17 » Sat May 02, 2015 10:58 am

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.

Christoph21x
Posts: 1070
Joined: Wed Oct 19, 2011 9:39 am
Location: Berne / Switzerland

Re: Argus-TV Guide Enhancer

Post by Christoph21x » Sat May 02, 2015 11:28 pm

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
"One must still have chaos within oneself, to give birth to a dancing star." (F. Nietzsche)

sgibbers17
Posts: 80
Joined: Thu Mar 13, 2014 12:08 am

Re: Argus-TV Guide Enhancer

Post by sgibbers17 » Tue May 05, 2015 12:11 am

I'll have to try that when I get a chance.

User avatar
tripkip
Posts: 29
Joined: Mon Feb 09, 2015 4:28 pm
Location: Temse, Belgium

Re: Argus-TV Guide Enhancer

Post by tripkip » Mon May 11, 2015 8:28 pm

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.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest