def check_avatar(self, incoming, i): b = s3.bucket_straight('socialcss.com') filename = 'insta/' + incoming[ keys.entity_instagram_id] + '/' + fixed.digest( i[instagram_keys.instagram_avi]) + '.png' if not s3.check_key(b, filename): local_large_avi_path = '/tmp/instagram/avi_' + incoming[ keys.entity_instagram_id] + i[instagram_keys.instagram_avi][ i[instagram_keys.instagram_avi].rindex('.'):] fixed.filesubpath(local_large_avi_path) with open(local_large_avi_path, 'w') as large_file: response = urllib2.urlopen( i[instagram_keys.instagram_avi]).read() large_file.write(response) if local_large_avi_path[-3:].lower( ) == 'jpg' or local_large_avi_path[-4:].lower() == 'jpeg': new_local_large_avi_path = '/tmp/large/png/' + incoming[ keys.entity_instagram_id] + '.png' fixed.filesubpath(new_local_large_avi_path) args = [ 'convert', local_large_avi_path, new_local_large_avi_path ] subprocess.check_call(args) local_large_avi_path = new_local_large_avi_path misc.round_corners(local_large_avi_path, 'insta') e = Entity().get_item(league=incoming[keys.entity_league], profile=incoming[keys.entity_profile]) s3.save_insta_avi(i[instagram_keys.instagram_avi], local_large_avi_path, e._data)
def post_process(self, ig, incoming): from qt import qt5 from qt.channels import InstagramPositioningAction from wand.image import Image location = '/tmp/instagram/temp_' + fixed.digest( ig[instagram_keys.instagram_url]) + '.png' qt5.app.toImage(location) instagram_action = InstagramPositioningAction() instagram_d = defer.Deferred() self.set_action(instagram_action, instagram_d) self.page().runJavaScript(instagram_action.js_script()) instagram_positioning = yield instagram_d print 'instagram positioning:', instagram_positioning if instagram_positioning: instagram_im = Image(filename=location) instagram_im.crop(left=instagram_positioning[3], top=instagram_positioning[0], right=instagram_positioning[1], bottom=instagram_positioning[2]) instagram_clip = '/tmp/instagram/instagram_' + fixed.digest( ig[instagram_keys.instagram_url]) + '.png' instagram_im.save(filename=instagram_clip) print 'send_image:', instagram_clip try: io = StringIO.StringIO(open(instagram_clip, 'r').read()).getvalue() fi = self.bundle_instagram(incoming._data, io) print 'send mime:', len(io) self.protocol.sendMessage(fi, True) except Exception as e: print 'send image exception:', e if Tweet.self_instagrams in incoming: for i in incoming[Tweet.self_instagrams]: self.check_avatar(incoming, i) elif Tweet.known_instagrams in incoming: for i in incoming[Tweet.known_instagrams]: self.check_avatar(i, i)
def route_email(self, ee): proxy = Proxy('http://localhost:8001/') if ee.html: print 'preview html in browser' d = proxy.callRemote('preview', ee.html, fixed.digest(ee.broadcast_dict['file_dest'])) d.addCallback(lambda local_file: s3.save_s3( s3.bucket_straight('www.scewpt.com'), str(ee.broadcast_dict['file_dest'] + "_preview.png"), None, local_file, "image/png", 'public-read')) d.addErrback(self.browser_error) return d else: print 'not previewed' return defer.SUCCESS
def save_insta_avi(avatar_url, systemfile, meta): print 'save inst avi:', meta[keys.entity_league], 'instagram id:', meta[ keys.entity_instagram_id], 'url:', avatar_url s3_filename = 'insta/' + meta[ keys.entity_instagram_id] + '/' + fixed.digest(avatar_url) + '.png' save_s3(bucket_straight('socialcss.com'), s3_filename, None, systemfile, 'image/png', 'public-read', meta) redirect_url = 'http://socialcss.com.s3-website-us-east-1.amazonaws.com/' + s3_filename try: key = Key(bucket_straight(meta[keys.entity_site])) key.name = 'insta/' + meta[keys.entity_instagram_id] + '/avatar.png' key.set_redirect(redirect_url) key.make_public() print 'insta redirect:', 'http://' + meta[ keys.entity_site] + '/' + key.name except Exception as e: print 'pub avi exception:', e
def save_bg(background_url, systemfile, meta): print 'save_bg:', meta[keys.entity_league], 'twitter id:', meta[ keys.entity_twitter_id], 'url:', background_url s3_filename = 'tw/' + meta[ keys.entity_twitter_id] + '/background/' + fixed.digest( background_url) + '.png' save_bg_key = save_s3(bucket_straight('socialcss.com'), s3_filename, None, systemfile, 'image/png', 'public-read', meta) print 'save_background saved!', 'http://s3.amazonaws.com/socialcss.com/' + save_bg_key.name redirect_url = 'http://socialcss.com.s3-website-us-east-1.amazonaws.com/' + s3_filename try: key = Key(bucket_straight(meta[keys.entity_site])) key.name = 'tw/' + meta[keys.entity_twitter_id] + '/background.png' key.set_redirect(redirect_url) key.make_public() except Exception as e: print 'pub background exception:', e