From a4af917b1ea62ee1593ec7bf42f98361663085bc Mon Sep 17 00:00:00 2001 From: Conrado Reyes Date: Thu, 1 Nov 2018 10:51:08 -0400 Subject: [PATCH 1/2] fixed search and organize the response --- anime_search/base.py | 47 ++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/anime_search/base.py b/anime_search/base.py index 558d1a9..b9d1f11 100644 --- a/anime_search/base.py +++ b/anime_search/base.py @@ -19,7 +19,7 @@ def get_default_config(self): return { 'short_name': self.name, 'enabled': True, - 'base_url': 'https://nyaa.si/?page=rss&q=My+Hero+Academia+S3+1080p&u=Golumpa' + 'base_url': 'https://nyaa.si/?page=rss&q=' } def configure(self, config): @@ -32,8 +32,8 @@ def setup_handlers(self, adapter): def setup_schedules(self, adapter): pass - def fetch_anime(self): - url = self.config.get('base_url') + def fetch_anime(self, anime): + url = "{}{}".format(self.config.get('base_url'), anime) response = requests.get(url) return response.text @@ -42,8 +42,16 @@ def parse_anime_search(self, text): def on_anime(self, update, *args, **kwargs): + def g_list(l): + if not l: + return [] + elif isinstance(l, list): + return l + else: + return [l] + message = get_message(update) - fetched_response = self.fetch_anime() + fetched_response = self.fetch_anime(anime=message.text) data = self.parse_anime_search(fetched_response) rss = data.get('rss', None) @@ -58,19 +66,28 @@ def on_anime(self, update, *args, **kwargs): log.error("No channel") return - item = channel.get('item', None) - if item is None: + items = g_list(channel.get('item', None)) + if items is None or len(items) == 0: message.reply_text(text="❌ Invalid response.") log.error("No item") return responses = [] - title = item.get('title', '').strip() - responses.append("{}".format(title)) - size = item.get('nyaa:size', '').strip() - responses.append("\n\nSize: {} | ".format(size)) - link = item.get('link','').strip() - responses.append("Download: Torrent".format(link)) - release_date = item.get('pubDate','').strip() - responses.append("\nDate: {}".format(release_date)) - message.reply_text(text="".join(responses), parse_mode='HTML') + for item in items: + response = [] + title = item.get('title', '').strip() + response.append("➡ {}".format(title)) + size = item.get('nyaa:size', '').strip() + response.append("\n\nSize: {} | ".format(size)) + link = item.get('link','').strip() + response.append("Download: Torrent 🔗".format(link)) + release_date = item.get('pubDate','').strip() + response.append("\nDate: {}\n".format(release_date)) + + responses.append("".join(response)) + + i = 0 + while i < len(responses): + tmp = responses[i:i+10] + message.reply_text(text="\n".join(tmp), parse_mode='HTML') + i = i + 10; From dcc92c0ede7567b1f7ef5be73a9b6c8aea43cfd1 Mon Sep 17 00:00:00 2001 From: Conrado Reyes Date: Thu, 1 Nov 2018 13:44:11 -0400 Subject: [PATCH 2/2] loop changed --- anime_search/base.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/anime_search/base.py b/anime_search/base.py index b9d1f11..4839d74 100644 --- a/anime_search/base.py +++ b/anime_search/base.py @@ -86,8 +86,5 @@ def g_list(l): responses.append("".join(response)) - i = 0 - while i < len(responses): - tmp = responses[i:i+10] - message.reply_text(text="\n".join(tmp), parse_mode='HTML') - i = i + 10; + for i in range(0, len(responses), 10): + message.reply_text(text="\n".join(responses[i:i+10]), parse_mode='HTML')