Adding (tv) series support to CP (looking for python devs)

General development talk regarding Couchpotato
jkaberg
Site Admin
Posts: 150
Joined: 10 May 2012 12:04
Has thanked: 3 times
Been thanked: 3 times
Status: Offline

Adding (tv) series support to CP (looking for python devs)

Postby jkaberg » 09 Aug 2013 22:14

I bet everyone just love how CP handles movies right? I mean it just works, hassle free 99,999% of the time and all you did was add the movie (IF even that.. Hint hint automation). Now I had a grand idea of adding series into the mix, making it the ultimate companion for your favorite media center, making it easy as a pie - couch potato style!

Now you're thinking, but hey there's this and that that also does series and it works. And yes, you might be right, to some extent. But heres a few key ingredients the counterparts don't have!

    - Failed download handling
    - Full Torrent support (not just download, but also manages your torrents)
    - Subtitles
    - Suggestions
    - Proven stable (and MANAGABLE) code base, utilizing Tornado
    - ACTIVE contributions and devs
    - Maintainer who actually merges in new features from external devs (if found useful/works)
And I'm sure I could add a ton more to the list if I just opened CP and had a look ;)

Now to the main point of this post - I'm looking for developers to help out with this, getting it up and running. Ruud has said that he won't do it (due to lack of time), but I'm sure that he'll help out with some consult input if we asking him nicely.

If I get traction for this, and a few joins up I'll have talk with Ruud on what would be the best practice to proceed

User avatar
clinton.hall
Moderator
Posts: 9224
Joined: 28 Jun 2012 12:55
Has thanked: 94 times
Been thanked: 465 times
Contact:
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby clinton.hall » 09 Aug 2013 23:11

https://github.com/RuudBurger/CouchPotatoServer/issues/1909?source=cc

I'm guessing sandcastle is in...

As far as torrent support goes, mano3m will not doubt assist ;)

I'm happy to lend a hand, I just can't guarantee how much time I can invest...

mano3m
Recognized Developer
Posts: 225
Joined: 22 Aug 2012 21:37
Been thanked: 29 times
Contact:
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby mano3m » 10 Aug 2013 21:12

Hi all,

Great idea! I'd love to help! My time is also limited though.

Is the endgame to merge the TV sections into the main branch of Ruud? This would be the best I think :)

How many people are you in for?

Cheers

mano3m
Recognized Developer
Posts: 225
Joined: 22 Aug 2012 21:37
Been thanked: 29 times
Contact:
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby mano3m » 11 Aug 2013 15:41

I was thinking:

Internals:
- We can (ab)use the Movie object for episodes with only minor changes
- We need a new TvShow object, which keeps track of seasons and contains references to all episodes and a quality profile, category, info about the show
- This TV show object needs to update (itself?) with the newest info from imdb, TV rage, or the likes, maybe directly to ruud's server?
- The searcher and all providers need to be updated with TV show support
- The renamer needs to be updated with TV show support

Interface:
- we could make a switch, that shows TV shows, movies or both somewhere on top
- we could use the wanted page as is, the TV show object adds an episode to wanted when it airs
- we could (ab) use the manage page for managing shows as one item which is expandable somehow
- the dashboard can be used for seeing the status op episodes and which new shows are recommended

Any thoughts?



Sent from my Nexus 10 using Tapatalk 4

jkaberg
Site Admin
Posts: 150
Joined: 10 May 2012 12:04
Has thanked: 3 times
Been thanked: 3 times
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby jkaberg » 11 Aug 2013 20:12

mano3m wrote:I was thinking:

Internals:
- We can (ab)use the Movie object for episodes with only minor changes
- We need a new TvShow object, which keeps track of seasons and contains references to all episodes and a quality profile, category, info about the show
- This TV show object needs to update (itself?) with the newest info from imdb, TV rage, or the likes, maybe directly to ruud's server?
- The searcher and all providers need to be updated with TV show support
- The renamer needs to be updated with TV show support

Interface:
- we could make a switch, that shows TV shows, movies or both somewhere on top
- we could use the wanted page as is, the TV show object adds an episode to wanted when it airs
- we could (ab) use the manage page for managing shows as one item which is expandable somehow
- the dashboard can be used for seeing the status op episodes and which new shows are recommended

Any thoughts?



Sent from my Nexus 10 using Tapatalk 4


I agreed, that's pretty much how I thought we should do it

We should try to make a roadmap, I could get on it asap

How about code repo? Github? One main branch, and PR's or one branch and all (devs) have access?

We should also take note on stuff like this, I therby suggest we try to support several meta providers to be sure

Ps: and yes, the main point is to merge this with master branch some day ;)

