mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-22 19:28:09 -06:00
Filter by retweet, quotes and replies in filter creation #102
This commit is contained in:
parent
652d3c7ff8
commit
612f4ffadf
@ -14,6 +14,9 @@ class filter(object):
|
|||||||
contains = self.dialog.get("contains")
|
contains = self.dialog.get("contains")
|
||||||
term = self.dialog.get("term")
|
term = self.dialog.get("term")
|
||||||
regexp = self.dialog.get("regexp")
|
regexp = self.dialog.get("regexp")
|
||||||
|
allow_rts = self.dialog.get("allow_rts")
|
||||||
|
allow_quotes = self.dialog.get("allow_quotes")
|
||||||
|
allow_replies = self.dialog.get("allow_replies")
|
||||||
load_language = self.dialog.get("load_language")
|
load_language = self.dialog.get("load_language")
|
||||||
ignore_language = self.dialog.get("ignore_language")
|
ignore_language = self.dialog.get("ignore_language")
|
||||||
lang_option = None
|
lang_option = None
|
||||||
@ -26,7 +29,7 @@ class filter(object):
|
|||||||
for i in application.supported_languages:
|
for i in application.supported_languages:
|
||||||
if i["name"] in langs:
|
if i["name"] in langs:
|
||||||
langcodes.append(i["code"])
|
langcodes.append(i["code"])
|
||||||
d = dict(in_buffer=self.buffer.name, word=term, regexp=regexp, in_lang=lang_option, languages=langcodes, if_word_exists=contains)
|
d = dict(in_buffer=self.buffer.name, word=term, regexp=regexp, in_lang=lang_option, languages=langcodes, if_word_exists=contains, allow_rts=allow_rts, allow_quotes=allow_quotes, allow_replies=allow_replies)
|
||||||
if self.buffer.session.settings["filters"].has_key(title):
|
if self.buffer.session.settings["filters"].has_key(title):
|
||||||
return commonMessageDialogs.existing_filter()
|
return commonMessageDialogs.existing_filter()
|
||||||
self.buffer.session.settings["filters"][title] = d
|
self.buffer.session.settings["filters"][title] = d
|
||||||
@ -49,7 +52,6 @@ class filterManager(object):
|
|||||||
def insert_filters(self, filters):
|
def insert_filters(self, filters):
|
||||||
self.dialog.filters.clear()
|
self.dialog.filters.clear()
|
||||||
for f in filters.keys():
|
for f in filters.keys():
|
||||||
# ToDo: Add titles to filters.
|
|
||||||
filterName = f
|
filterName = f
|
||||||
buffer = filters[f]["in_buffer"]
|
buffer = filters[f]["in_buffer"]
|
||||||
if filters[f]["if_word_exists"] == "True" and filters[f]["word"] != "":
|
if filters[f]["if_word_exists"] == "True" and filters[f]["word"] != "":
|
||||||
|
@ -148,14 +148,21 @@ def is_allowed(tweet, settings, buffer_name):
|
|||||||
clients = settings["twitter"]["ignored_clients"]
|
clients = settings["twitter"]["ignored_clients"]
|
||||||
if tweet.has_key("sender"): return True
|
if tweet.has_key("sender"): return True
|
||||||
allowed = True
|
allowed = True
|
||||||
|
tweet_data = {}
|
||||||
|
if tweet.has_key("retweeted_status"):
|
||||||
|
tweet_data["retweet"] = True
|
||||||
|
if tweet["in_reply_to_status_id_str"] != None:
|
||||||
|
tweet_data["reply"] = True
|
||||||
|
if tweet.has_key("quoted_status"):
|
||||||
|
tweet_data["quote"] = True
|
||||||
if tweet.has_key("retweeted_status"): tweet = tweet["retweeted_status"]
|
if tweet.has_key("retweeted_status"): tweet = tweet["retweeted_status"]
|
||||||
source = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
source = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
||||||
for i in clients:
|
for i in clients:
|
||||||
if i.lower() == source.lower():
|
if i.lower() == source.lower():
|
||||||
return False
|
return False
|
||||||
return filter_tweet(tweet, settings, buffer_name)
|
return filter_tweet(tweet, tweet_data, settings, buffer_name)
|
||||||
|
|
||||||
def filter_tweet(tweet, settings, buffer_name):
|
def filter_tweet(tweet, tweet_data, settings, buffer_name):
|
||||||
if tweet.has_key("full_text"):
|
if tweet.has_key("full_text"):
|
||||||
value = "full_text"
|
value = "full_text"
|
||||||
else:
|
else:
|
||||||
@ -164,6 +171,15 @@ def filter_tweet(tweet, settings, buffer_name):
|
|||||||
if settings["filters"][i]["in_buffer"] == buffer_name:
|
if settings["filters"][i]["in_buffer"] == buffer_name:
|
||||||
regexp = settings["filters"][i]["regexp"]
|
regexp = settings["filters"][i]["regexp"]
|
||||||
word = settings["filters"][i]["word"]
|
word = settings["filters"][i]["word"]
|
||||||
|
allow_rts = settings["filters"][i]["allow_rts"]
|
||||||
|
allow_quotes = settings["filters"][i]["allow_quotes"]
|
||||||
|
allow_replies = settings["filters"][i]["allow_replies"]
|
||||||
|
if allow_rts == "False" and tweet_data.has_key("retweet"):
|
||||||
|
return False
|
||||||
|
if allow_quotes == "False" and tweet_data.has_key("quote"):
|
||||||
|
return False
|
||||||
|
if allow_replies == "False" and tweet_data.has_key("reply"):
|
||||||
|
return False
|
||||||
if word != "" and settings["filters"][i]["if_word_exists"]:
|
if word != "" and settings["filters"][i]["if_word_exists"]:
|
||||||
if word in tweet[value]:
|
if word in tweet[value]:
|
||||||
return False
|
return False
|
||||||
|
@ -32,6 +32,12 @@ class filterDialog(baseDialog.BaseWXDialog):
|
|||||||
dc = wx.WindowDC(self.term)
|
dc = wx.WindowDC(self.term)
|
||||||
dc.SetFont(self.term.GetFont())
|
dc.SetFont(self.term.GetFont())
|
||||||
self.term.SetSize(dc.GetTextExtent("0"*40))
|
self.term.SetSize(dc.GetTextExtent("0"*40))
|
||||||
|
self.allow_rts = wx.CheckBox(panel, wx.NewId(), _(u"Allow retweets"))
|
||||||
|
self.allow_quotes = wx.CheckBox(panel, wx.NewId(), _(u"Allow quoted tweets"))
|
||||||
|
self.allow_replies = wx.CheckBox(panel, wx.NewId(), _(u"Allow replies"))
|
||||||
|
self.allow_rts.SetValue(True)
|
||||||
|
self.allow_quotes.SetValue(True)
|
||||||
|
self.allow_replies.SetValue(True)
|
||||||
bsizer = wx.BoxSizer(wx.HORIZONTAL)
|
bsizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
bsizer.Add(label, 0, wx.ALL, 5)
|
bsizer.Add(label, 0, wx.ALL, 5)
|
||||||
bsizer.Add(self.term, 0, wx.ALL, 5)
|
bsizer.Add(self.term, 0, wx.ALL, 5)
|
||||||
|
Loading…
Reference in New Issue
Block a user