Browse Source

More API documentation

pull/84/head
Ruud 13 years ago
parent
commit
b164674ff7
  1. 15
      couchpotato/core/_base/updater/main.py
  2. 26
      couchpotato/core/plugins/movie/main.py
  3. 14
      couchpotato/core/plugins/release/main.py
  4. 6
      couchpotato/core/plugins/renamer/main.py
  5. 8
      couchpotato/core/plugins/status/main.py
  6. 40
      couchpotato/static/style/api.css
  7. 10
      couchpotato/templates/api.html

15
couchpotato/core/_base/updater/main.py

@ -33,15 +33,12 @@ class Updater(Plugin):
'desc': 'Get updater information',
'return': {
'type': 'object',
'example': """
{
'repo_name': "Name of used repository",
'last_check': "last checked for update",
'update_version': "available update version or empty",
'version': current_cp_version
}
"""
}
'example': """{
'repo_name': "Name of used repository",
'last_check': "last checked for update",
'update_version': "available update version or empty",
'version': current_cp_version
}"""}
})
addApiView('updater.update', self.doUpdateView)
addApiView('updater.check', self.checkView, docs = {

26
couchpotato/core/plugins/movie/main.py

@ -58,10 +58,28 @@ class MoviePlugin(Plugin):
}
})
addApiView('movie.available_chars', self.charView)
addApiView('movie.add', self.addView)
addApiView('movie.edit', self.edit)
addApiView('movie.delete', self.delete)
addApiView('movie.add', self.addView, docs = {
'desc': 'Add new movie to the wanted list',
'params': {
'identifier': {'desc': 'IMDB id of the movie your want to add.'},
'profile_id': {'desc': 'ID of quality profile you want the add the movie in. If empty will use the default profile.'},
'title': {'desc': 'Movie title to use for searches. Has to be one of the titles returned by movie.search.'},
}
})
addApiView('movie.edit', self.edit, docs = {
'desc': 'Add new movie to the wanted list',
'params': {
'id': {'desc': 'Movie ID you want to edit'},
'profile_id': {'desc': 'ID of quality profile you want the edit the movie to.'},
'default_title': {'desc': 'Movie title to use for searches. Has to be one of the titles returned by movie.search.'},
}
})
addApiView('movie.delete', self.delete, docs = {
'desc': 'Delete a movie from the wanted list',
'params': {
'id': {'desc': 'Movie ID you want to delete'},
}
})
addEvent('movie.add', self.add)
addEvent('movie.get', self.get)

14
couchpotato/core/plugins/release/main.py

@ -16,8 +16,18 @@ class Release(Plugin):
def __init__(self):
addEvent('release.add', self.add)
addApiView('release.download', self.download)
addApiView('release.delete', self.delete)
addApiView('release.download', self.download, docs = {
'desc': 'Send a release manually to the downloaders',
'params': {
'id': {'type': 'id', 'desc': 'ID of the release object in release-table'}
}
})
addApiView('release.delete', self.delete, docs = {
'desc': 'Check for available update',
'params': {
'id': {'type': 'id', 'desc': 'ID of the release object in release-table'}
}
})
def add(self, group):
db = get_session()

6
couchpotato/core/plugins/renamer/main.py

@ -22,7 +22,9 @@ class Renamer(Plugin):
def __init__(self):
addApiView('renamer.scan', self.scanView)
addApiView('renamer.scan', self.scanView, docs = {
'desc': 'For the renamer to check for new files to rename',
})
addEvent('renamer.scan', self.scan)
addEvent('app.load', self.scan)
@ -31,7 +33,7 @@ class Renamer(Plugin):
def scanView(self):
fireEvent('renamer.scan')
fireEventAsync('renamer.scan')
return jsonified({
'success': True

8
couchpotato/core/plugins/status/main.py

@ -29,7 +29,13 @@ class StatusPlugin(Plugin):
addEvent('status.all', self.all)
addEvent('app.initialize', self.fill)
addApiView('status.list', self.list)
addApiView('status.list', self.list, docs = {
'desc': 'Check for available update',
'return': {'type': 'object', 'example': """{
'success': True,
'list': array, statuses
}"""}
})
def list(self):

40
couchpotato/static/style/api.css

@ -1,3 +1,4 @@
html {
font-size: 12px;
line-height: 1.5;
@ -5,15 +6,22 @@ html {
font-size: 14px;
}
* {
margin: 0;
padding: 0;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
h1, h2, h3, h4, h5 {
clear: both;
padding: 0;
margin: 0;
font-size: 14px;
}
h1 {
font-size: 25px;
padding: 20px 40px;
}
h2 {
@ -21,18 +29,23 @@ h2 {
}
pre {
background: #ccc;
background: #eee;
font-family: monospace;
margin: 0;
padding: 2%;
width: 96%;
padding: 10px;
width: 100%;
display: block;
font-size: 12px;
}
.api {
margin-bottom: 20px;
.api, .missing {
overflow: hidden;
border-bottom: 1px solid #eee;
padding: 40px;
}
.api:hover {
color: #000;
}
.api .description {
color: #333;
@ -40,7 +53,7 @@ pre {
}
.api .params {
background: #f5f5f5;
background: #fafafa;
width: 100%;
}
.api h3 {
@ -54,6 +67,14 @@ pre {
width: 700px;
}
.api .params td, .api .params th {
padding: 3px 5px;
border-bottom: 1px solid #eee;
}
.api .params tr:last-child td, .api .params tr:last-child th {
border: 0;
}
.api .params .param {
vertical-align: top;
}
@ -67,9 +88,10 @@ pre {
font-style: italic;
margin-right: 10px;
width: 100px;
color: #666;
}
.api .return {
float: left;
width: 700px;
}
}

10
couchpotato/templates/api.html

@ -6,7 +6,7 @@
</head>
<body>
<h1>API</h1>
<h1>CouchPotato API Documentation</h1>
{% for route in routes %}
{% if api_docs.get(route) %}
<div class="api">
@ -15,7 +15,7 @@
{% if api_docs[route].get('params') %}
<h3>Params</h3>
<table class="params">
<table class="params" cellspacing="0" cellpadding="0">
{% for param in api_docs[route]['params'] %}
<tr class="param">
<th>{{param}}</th>
@ -42,8 +42,10 @@
{% endif %}
{% endfor %}
<h1>Missing documentation</h1>
<div class="missing">{{', '.join(api_docs_missing)}}</div>
<div class="missing">
<h1>Missing documentation</h1>
{{', '.join(api_docs_missing)}}
</div>
</body>
</html>
Loading…
Cancel
Save