Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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