This project has moved and is read-only. For the latest updates, please go here.

Feature Request (Conversion Task 'Branching')

Oct 22, 2015 at 11:58 PM
Now that I can really start using MCE, I have noticed that it is somewhat cumbersome to use multiple comskip files for different shows.

Currently, it appears that you need to:
1) use a "catch all" conversion task(s) for shows that don't require a specialized comskip file and in that conversion task(s) (I have one for .mpg and another for .ts) you need to add the shows that need disregarding, ie: ~TheMiddle* .
2) Create another conversion task to the shows that require special treatment.

May I suggest an alternative or additional approach?

The ability to raise or lower the conversion task in the list of tasks already exists. So if we add an option to the conversion task system, lets call it "Ignore Lower Tasks", we would be able to position the "catch all(s)" below these special tasks (because once the system found a match, would not processing anymore tasks for that recording) and thus would not have to adjust each of the catch all tasks each time we add a new custom conversion?

I hope I explained it well enough
Oct 28, 2015 at 6:22 PM
Yes fairly clear but that muddies things up from a transparency perspective. The top priority is to keep things as simple (as possible). I see your issue but the solution will just make things more complicated. I always take my grandmothers (tech savvy) case. If I gave it to her to start with how would she handle it. A hidden option to ignore lower tasks (even for experienced folks) after a a while the human memory can forget things. This would just cause more confusion if you came back to change your settings say after 6 months (and yes most folks just set and forget for a while). It need to be more transparent. E.g. the order or execution of the tasks is driven by the display order.
Infact the most complicated issue right now is the NxN combinations of linking Monitor Tasks to Conversions tasks (you can assign specific monitor tasks to conversion tasks) which we think is too complex as users can forget the mapping and can create issues in future when a new monitor task or conversion task is added

Oct 28, 2015 at 8:10 PM
I see what you are saying, but I would argue there are any number of settings that could cause confusion, take my own experience for example :-). I think as it stands it's much harder to maintain the current schema, especially when it comes to TV shows which constantly change. There are just too many steps in adding a new show that requires differentiated settings.

I'm not suggesting the option should be 'hidden', and you could make it default to the current schema and when the other is selected a big warning dialog could be presented to the user much like you do with other settings. IMHO it's much easier to get things messed up with all the filters that need to be maintained.

I think this would be beneficial to anyone that deals with differentiated settings between shows.
Oct 28, 2015 at 8:21 PM
Not at all arguing that the process/interface can be simplified and we're always looking for inputs on how it can be done, the process and the interface. Having more steps in a process is a preferable option to a non intuitive process.

Keeping that in mind how we can simplify the process/interface here? Need to note that users want an process that they don't need to "remember" settings from another task, it should be self evident/intuitive. (hence we didn't add a catch all since it's an exception to the simple rule that all files are matched against all tasks (which BTW we broke when added the option to link monitor tasks to conversions tasks and are still looking for a way to undo/simplify that one)

Oct 28, 2015 at 8:54 PM
"Need to note that users want an process that they don't need to "remember" settings from another task, it should be self evident/intuitive. "

But you currently have to do that very thing now. You must remember to add (or remove) exclusions to any "catch all" processes one might have.

For intuitiveness you could identify any processing methods (or those waiting to be processed) by using font colors. Any process that uses the normal schema could be identified in black, any process that uses the alternative schema could be identified in red. This way a users can immediately identify which schema is being used.

As always, I thank you for your consideration.
Oct 28, 2015 at 9:38 PM
Correct and you have to check ALL the tasks, i.e the consistency of it at the expense of extra work.

So what you're proposing is have one catch all task that is processed if no other task matches?
That would be extremely complex, currently tasks can deny processing if the metadata filters don't match, filename filters don't match, monitor tasks don't match and a few more reasons.

How will the user be able to remember all this? (currently each task operates independently so there is co dependency and hence the simplicity of it at the expense of extra work as you pointed out).

Oct 28, 2015 at 11:46 PM
Edited Oct 28, 2015 at 11:47 PM
"So what you're proposing is have one catch all task that is processed if no other task matches?"

No, that is not what I'm proposing.

