Reference Guide

This is a brief introduction to all KissCartoon API’s features.

Import

You’ll get all necessary by this import:

from KissCartoon import KissCartoon, GENRE, STATUS

KissCartoon

KissCartoon class represent object of a specific page. As argument you pass URL of a site, default site is kisscartoon.io, but the domain name can change whenever, what was reason to do it this way. Also for accesing mirror sites with this API.

With KissCartoon you can access lists of top ten series that are on the home page. You can get them with properties newest, most_popular and recently_added.

>>> kiss = KissCartoon() # same as KissCartoon('kiscartoon.io')
>>> print(kiss.newest)
[   Series(title='Smurfs: The Lost Village', ...),
    Series(title='Leap!', ...),
    Series(title='We Bare Bears Season 3', ...),
    Series(title='Archer - Season 8', ...),
    Series(title='Teen Titans: The Judas Contract', ...),
    Series(title='SpongeBob Sea Side Story (2017)', ...),
    Series(title='Final Fantasy VII: Advent Children Complete', ...),
    Series(title='The Boss Baby (2017)', ...),
    Series(title='Tangled: The Series', ...),
    Series(title='The Grim Adventures of the KND', ...)]

KissCartoon is also used for creating a CartoonList. There are three methods: .search, .list and .list_genre: each method returns a CartoonList. The difference is that each method allows slightly different filtering of results.

.list method

.list method takes first_letter, status and page as arguments.

first_letter:Filter series by an initial letter.
status:Filter series by their current status (ongoing/completed). You should use predefined constants. See Constants.
page:Set the list to a given page. Default is 1
>>> kiss.list(first_letter='r', status=STATUS.ONGOING)
CartoonList(url='https://kisscartoon.io/Status/Ongoing/?c=r&', page=1)

.list_genre method

.list_genre method takes genre and page as arguments.

genre:Filter series by their genre. See Constants.
page:Set the list to a given page. Default is 1
>>> kiss.list_genre(GENRE.ADVENTURE, page=3)
CartoonList(url='https://kisscartoon.io/Genre/Adventure/?', page=3)

.search method

.search method takes title, genres, status and page as arguments.

title:Search series by their name.
genres:Search series by their genres. It should be list of wanted genres.)
status:Search series by their current status (ongoing/completed).
page:Set the list to a given page. Default is 1
>>> for series in kiss.search('rick', genres=[GENRE.ADVENTURE, GENRE.COMEDY]):
...     print(series)
...
Rick and Morty Extras
Rick and Morty Season 2
Rick and Morty Season 1
Rick and Morty - Season 3
Rick & Steve the Happiest Gay Couple in All the World

CartoonList

CartoonList represents a list of series that is available on the webpage. We can create list by our own with it’s URL. However it’s better to use KissCartoon object which will generate the URL for us.

CartoonList has following attributes:

url:URL of a list on the current page
page:Current page
max_page:Number of pages in a current list
series:Series on the current page

You can use .next and .back methods for navigating through a list. When you attempt to go beyond the limits (1 and``max_page``), method raises PaginatorError:

>>> from kisscartoon import *
>>> kiss_list = KissCartoon().list(page=1)
>>> kiss_list.back()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/thyrst/Tools/kisscartoon/kisscartoon.py", line 356, in back
    raise PaginatorError('No previous page.')
kisscartoon.PaginatorError: No previous page.

For navigating to any random page, you can use .goto method which takes page number as an argument. However, goto won’t check if you attempt to go on an empty page, therefore it’s better to use precedent methods.

For getting sum of series on all pages, simply call len function on a list:

>>> len(kiss_list)
4403

CartoonList is a subclass of Iterator, so you can iterate over it:

>>> ongoing = 0
>>> for series in kiss_list:
...     if series.status == STATUS.ONGOING:
...         ongoing += 1
...
>>> print('Ongoing: %d%%' % (100*ongoing/len(kiss_list)))
Ongoing: 6%

Series

Series represents one season of series. Object has following attributes:

title:Name of series
url:URL
image:URL of image cover
genres:List of genres of series
latest_episode:Latest Added episode of series
episodes:List of Episode
summary:Description of series
status:Status
views:Number of views
aired:A year or date that were series aired

Episode

Episode object has following attributes:

title:Title of an episode
url:URL
date_added:Date the episode was added to the site (datetime object)
download_links:Dictionary of links to download episode. This is not implemented yet.

Constants

You will use these constants for working with Series and for creating CartoonList. See iterator example.

Genres

GENRE.ACTION Action
GENRE.ADVENTURE Adventure
GENRE.ANIMATION Animation
GENRE.BIOGRAPHY Biography
GENRE.COMEDY Comedy
GENRE.CRIME Crime
GENRE.DOCUMENTARY Documentary
GENRE.DRAMA Drama
GENRE.FAMILY Family
GENRE.FANTASY Fantasy
GENRE.GAMESHOW Game-Show
GENRE.HISTORY History
GENRE.HORROR Horror
GENRE.MOVIE Movie
GENRE.MUSIC Music
GENRE.MUSICAL Musical
GENRE.MYSTERY Mystery
GENRE.PRESCHOOL Preschool
GENRE.ROMANCE Romance
GENRE.SCIFI Sci-Fi
GENRE.SHORT Short
GENRE.SPORT Sport
GENRE.SUPERNATURAL Supernatural
GENRE.THRILLER Thriller
GENRE.WAR War

Status

STATUS.ONGOING Ongoing
STATUS.COMPLETED Completed