From e21690272e72b04411bc126bc31f86092e15cb5b Mon Sep 17 00:00:00 2001 From: kerozene Date: Tue, 20 Oct 2015 16:39:32 +1100 Subject: [PATCH 1/2] Implements 'ignoredTitlePattern' config setting - issue #62 --- config.py | 4 ++++ plugin.py | 21 ++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/config.py b/config.py index 8d9bf49..38ef481 100644 --- a/config.py +++ b/config.py @@ -152,3 +152,7 @@ conf.registerGlobalValue(SpiffyTitles, 'ignoreActionLinks', + +conf.registerGlobalValue(SpiffyTitles, 'ignoredTitlePattern', + registry.Regexp("", _("""Titles matching this pattern will be ignored."""))) + diff --git a/plugin.py b/plugin.py index 67912c1..1e23e7e 100644 --- a/plugin.py +++ b/plugin.py @@ -325,7 +325,13 @@ class SpiffyTitles(callbacks.Plugin): if title is not None and title: self.log.info("SpiffyTitles: title found: %s" % (title)) - irc.sendMsg(ircmsgs.privmsg(channel, title)) + ignore_match = self.title_matches_ignore_pattern(title) + + if ignore_match: + self.log.info("SpiffyTitles: ignoring title due to ignoredTitlePattern match") + return + else: + irc.sendMsg(ircmsgs.privmsg(channel, title)) else: if self.default_handler_enabled: self.log.debug("SpiffyTitles: could not get a title for %s" % (url)) @@ -1052,6 +1058,19 @@ class SpiffyTitles(callbacks.Plugin): return match + def title_matches_ignore_pattern(self, input): + """ + Checks message against ignoredTitlePattern to determine + whether the title should be ignored. + """ + match = False + pattern = self.registryValue("ignoredTitlePattern") + + if pattern: + match = re.search(pattern, input) + + return match + def get_url_from_message(self, input): """ Find the first string that looks like a URL from the message From eebfdefeb5d0417cc8edd62c5fbd09c938a237e1 Mon Sep 17 00:00:00 2001 From: kerozene Date: Mon, 26 Oct 2015 16:42:47 +1100 Subject: [PATCH 2/2] SpiffyTitles: Fetch Rotten Tomatoes data for IMDB handler Also add alternative IMDB template as config comment --- config.py | 3 +++ plugin.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/config.py b/config.py index 38ef481..c5ffb09 100644 --- a/config.py +++ b/config.py @@ -41,6 +41,9 @@ conf.registerGlobalValue(SpiffyTitles, 'language', conf.registerGlobalValue(SpiffyTitles, 'imdbTemplate', registry.String("^ {{Title}} ({{Year}}, {{Country}}) - Rating: {{imdbRating}} :: {{Plot}}", _("""Uses http://www.omdbapi.com to provide additional information about IMDB links"""))) +# alternative template: +# ^ {{Title}} ({{Year}} - {{Director}}) :: [i:{{imdbRating}} r:{{tomatoMeter}} m:{{Metascore}}] {{Plot}} + conf.registerGlobalValue(SpiffyTitles, 'coubTemplate', registry.String("^ {%if not_safe_for_work %}NSFW{% endif %} [{{channel.title}}] {{title}} :: {{views_count}} views :: {{likes_count}} likes :: {{recoubs_count}} recoubs", _("""Uses Coub API to get additional information about coub.com links"""))) diff --git a/plugin.py b/plugin.py index 1e23e7e..b82c651 100644 --- a/plugin.py +++ b/plugin.py @@ -742,7 +742,7 @@ class SpiffyTitles(callbacks.Plugin): # We can only accommodate a specific format of URL here if "/title/" in url: imdb_id = url.split("/title/")[1].rstrip("/") - omdb_url = "http://www.omdbapi.com/?i=%s&plot=short&r=json" % (imdb_id) + omdb_url = "http://www.omdbapi.com/?i=%s&plot=short&r=json&tomatoes=true" % (imdb_id) try: request = requests.get(omdb_url, timeout=10, headers=headers)