@BradJ: nzbmatrix' download API is down, but search works.
So.. I have been working on my fork a little:
Code: Select all
http://github.com/alshain/CouchPotato
What are my ideas, what would I like to change:
at first, I want to thank you for the amount of time that you have put into this project, RuudBurger. It's great to have the chance to be working on this, when something, and that's quite a lot actually, already works, so you can extend more easily.
But that's exactly where I encountered the first problems... I believe the system, at its current state, is rather static, everything is hardcoded.
I have noticed that you "abuse" the webserver to pass application-specific configuration settings through the webserver. I have freed the imdbWrapper and themoviedb providers from this. They now access the configuration directly.
To simplify the access, I have refactored your main configuration class, "configApp". I have built a super class "ConfigWrapper" and ported the functionality to access the underlying config structure to that function. This gives us the possibility, to let plugins have their own configuration files while retaining easy access.
Then I've made a convenience class "ConfigSection", which gets, sets setDefaults to a specific section only.
The paths are now customizeable. You can set your own log path (the loge filename will remain the same though, so only specify the directory).
The path to the config file is now specified using an optional parameter when starting the script.
For example
Code: Select all
CouchPotato.py -d config/config.ini
It would be great if someone could check this on a linux system, because I have modified the path business in many places.
I have also changed the logging business. Removed some code I deemed uncecessary
Let's put it this way, the interface loads on my system
I have begun extending a superclass for the providers, but I feel that a complete overhaul is necessary to make the system as flexible as possible.
A problem that I have encountered is your naming scheme... I can't seem to get the grasp of it
The new plugin system has already been begun with, just look at the apps.lib.providerS package. and the plugin.py in lib. It's rudimentary still and I will have to spend some more thoughts about it what would be a smart solution and I'm curious for your input
As for the naming, what do these names stand for:
yarr, rss?
Also, in your provider package, it looks a little messy. You have a folder called yarr, movie, trailers, in the movie folder you have sources? imdbWrapper builds on top of baseMovie -> rss?
I can't rembember what else I've changed, I have just tried to organize the code a little bit better. Ah yes, the debug flag is now a static memeber of the class CouchPotato, which resides in the app package. Maybe it should be called Environment or w/e, it also keeps the log instance at ready and the path for the configuration directory.