示例#1
0
 def testMemeGenImplicitSyntax(self):
     inputText = "#dogebot #henry I like, test driven development!"
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     self.assertTrue( self.returnTweetHasImage(self.getResponse(1)) )
示例#2
0
 def testMemeGenImplicitSyntax(self):
     inputText = "#dogebot #henry I like, test driven development!"
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     self.assertTrue(self.returnTweetHasImage(self.getResponse(1)))
示例#3
0
 def testDongerResponds(self):
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputText = "#dogebot #donger"
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     self.assertTrue( True )
示例#4
0
 def testDongerResponds(self):
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputText = "#dogebot #donger"
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     self.assertTrue(True)
示例#5
0
 def testParrot(self):
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputText = "#dogebot #parrot hello world!"
     expectedOutputText = "@n4vjot hello world!, Woof"
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     self.assertTrue( self.returnedTweetContains(self.getResponse(1), expectedOutputText) )
示例#6
0
 def testSmite(self):
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputText = "#dogebot #smite this guy"
     expectedOutputText = "@n4vjot Get smitten, scrub"
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     self.assertTrue( self.returnedTweetContains(self.getResponse(1), expectedOutputText) )
示例#7
0
 def testMemeGen(self):
     inputText = "#dogebot #meme #henry I like, test driven development!"
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     #image = self.getResponse(1).get_image()
     #image_base64 = base64.b64encode(image.read())
     #print image_base64
     self.assertTrue( self.returnTweetHasImage(self.getResponse(1)) )
示例#8
0
 def testErrorRecovery(self):
     Log.showE = False
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     input1 = self.buildMockTweet("#dogebot #henry missing comma is broken syntax!")
     input2 = self.buildMockTweet("#dogebot #meme #henry I like, test driven development!")
     self.postTweetToBot(reader, input1)
     self.postTweetToBot(reader, input2)
     self.waitForResponse(1)
     Log.showE = True
     self.assertTrue( self.returnTweetHasImage(self.getResponse(1)) )
示例#9
0
 def testMemeGen(self):
     inputText = "#dogebot #meme #henry I like, test driven development!"
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     #image = self.getResponse(1).get_image()
     #image_base64 = base64.b64encode(image.read())
     #print image_base64
     self.assertTrue(self.returnTweetHasImage(self.getResponse(1)))
示例#10
0
 def testParrot(self):
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputText = "#dogebot #parrot hello world!"
     expectedOutputText = "@n4vjot hello world!, Woof"
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     self.assertTrue(
         self.returnedTweetContains(self.getResponse(1),
                                    expectedOutputText))
示例#11
0
 def testSmite(self):
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     inputText = "#dogebot #smite this guy"
     expectedOutputText = "@n4vjot Get smitten, scrub"
     inputTweet = self.buildMockTweet(inputText)
     self.postTweetToBot(reader, inputTweet)
     self.waitForResponse(1)
     self.assertTrue(
         self.returnedTweetContains(self.getResponse(1),
                                    expectedOutputText))
示例#12
0
 def testErrorRecovery(self):
     Log.showE = False
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     input1 = self.buildMockTweet(
         "#dogebot #henry missing comma is broken syntax!")
     input2 = self.buildMockTweet(
         "#dogebot #meme #henry I like, test driven development!")
     self.postTweetToBot(reader, input1)
     self.postTweetToBot(reader, input2)
     self.waitForResponse(1)
     Log.showE = True
     self.assertTrue(self.returnTweetHasImage(self.getResponse(1)))
