class MediaViews(): def __init__(self, interface_layer): """ Creates the regex routes and callbacks to handle media messages """ self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.tts_sender = EspeakTtsSender(interface_layer) self.routes = [ ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:jpe?g|gif|png)($|\?[^\s]+$)", self.send_image), ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:mp4|webm)($|\?[^\s]+$)", self.send_video), ("https?:\/\/[^$]+$", self.send_url_print), ("^/t(ts)?\s(?P<tts_text>[^$]+)$", self.send_tts) ] def send_video(self, message, match): self.video_sender.send_by_url(jid=message.getFrom(), file_url=message.getBody()) def send_image(self, message, match): self.image_sender.send_by_url(jid=message.getFrom(), file_url=message.getBody()) def send_url_print(self, message, match): url = message.getBody() self.url_print_sender.send_by_url(jid=message.getFrom(), file_url=url) def send_tts(self, message, match): tts_text = match.group("tts_text") self.tts_sender.send(jid=message.getFrom(), text=tts_text)
class MediaViews(): def __init__(self, interface_layer): """ Creates the regex routes and callbacks to handle media messages """ self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.tts_sender = EspeakTtsSender(interface_layer) self.routes = [ ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:jpe?g|gif|png)($|\?[^\s]+$)", self.send_image), ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:mp4|webm)($|\?[^\s]+$)", self.send_video), ("^!t(ts)?\s(?P<tts_text>[^$]+)$", self.send_tts) ] def send_video(self, message, match): self.video_sender.send_by_url(jid=message.getFrom(), file_url=message.getBody()) def send_image(self, message, match): self.image_sender.send_by_url(jid=message.getFrom(), file_url=message.getBody()) def send_url_print(self, message, match): url = message.getBody() self.url_print_sender.send_by_url(jid=message.getFrom(), file_url=url) def send_tts(self, message, match): tts_text = match.group("tts_text") self.tts_sender.send(jid=message.getFrom(), text=tts_text)
class BingViews(): def __init__(self, interface_layer): self.image_sender = ImageSender(interface_layer) self.routes = [ ("/i(mage)?\s(?P<term>[^$]+)$", self.bing_image_search) ] def bing_image_search(self, message, match): req = requests.get("https://api.datamarket.azure.com/Bing/Search/v1/Image?Query=%27{}%27&$format=json&$top=1".format(match.group("term")), auth=("",config.bing_api)) image_url = urllib.unquote(req.json()['d']['results'][0]['MediaUrl'].encode('utf-8')) self.image_sender.send_by_url(jid=message.getFrom(), file_url=image_url) def weightedprob(self,f,cat,prf,weight=1.0,ap=0.5): # Calculate current probability basicprob = prf(f,cat) # Count the number of times this feature has appeared in # all categories totals = sum([self.fcount(f,c) for c in self.categories()]) # Calculate the weighted average bp = ((weight * ap) + (totals * basicprob)) / (weight + totals) return bp def sampletrain(cl): cl.train('Nobody owns the water.','good') cl.train('the quick rabbit jumps fences','good') cl.train('buy pharmaceuticals now','bad') cl.train('make quick money at the online casino','bad') cl.train('the quick brown fox jumps','good')
def __init__(self, interface_layer): """ Creates the regex routes and callbacks to handle media messages """ self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.tts_sender = EspeakTtsSender(interface_layer) self.routes = []
class BingViews(): def __init__(self, interface_layer): self.image_sender = ImageSender(interface_layer) self.routes = [ ("/i(mage)?\s(?P<term>[^$]+)$", self.bing_image_search) ] def bing_image_search(self, message, match): req = requests.get("https://api.datamarket.azure.com/Bing/Search/v1/Image?Query=%27{}%27&$format=json&$top=1".format(match.group("term")), auth=("",config.bing_api)) image_url = urllib.unquote(req.json()['d']['results'][0]['MediaUrl'].encode('utf-8')) self.image_sender.send_by_url(jid=message.getFrom(), file_url=image_url)
def __init__(self, interface_layer): """ Creates the regex routes and callbacks to handle media messages """ self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.tts_sender = EspeakTtsSender(interface_layer) self.routes = [ ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:jpe?g|gif|png)($|\?[^\s]+$)", self.send_image), ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:mp4|webm)($|\?[^\s]+$)", self.send_video), ("https?:\/\/[^$]+$", self.send_url_print), ("^/g(ravar)?\s(?P<tts_text>[^$]+)$", self.send_tts) ]
def __init__(self, interface_layer): self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.yt_sender = YoutubeSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.google_tts_sender = GoogleTtsSender(interface_layer) self.routes = [ (".*https?:\/\/(?:www\.|m\.)?youtu(?:be.com\/watch\?v=|\.be/)(?P<video_id>[\w-]+)(&\S*)?$", self.send_yt_video), ("/t(ts)?\s(?P<text>[^\[]{1,500})\s?\[?(?P<lang>[A-Za-z\-]{2,6})?\]?$", self.send_tts), ("/s(earch)?\s(?P<term>[^$]+)$", self.google_search), ("/i(mage)?\s(?P<term>[^$]+)$", self.google_image_search) ]
class BingViews(): def __init__(self, interface_layer): self.image_sender = ImageSender(interface_layer) self.routes = [("/i(mage)?\s(?P<term>[^$]+)$", self.bing_image_search)] def bing_image_search(self, message, match): req = requests.get( "https://api.datamarket.azure.com/Bing/Search/v1/Image?Query=%27{}%27&$format=json&$top=1" .format(match.group("term")), auth=("", config.bing_api)) image_url = urllib.unquote( req.json()['d']['results'][0]['MediaUrl'].encode('utf-8')) self.image_sender.send_by_url(jid=message.getFrom(), file_url=image_url)
def __init__(self, interface_layer): self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.yt_sender = YoutubeSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.routes = [ (".*https?:\/\/(?:www\.|m\.)?youtu(?:be.com\/watch\?v=|\.be/)(?P<video_id>[\w-]+)(&\S*)?$", self.send_yt_video), ("/s(earch)?\s(?P<term>[^$]+)$", self.google_search), ]
class GoogleViews(): def __init__(self, interface_layer): self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.yt_sender = YoutubeSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.google_tts_sender = GoogleTtsSender(interface_layer) self.routes = [ (".*https?:\/\/(?:www\.|m\.)?youtu(?:be.com\/watch\?v=|\.be/)(?P<video_id>[\w-]+)(&\S*)?$", self.send_yt_video), ("/t(ts)?\s(?P<text>[^\[]{1,500})\s?\[?(?P<lang>[A-Za-z\-]{2,6})?\]?$", self.send_tts), ("/s(earch)?\s(?P<term>[^$]+)$", self.google_search), ("/i(mage)?\s(?P<term>[^$]+)$", self.google_image_search) ] def send_yt_video(self, message, match): self.yt_sender.send_by_url(jid=message.getFrom(), file_url=match.group("video_id")) def send_tts(self, message, match): self.google_tts_sender.send(jid=message.getFrom(), text=match.group("text"), lang=match.group("lang")) def google_search(self, message, match): req = requests.get( "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%s" % match.group("term")) page_url = urllib.unquote( req.json()["responseData"]["results"][0]["url"]) self.url_print_sender.send_by_url(jid=message.getFrom(), file_url=page_url) def google_image_search(self, message, match): req = requests.get( "http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=%s" % match.group("term")) image_url = urllib.unquote( req.json()["responseData"]["results"][0]["url"]) self.image_sender.send_by_url(jid=message.getFrom(), file_url=image_url)
def __init__(self, interface_layer): """ Creates the regex routes and callbacks to handle media messages """ self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.routes = [ ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:jpe?g|gif|png)($|\?[^\s]+$)", self.send_image), ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:mp4|webm)($|\?[^\s]+$)", self.send_video), ("https?:\/\/[^$]+$", self.send_url_print), ]
class MediaViews(): def __init__(self, interface_layer): """ Creates the regex routes and callbacks to handle media messages """ self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.tts_sender = EspeakTtsSender(interface_layer) self.routes = [] def send_video(self, message, match): self.video_sender.send_by_url(jid=message.getFrom(), file_url=message.getBody()) def send_image(self, message, match): self.image_sender.send_by_url(jid=message.getFrom(), file_url=message.getBody()) def send_url_print(self, message, match): url = message.getBody() self.url_print_sender.send_by_url(jid=message.getFrom(), file_url=url) def send_tts(self, message, match): tts_text = match.group("tts_text") self.tts_sender.send(jid=message.getFrom(), text=tts_text)
def __init__(self, interface_layer): """ Creates the regex routes and callbacks to handle media messages """ self.image_sender = ImageSender(interface_layer) self.video_sender = VideoSender(interface_layer) self.url_print_sender = UrlPrintSender(interface_layer) self.tts_sender = EspeakTtsSender(interface_layer) self.routes = [ ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:jpe?g|gif|png)($|\?[^\s]+$)", self.send_image), ("https?:\/\/(?:[\w\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:mp4|webm)($|\?[^\s]+$)", self.send_video), # ("https?:\/\/[^$]+$", self.send_url_print), ("^/t(ts)?\s(?P<tts_text>[^$]+)$", self.send_tts) # ("/w(isdom)?\s([\"])(?P<top>[^\"$]+)\"\s([\"])(?P<bottom>[^$]+)([\"])", self.send_wisdom) ]
def __init__(self, interface_layer): self.image_sender = ImageSender(interface_layer) self.routes = [ ("/i(mage)?\s(?P<term>[^$]+)$", self.bing_image_search) ]