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, "")
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)
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
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
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(), [])
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
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)])
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)
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())
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
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)
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)
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")
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()
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')
from meme import Meme obunga = Meme()
def test_generates_valid_regex(self): p = Parser() m = Meme("all your * -base") self.assertEqual(p._format_regex(m), "all your ([\\w'\\-]+)")
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)])
def test_invalid_meme_has_raw_meme(self): m = Meme("nothing here") self.assertEqual(m.raw_meme, "nothing here")
def test_invalid_meme_is_invalid(self): m = Meme("nothing here") self.assertFalse(m.is_valid()) self.assertEqual(m.get_problem(), "has no wildcard (*)")
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'\\-]+)")
def test_get_parts_valid_3(self): m = Meme("foo * bar") self.assertEqual(m.get_parts(), ["foo", "bar"])
def test_get_parts_valid_2(self): m = Meme("foo *") self.assertEqual(m.get_parts(), ["foo", ""])
def test_get_parts_valid_1(self): m = Meme("* foo") self.assertEqual(m.get_parts(), ["", "foo"])
def test_two_stars_is_invalid(self): m = Meme("* into *") self.assertFalse(m.is_valid()) self.assertEqual(m.get_problem(), "has too many wildcards (*)")
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")
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 é *")
def test_invalid_characters(self): m = Meme("ok <>\"(){}[],.") self.assertEqual(m.get_body(), "ok")
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")
def test_valid_meme_has_raw_meme(self): m = Meme("all your * -base") self.assertEqual(m.raw_meme, "all your * -base")