Beispiel #1
0
def processItemFullSize(arr):
    data = arr['data']
    q = Meme.objects.filter(threadLink='http://reddit.com' + data['permalink'])
    #Have we evaluated this submission yet?  Might be worth considering only checking
    #memes within the last day.
    if q.count() > 1:
        raise Exception(
            "More than one of the same permalink in db for permalink:" +
            data['permalink'])
    if q.count() == 1:
        #if we have, update the score and move on
        m = q[0]
        m.score = data['score']
        m.save()
    elif ".jpeg" not in data['url']:
        #have not evaluated this submission yet, run tests and store
        filepath = dropBoxDir + 'target.jpg'
        if ".jpg" in data['url'] or ".png" in data['url']:
            fullSize = data['url']
        else:
            fullSize = fullSizePhoto(data['url'])
        f = open(filepath, 'wb')
        f.write(urllib3.PoolManager().request('GET', fullSize).data)
        f.close()
        img_corrupt = False
        c2 = False
        #classify.classify() gets 2 elements: image macro/none, strong/weak
        classification = classify.classify(filepath)
        if classification[0] == None and classification[2] != None:
            c2 = True
            macro = None
            #try classifying on potential libs
            classification2 = classify.classify(filepath,
                                                directory=dropBoxDir +
                                                'potential_libs/')
            if classification2[0] == None:
                #add image to potential_libs
                p = PotentialImageMacro(
                    thumbnailLink=data['thumbnail'],
                    fullSizeLink=fullSize,
                    score=data['score'],
                    submitter=data['author'],
                    source='adviceanimals',
                    created=data['created'],
                    threadLink='http://reddit.com' + data['permalink'],
                    title=data['permalink'].replace('/', '') + '.jpg')
                p.save()
                potentialize(data['permalink'].replace('/', ''))
            elif classification2[
                    2] < 20:  #only classify as potential_lib if very confident
                librarize(classification2[0][8:])
                macro = ImageMacro.objects.get(filename='library/' +
                                               classification2[0][8:])
                print "Added " + classification2[0][
                    8:] + " to the library while classifying: " + fullSize
                classification = classification2
        elif classification[2] == None:
            macro = None
            img_corrupt = True
        else:
            macro = ImageMacro.objects.get(filename=classification[0])
        m = Meme(classification=macro,
                 thumbnailLink=data['thumbnail'],
                 fullSizeLink=fullSize,
                 score=data['score'],
                 submitter=data['author'],
                 topDist=classification[2],
                 topCorr=classification[3],
                 source='adviceanimals',
                 created=data['created'],
                 threadLink='http://reddit.com' + data['permalink'],
                 strong_classification=classification[1],
                 img_corrupt=img_corrupt)
        m.save()
        if classification[2] < 25 and classification[0] != None:
            if c2: merge(classification[0], macro, detract=1)
            else: merge(classification[0], macro)