diff --git a/sickbeard/providers/nyaatorrents.py b/sickbeard/providers/nyaatorrents.py
index 407e212d621cecc266f4f847bb980ceaa5b9b0db..088a72c12d32f8ec3a8610f7dcc42e657f61769a 100644
--- a/sickbeard/providers/nyaatorrents.py
+++ b/sickbeard/providers/nyaatorrents.py
@@ -1,7 +1,7 @@
 # Author: Mr_Orange
 # URL: http://code.google.com/p/sickbeard/
 #
-# This file is part of SickRage. 
+# This file is part of SickRage.
 #
 # SickRage is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -46,63 +46,71 @@ class NyaaProvider(generic.TorrentProvider):
 
         self.url = self.urls['base_url']
 
+        self.minseed = 0
+        self.minleech = 0
+        self.confirmed = False
+
     def isEnabled(self):
         return self.enabled
 
-    def getQuality(self, item, anime=False):
-        title = item.get('title')
-        quality = Quality.sceneQuality(title, anime)
-        return quality
+    def _doSearch(self, search_strings, search_mode='eponly', epcount=0, age=0, epObj=None):
+        if self.show and not self.show.is_anime:
+            return []
 
-    def findSearchResults(self, show, episodes, search_mode, manualSearch=False, downCurQuality=False):
-        return generic.TorrentProvider.findSearchResults(self, show, episodes, search_mode, manualSearch, downCurQuality)
+        results = []
+        items = {'Season': [], 'Episode': [], 'RSS': []}
 
-    def _get_season_search_strings(self, ep_obj):
-        return [x for x in show_name_helpers.makeSceneSeasonSearchString(self.show, ep_obj)]
+        for mode in search_strings.keys():
+            logger.log(u"Search Mode: %s" % mode, logger.DEBUG)
+            for search_string in search_strings[mode]:
+                if mode != 'RSS':
+                    logger.log(u"Search string: %s" % search_string, logger.DEBUG)
 
-    def _get_episode_search_strings(self, ep_obj, add_string=''):
-        return [x for x in show_name_helpers.makeSceneSearchString(self.show, ep_obj)]
+                params = {
+                    "page": 'rss',
+                    "cats": '1_0',  # All anime
+                    "sort": 2,     # Sort Descending By Seeders
+                    "order": 1
+                }
+                if mode != 'RSS':
+                    params["term"] = search_string.encode('utf-8')
 
-    def _doSearch(self, search_string, search_mode='eponly', epcount=0, age=0, epObj=None):
-        #FIXME
-        if self.show and not self.show.is_anime:
-            return []
+                searchURL = self.url + '?' + urllib.urlencode(params)
+                logger.log(u"Search URL: %s" %  searchURL, logger.DEBUG)
 
-        logger.log(u"Search string: %s " % search_string, logger.DEBUG)
+                summary_regex = ur"(\d+) seeder\(s\), (\d+) leecher\(s\), \d+ download\(s\) - (\d+.?\d* [KMGT]iB)(.*)"
+                s = re.compile(summary_regex, re.DOTALL)
 
-        params = {
-            "term": search_string.encode('utf-8'),
-            "cats": '1_0',  # All anime
-            "sort": '2',     # Sort Descending By Seeders
-        }
+                results = []
+                for curItem in self.cache.getRSSFeed(searchURL, items=['entries'])['entries'] or []:
+                    title = curItem['title']
+                    download_url = curItem['link']
+                    if not all([title, download_url]):
+                        continue
 
-        searchURL = self.url + '?page=rss&' + urllib.urlencode(params)
-        logger.log(u"Search URL: %s" %  searchURL, logger.DEBUG) 
+                    seeders, leechers, size, verified = s.findall(curItem['summary'])[0]
+                    size = self._convertSize(size)
 
+                    # Filter unseeded torrent
+                    if seeders < self.minseed or leechers < self.minleech:
+                        if mode != 'RSS':
+                            logger.log(u"Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers), logger.DEBUG)
+                        continue
 
-        results = []
-        for curItem in self.cache.getRSSFeed(searchURL, items=['entries'])['entries'] or []:
-            title = curItem[0]
-            download_url = curItem[1]
-            #FIXME
-            size = -1
-            seeders = 1
-            leechers = 0
+                    if self.confirmed and not verified and mode != 'RSS':
+                        logger.log(u"Found result " + title + " but that doesn't seem like a verified result so I'm ignoring it", logger.DEBUG)
+                        continue
 
-            if not all([title, download_url]):
-                continue
+                    item = title, download_url, size, seeders, leechers
+                    if mode != 'RSS':
+                        logger.log(u"Found result: %s " % title, logger.DEBUG)
 
-            #Filter unseeded torrent
-            #if seeders < self.minseed or leechers < self.minleech:
-            #    if mode != 'RSS':
-            #        logger.log(u"Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers), logger.DEBUG)
-            #    continue
+                    items[mode].append(item)
 
-            item = title, download_url, size, seeders, leechers
-            logger.log(u"Found result: %s " % title, logger.DEBUG)
+            # For each search mode sort all the items by seeders if available
+            items[mode].sort(key=lambda tup: tup[3], reverse=True)
 
-            #FIX ME SORTING
-            results.append(curItem)
+            results += items[mode]
 
         return results
 
@@ -114,6 +122,19 @@ class NyaaProvider(generic.TorrentProvider):
             return match.group(1)
         return None
 
+    def _convertSize(self, size):
+        size, modifier = size.split(' ')
+        size = float(size)
+        if modifier in 'KiB':
+            size = size * 1024
+        elif modifier in 'MiB':
+            size = size * 1024**2
+        elif modifier in 'GiB':
+            size = size * 1024**3
+        elif modifier in 'TiB':
+            size = size * 1024**4
+        return size
+
     def seedRatio(self):
         return self.ratio
 
@@ -126,16 +147,7 @@ class NyaaCache(tvcache.TVCache):
         self.minTime = 15
 
     def _getRSSData(self):
-        params = {
-            "page": 'rss',   # Use RSS page
-            "order": '1',    # Sort Descending By Date
-            "cats": '1_37',  # Limit to English-translated Anime (for now)
-        }
-
-        url = self.provider.url + '?' + urllib.urlencode(params)
-
-        logger.log(u"Cache update URL: %s" % url, logger.DEBUG)
-
-        return self.getRSSFeed(url)
+        search_params = {'RSS': ['']}
+        return {'entries': self.provider._doSearch(search_params)}
 
 provider = NyaaProvider()