(2016-04-12, 10:48)DanCooper Wrote: We plan to improve the source editing and sorting.
But it's not possible to change the folder/file system for tv shows. For movies we always can use the parent folder of a file to use it as "movie folder". But for tv show can't: one use save all episodes inside the tv show root folder, another use season folder, next user use season and episode folders, another user use episode folders inside the tv show root folder and next user use tv show folders inside genre folders. As you see, there is no way to proper identify the tv show root folder. So we have to strictly use .\SOURCE\TVShowRootFolder to assign episodes to a tv show.
I found this to be an interesting problem. I get that it's probably not the biggest priority for you guys since there is an easy workaround (just add more sources) and I wouldn't criticize you in any way for focusing on more pressing priorities with the latest alpha.
However, this issue is not unique Ember. Whatever approach that resolves this for Ember could also be used in Kodi, or vice-versa. Moreover, I reject the idea that it is impossible. Complicated, yes. Impossible, no. I've thought up a way to resolve it. My explanation is a bit long, so I hope you'll bear with me.
I'm less worried about different users doing different things than I am about one user doing different things. The more consistent the folder structure in each root that gets added to sources, the easier it is to infer information.
For instance, suppose that the structure is consistent throughout the entire file structure. It always goes something like
./root/subfolders/shows/seasons/episodes
If you walk through the file structure, find an episode, then you immediately know how to find each show's directory. You can use that information to figure out what the shows are.
That's probably too easy. Suppose that in the above, there are mixed in folders like
./root/subfolder1/subfolder2/shows/seasons/episodes
Note that in this case the show's folder structure is unchanged. So long as you maintain
./shows/seasons/episodes
throughout all of root, then you know that no matter how far down you go, you can get back to the show folder by moving up directories twice. Again, this means you should have all the information needed to identify the names of shows if you're walking through the ./ directory.
Complexity would increase if users use different show folder structures. For instance, suppose some shows have folder structures like
./shows/episodes
for absolute ordering in anime shows. This might raise some complications. The most obvious resolution is to re-organize them as
./root/Default/subfolder1/shows/seasons/episodes
./root/Default/subfolder2/subfolder3/shows/seasons/episodes
./root/Absolute/subfolder4/shows/episodes
and then instead put the ./root/Default/ and ./root/Absolute/ folders in there separately. Then you can use built-in Ember functionality to mark the directories as absolute ordering or season ordering and the above logic should resolve everything.
The downside would be that it requires moving a bunch of files around and making sure everything is working in Kodi again. My ideal resolution would be to introduce a new nfo file (I'll call it ShowFolderStructure.nfo for simplicity) that could provide some information to Kodi/Ember. The information could be as simple as the number of directories you would have to move to get from the episodes folder to the shows folder. (The implication is that the show folder structure always must conform to this number.) This file would provide information on the show folder structure for all subfolders, unless overwritten by another another ShowFolderStructure.nfo file below. Ember could assume that the default is used if ShowFolderStructure.nfo is missing. This would only require the creation of one file in the example above at
./root/subfolder4/ShowFolderStructure.nfo
and then every show folder in subfolder4 would be recognized as having a shows/episodes file structure. Any individual show could also have a similar nfo file, which would allow additional customization.