For The Record - The rule-based scheduling suite (6 Viewers)

Ernie-c

Portal Member
July 31, 2007
42
5
Belgium
Home Country
Belgium Belgium
Solution: i) Send a message to all clients informing them of "Recording X will interrupt your viewing"
ii) MP Client interprets message and prompts user:
a) to ignore ("OK I will be interrupted") (Ideally it would tune into recording automatically when starts)
b) to cancel X scheduled recording
...

I'm sure we can workout something usefull, but that's gonna be more the business of the TvRecorder, which I'm currently developing (I assisted dvdfreak with the TvScheduler), so watch out here for a new thread "TvRecorder -using TvScheduler".
 

marmite

Portal Member
March 30, 2007
12
0
Home Country
United Kingdom United Kingdom
I'm sure we can workout something usefull, but that's gonna be more the business of the TvRecorder, which I'm currently developing (I assisted dvdfreak with the TvScheduler), so watch out here for a new thread "TvRecorder -using TvScheduler".

Yes, I agree, the scheduler should schedule, the kind of functionality I describe, should involve the scheduler, but not be coded within it.
I pointed it out here, because it will involve the scheduler if only to query it and potentially cancel and so there should be some API to ask the right questions, but thinking about it more, you probably could handle this _completely_ independently already by interrogating the dB.

Information about IF and WHEN a rerun of the upcoming recording will take place would spare the user from finding out by himself.
Message to clients could be something like: "Recording X will interrupt your viewing at <time>. Rescheduling is possible for <date> at <time>."

I was hoping eventually, that the rules of the new scheduler, could define this behavior by default.
IOW - a rule set defined for a series, a episode is missed for _whatever_ reason, the scheduler is aware that episode X#n has still not been recorded, and so if it re-aires it will record next time.
BTW: This is how Tivo handles things - this behaviour, handles power cuts, priority conflicts, etc.

If the client choosed to cancel an individual episode for whatever reason, I'd like the scheduler to do the smart stuff of rescheduling if possible. I guess the client _could_ check with the scheduler and warn if no repeats. But I'd prefer to keep it simple, with maximum logic in the scheduler itself.



I do not know the code base at all and have never coded in c#, I fetched the sources last night and found the code that detects the scheduler/livetv conflict.. Just curious, what (if any) mechanisms are there for relaying messages to the client? Or is everything currently 'pulled' by the client?
 

dvdfreak

Portal Pro
June 13, 2006
979
178
Home Country
Belgium Belgium
Interesting points are raised, and I agree that scheduling logic should remain in TvScheduler as much as possible. Especially conflicts management will be an area that will allow for some tweaking here and there, but that's something that will come out of the real-world testing and experiences.

In the mean time: is anyone testing or has anyone tested the new beta I uploaded last week? No bugs have been reported so far, so that's either very very good news, or noone is actually testing it :D

I'd also like to know if the beta is being tested on both SQL Express and MySQL 5.
 

jackelmatador

Portal Member
April 26, 2006
16
0
Sorry to post a noob question that may have been asked before this, but is there any way to directly use this with the schedules direct plugin on TVE3. I don't care that TVSchedule itself is not a plugin, I just want to know if it can automatically import the guide data generate by the schedules direct plugin.

I guess if not would I just use xmltv to get my guide from schedules direct then dump it into the appropriate folder?
 

dvdfreak

Portal Pro
June 13, 2006
979
178
Home Country
Belgium Belgium
Sorry to post a noob question that may have been asked before this, but is there any way to directly use this with the schedules direct plugin on TVE3. I don't care that TVSchedule itself is not a plugin, I just want to know if it can automatically import the guide data generate by the schedules direct plugin.

I guess if not would I just use xmltv to get my guide from schedules direct then dump it into the appropriate folder?

Well, yes, you basically need to get the guide xml file into TvScheduler's xmltv directory. Looking at the XMLTV website they seem to have a "tv_grab_na_dd" grabber for Schedules Direct now, but I suppose you already knew that. But anyway, using that seems to be the easiest way, just schedule a command to run every night for example.
 

GoldenEye

