| |||||||
| Community Plugins TV-Server Plugins created from users for users, can be found here. |
![]() |
| | Thread Tools | Display Modes |
| | #1 (permalink) |
| Portal Member | Drumroll... TV Scheduler is dead, long live... ![]() I will not overload the forum here with posting screenshots or listing features, everything is on the new site (For The Record). The only thing worth mentioning is that an upgrade from TV Scheduler 1.0.15.0 to For The Record 1.1.0.0 should go automatically for SQL Express users (the database will be transformed automatically). If you are a MySQL user you can backup your "TvScheduler" database and restore it as "ForTheRecord" before running the For The Record setup. The only important thing is to make sure you uninstall TV Scheduler before installing For The Record. May I invite you all to take the red pill and join us on the other side? ![]() TV Scheduler Web Access ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() TV Scheduler Management Console ![]() ![]() ![]() ![]() ![]() ![]() ] ]![]() TVE3 Plugin Update (March 25th, 2008) I recompiled the TVE3 plugin against the assemblies of the latest TVE3 SVN. Release 1.0.15.0 (January 23rd, 2008) Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Changes since the previous release:
Downloads removed. Visit For The Record for downloads. What can be tested? Once the service is up and running you can try the following: 1) drop a guide XMLTV file into C:\Program Files\dot-i\TvScheduler\xmltv. Any file with .xml extension will be imported by the service. It should be processed and moved to an 'Imported' directory. 2) start the Management Console on the server (there will be an icon on your desktop and in the start menu). Browse the TV guide, try right-clicking a program and schedule a recording. Play around with the console, you can add your own schedule from scratch for example. Check what programs are in the upcoming recordings list, etc... 3) install only the Management Console on another PC on your network (separate setup). Try running it and connect to the TvScheduler on your server machine. You may have to open the TCP port in your firewall. 4) make sure your server has IIS installed and if you are running Vista that you've installed support for ASP.NET and all IIS6 compatibility modules. If you install IIS on an already installed XP machine you may have to run this command: "aspnet_regiis -i" under "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 " Also make sure you have the Ajax extensions installed: Download details: ASP.NET AJAX 1.0. Then use the provided setup to install TV Scheduler Web Access. After installation you will have to edit the Web.config in C:\inetput\wwwroot\TvScheduler.WebAccess to provide a password. Then surf to http://localhost/TvScheduler.WebAccess to test out the site locally. You may have to open up port 80 in your firewall, then test the site remotely. 5) unzip the TVE3 plugin assemblies into TVE3's plugins directory. Use TV Server's management console to change its recording directory into a UNC path (\\MACHINE\Path\) if you want to be able to access the recorded files from another machine using TV Scheduler's management console. The TVE3 MediaPortal plugin has a GUI where you check the links between TvScheduler channels and MediaPortal channels. Check all your channels are linked, then activate the plugin. Once it's fully configured and running it will automatically synchronize all TvScheduler's upcoming programs into TVE3 manual schedules. And when TVE3 records the programs the recordings will be registered with TvScheduler. Happy testing! I'm looking forward to reading about your experiences/gripes/suggestions either positive or negative here in this thread. Thanks in advance for all the testing effort! PS: if you encounter an "Unexpected error" messagebox, be sure to check the EventLog (eventvwr.exe) and check out what has been logged under TvScheduler. -------------- cut -------------- First alpha release (september 5th, 2007) The TvScheduler service (see below for the start-post to this thread) is ready for some initial testing. Download: removed What can be tested? Once the service is up and running you can try the following: 1) drop a guide XMLTV file into C:\Program Files\Team MediaPortal\TvScheduler\xmltv. Any file with .xml extension will be imported by the service. It should be processed and moved to an 'Imported' directory. 2) After you've tried to import one or more guides, please use SQL Server Management Studio or MySQL Administrator to look at the TvScheduler database. The Log table will give some high-level logging about the import process and the TvChannel, GuideChannel and GuideProgram tables should contain all the program data. 3) Try to browse to the following URLs with Internet Explorer: blockedcontent blockedcontent 4) Try to browse to these URLs from another machine on your network (replacing blockedcontent with the IP or name of your server machine). You may have to add port 49941 to your firewall to allow traffic through. Note that in this stage so called power-users are needed for testing, there's no GUI yet ![]() What's next I'll post a simple WinForms program next that demonstrates some of the service APIs (to show what's possible with the rule-based system). But it would be interesting to get feedback on the basic stuff first. Thanks in advance for testing this out! -------------- cut -------------- Hey all, Together with a friend I've been working on a scheduling sub-system that could be used by MediaPortal and/or TVEngine3. Things are progressing nicely and I wanted to give a status update, offer some technical points, and most importantly, check if there's feedback on how and where we are heading. Good ideas are always welcome of course ![]() Technology The scheduling subsystem is built as a Windows Service (like TVE3) that hosts a few Windows Communication Foundation (WCF) services. These services are exposed with two endpoints: net.tcp:// for fast communication with WCF clients and http:// for industry-standard communication web-service communication. So basically the system is perfect for client/server setups. As database SQL Express is used at the moment, but I see no reason why MySQL should not also work. Like TVE3, Gentle.net is used for data access. Overview At the moment there are four services, of which two are the heart of the system and two support services:
The scheduler service handles the most important part: managing scheduling of programs. This is a rule-based system (more on that below). Schedules can be created/updated/deleted of course and there are methods to get all the upcoming recordings in general or for a specific schedule. The log service and configuration service are support services, lower-level things to make the rest work. Logging is desgned as high-level "application logging", so not to be confused with low-level .txt logs that are more useful for debugging. Rule Based The scheduler is rule-based, this means it does not work with a single "schedule type", but can be configured as simple or as complex as you want. This makes it extremely powerful. As a simple example, it will be possible to record all documentaries with "global warming" in the description on BBC1 or BBC2. Schedules also have a priority to help the recording system to decide which one is more important to record (this can help in case there are conflicts). Here's a list of the rules as we have them currently defined: Code: public enum ScheduleRuleType
{
TvChannels = 0, // Record on the given channel(s).
Time = 1, // Record at the given start/stop time.
AroundTime = 2, // Record the timeslot closest to the given start time (usually combined with TitleEquals).
DaysOfWeek = 3, // Record on these days of the week.
TitleEquals = 4, // Record program with the given title.
SubTitleEquals = 5, // Record program with the given sub-title.
TitleContains = 6, // Record program who's title contains the given text.
DescriptionContains = 7, // Record program who's description contains the given text.
CategoryEquals = 8, // Record programs from this category.
DirectedBy = 9, // Record program directed by given name.
WithActor = 10 // Record program which has the actor by the given name.
}
Rules will always be AND-ed together. So the more rules, the more specific the schedule will be. Code: ScheduleRules rules = new ScheduleRules();
rules.Add(ScheduleRuleType.DaysOfWeek, ScheduleDaysOfWeek.Mondays | ScheduleDaysOfWeek.Fridays);
rules.Add(ScheduleRuleType.DescriptionContains, "MediaPortal");
TvSchedule schedule = schedulerService.AddSchedule("Example", SchedulePriority.Normal, rules, null, null);
![]() Before I go one step further, and start posting more technical details like the service's API I'd welcome feedback on the story so far. Any general comments? Any ideas on the rules or new rules that can be added? Questions? ... Last edited by dvdfreak; 2008-06-02 at 10:08. |
| | |
| | #2 (permalink) |
| Portal Member Join Date: Mar 2007 Age: 37
Posts: 52
Thanks: 0
Thanked 0 Times in 0 Posts
Country: | This sounds really, really good, I always found the recording / schedule stuff to be a bit under par. Hope you make a good interface though as I tend to mixup code when doing manual rules ![]() |
| | |
| | #3 (permalink) |
| Portal Tester | As we have already discussed on IRC, I like that idea. Will it be possible to have schedules like "Everytime on every channel where 'Tim Allen' is in description when starting time between 7pm and 10pm"?
__________________ Some say he works as a tester for Team Mediaportal and some say that he smells bugs, even before they are written into the Code. All we know is, he's called The Stig. |
| | |
| | #4 (permalink) | ||
| Portal Member | Quote:
Quote:
, as in API.But you are quite right that a good interface, as in GUI, is very very important too. We can't expect a user to simply provide low-level rules, this should be wrapped in a nice, clean and user-friendly GUI. Any enthousiasts who want to write a new MediaPortal Schedule plugin that talks to this new service? ![]() | ||
| | |
| | #6 (permalink) | |
| Portal Member | Quote:
![]() There's an AroundTime rule, but this would record the timeslot closest to a certain start time. So that's not entirely what you want. So we can add a "BetweenTimes" rule, not a bad idea! So in code we get this: Code: ScheduleRules rules = new ScheduleRules();
rules.Add(ScheduleRuleType.BetweenTimes, new TimeSpan(19, 0, 0), new TimeSpan(22, 0 0));
rules.Add(ScheduleRuleType.DescriptionContains, "Tim Allen");
TvSchedule schedule = schedulerService.AddSchedule("I love Tim Allen", SchedulePriority.Normal, rules, null, null);
Yes, very important. This will be in there! Last edited by dvdfreak; 2007-07-31 at 12:00. Reason: Automerged Doublepost | |
| | |
| | #8 (permalink) | |
| Portal Member | Quote:
![]() In any case, first this needs to work as a standalone subsystem. Once that is done we can "relatively easily" modify MediaPortal to use this new scheduler rather than its own. A possibility is to start with a new Schedule GUI plugin like I mentioned a bit higher up, which talks to this new system. This would allow us to do some end-user testing without impacting MP's stability, since it's totally separate still. In the end this new plugin could then actually replace MP's standard scheduling screen. I don't know if there are people with both enough free time and the needed skills, but help in this area is more than welcome ![]() Last edited by dvdfreak; 2007-07-31 at 13:32. | |
| | |
| | #10 (permalink) | |
| Portal Member | Quote:
In any case, everything so far has been developed very cleanly using common .NET coding guidelines with code readability in mind and including unit testing. I'm happy to provide a more technical look if people are interested, which assemblies are there, which services, their API, etc... (perhaps in a separate thread?) But I just wanted to get some initial opinions before delving that deep. And I'm happy with the response so far, I already added the definition for the BetweenTimes rule for example ![]() Last edited by dvdfreak; 2007-07-31 at 13:52. | |
| | |
![]() |
| Bookmarks |
| Tags |
| rulebased, service, tvscheduler |
| Thread Tools | |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Rule Based Post Processing | NewUser | General Support | 6 | 2008-02-27 14:37 |
| First beta of rule-based scheduler has been uploaded | dvdfreak | Development | 0 | 2007-09-19 15:05 |
| One remote to rule them all? | fathead | General Support | 5 | 2006-01-06 18:37 |
| Cant record using the scheduling feature | martyyn | General Support | 3 | 2005-12-26 14:32 |