Comment installer le tweetwall de la cantine ?
C'est parti:
$ virtualenv venv $ source venv/bin/activate $ pip install -r requirements.txt
Comment installer le tweetwall de la cantine ?
C'est parti:
$ virtualenv venv $ source venv/bin/activate $ pip install -r requirements.txt
| # -*- coding: utf-8 -*- | |
| import re | |
| from twitter import * | |
| from dateutil import parser | |
| import pytz | |
| from termcolor import cprint, colored | |
| import os | |
| import time | |
| import sys | |
| HASHTAG="#WALLNEX" | |
| REFRESH_TIME=30 | |
| MAX_TWEETS=10 | |
| OAUTH_TOKEN="****" | |
| OAUTH_SECRET="****" | |
| CONSUMER_KEY="****" | |
| CONSUMER_SECRET="****" | |
| ####Functions | |
| #Clear console screen | |
| def cls(): | |
| os.system(['clear','cls'][os.name == 'nt']) | |
| def header(): | |
| cprint(".____/\ ", "magenta") | |
| cprint("| )/ _____ ____ ____ ____ ___ ___ ____ ", "magenta") | |
| cprint("| | \__ \ / \ / \_/ __ \\ \/ // __ \ ", "magenta") | |
| cprint("| |___ / __ \| | \ | \ ___/ > <\ ___/ ", "magenta") | |
| cprint("|_______ (____ /___| /___| /\___ >__/\_ \\___ >", "magenta") | |
| cprint(" \/ \/ \/ \/ \/ \/ \/ ", "magenta") | |
| print("Bienvenue sur le mur de l'annexe") | |
| print("Hashtag " + colored(HASHTAG, "cyan") + " pour apparaitre sur le mur") | |
| def clean(): | |
| cls() | |
| header() | |
| def loadTweets(twit): | |
| tweets = twit.search.tweets(q=HASHTAG) | |
| # Max number of tweet to diplay, we cut the array in loop | |
| nbrofTweet = min(MAX_TWEETS, len(tweets['statuses'])) | |
| clean() | |
| counter = nbrofTweet | |
| for tweet in tweets['statuses'][:nbrofTweet]: | |
| loadTweet(tweet) | |
| counter -= 1 | |
| if counter != 0: | |
| sys.stdout.flush() | |
| def loadTweet(tweet): | |
| print(" ") | |
| date_utc = parser.parse(tweet['created_at']).replace(tzinfo=pytz.utc) | |
| local_tz = pytz.timezone("Europe/Paris") | |
| date = date_utc.astimezone(local_tz) | |
| text = tweet['text'] | |
| # Strip URLs | |
| text = re.sub(r'https?:\/\/[a-zA-Z0-9\.\/\+\?]+', '', text).strip() | |
| print colored(date.strftime("[%H:%M:%S]"), "cyan"), | |
| print " " + colored("\n".join(text.split("\n")[:3]), "yellow"), | |
| print u" — " + colored(tweet['user']['name'], "red"), | |
| # Authentication based on https://pypi.python.org/pypi/twitter | |
| twit = Twitter( | |
| auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET, | |
| CONSUMER_KEY, CONSUMER_SECRET)) | |
| #TODO Do this with a scheduler | |
| while True: | |
| loadTweets(twit) | |
| time.sleep(REFRESH_TIME) |
| import sys | |
| from PIL import Image | |
| import numpy as np | |
| chars = np.asarray(list(' .,:;irsXA253hMHGS#9B&@')) | |
| if len(sys.argv) != 4: | |
| print('Usage: ./asciinator.py image scale factor') | |
| sys.exit() | |
| image = sys.argv[1] | |
| scale = float(sys.argv[2]) | |
| factor = float(sys.argv[3]) | |
| wcf = 7/4 | |
| img = Image.open(image) | |
| S = int(round(img.size[0] * scale * wcf)), int(round(img.size[1] * scale)) | |
| img = np.sum(np.asarray(img.resize(S)), axis=2) | |
| img -= img.min() | |
| img = (1.0 - img/img.max()) ** factor * (chars.size - 1) | |
| print("\n".join(("".join(r) for r in chars[img.astype(int)]))) |
| Pillow==2.4.0 | |
| argparse==1.2.1 | |
| numpy==1.8.1 | |
| python-dateutil==2.2 | |
| pytz==2014.4 | |
| six==1.7.2 | |
| termcolor==1.1.0 | |
| twitter==1.14.3 | |
| wsgiref==0.1.2 |