MP Donator
  • Premium Supporter
  • October 26, 2005
    299
    26
    Switzerland
    Home Country
    Switzerland Switzerland
    I started testing your TvScheduler. In the manamgent console, I can see the channels but no shows.

    The event log says:
    Code:
    Error: StatementErrorUnclassified
    Gentle.Common.GentleException: select ConfigurationId, Module, Key, Value, DefaultValue, LastModifiedTime, Version from Configuration where Module = ?Module and Key = ?Key; ---> MySql.Data.MySqlClient.MySqlException: #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Key, Value, DefaultValue, LastModifiedTime, Version from Configuration where Mod' at line 1
       bei MySql.Data.MySqlClient.PacketReader.CheckForError()
       bei MySql.Data.MySqlClient.PacketReader.ReadHeader()
       bei MySql.Data.MySqlClient.PacketReader.OpenPacket()
       bei MySql.Data.MySqlClient.NativeDriver.ReadResult(Int64& affectedRows, Int64& lastInsertId)
       bei MySql.Data.MySqlClient.CommandResult.ReadNextResult(Boolean isFirst)
       bei MySql.Data.MySqlClient.NativeDriver.SendQuery(Byte[] bytes, Int32 length, Boolean consume)
       bei MySql.Data.MySqlClient.MySqlCommand.GetNextResultSet(MySqlDataReader reader)
       bei MySql.Data.MySqlClient.MySqlDataReader.NextResult()
       bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
       bei MySql.Data.MySqlClient.MySqlCommand.System.Data.IDbCommand.ExecuteReader()
       bei Gentle.Framework.SqlStatement.Execute(IDbConnection conn, IDbTransaction tr)
       --- Ende der internen Ausnahmestapelüberwachung ---
       bei Gentle.Framework.SqlStatement.Execute(IDbConnection conn, IDbTransaction tr)
       bei Gentle.Framework.PersistenceBroker.Execute(SqlStatement stmt, IDbConnection dbConnection, IDbTransaction dbTransaction)
       bei Gentle.Framework.Broker.Execute(SqlStatement stmt)
       bei TvScheduler.Business.Configuration.GetConfigurationByModuleAndKeyOperation.Execute(String module, String key)
       bei TvScheduler.Business.Configuration.GetStringValueOperation.Execute(String module, String key, Boolean usedefault)
       bei TvScheduler.Business.Guide.ImportProgramOperation.GetPreferredSource()
       bei TvScheduler.Business.Guide.ImportProgramOperation.Execute(GuideProgram guideProgram, GuideSource source)
       bei TvScheduler.Business.Guide.ImportXmlTvGuideOperation.Execute(String guidePath)
       bei TvScheduler.Business.Guide.GuideFacade.ImportXmlTvGuide(String guidePath)
       bei TvScheduler.ServiceImplementation.TvGuideService.ImportXmlTvGuide(String guidePath)MySql.Data.MySqlClient.MySqlException: #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Key, Value, DefaultValue, LastModifiedTime, Version from Configuration where Mod' at line 1
       bei MySql.Data.MySqlClient.PacketReader.CheckForError()
       bei MySql.Data.MySqlClient.PacketReader.ReadHeader()
       bei MySql.Data.MySqlClient.PacketReader.OpenPacket()
       bei MySql.Data.MySqlClient.NativeDriver.ReadResult(Int64& affectedRows, Int64& lastInsertId)
       bei MySql.Data.MySqlClient.CommandResult.ReadNextResult(Boolean isFirst)
       bei MySql.Data.MySqlClient.NativeDriver.SendQuery(Byte[] bytes, Int32 length, Boolean consume)
       bei MySql.Data.MySqlClient.MySqlCommand.GetNextResultSet(MySqlDataReader reader)
       bei MySql.Data.MySqlClient.MySqlDataReader.NextResult()
       bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
       bei MySql.Data.MySqlClient.MySqlCommand.System.Data.IDbCommand.ExecuteReader()
       bei Gentle.Framework.SqlStatement.Execute(IDbConnection conn, IDbTransaction tr)

    I am using mysql, which works flawlessly with the TV engine 3.

    G.
     

    dvdfreak

    Portal Pro
    June 13, 2006
    979
    178
    Home Country
    Belgium Belgium
    Interesting, what MySQL version are you using? I tested everything against version 5. Then again, perhaps I did not do enough testing, since I'm using SQL Express myself.

    Can you let me know what version you are using? And I'll do some more testing against MySQL as well.

    Has anyone else (succesfully) tested using MySQL?

    PS: TvScheduler requires InnoDB support in MySQL since it uses transactions. Perhaps that could be the problem? I know TVE3 does not use InnoDB nor transactions.
     

    Users who are viewing this thread

    Top Bottom