$timezone = 'America/Los_Angeles'; date_default_timezone_set($timezone); ?>
A few days ago, I saw a post on /r/AskReddit where the poster asked which sub has the most toxic community. I really didn't care about the answer but was happy to learn about new communities I didn't know anything about.
One of the posts mentioned /r/redditgetsdrawn which I had never heard of. Then I saw that people are providing pretty good drawings, you know - a few here and there, in between thousands of "good old college try" ones that don't look all that great.
So I thought to myself, this is something a bot can do. Take those drawings and add a pencil filter to it. ImageMagick has been a tool I've used before so I started.
import praw import imghdr, urllib, cStringIO import uuid import urllib2 import os, sys from imgurpython import ImgurClient from subprocess import call import time def buildCommand(submission): # print data # Dont post if you have evenr posted here if hasPostedHere(submission): return # print submission.title submission.upvote # upvote the current post to be nice data = submission.url # get the url of a post and check to see if its a link to outside of reddit if "reddit" in data: # print "reddit link" return comment = "Hello, I'm a bot written by ichillax. In the event that my human counterparts can't generate anything that you'd like, I would like to gift you my own drawing <3\n\n" response = urllib2.urlopen(data) # Save the file with open('workfile', 'wb') as f: f.write(response.read()) # Check to see if the file is an image file and rename it properly if it is if imghdr.what('workfile') != None: newFileName = str(uuid.uuid1())+"."+imghdr.what('workfile') os.rename('workfile', newFileName) # Turn the file into a sketch runCommand(newFileName) # Upload the file to imgur imagurPath = client.upload_from_path("prime_"+newFileName, config=None, anon=True)['link'] # delete the file locally from the machine os.remove(newFileName) os.remove("prime_"+newFileName) # add the image to comment text comment += imagurPath # print "uploaded", imagurPath print "Commented", submission.title submission.add_comment(comment) else: os.remove('workfile') def runCommand(filePath): #print "Drawing..." os.system("./Draw.sh "+filePath) # print "Done drawing" def hasPostedHere(submission): submission.replace_more_comments(limit=None, threshold=0) flat_comments = praw.helpers.flatten_tree(submission.comments) for comment in flat_comments: if str(comment.author) == str(BOT_USER_NAME): print "Already commented here" return True return False ########################## # IMGUR IDS # ########################## client_id_imgur = 'someid' client_secret_imgur = 'somesecret' client = ImgurClient(client_id_imgur, client_secret_imgur) ########################## # IMGUR IDS # ########################## ########################## # RedditOauth # ########################## client_id_reddit = 'someid' client_secret_reddit = 'somesecret' ########################## # RedditOauth # ########################## r = praw.Reddit('OAuth testing example by u/_Daimon_ ver 0.1 see ' 'https://praw.readthedocs.org/en/latest/' 'pages/oauth.html for source') r.set_oauth_app_info(client_id='client_id_reddit', client_secret='client_seceret_reddit', redirect_uri='https://jabbari.io/' 'authorize_callback') Username = "someuser" Password = "A good passw0rd" BOT_USER_NAME=Username r.login(BOT_USER_NAME, Password) for submission in r.get_subreddit('RedditGetsDrawn').get_new(limit=None): # buildCommand(submission) try: buildCommand(submission) time.sleep(1) except Exception, e: print e
convert $1 -colorspace gray \ \( +clone -tile pencil_tile.gif -draw "color 0,0 reset" \ +clone +swap -compose color_dodge -composite \) \ -fx 'u*.2+v*.8' "prime_$1"
convert -size 256x256 xc: +noise Random -virtual-pixel tile \ -motion-blur 0x20+135 -charcoal 1 -resize 50% pencil_tile.gif