diff --git a/lulzbot.py b/lulzbot.py index 15e89c8..92b4196 100644 --- a/lulzbot.py +++ b/lulzbot.py @@ -5,7 +5,7 @@ motd =''' | |__| |_| | |___ / /| |_) | |_| | |_ |_____\__,_|_____/___|____/ \___/ \__| ''' -menu = '''``` +menu ='''``` Commands: fortune: tell a fortune chuck: give a Chuck Norris quote @@ -18,77 +18,47 @@ Commands: Contribute! https://github.com/adoyle0/lulzbot```''' -# Discord import discord, datetime import numpy as np from fortune import fortune -from modules.ligma import ligma -from modules.limericks import limerick +from src.twitter import get_tweet +from src.cartman import cartman_speak +from src.limericks import limerick + +chuck_quotes = open('src/chuck_quotes').read().split('\n%\n') +ligma_list = open('src/ligma_list').read().split('\n') + +def show_menu(): + return menu + +def musk(): + return get_tweet(44196397) + +def ligma(): + return np.random.choice(ligma_list) + +def prost(): + return 'https://tenor.com/view/prost-christoph-waltz-django-bier-zum-wohle-gif-11041516' + +def chuck(): + return np.random.choice(chuck_quotes) + +message_handler = {'lulzbot': show_menu, # these need to be functions + 'musk': musk, + 'deez': ligma, + 'ligma': ligma, + 'bofa': ligma, + 'bopha': ligma, + 'limerick': limerick, + 'limrick': limerick, + 'prost!': prost, + 'fortune': fortune, + 'chuck': chuck, + } TOKEN = open('.sekrit/discord_token').read() -chuck = open('chucknorris').read().split('\n%\n') client = discord.Client(activity=discord.Game(name='with myself')) -# NLP -from transformers.models.auto.tokenization_auto import AutoTokenizer -from transformers.models.auto.modeling_auto import AutoModelForCausalLM -import torch - -tokenizer = AutoTokenizer.from_pretrained('microsoft/DialoGPT-large') -model = AutoModelForCausalLM.from_pretrained('../southpark/output-medium') - -# Twitter -import tweepy - -twit_sekrit = open('.sekrit/twit_sekrit').read().split('\n') -api_key = twit_sekrit[0] -api_key_secret = twit_sekrit[1] -bearer_token = twit_sekrit[2] -access_token = twit_sekrit[3] -access_token_secret = twit_sekrit[4] -tclient = tweepy.Client(bearer_token,api_key,api_key_secret,access_token,access_token_secret) - -# Functions -def user_tweet(twitter): - statuses = tclient.get_users_tweets(twitter, exclude=['replies'], max_results=5) - return statuses[0][0] - -def cartman_speak(user_message): - new_user_input_ids = tokenizer.encode(user_message + tokenizer.eos_token, return_tensors='pt') - bot_output = new_user_input_ids - bot_input_ids = torch.cat([new_user_input_ids, bot_output]) - bot_output = model.generate( - bot_input_ids, max_length= 200, - pad_token_id=tokenizer.eos_token_id, - no_repeat_ngram_size=3, - do_sample=True, - top_k=100, - top_p=0.7, - temperature=.8 - ) - - return '{}'.format(tokenizer.decode(bot_output[:,bot_input_ids.shape[-1]:][0], skip_special_tokens=True)) - -def message_handler(message): - handler = {'musk': user_tweet(44196397), - 'lulzbot': menu, - 'deez': ligma(), - 'ligma': ligma(), - 'bofa': ligma(), - 'bopha': ligma(), - 'limerick': limerick(), - 'limrick': limerick(), - 'prost!': 'https://tenor.com/view/prost-christoph-waltz-django-bier-zum-wohle-gif-11041516', - 'fortune': fortune(), - 'chuck': np.random.choice(chuck), - } - - if message in handler: - return handler.get(message) - else: - return - -# Main @client.event async def on_ready(): print(motd+'\n'+datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+'\nLogged in as {0.user}'.format(client)) @@ -99,19 +69,18 @@ async def on_message(message): username = str(message.author).split('#')[0] user_message = str(message.content) channel = str(message.channel.name) - print(f'{username}: {user_message} ({channel})') + print(f'{datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")} ({channel}) {username}: {user_message}') if message.author == client.user: return - if message.channel.name == 'cartman': + elif message.channel.name == 'cartman': async with message.channel.typing(): await message.channel.send(cartman_speak(user_message)) - return - if message.channel.name == 'shitposting': - async with message.channel.typing(): - await message.channel.send(message_handler(user_message)) - return + elif message.channel.name == 'shitposting': + if user_message in message_handler: + await message.channel.send(message_handler[user_message]()) + return client.run(TOKEN) diff --git a/modules/ligma.py b/modules/ligma.py deleted file mode 100644 index a77af84..0000000 --- a/modules/ligma.py +++ /dev/null @@ -1,85 +0,0 @@ -import numpy as np - -def ligma(): - ligma = [ - 'https://tenor.com/view/ligma-ligma-balls-atomicrops-gif-24996966', - 'https://tenor.com/view/ligma-balls-gif-12236083', - 'https://tenor.com/view/will-smith-ligma-funny-gif-25108308', - 'https://tenor.com/view/racoon-wiggle-nuts-balls-gif-8085185', - 'https://tenor.com/view/jesus-biglebowski-balls-gif-9633055', - 'https://tenor.com/view/big-black-fuzzy-balls-fuzzy-balls-big-balls-eddie-griffin-undercover-brother-gif-5548455', - 'https://tenor.com/view/ballcrushing-bust-ballbusting-balls-gif-14635943', - 'https://tenor.com/view/cup-check-balls-ouch-sack-gif-10728090', - 'https://tenor.com/view/xie-lian-ligma-balls-ligma-tgcf-tian-gua-ci-fu-gif-21869659', - 'https://tenor.com/view/lick-taste-tongue-out-gif-16957327', - 'https://tenor.com/view/rickandmorty-lick-lickballs-gif-9913722', - 'https://tenor.com/view/ligma-balls-gif-12236636', - 'https://tenor.com/view/ligma-balls-gif-22082587', - 'https://tenor.com/view/its-all-free-free-no-charge-free-of-charge-naughty-teddy-gif-19338184', - 'https://tenor.com/view/ligma-balls-sonic-act-lick-gif-21274274', - 'https://tenor.com/view/balls-dance-rotate-beating-gif-17433105', - 'https://tenor.com/view/david-bowie-labyrinth-balls-magic-balls-magic-gif-16043363', - 'https://tenor.com/view/kawaii-muski-muski-omori-ligma-balls-gif-21138025', - 'https://tenor.com/view/ligma-ligamab-alls-tower-of-babel-gaming-tobg-riamu-yumemi-gif-24359574', - 'https://tenor.com/view/goat-lick-tongue-tongue-out-tongue-wiggle-gif-16390888', - 'https://tenor.com/view/bleh-tongue-out-lickitung-pokemon-detective-pikachu-gif-15798020', - 'https://tenor.com/view/deez-nuts-wheel-of-fortune-gif-15264920', - 'https://tenor.com/view/hello-chat-deez-nuts-hello-chat-deez-nuts-gif-25294032', - 'https://tenor.com/view/deez-nuts-troll-troll-face-troll-face-smile-dark-gif-23624288', - 'https://tenor.com/view/deez-nuts-gif-22383209', - 'https://tenor.com/view/deez-nutz-deez-nuts-deez-nutz-heart-locket-gif-22497345', - 'https://tenor.com/view/ball-inspection-balls-inspection-football-bobux-gif-19234883', - 'https://tenor.com/view/sesame-street-proud-hug-puppet-yay-gif-19663674', - 'https://tenor.com/view/deez-deez-nuts-initial-d-ligma-steve-jobs-gif-23065842', - 'https://tenor.com/view/testing-new-deez-nuts-ha-teeth-gif-15758045', - 'https://tenor.com/view/longest-drive-gif-20862347', - 'https://tenor.com/view/deez-deez-nuts-discord-gif-20296574', - 'https://tenor.com/view/these-nuts-deez-gif-13388028', - 'https://tenor.com/view/pepe-deez-nuts-pepe-the-frog-pepe-holding-sign-deez-nuts-gif-deez-nuts-ha-gif-22618462', - 'https://tenor.com/view/squirrel-i-have-got-words-for-you-you-want-deez-nuts-gif-15404415', - 'https://tenor.com/view/deez-nuts-are-you-ready-gif-20161550', - 'https://tenor.com/view/deez-nuts-nutz-deez-gif-18259525', - 'https://tenor.com/view/dee-gif-4387670', - 'https://tenor.com/view/omori-deez-nuts-so-funny-funny-joke-right-guys-gif-21468920', - 'https://tenor.com/view/deeznuts-gif-5578640', - 'https://tenor.com/view/dznutz-gif-7146897', - 'https://tenor.com/view/deez-nut-deez-nuts-gobble-gobble-deez-nuts-gif-25294130', - 'https://tenor.com/view/deez-nuts-gif-22383209', - 'https://tenor.com/view/guilty-gear-strive-happy-chaos-deez-nuts-gif-guilty-gear-gif-23786775', - 'https://tenor.com/view/mouth-full-my-nuts-squirrel-mine-get-away-gif-14154065', - 'https://tenor.com/view/friday-night-funkin-deez-nuts-hop-on-gif-22197266', - 'https://tenor.com/view/deez-nuts-cookie-deez-nutz-deez-nuts-nft-gif-23901553', - 'https://tenor.com/view/homare-arisugawa-a3-deez-nuts-gif-22718748', - 'https://tenor.com/view/cope-deez-cope-on-deez-colossalcraft-coping-gif-23556695', - 'https://tenor.com/view/hug-kiss-gif-23992029', - 'https://tenor.com/view/deez-nutz-deez-nuts-gif-22037745', - 'https://tenor.com/view/deez-nuts-nft-deez-nuts-gif-deez-nuts-deez-big-nuts-deez-gif-23605637', - 'https://tenor.com/view/deez-deez-nuts-gif-25652186', - 'https://tenor.com/view/gulpin-deeznuts-gif-21798060', - 'https://tenor.com/view/deez-nuts-deez-burger-king-burger-king-crown-airplane-gif-21978215', - 'https://tenor.com/view/deez-nuts-rap-john-oh-you-really-like-deez-nut-up-in-your-face-gif-22744730', - 'https://tenor.com/view/hop-on-deez-nuts-gif-25437799', - 'https://tenor.com/view/h3-h3podcast-5percent-five-percent-h3five-percent-gif-24149085', - 'https://tenor.com/view/youre-sucking-deez-nuts-gif-21505910', - 'https://tenor.com/view/eokel-valorant-youtube-gif-22895296', - 'https://tenor.com/view/fortune-cooke-deez-nuts-lmao-cookie-fortune-gif-21740031', - 'https://tenor.com/view/deez-nuts-takemichi-feet-gif-22705365', - 'https://tenor.com/view/deez-nuts-dana-gif-19615763', - 'https://tenor.com/view/smg4-gif-23834017', - 'https://tenor.com/view/urmom-hololive-gif-21993936', - 'https://tenor.com/view/deez-nuts-paradise-pd-crabbage-gif-21925327', - 'https://tenor.com/view/willem-dafoe-insane-insanity-crazy-nuts-gif-20731647', - 'https://tenor.com/view/yogi-bear-yogi-bear-doughnuts-deez-nuts-gif-gif-23782410', - 'https://tenor.com/view/dane-cook-carpe-deez-nuts-floyd-waiting-gif-17393528', - 'https://tenor.com/view/what-are-you-putting-on-your-wiener-what-is-on-your-wiener-what-do-you-put-on-your-wiener-on-your-wiener-your-wiener-gif-18064519', - 'https://tenor.com/view/king-kong-deez-nuts-meme-kong-king-gif-21432884', - 'https://tenor.com/view/bangbang-gun-shot-powpow-pow-gif-21746849', - 'https://tenor.com/view/mcdonalds-meme-gif-mickey-deez-gif-9926547', - 'https://tenor.com/view/deez-nuts-spongebob-gif-5267436', - 'https://tenor.com/view/hangover-nuts-chow-ken-jeong-the-hangover-gif-13028372', - 'https://tenor.com/view/snl-natalie-portman-jiggle-nuts-lonely-gif-15048024', - 'https://tenor.com/view/omegalul-deez-deez-nuts-twitch-clips-gif-22601733', - 'https://tenor.com/view/you-ready-deez-nuts-gif-18188433', - 'https://media.giphy.com/media/jt3R5veCXNM1jJ183A/giphy-downsized-large.gif', - ] - return np.random.choice(ligma) diff --git a/src/cartman.py b/src/cartman.py new file mode 100644 index 0000000..09a1539 --- /dev/null +++ b/src/cartman.py @@ -0,0 +1,22 @@ +from transformers.models.auto.tokenization_auto import AutoTokenizer +from transformers.models.auto.modeling_auto import AutoModelForCausalLM +import torch + +tokenizer = AutoTokenizer.from_pretrained('microsoft/DialoGPT-large') +model = AutoModelForCausalLM.from_pretrained('../southpark/output-medium') + +def cartman_speak(user_message): + new_user_input_ids = tokenizer.encode(user_message + tokenizer.eos_token, return_tensors='pt') + bot_output = new_user_input_ids + bot_input_ids = torch.cat([new_user_input_ids, bot_output]) + bot_output = model.generate( + bot_input_ids, max_length= 200, + pad_token_id=tokenizer.eos_token_id, + no_repeat_ngram_size=3, + do_sample=True, + top_k=100, + top_p=0.7, + temperature=.8 + ) + + return '{}'.format(tokenizer.decode(bot_output[:,bot_input_ids.shape[-1]:][0], skip_special_tokens=True)) diff --git a/chucknorris b/src/chuck_quotes similarity index 100% rename from chucknorris rename to src/chuck_quotes diff --git a/src/ligma_list b/src/ligma_list new file mode 100644 index 0000000..4871184 --- /dev/null +++ b/src/ligma_list @@ -0,0 +1,79 @@ +https://tenor.com/view/ligma-ligma-balls-atomicrops-gif-24996966 +https://tenor.com/view/ligma-balls-gif-12236083 +https://tenor.com/view/will-smith-ligma-funny-gif-25108308 +https://tenor.com/view/racoon-wiggle-nuts-balls-gif-8085185 +https://tenor.com/view/jesus-biglebowski-balls-gif-9633055 +https://tenor.com/view/big-black-fuzzy-balls-fuzzy-balls-big-balls-eddie-griffin-undercover-brother-gif-5548455 +https://tenor.com/view/ballcrushing-bust-ballbusting-balls-gif-14635943 +https://tenor.com/view/cup-check-balls-ouch-sack-gif-10728090 +https://tenor.com/view/xie-lian-ligma-balls-ligma-tgcf-tian-gua-ci-fu-gif-21869659 +https://tenor.com/view/lick-taste-tongue-out-gif-16957327 +https://tenor.com/view/rickandmorty-lick-lickballs-gif-9913722 +https://tenor.com/view/ligma-balls-gif-12236636 +https://tenor.com/view/ligma-balls-gif-22082587 +https://tenor.com/view/its-all-free-free-no-charge-free-of-charge-naughty-teddy-gif-19338184 +https://tenor.com/view/ligma-balls-sonic-act-lick-gif-21274274 +https://tenor.com/view/balls-dance-rotate-beating-gif-17433105 +https://tenor.com/view/david-bowie-labyrinth-balls-magic-balls-magic-gif-16043363 +https://tenor.com/view/kawaii-muski-muski-omori-ligma-balls-gif-21138025 +https://tenor.com/view/ligma-ligamab-alls-tower-of-babel-gaming-tobg-riamu-yumemi-gif-24359574 +https://tenor.com/view/goat-lick-tongue-tongue-out-tongue-wiggle-gif-16390888 +https://tenor.com/view/bleh-tongue-out-lickitung-pokemon-detective-pikachu-gif-15798020 +https://tenor.com/view/deez-nuts-wheel-of-fortune-gif-15264920 +https://tenor.com/view/hello-chat-deez-nuts-hello-chat-deez-nuts-gif-25294032 +https://tenor.com/view/deez-nuts-troll-troll-face-troll-face-smile-dark-gif-23624288 +https://tenor.com/view/deez-nuts-gif-22383209 +https://tenor.com/view/deez-nutz-deez-nuts-deez-nutz-heart-locket-gif-22497345 +https://tenor.com/view/ball-inspection-balls-inspection-football-bobux-gif-19234883 +https://tenor.com/view/sesame-street-proud-hug-puppet-yay-gif-19663674 +https://tenor.com/view/deez-deez-nuts-initial-d-ligma-steve-jobs-gif-23065842 +https://tenor.com/view/testing-new-deez-nuts-ha-teeth-gif-15758045 +https://tenor.com/view/longest-drive-gif-20862347 +https://tenor.com/view/deez-deez-nuts-discord-gif-20296574 +https://tenor.com/view/these-nuts-deez-gif-13388028 +https://tenor.com/view/pepe-deez-nuts-pepe-the-frog-pepe-holding-sign-deez-nuts-gif-deez-nuts-ha-gif-22618462 +https://tenor.com/view/squirrel-i-have-got-words-for-you-you-want-deez-nuts-gif-15404415 +https://tenor.com/view/deez-nuts-are-you-ready-gif-20161550 +https://tenor.com/view/deez-nuts-nutz-deez-gif-18259525 +https://tenor.com/view/dee-gif-4387670 +https://tenor.com/view/omori-deez-nuts-so-funny-funny-joke-right-guys-gif-21468920 +https://tenor.com/view/deeznuts-gif-5578640 +https://tenor.com/view/dznutz-gif-7146897 +https://tenor.com/view/deez-nut-deez-nuts-gobble-gobble-deez-nuts-gif-25294130 +https://tenor.com/view/deez-nuts-gif-22383209 +https://tenor.com/view/guilty-gear-strive-happy-chaos-deez-nuts-gif-guilty-gear-gif-23786775 +https://tenor.com/view/mouth-full-my-nuts-squirrel-mine-get-away-gif-14154065 +https://tenor.com/view/friday-night-funkin-deez-nuts-hop-on-gif-22197266 +https://tenor.com/view/deez-nuts-cookie-deez-nutz-deez-nuts-nft-gif-23901553 +https://tenor.com/view/homare-arisugawa-a3-deez-nuts-gif-22718748 +https://tenor.com/view/cope-deez-cope-on-deez-colossalcraft-coping-gif-23556695 +https://tenor.com/view/hug-kiss-gif-23992029 +https://tenor.com/view/deez-nutz-deez-nuts-gif-22037745 +https://tenor.com/view/deez-nuts-nft-deez-nuts-gif-deez-nuts-deez-big-nuts-deez-gif-23605637 +https://tenor.com/view/deez-deez-nuts-gif-25652186 +https://tenor.com/view/gulpin-deeznuts-gif-21798060 +https://tenor.com/view/deez-nuts-deez-burger-king-burger-king-crown-airplane-gif-21978215 +https://tenor.com/view/deez-nuts-rap-john-oh-you-really-like-deez-nut-up-in-your-face-gif-22744730 +https://tenor.com/view/hop-on-deez-nuts-gif-25437799 +https://tenor.com/view/h3-h3podcast-5percent-five-percent-h3five-percent-gif-24149085 +https://tenor.com/view/youre-sucking-deez-nuts-gif-21505910 +https://tenor.com/view/eokel-valorant-youtube-gif-22895296 +https://tenor.com/view/fortune-cooke-deez-nuts-lmao-cookie-fortune-gif-21740031 +https://tenor.com/view/deez-nuts-takemichi-feet-gif-22705365 +https://tenor.com/view/deez-nuts-dana-gif-19615763 +https://tenor.com/view/smg4-gif-23834017 +https://tenor.com/view/urmom-hololive-gif-21993936 +https://tenor.com/view/deez-nuts-paradise-pd-crabbage-gif-21925327 +https://tenor.com/view/willem-dafoe-insane-insanity-crazy-nuts-gif-20731647 +https://tenor.com/view/yogi-bear-yogi-bear-doughnuts-deez-nuts-gif-gif-23782410 +https://tenor.com/view/dane-cook-carpe-deez-nuts-floyd-waiting-gif-17393528 +https://tenor.com/view/what-are-you-putting-on-your-wiener-what-is-on-your-wiener-what-do-you-put-on-your-wiener-on-your-wiener-your-wiener-gif-18064519 +https://tenor.com/view/king-kong-deez-nuts-meme-kong-king-gif-21432884 +https://tenor.com/view/bangbang-gun-shot-powpow-pow-gif-21746849 +https://tenor.com/view/mcdonalds-meme-gif-mickey-deez-gif-9926547 +https://tenor.com/view/deez-nuts-spongebob-gif-5267436 +https://tenor.com/view/hangover-nuts-chow-ken-jeong-the-hangover-gif-13028372 +https://tenor.com/view/snl-natalie-portman-jiggle-nuts-lonely-gif-15048024 +https://tenor.com/view/omegalul-deez-deez-nuts-twitch-clips-gif-22601733 +https://tenor.com/view/you-ready-deez-nuts-gif-18188433 +https://media.giphy.com/media/jt3R5veCXNM1jJ183A/giphy-downsized-large.gif diff --git a/modules/limericks.py b/src/limericks.py similarity index 100% rename from modules/limericks.py rename to src/limericks.py diff --git a/src/twitter.py b/src/twitter.py new file mode 100644 index 0000000..8b90e34 --- /dev/null +++ b/src/twitter.py @@ -0,0 +1,12 @@ +import tweepy + +twit_sekrit = open('.sekrit/twit_sekrit').read().split('\n') +api_key = twit_sekrit[0] +api_key_secret = twit_sekrit[1] +bearer_token = twit_sekrit[2] +access_token = twit_sekrit[3] +access_token_secret = twit_sekrit[4] +tclient = tweepy.Client(bearer_token,api_key,api_key_secret,access_token,access_token_secret) + +def get_tweet(user_id): + return tclient.get_users_tweets(user_id, exclude=['replies'], max_results=5)[0][0]