Example #1
0
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.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),
        ]

    def send_yt_video(self, message, match):
        self.yt_sender.send_by_url(jid=message.getFrom(),
                                   file_url=match.group("video_id"))

    def google_search(self, message, match):
        # if you can then help me to Recover this Google Search Feature
        req = requests.get(
            'https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%s' %
            match.group("term"))
        #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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
class SuperViews():
    def __init__(self, interface_layer):
        self.interface_layer = interface_layer
        self.url_print_sender = UrlPrintSender(self.interface_layer)
        self.routes = [
            ("^/help", self.help),
            ("^/about", self.about),
            ("^/roll", self.roll),
            ("/(?P<evenOrOdd>even|odd)$", self.even_or_odd),
        ]

    def about(self, message=None, match=None, to=None):
        self.url_print_sender.send_by_url(
            message.getFrom(),
            "https://github.com/joaoricardo000/whatsapp-bot-seed", ABOUT_TEXT)

    def roll(self, message=None, match=None, to=None):
        return TextMessageProtocolEntity("[%d]" % random.randint(1, 6),
                                         to=message.getFrom())

    def even_or_odd(self, message=None, match=None, to=None):
        is_odd = len(match.group("evenOrOdd")) % 2
        num = random.randint(1, 10)
        if (is_odd and num % 2) or (not is_odd and not num % 2):
            return TextMessageProtocolEntity("[%d]\nYou win." % num,
                                             to=message.getFrom())
        else:
            return TextMessageProtocolEntity("[%d]\nYou lose!" % num,
                                             to=message.getFrom())

    def help(self, message=None, match=None, to=None):
        return TextMessageProtocolEntity(HELP_TEXT, to=message.getFrom())
Example #5
0
class SuperViews():
    def __init__(self, interface_layer):
        self.interface_layer = interface_layer
        self.url_print_sender = UrlPrintSender(self.interface_layer)
        self.routes = [
            ("^/help", self.help),
            ("^/about", self.about),
            ("^/roll", self.roll),
            ("/(?P<evenOrOdd>even|odd)$", self.even_or_odd),
        ]

    def about(self, message=None, match=None, to=None):
        self.url_print_sender.send_by_url(message.getFrom(), ABOUT_TEXT)

    def roll(self, message=None, match=None, to=None):
        return TextMessageProtocolEntity("[%d]" % random.randint(1, 6), to=message.getFrom())

    def even_or_odd(self, message=None, match=None, to=None):
        is_odd = len(match.group("evenOrOdd")) % 2
        num = random.randint(1, 10)
        if (is_odd and num % 2) or (not is_odd and not num % 2):
            return TextMessageProtocolEntity("[%d]\nYou win." % num, to=message.getFrom())
        else:
            return TextMessageProtocolEntity("[%d]\nYou lose!" % num, to=message.getFrom())

    def help(self, message=None, match=None, to=None):
        return TextMessageProtocolEntity(HELP_TEXT, to=message.getFrom())
Example #6
0
 def __init__(self, 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),
         ("/b(usca)?\s(?P<term>[^$]+)$", self.google_search),
     ]
Example #7
0
 def __init__(self, interface_layer):
     self.interface_layer = interface_layer
     self.url_print_sender = UrlPrintSender(self.interface_layer)
     self.routes = [
         ("^/help", self.help),
         ("^/about", self.about),
         ("^/roll", self.roll),
         ("/(?P<evenOrOdd>even|odd)$", self.even_or_odd),
     ]
Example #8
0
 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 = []
Example #9
0
 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)
     ]
Example #11
0
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.routes = []

    def send_yt_video(self, message, match):
        self.yt_sender.send_by_url(jid=message.getFrom(), file_url=match.group("video_id"))

    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)
Example #12
0
 def __init__(self, interface_layer):
     self.interface_layer = interface_layer
     self.url_print_sender = UrlPrintSender(self.interface_layer)
     self.routes = [
         # ("/(?P<evenOrOdd>even|odd)$", self.even_or_odd),
         # ("^beban", self.beban_spell_checker)
     ]
Example #13
0
class GoogleViews():
    def __init__(self, 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),
            ("/b(usca)?\s(?P<term>[^$]+)$", self.google_search),
        ]

    def send_yt_video(self, message, match):
        self.yt_sender.send_by_url(jid=message.getFrom(), file_url=match.group("video_id"))

    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)