RuudBurger
Main Honcho
Posts: 204
Joined: 10 May 2012 12:01
Been thanked: 9 times
Contact:
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby RuudBurger » 12 Aug 2013 13:10

As for the interface I think we can fit TV shows in like movies are now. When clicking on it it can fold open to show the seasons + episodes. (The list you now have on Sickbeard)

I can make a branch and give some people access to publishing too it I guess. All pull requests can be merged in there (without annoying the develop and master branch) and then once in a while we can merge the changes from "cp movies" into the tvshow branch.

Another thing, while we're add it. Making it multipurpose and futureproof. So instead of going for Movies/TV lets make it Movies/TV/Music/Books.
We don't have to create all this now, but when changing the code to be (ab)used for TV, why not make it so we can later more easily add other types.

So a simple example:
The "library.update(id = 1)" function is now movie only. To make TV compatible instead of doing "library.update(id=1, is_tvshow=True)" we do "library.update(id=1, type=tv)".

We keep a list of types (which will be movie and tv for now. But can later extend it more. Separate functions where needed, but re-using as much code as possible.

I'll update the CP api when needed with TV support btw. Just let me know.

User avatar
eddie4
Junior Member
Posts: 1
Joined: 12 Aug 2013 16:29
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby eddie4 » 12 Aug 2013 16:41

With all respect for the great product that is CouchPotato which i love. WHY????

SickBeard works perfectly why start competing against it? If you feel you must, maybe make some kind of integration but don't remake it's functionality. If you feel that you're out of good ideas start a campaign to look for new idea's things you could add.

My idea's
QBitTorrent support?
An option to use built in nzb/torrent client for ease and novice users.

RuudBurger
Main Honcho
Posts: 204
Joined: 10 May 2012 12:01
Been thanked: 9 times
Contact:
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby RuudBurger » 12 Aug 2013 16:58

This is a separate thing. I will continue adding new stuff, no worry.
But I think we can do it better also, and starting of of Sickbeard is not the thing to do ;)

If no people want to do this, it won't happen. I said this before, because I just have time to do this on my own.

jkaberg
Site Admin
Posts: 150
Joined: 10 May 2012 12:04
Has thanked: 3 times
Been thanked: 3 times
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby jkaberg » 12 Aug 2013 21:59

RuudBurger wrote:As for the interface I think we can fit TV shows in like movies are now. When clicking on it it can fold open to show the seasons + episodes. (The list you now have on Sickbeard)

I can make a branch and give some people access to publishing too it I guess. All pull requests can be merged in there (without annoying the develop and master branch) and then once in a while we can merge the changes from "cp movies" into the tvshow branch.

Another thing, while we're add it. Making it multipurpose and futureproof. So instead of going for Movies/TV lets make it Movies/TV/Music/Books.
We don't have to create all this now, but when changing the code to be (ab)used for TV, why not make it so we can later more easily add other types.

So a simple example:
The "library.update(id = 1)" function is now movie only. To make TV compatible instead of doing "library.update(id=1, is_tvshow=True)" we do "library.update(id=1, type=tv)".

We keep a list of types (which will be movie and tv for now. But can later extend it more. Separate functions where needed, but re-using as much code as possible.

I'll update the CP api when needed with TV support btw. Just let me know.


I agreed with Ruud, making CP more "modular" would be the best way to go in the end. That way adding support for additional "content" would be a lot easier.

While making CP modular would be for the best, I by no means have the knowledge to follow through on that (in terms of python knowledge), so I hope an senior dev can step forwards on that part :rolleyes:

simonk83
Junior Member
Posts: 14
Joined: 09 Mar 2013 00:39
Contact:
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby simonk83 » 12 Aug 2013 23:00

Well, while I'm a huge fan of sickbeard, I do agree that they're generally pretty unresponsive when it comes to pull requests and there's a little too much arrogance in the core devs for my liking. Couchpotato is also amazing and way better when it comes to that stuff.

So, while we're talking about it, could you also consider support for timezones? This is something that's been bugging a LOT of people for years and the sickbeard guys just refuse to look at it. All we need is an offset for the coming soon section (etc) so that it actually shows when an episode is airing converted to your actual timezone. I'm in Australia so my coming soon page is always shown as a day behind. Annoying :)

mano3m
Recognized Developer
Posts: 225
Joined: 22 Aug 2012 21:37
Been thanked: 29 times
Contact:
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby mano3m » 12 Aug 2013 23:02

I think we should split up the work such that different types of knowledge are required for each chunk. In my work on the seeding stuff for example I dug into several of the internals of CPS, so I could try and give the database structure a go! Not that I could call myself very senior... ;).