示例#13
0
 def testStackedTweets(self):
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     input1 = self.buildMockTweet("@hanray #dogebot #parrot hello world!")
     input2 = self.buildMockTweet( "#dogebot #parrot hello world!")
     input3 = self.buildMockTweet("#dogebot #henry I like, test driven development!")
     input4 = self.buildMockTweet("#dogebot #meme #henry I like, test driven development!")
     self.postTweetToBot(reader, input1)
     self.postTweetToBot(reader, input2)
     self.postTweetToBot(reader, input3)
     self.postTweetToBot(reader, input4)
     self.waitForResponse(4)
     self.assertTrue( self.returnedTweetContains(self.getResponse(1), "@n4vjot @hanray hello world!, Woof") )
     self.assertTrue( self.returnedTweetContains(self.getResponse(2), "@n4vjot hello world!, Woof") )
     self.assertTrue( self.returnTweetHasImage(self.getResponse(3)) )
     self.assertTrue( self.returnTweetHasImage(self.getResponse(4)) )
示例#14
0
 def testStackedTweets(self):
     reader = StatusQueue()
     bot = StatusAnalyzer()
     bot.add_response_generated_listener(self.handleResponse)
     reader.add_status_ready_listener(bot.generate_response_tweet)
     input1 = self.buildMockTweet("@hanray #dogebot #parrot hello world!")
     input2 = self.buildMockTweet("#dogebot #parrot hello world!")
     input3 = self.buildMockTweet(
         "#dogebot #henry I like, test driven development!")
     input4 = self.buildMockTweet(
         "#dogebot #meme #henry I like, test driven development!")
     self.postTweetToBot(reader, input1)
     self.postTweetToBot(reader, input2)
     self.postTweetToBot(reader, input3)
     self.postTweetToBot(reader, input4)
     self.waitForResponse(4)
     self.assertTrue(
         self.returnedTweetContains(self.getResponse(1),
                                    "@n4vjot @hanray hello world!, Woof"))
     self.assertTrue(
         self.returnedTweetContains(self.getResponse(2),
                                    "@n4vjot hello world!, Woof"))
     self.assertTrue(self.returnTweetHasImage(self.getResponse(3)))
     self.assertTrue(self.returnTweetHasImage(self.getResponse(4)))
示例#15
0
from config import *
from logger import Log
from components.statusqueue import StatusQueue
from components.timelinescanner import TimelineScanner
from components.tweetsender import TweetSender
from components.statusanalyzer import StatusAnalyzer
import json


if __name__ == '__main__':
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token_key, access_token_secret)
    api = tweepy.API(auth)

    timeline_scanner = TimelineScanner(api)
    status_queue = StatusQueue()
    status_analyzer = StatusAnalyzer()
    tweet_sender = TweetSender(api)

    timeline_scanner.add_new_status_listener(status_queue.queue_tweet) #once scanner finds a tweet, pass it to the reader
    status_queue.add_status_ready_listener(status_analyzer.generate_response_tweet)
    status_analyzer.add_response_generated_listener(tweet_sender.send_tweet)

    Log.v("MAIN", "Initialized scanner")

    stream = tweepy.Stream(auth, timeline_scanner)
    stream.filter(track=['dogebot'])
    #I want to listen in onto #dogebot first, then from there detect commands. If you want to just listen into all commands, do:
    #stream.filter(track=plugin_classes.get_commands_list())

示例#16
0
from config import *
from logger import Log
from components.statusqueue import StatusQueue
from components.timelinescanner import TimelineScanner
from components.tweetsender import TweetSender
from components.statusanalyzer import StatusAnalyzer
import json

if __name__ == '__main__':
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token_key, access_token_secret)
    api = tweepy.API(auth)

    timeline_scanner = TimelineScanner(api)
    status_queue = StatusQueue()
    status_analyzer = StatusAnalyzer()
    tweet_sender = TweetSender(api)

    timeline_scanner.add_new_status_listener(
        status_queue.queue_tweet
    )  #once scanner finds a tweet, pass it to the reader
    status_queue.add_status_ready_listener(
        status_analyzer.generate_response_tweet)
    status_analyzer.add_response_generated_listener(tweet_sender.send_tweet)

    Log.v("MAIN", "Initialized scanner")

    stream = tweepy.Stream(auth, timeline_scanner)
    stream.filter(track=['dogebot'])
    #I want to listen in onto #dogebot first, then from there detect commands. If you want to just listen into all commands, do: