Esempio n. 1
0
 def test_sources_have_content(self, mock_ts):
     mock_ts.return_value.searchTweets.return_value = {
         'content': {
             'statuses': [{
                 'text': 'all your data',
                 'id_str': '471774952379932673',
                 'user': {
                     'name': 'bob'
                 }
             }, {
                 'text': 'all your data',
                 'id_str': '471774952379932673',
                 'user': {
                     'name': 'bob'
                 }
             }, {
                 'text': 'all your data',
                 'id_str': '471774952379932673',
                 'user': {
                     'name': 'bob'
                 }
             }]
         }
     }
     t = Twitter()
     m = Meme("all your * -base")
     s = t.get_sources(m, 3).pop()
     self.assertNotEqual(s.handle, "")
     self.assertNotEqual(s.text, "")
     self.assertNotEqual(s.link, "")
Esempio n. 2
0
 def test_gets_sources(self, mock_ts):
     mock_ts.return_value.searchTweets.return_value = {
         'content': {
             'statuses': [{
                 'text': 'all your data',
                 'id_str': '471774952379932673',
                 'user': {
                     'name': 'bob'
                 }
             }, {
                 'text': 'all your data',
                 'id_str': '471774952379932673',
                 'user': {
                     'name': 'bob'
                 }
             }, {
                 'text': 'all your data',
                 'id_str': '471774952379932673',
                 'user': {
                     'name': 'bob'
                 }
             }]
         }
     }
     t = Twitter()
     m = Meme("all your * -base")
     self.assertGreater(len(t.get_sources(m, 3)), 0)
Esempio n. 3
0
def read_scraped_memes(path: str) -> list:
    memes = []
    with open(path, 'r', newline='') as csvfile:
        reader = csv.reader(csvfile)
        for row in reader:
            meme = Meme(row[0], row[1])
            memes.append(meme)
    return memes
Esempio n. 4
0
 def _parse_find_result(self, cursor):
     memes = set()
     for record in cursor:
         meme = Meme(record.get('post_id'), record.get('site'),
                     record.get('text'), record.get('media_url'),
                     record.get('processed'))
         memes.add(meme)
     return memes
Esempio n. 5
0
 def test_handles_no_matches(self):
     p = Parser()
     m = Meme("all your * -base")
     s = [
         Source("", "foo", ""),
         Source("", "bar", ""),
         Source("", "baz", "")
     ]
     self.assertEqual(p.collate_words(m, s).get_list(), [])
Esempio n. 6
0
 def test_should_log_twitter_exception(self):
     t = Twitter()
     m = Meme("all your * -base")
     old_file_size = os.stat('errors.log').st_size
     old_secret = Secrets.access_token_secret
     Secrets.access_token_secret = "wrong secret"
     t.get_sources(m, 3)
     self.assertGreater(os.stat('errors.log').st_size, old_file_size)
     Secrets.access_token_secret = old_secret  #hmm, smells bad. Tests might not run in order
Esempio n. 7
0
 def test_collates_words(self):
     p = Parser()
     m = Meme("all your * -base")
     s = [
         Source("", "all your cake", ""),
         Source("", "all your cake", ""),
         Source("", "all your data", "")
     ]
     self.assertEqual(
         p.collate_words(m, s).get_list(), [("cake", 2), ("data", 1)])
Esempio n. 8
0
def create_meme(ai_settings, screen, memes, meme_number, column_number):
    """create a meme and place it in the row"""
    meme = Meme(ai_settings, screen)
    meme_height = meme.rect.height
    meme.rect.x = (meme.rect.width +
                   300) + 2 * meme.rect.height * column_number
    meme.y = meme_height + 2 * meme_height * meme_number

    meme.rect.y = meme.y
    memes.add(meme)
Esempio n. 9
0
    async def join(self, ctx: commands.Context):
        """ JOINS VOICE CHANNEL """
        global channel
        global vc

        channel = ctx.author.voice.channel
        vc = await channel.connect()
        # Activating audio commands:
        bot.add_cog(ShortAudio(bot, vc))
        bot.add_cog(Meme(bot, vc))

        await ctx.send(embed=self.botTalk.intro())
Esempio n. 10
0
def scrape_memes(soup: BeautifulSoup) -> list:
    """Scrapes the html to get a list of memes."""
    memes = []
    soup_meme = soup.select('td[class*="entry"]')
    print(soup_meme)
    for item in soup_meme:
        meme = Meme(item.h2.get_text(strip=True), item.a['href'])
        while MANUAL and not meme.is_alphanumspace():
            meme.name = input(f'Replace {meme.name}:')

        memes.append(meme)
    return memes
Esempio n. 11
0
def create_fleet(ai_settings, screen, pepe, memes):
    """create a full fleet of meme"""
    # create a meme and find the number of memes in a row
    # spacing between each meme is equal to one meme width
    meme = Meme(ai_settings, screen)
    number_memes_y = get_number_memes_y(ai_settings, meme.rect.height)
    number_columns = get_number_columns(ai_settings, pepe.rect.width,
                                        meme.rect.width)

    #create fleet of memes
    for column_number in range(number_columns):
        for meme_number in range(number_memes_y):
            create_meme(ai_settings, screen, memes, meme_number, column_number)
Esempio n. 12
0
def run_game():
    # Initialize game and create a screen object.
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption('Meme_Invaders')

    #make the play button
    play_button = Button(ai_settings, screen, "Play Meme_Invaders")

    #create an instance to store game statistics and create a scoreboard
    stats = GameStats(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)

    #make a meme
    meme = Meme(ai_settings, screen)

    #make a pepe
    pepe = Pepe(ai_settings, screen)

    #make a group of bullets and memes
    bullets = Group()
    memes = Group()

    #create the fleet of memes
    gf.create_fleet(ai_settings, screen, pepe, memes)

    #start main loop of the game
    while True:
        gf.check_events(ai_settings, screen, stats, sb, play_button, pepe,
                        memes, bullets)

        if stats.game_active:
            pepe.update()
            gf.update_bullets(ai_settings, screen, stats, sb, pepe, memes,
                              bullets)
            gf.update_memes(ai_settings, screen, stats, sb, pepe, memes,
                            bullets)

        gf.update_screen(ai_settings, screen, stats, sb, pepe, memes, bullets,
                         play_button)
Esempio n. 13
0
def memepie():
    if 'meme' in request.values:
        meme = Meme(request.values['meme'])
        if meme.is_valid():
            twitter = Twitter()
            parser = Parser()
            texts = twitter.get_sources(meme, 20)
            #from source import Source
            #texts = [Source("", "x is my middle name",""), Source("", "y is my middle name", ""), Source("", "x is my middle name","")]
            result = parser.collate_words(meme, texts)

            gchart = GChart()
            g.clean_query = meme.get_clean_meme()
            g.meme_exceptions = meme.get_exceptions()
            g.meme_parts = meme.get_parts()
            g.pie_data = gchart.generate_pie_data(result)

            #first_word_source_list = result.get_source_list(result.get_list()[0][0])
            return render_template("memepie.htm")
        else:
            g.clean_query = meme.get_clean_meme()  #our understanding of meme
            g.error_message = meme.get_problem()
            return render_template("error.htm")
Esempio n. 14
0
    def __init__(self):
        self.root = Tk()
        self.root.title('Memez!!!!1!')
        self.mainframe = ttk.Frame(self.root, padding='3 3 12 12')
        self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
        self.mainframe.columnconfigure(0, weight=1)
        self.mainframe.rowconfigure(0, weight=1)

        self.top = StringVar()
        self.top.trace('w', self.update_top)
        self.top_entry = ttk.Entry(self.mainframe, textvariable=self.top)
        self.top_entry.grid(column=0, row=0)

        self.mid = StringVar()
        self.mid.trace('w', self.update_mid)
        self.mid_entry = ttk.Entry(self.mainframe, textvariable=self.mid)
        self.mid_entry.grid(column=0, row=1)

        self.bot = StringVar()
        self.bot.trace('w', self.update_bot)
        self.bot_entry = ttk.Entry(self.mainframe, textvariable=self.bot)
        self.bot_entry.grid(column=0, row=2)

        self.filename = 'gifs/this_is_fine.gif'
        self.meme = Meme(self.filename)
        self.img = self.meme.render('test.gif')
        self.tkimg = ImageTk.PhotoImage(self.img)
        self.button = ttk.Button(self.mainframe, image=self.tkimg)
        self.button.grid(column=1, row=0, rowspan=3, stick=(W, E))

        self.select_meme = ttk.Button(self.mainframe,
                                      text='Select Image',
                                      command=self.select_image)
        self.select_meme.grid(column=0, row=3)

        #self.button.pack()
        self.mainframe.pack()
Esempio n. 15
0
from meme import Meme
from generator import Generator

meme = Meme('horse.jpg', (20, 20), (120, 200), 'comic.otf', (0, 0, 0, 255))

generator = Generator(meme)

generator.generate("Yes hello, \n This is a test.").save(
    '/home/jon/i/testpy.jpg', 'jpeg')
Esempio n. 16
0
from meme import Meme

obunga = Meme()
Esempio n. 17
0
 def test_generates_valid_regex(self):
     p = Parser()
     m = Meme("all your * -base")
     self.assertEqual(p._format_regex(m), "all your ([\\w'\\-]+)")
Esempio n. 18
0
 def test_converts_to_lowercase(self):
     p = Parser()
     m = Meme("all your * -base")
     s = [Source("", "ALL YOUR DATA", "")]
     self.assertEqual(p.collate_words(m, s).get_list(), [("data", 1)])
Esempio n. 19
0
 def test_invalid_meme_has_raw_meme(self):
     m = Meme("nothing here")
     self.assertEqual(m.raw_meme, "nothing here")
Esempio n. 20
0
 def test_invalid_meme_is_invalid(self):
     m = Meme("nothing here")
     self.assertFalse(m.is_valid())
     self.assertEqual(m.get_problem(), "has no wildcard (*)")
Esempio n. 21
0
 def test_generates_valid_weird_regex(self):
     p = Parser()
     m = Meme("amn't foo-bar * -isn't")
     self.assertEqual(p._format_regex(m), "amn't foo-bar ([\\w'\\-]+)")
Esempio n. 22
0
 def test_get_parts_valid_3(self):
     m = Meme("foo * bar")
     self.assertEqual(m.get_parts(), ["foo", "bar"])
Esempio n. 23
0
 def test_get_parts_valid_2(self):
     m = Meme("foo *")
     self.assertEqual(m.get_parts(), ["foo", ""])
Esempio n. 24
0
 def test_get_parts_valid_1(self):
     m = Meme("* foo")
     self.assertEqual(m.get_parts(), ["", "foo"])
Esempio n. 25
0
 def test_two_stars_is_invalid(self):
     m = Meme("* into *")
     self.assertFalse(m.is_valid())
     self.assertEqual(m.get_problem(), "has too many wildcards (*)")
Esempio n. 26
0
 def test_hypen_is_not_exception(self):
     m = Meme("foo-bar -baz")
     self.assertEqual(m.get_body(), "foo-bar")
     self.assertEqual(m.get_exceptions(), "-baz")
Esempio n. 27
0
 def test_accents_ok(self):
     m = Meme("milano é *")
     self.assertTrue(m.is_valid)
     self.assertEqual(m.raw_meme, "milano é *")
     self.assertEqual(m.get_body(), "milano é *")
Esempio n. 28
0
 def test_invalid_characters(self):
     m = Meme("ok <>\"(){}[],.")
     self.assertEqual(m.get_body(), "ok")
Esempio n. 29
0
 def test_apostrophe_is_ok(self):
     m = Meme("amn't * -isn't")
     self.assertEqual(m.get_body(), "amn't *")
     self.assertEqual(m.get_exceptions(), "-isn't")
Esempio n. 30
0
 def test_valid_meme_has_raw_meme(self):
     m = Meme("all your * -base")
     self.assertEqual(m.raw_meme, "all your * -base")