Example #14
0
 def __init__(self, interface_layer):
     self.interface_layer = interface_layer
     self.url_print_sender = UrlPrintSender(self.interface_layer)
     self.routes = [
         ("^/help", self.help),
         ("^/about", self.about),
         ("^/roll", self.roll),
         ("/(?P<evenOrOdd>even|odd)$", self.even_or_odd),
     ]
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),
     ]
Example #17
0
 def __init__(self, interface_layer):
     """
         Creates the regex routes and callbacks to handle media messages
     """
     self.interface_layer = interface_layer
     self.url_print_sender = UrlPrintSender(self.interface_layer)
     self.audio_sender = AudioSender(self.interface_layer)
     self.resource_path = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), "./resources/")
     self.routes = [
         ("^/folha", self.folha),
         ("^/ajuda", self.ajuda),
         ("^/g1", self.g1),
         ("^/ge", self.ge),
         ("^/rola", self.rola),
         ("^/gira", self.gira),
         ("^/s(erie)?(?P<serie>[abcd])\s*$", self.brasileirao),
         ("^/p(iada)?$", self.piada),
         ("^/(?P<im>im)?par\s*$", self.par),
     ]
     self.collection_losers = shelve.open("losers.data")
Example #18
0
 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)
     ]
Example #19
0
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)
Example #20
0
 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 = []
Example #21
0
 def __init__(self, interface_layer):
     self.interface_layer = interface_layer
     self.url_print_sender = UrlPrintSender(self.interface_layer)
     self.routes = [
         ("^/help", self.help),
     ]
Example #22
0
class AwesomoViews():
    def __init__(self, interface_layer):
        """
            Creates the regex routes and callbacks to handle media messages
        """
        self.interface_layer = interface_layer
        self.url_print_sender = UrlPrintSender(self.interface_layer)
        self.audio_sender = AudioSender(self.interface_layer)
        self.resource_path = os.path.join(
            os.path.dirname(os.path.realpath(__file__)), "./resources/")
        self.routes = [
            ("^/folha", self.folha),
            ("^/ajuda", self.ajuda),
            ("^/g1", self.g1),
            ("^/ge", self.ge),
            ("^/rola", self.rola),
            ("^/gira", self.gira),
            ("^/s(erie)?(?P<serie>[abcd])\s*$", self.brasileirao),
            ("^/p(iada)?$", self.piada),
            ("^/(?P<im>im)?par\s*$", self.par),
        ]
        self.collection_losers = shelve.open("losers.data")

    def ajuda(self, message=None, match=None, to=None):
        return TextMessageProtocolEntity(HELP_TEXT, to=message.getFrom())

    def rola(self, message=None, match=None, to=None):
        return TextMessageProtocolEntity("[%d]" % random.randint(1, 6),
                                         to=message.getFrom())

    def gira(self, message=None, match=None, to=None):
        to = to or message.getFrom()
        self.audio_sender.send_by_path(to,
                                       self.resource_path + "audio/piao.mp3")
        return TextMessageProtocolEntity("Giraaandooo... [%d]" %
                                         random.randint(1, 6),
                                         to=to)

    def piada(self, message, match):
        return TextMessageProtocolEntity(piadas.get(), to=message.getFrom())

    def par(self, message=None, match=None, to=None):
        is_odd = bool(match.group("im"))
        num = random.randint(1, 10)
        lost = (is_odd and num % 2) or (not is_odd and not num % 2)
        score = self._save_game(message.getFrom(), lost)
        response = "[%d] VocĂȘ %s\n\n%s\n%s" % (
            num, "ganhou." if lost else "perdeu!", emoticon_lose * score[0],
            emoticon_notlose * score[1])
        return TextMessageProtocolEntity(response, to=message.getFrom())

    def _save_game(self, loser, lose=True):
        losing_history = self.collection_losers.get(loser, {True: 0, False: 0})
        losing_history[lose] += 1
        self.collection_losers[loser] = losing_history
        self.collection_losers.sync()
        return losing_history

    def g1(self, message=None, match=None, to=None):
        to = to or message.getFrom()
        self.url_print_sender.send_by_url(to, "http://g1.globo.com/")

    def folha(self, message=None, match=None, to=None):
        to = to or message.getFrom()
        self.url_print_sender.send_by_url(to, "http://www.folha.uol.com.br/")

    def ge(self, message=None, match=None, to=None):
        to = to or message.getFrom()
        self.url_print_sender.send_by_url(to, "http://globoesporte.globo.com/")

    def brasileirao(self, message=None, match=None, to=None):
        to = to or message.getFrom()
        serie = match.group("serie")
        self.url_print_sender.send_by_url(
            to, "http://globoesporte.globo.com/futebol/brasileirao-serie-%s/" %
            serie)