I think the following large chunks could be identified:
- database and library structure
- tv show providers (e.g. tvdb, tv rage, scene corrections, etc.), or CPS API?
- searcher and providers (requires access to all/most providers)
- renamer and scanner
- webinterface (requires extensive javascript knowledge)

Unfortunately we are not all as gifted with awesomeness as Ruud is ;o) Do you guys have a preference for what you would like to do?

Working on a separate branch within the CPS github repository sounds good. In addition we would need a place where we can discuss issues. We could do that here, but maybe we need to do that in a little more restricted place?

rascalli
Junior Member
Posts: 19
Joined: 27 May 2012 17:37
Contact:
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby rascalli » 13 Aug 2013 04:18

Things I (and others) would like to see in this new app are (looking at feature requests & questions I have seen on SB forum):

* Time settings
* Handeling failed downloads
* Setting own Scene Exceptions for Tv shows
* Support for different show providers (maybe own api that grabs info from all sites?)
* Subtitle download
* Support shows in all languages (not only english shows)
* Good way to handle torrents you still need to seed (move them , but do not look at them on every processing scan , maybe put a file in folder ? or use sort of DB ?)
* Integration with trakt (recommendation)
* Manual set releases to ignore (because they are bad)
* Option per show to use torrents or nzb (or both)


Other things you might consider :

* Some people also like to use it as XBMC , to see what they have watched & what is new ... not sure if you would like this ...
* Only start searching after the air-date/time (ofcourse you'll miss out on pre-releases .. but you will not download the fake ones)

supercouille
Junior Member
Posts: 7
Joined: 24 Jul 2013 19:46
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby supercouille » 13 Aug 2013 05:31

Great idea, love the ui of CPS.

I have absolutely no knowledge of python, but if I can help with testing or something count me in.

jkaberg
Site Admin
Posts: 150
Joined: 10 May 2012 12:04
Has thanked: 3 times
Been thanked: 3 times
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby jkaberg » 13 Aug 2013 07:20

mano3m wrote:I think we should split up the work such that different types of knowledge are required for each chunk. In my work on the seeding stuff for example I dug into several of the internals of CPS, so I could try and give the database structure a go! Not that I could call myself very senior... ;).

I think the following large chunks could be identified:
- database and library structure
- tv show providers (e.g. tvdb, tv rage, scene corrections, etc.), or CPS API?
- searcher and providers (requires access to all/most providers)
- renamer and scanner
- webinterface (requires extensive javascript knowledge)

Unfortunately we are not all as gifted with awesomeness as Ruud is ;o) Do you guys have a preference for what you would like to do?


Preferably python for me, I'd love to help with db and library structures (for learning purposes)
I got access to a lot of torrent providers, and will be submitting search categories for most of the existing ones in CP, I could also work with the renamer/scanner

mano3m wrote:...In addition we would need a place where we can discuss issues. We could do that here, but maybe we need to do that in a little more restricted place?


I could create a sub forum within development forum and give contributors access to that

jkaberg
Site Admin
Posts: 150
Joined: 10 May 2012 12:04
Has thanked: 3 times
Been thanked: 3 times
Status: Offline

