planning on a big change, where should i put it

scphantm

21-07-2011 13:20:11

this weekend im going to start some major changes to the tv rename code. no media management app out there does everything i want, and tv rename seems to be the best starting point ive found to begin with. my sister and i are developers (java) and we are going to take up the challenge, starting saturday.

here is the list of things we plan to do:

1 - FIRST AND FOREMOST!!!! BEFORE ANYTHING ELSE IS DONE!!!!
replace the XML files used to store data with a database engine. most likely we will embed a copy of Raven DB into the app. this conversion will be completed before anything else is done.

2 - additional file downloads for xbmc. stuff like clearimages, season images, banners, posters, logo's, all of them. we are adding these files to the scanner to make certain that those files exist for the various skins in xbmc.

3 - xbmc database integration. we want this to be able to connect to an xbmc database and update it with changes made here.

4 - movie support. all the bells and whistles for dealing with movies in xbmc and the file system

5 - music support. same for music file collections

so, thats probably 6 months to a years worth of work doing it part time.

my question for here, should i consider these changes part of tv rename or branch a new project.

thoughts?

sstteevvee

22-07-2011 18:19:35

Hi there..

I'm happy to give you permission to check-in to the existing google code repository, so you can work in a branch there, and even upload your compiled version to the downloads section, perhaps.

A few quick comments and thoughts:

1) Given the idea in 3, is that the same DB as XBMC uses? If not, maybe use the same DB engine to keep things simpler/smaller. Does RavenDB work ok with .NET 2.0? I was trying to avoid moving to .NET 3 as the runtime download is a lot larger. What are the advantages/motivation of moving to the DB? What about the DB support already in .NET, so no additional (large) downloads are required?

2) That'd be great, and I'm sure many people would appreciate better XBMC integration.

3) XBMC also has its caches of thumbnails, banners, etc. Keeping those up to date when the one in the file system changes, or not having the ".tbn" files floating around, would be good.

4,5) If you think that movie and music support can be easily added in, sure. Its a bit different to the way TV shows are, as it doesn't have the "a new one every week" sort of approach, with seasons and episodes. However, if you can write something that'll look at a filename, and figure out what the movie is (e.g. against imdb.com) and then suggest something to rename it to, it'd fit in to the existing system.

If you want me to make you a branch in the google code repository, and give you check-in permission, send me a PM with your google code login, and what you want the branch to be called, e.g. your initials, or something.

scphantm

22-07-2011 21:05:27

ugh, SVN, ugly

1 - XBMC uses sqlLight or mysql, depending on how you configure it. raven db is completely different. raven is a document based schemaless database engine that can imbeded into .net 3.5 apps (http://ravendb.net/home). windows does have a schemaless database engine built into its kernel, its the engine that ms exchange, the registry, the indexing service, all the internal stuff use, but its accessed 100% thru the windows api and can be kind of a bear to deal with.

i want to go with a schemaless model instead of what xmbc uses for two reasons. one, if the schema changes, we don't have to test pushing those changes down to hundreds of users, we simply update the code, TWO and most important, schemaless is just damn cool

download size doesn't really concern me, if you got people collecting tv shows that are 350 megs an episode and bluray movies that can be 14 gigs a movie, bringing down a 5 meg file to manage them is the least of their concerns. and upgrading .net frameworks is probably going to be required to if your on 2 because some of the UI components we are sketching out involves WPF, which i don't think became available till 3 or 3.5

potestus

22-07-2011 21:31:30

Hi,
I agree - lots of work.
As a media "renamer?" all in one place is a good idea.
I have nothing for my music - I have an eclectic mix of almost everything so it is quite difficult to organise. There is a requirement to update the MP3..et al. files with meta-data and create nfo's etc as well as finding/downloading covers etc.. for artwork display. I suspect that is where most of the work will go and will be welcome.

I would argue that this is different from Films and tv where the meta-data in the source is not touched.

My personal priorities would be for Getting things like "Watched" status added to the nfo for TV progs/series. Would be a wonderful addition and a must for films I suspect. I use YAMJ.


Keep up the quality work etc.

regards

scphantm

22-07-2011 21:47:50

xmbc uses id3 tags for the music metadata. my plugin would edit the id3 tags and inject the album image so xbmc's scanner will find it. artists, not sure, have to wait and read up on how xbmc looks for it.

ive got a large collection as well and ive been relentless with keeping id3 tags filled and accurate (with 75,000 songs you have to) but compilation albums trick up xbmc pretty good so my goal is to figure out why its doing that and fix it so the xmbc scanner brings in mp3's accurately. the xbmc database link will help in this too as we can just open the database and edit the records if we need to in order to bring everything accurate.

but thats way down the road. like i said, 1st order of business is to embed a real db engine into this thing to reduce cpu load and latency in refreshing screens. ive got a collection of loony tunes, one season has 300 episodes and it takes tv rename about 5 minutes to refresh that screen. in addition the simple act of refreshing the list tree of shows takes my machine about 15 seconds. WAY too long and i don't have a wimpy machine. adding a db engine and taking a look at the efficiency of those methods that do refreshes should bring those refreshes down to the sub half second mark. then i will move on to other things.

i also want to implement a plugin framework before i do the movies section. strip out the tv code into a plugin, etc. it will make this app much easier to work with and promote other people to jump in working on it if you can compartmentalize the code into plugins that can be worked on independently.

sstteevvee

26-07-2011 19:01:00

That all sounds good. I've set you up for access to the google code repository, and sent you a PM with details.

How hard is it to talk to a XBMC database on another machine? To make it even harder, I download using my main PC, but have a separate HTPC with Windows+XBMC for watching TV, which is turned on for only on for a few hours each evening.

scphantm

26-07-2011 22:32:04

you need file access to the data folder. on windows i believe its {%user folder%}/appdata/xbmc something, on unix its {%user folder%}/.xbmc

you can get file access via NFS or Samba. you can also configure XBMC to use a central MySQL database in which case you only need tcpip and a user/pass to the server.

i fought with visual studio all weekend (i hate MS products) but think i finally got it going. i already have raven in the project and just now need to figure out where im going to put stuff. then the fun stuff begins, moving data methods. =-)

sstteevvee

26-07-2011 23:01:14

Ah, cool. I have a file server that's always on, so worst case I could store everything on that.

I'm pleased to see other people have an interest in taking TVRename further, now that I don't really have the time to work on it. While you're doing your big changes on "TVRename 3", I'll keep adding in the patches people send me and doing releases of 2.x versions.

sstteevvee

31-07-2011 11:23:09

There's now a new forum:

[url=http://tvrename.com/bb/viewforum.php?f=8]http://tvrename.com/bb/viewforum.php?f=8

..for discussion, etc., on scphantm's new version of TVRename.