1) The ability to position the conversion tasks with-in the list of tasks already exists, which I assume allows for linear progression of processing tasks (starts from top to bottom I think right?).

The only thing I'm suggesting is adding an option to the task the would allow the prepossessing code to stop processing any lower conversion tasks that may meet the trigger criteria for the current task.

A picture may be worth a thousand words... :-)
Oct 29, 2015 at 12:18 AM
Okay so how does one indicate it? If a file (remember there are multiple monitor tasks and hence multiple files coming from different places) matches a task and say the option to stop further processing of tasks is checked, how is the user notified that the rest of the tasks will not be processed? (you can't change the color, it's processing multiple files in real time).

Oct 29, 2015 at 12:38 AM
Edited Oct 29, 2015 at 12:40 AM
I'm presuming the filter matching engine doesn't care where the files are coming from? I assumed the engine simply matched the criteria to each of the tasks? If it matches, it runs the task? I could be all wrong here as this is just an observational guess on my part.. :-)

I'm not sure the users would need to know visually that lower tasks that matches the same criteria that triggered the first where skipped. Although you could add a note to the log that a 2nd, criteria matching task, was skipped due to the active setting on the current.

The user would need a visual identifier in the task list though. The RED font color would work perfectly for that IMO.
Oct 29, 2015 at 12:47 AM
So what you're saying is to mark the tasks in red where the option for skip processing lower tasks is checked? A visual identification for the user.

I see your point but my original concern remains does it makes the overall process overly complicated for users? Marking it red will not be enough, we will need pop up notifications, what we've noticed that any option that even slight makes it more complex leads to a ton of queries and questions. Hence the need to keep it simple.

Think about alternative approaches, the whole idea behind the stop processing if that you don't want to change other conversion task rules right?
So say you add one rule to stop processing lower conversion tasks, now if you're creating a new task are there situations where the option for stop processing in a lower or higher task would complicate matters? Is there a simpler way to approach the problem?

I'm not trashing your idea but trying to figure out how to keep it simple and yet functional.

Oct 29, 2015 at 1:10 AM
To make the GUI coding easier, I would add something like a "Ignore Lower Tasks" check box in the lower right hand portion of the option frame where the user enters the filter criteria (there is some space there). (Default would be un-ticked). Maybe adding a warning that any lower criteria matching tasks would be ignored once this task found a match when the user ticked the box would probably be a good idea.

An easy visual identifier (for task ordering) in the task list (my screen shot example), I would change the font color to RED for each task that has the above option ticked.

The great thing about this is that nothing will change for the user if they never select the optional processing schema. The only changes that would need to be made to the engine (as I assume it's already a top to bottom linear process) is a setting detection and halt branch.

For clarity, I've completely oversimplified the work (and complexity) that would be required to make these changes.
Oct 29, 2015 at 1:30 AM
"So say you add one rule to stop processing lower conversion tasks, now if you're creating a new task are there situations where the option for stop processing in a lower or higher task would complicate matters?"

Remember you are only halting tasks that meet the same criteria that the first tasked was triggered with.

If you have two tasks for the show NCIS, and 2 other "catch all" tasks.

In order:
1) The first is a conversion to .mkv task that the "Ignore Lower Tasks" is not ticked, (Processing of #2 will run also)
2) The second is a conversion to .avi task that the "Ignore Lower Tasks" IS ticked. (Processing of any other matching criteria tasks below this one will NOT run)
3) Catch all task would NOT fire for this recording because 2 is ticked and 3 is below 2.
4) Catch all task would NOT fire for this recording because 2 is ticked and 4 is below 2.

In the task list, the font color for #1 is Black (normal) and font color for#2 is red (alternative schema). That would immediately let the user know any matching criteria tasks below this red one will be ignored. Seems really easy to me but..... I will chew on other iterations seeking more simplicity.
Oct 29, 2015 at 2:21 AM
Not disagreeing with your logic. Great for someone who knows. Please think as my grandmom, what will a red line indicate? That's the key I'm talking about how to keep it simple enough to undertand for the newbie.

Oct 29, 2015 at 4:14 PM
"what will a red line indicate?"

The red line would indicate any matching criteria tasks below would be ignored and not processed.