Re: Adding (tv)series support to CP (looking for python devs

Postby jkaberg » 13 Aug 2013 07:27

rascalli wrote:Things I (and others) would like to see in this new app are (looking at feature requests & questions I have seen on SB forum):

* Time settings
* handling failed downloads
Done
* Setting own Scene Exceptions for Tv shows
* Support for different show providers (maybe own api that grabs info from all sites?)
* Subtitle download
Done
* Support shows in all languages (not only english shows)
* Good way to handle torrents you still need to seed (move them , but do not look at them on every processing scan , maybe put a file in folder ? or use sort of DB ?)
Done, and with the latest PR from mano3m we now support unraring torrents
* Integration with trakt (recommendation)
We have integration with trakt, but current recommendations are not based on this. If added we could make this selectable (as to use the CPs own recommendation service)
* Manual set releases to ignore (because they are bad)
Done
* Option per show to use torrents or nzb (or both)


Other things you might consider :

* Some people also like to use it as XBMC , to see what they have watched & what is new ... not sure if you would like this ...
This could be achived by simply marking movies/episodes as watched. And then when CP tells XBMC to update, all you'll see is the newly added media. Or did I missunderstand you?
* Only start searching after the air-date/time (ofcourse you'll miss out on pre-releases .. but you will not download the fake ones)
Done


See above for inline comments, many of your suggestions already exist in CP :-)

Tolstyak
Junior Member
Posts: 7
Joined: 13 Aug 2013 15:14
Status: Offline

Re: Adding (tv) series support to CP (looking for python dev

Postby Tolstyak » 13 Aug 2013 16:06

Hey all. I've never dug into the CP code, but I do use it. If the goal is to make CP more modular, I'm all for it, just make sure to keep in mind music, eBooks, games, and any other such potential media when coding.

Other assorted thoughts.
* Episode numbering can be done in many different ways. (season/episode, air-by-date, absolute numbering (anime)) In SB this is set manually, but it seems like something that could be auto-detected.
* We're looking at a _big_ increase in database size. I have a few hundred movies in CP, but a few thousand episodes in SB. If we're going to be digging into the guts of CP, it wouldn't be a bad idea to look at support for other databases, or using SQLAlchemy.
* I mentioned music, games, etc., but is making CP more of a general-purpose media downloader what Ruud wants?
* On that note: I'm all for the unix philosophy, but managing the settings of five different providers gets annoying.
* As an alternative to heavily modifying CP, we could simply make a fork specifically for TV shows. Maybe look into making a simple centralized settings manager.
* It might be going beyond the scope of what we're looking at for TV shows, but something to think about is a plugin interface.
* If we'd be doing that, though, why not just build on XDM? https://github.com/lad1337/XDM

That said, I'm always willing to contribute to software that I use if I find that it doesn't meet my needs as it is, and working on SB can get a bit painful. I could probably contribute.

sandcastle
Junior Member
Posts: 1
Joined: 13 Aug 2013 18:14
Status: Offline

Re: Adding (tv) series support to CP (looking for python dev

Postby sandcastle » 13 Aug 2013 18:22

hi all,

Keen to help out; py is not my primary language, but shouldn't take long to pick up.

I'm all for focusing on core extensibility first and building out providers, etc. as we go.

@mano3m - I'm happy to assist db & ui tasks initially.

mano3m
Recognized Developer
Posts: 225
Joined: 22 Aug 2012 21:37
Been thanked: 29 times
Contact:
Status: Offline

Re: Adding (tv) series support to CP (looking for python dev

Postby mano3m » 13 Aug 2013 19:15

Tolstyak wrote:Hey all. I've never dug into the CP code, but I do use it. If the goal is to make CP more modular, I'm all for it, just make sure to keep in mind music, eBooks, games, and any other such potential media when coding.

Other assorted thoughts.
* Episode numbering can be done in many different ways. (season/episode, air-by-date, absolute numbering (anime)) In SB this is set manually, but it seems like something that could be auto-detected.
* We're looking at a _big_ increase in database size. I have a few hundred movies in CP, but a few thousand episodes in SB. If we're going to be digging into the guts of CP, it wouldn't be a bad idea to look at support for other databases, or using SQLAlchemy.
CPS is already using SQLAlchemy :)
* I mentioned music, games, etc., but is making CP more of a general-purpose media downloader what Ruud wants?
Look above at Ruud's post :o)
* On that note: I'm all for the unix philosophy, but managing the settings of five different providers gets annoying.
We will try to reuse as much as possible including the providers. TV Shows and Movies is a good start as the providers are mostly the same.
* As an alternative to heavily modifying CP, we could simply make a fork specifically for TV shows. Maybe look into making a simple centralized settings manager.
Cross merging commits when either fork is updated is a mess, and CPS provides the extendibility because it is already written with plugins/modules in mind
* It might be going beyond the scope of what we're looking at for TV shows, but something to think about is a plugin interface.
* If we'd be doing that, though, why not just build on XDM? https://github.com/lad1337/XDM

That said, I'm always willing to contribute to software that I use if I find that it doesn't meet my needs as it is, and working on SB can get a bit painful. I could probably contribute.


To follow Joel, see above for items that are already in the CPS code. Would be happy to have you on board!

jkaberg
Site Admin
Posts: 150
Joined: 10 May 2012 12:04
Has thanked: 3 times
Been thanked: 3 times
Status: Offline

Re: Adding (tv) series support to CP (looking for python dev

Postby jkaberg » 13 Aug 2013 21:43

Ok, so development forum for the future design of CP is up. Only Recognized Developers, Global Moderators and Administrators can view this forum for now. Anyone able to contribute code wise PM me/Ruud/Clinton for access.


Ruud will try to put up info about extension points in the code, and some general information in the new dev forum so keep an eye out


@Tolstyak, @sandcastle, both of you have been appointed to the recognized developers group

Tolstyak
Junior Member
Posts: 7
Joined: 13 Aug 2013 15:14
Status: Offline

Re: Adding (tv) series support to CP (looking for python dev

Postby Tolstyak » 13 Aug 2013 22:27

mano: Not sure how I overlooked Ruud's post. Having not looked at the code yet, it sounds like the framework is already in place for easy extensibility, which is awesome. I'll definitely dig in and look through the CPS code. :D


Return to “Development”