Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
#Newznab Python Wrapper

* **Author**: [Gustavo Hoirisch](https://github.com/gugahoi)
# Newznab Python Wrapper

Simple python wrapper for NewzNab API calls.
At the moment it does everything through json.

##Usage
At the moment it does everything through json.


---
### Usage

from client import wrapper
c = wrapper("my_url.com", "my_api_goes_here")
result = c.search(q="my query", maxage="20")
categories = c.categories()

---

Credits
* **Author**: [Gustavo Hoirisch](https://github.com/gugahoi)
37 changes: 19 additions & 18 deletions client.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2013 Gustavo Hoirisch <gugahoi@gmail.com>
import urllib2
from urllib import quote_plus
import urllib
from urllib.parse import quote_plus
import urllib.request
try:
import json
except ImportError:
Expand Down Expand Up @@ -47,30 +48,30 @@ def devMode(self, flag):

def build_url(self, method='caps', params={}):
parameters = ''
for p, v in params.iteritems():
for p, v in params.items():
parameters += '&%s=%s' % (p, quote_plus(v))

if self.json:
parameters += '&o=json'

url = 'http://%s/api?t=%s%s&apikey=%s' % (self.url, method, parameters, self.api)
url = 'https://%s/api?t=%s%s&apikey=%s' % (self.url, method, parameters, self.api)

if self.dev:
print url
print (url)

return url

def query(self, url):
result = '{}'
try:
hdr = {'User-Agent': 'Mozilla/5.0'}
r = urllib2.Request(url, headers=hdr)
result = urllib2.urlopen(r).read()
except Exception, e:
r = urllib.request.Request(url, headers=hdr)
result = urllib.request.urlopen(r).read()
except Exception as e:
raise e

if self.dev:
print result
print (result)
if self.json:
result = json.loads(result)

Expand Down Expand Up @@ -106,7 +107,7 @@ def search(self, **extras):
offset=50 The 0 based query offset defining which part of the response we want.
"""
params = {}
for key, value in extras.iteritems():
for key, value in extras.items():
params[key] = value

return self.query(self.build_url('search', params))
Expand All @@ -126,9 +127,9 @@ def tv(self, **extras):
offset=50 The 0 based query offset defining which part of the response we want.
"""
params = {}
for key, value in extras.iteritems():
for key, value in extras.items():
params[key] = value
print '%s = %s' % (key, value)
print ('%s = %s' % (key, value))

return self.query(self.build_url('tvsearch', params))

Expand All @@ -146,9 +147,9 @@ def movie(self, **extras):
offset=50 The 0 based query offset defining which part of the response we want.
"""
params = {}
for key, value in extras.iteritems():
for key, value in extras.items():
params[key] = value
print '%s = %s' % (key, value)
print ('%s = %s' % (key, value))

return self.query(self.build_url('movie', params))

Expand All @@ -169,9 +170,9 @@ def music(self, **extras):
offset=50 The 0 based query offset defining which part of the response we want.
"""
params = {}
for key, value in extras.iteritems():
for key, value in extras.items():
params[key] = value
print '%s = %s' % (key, value)
print ('%s = %s' % (key, value))

return self.query(self.build_url('music', params))

Expand All @@ -187,9 +188,9 @@ def book(self, **extras):
offset=50 The 0 based query offset defining which part of the response we want.
"""
params = {}
for key, value in extras.iteritems():
for key, value in extras.items():
params[key] = value
print '%s = %s' % (key, value)
print ('%s = %s' % (key, value))

return self.query(self.build_url('book', params))

Expand Down