def create(self, request):
        # check if post has secret parameter
        if not (DataNames.SECRET in request.POST):
            return ApiDataProvider.returnError("no " + DataNames.SECRET)

        # check if secret parameter is correct
        the_secret = request.POST[DataNames.SECRET]
        if the_secret != ApiKeys.GAE_PRIVATE_KEY:
            return ApiDataProvider.returnError("incorrect private key")

        try:
            ContentDataOrganizer.clearPhotoDatabase()
            return ApiDataProvider.returnSuccess("cleared database")
        except Exception:
            return ApiDataProvider.returnError("unexpected error")
 def create(self, request):
     # check if post has secret parameter
     if not(DataNames.SECRET in request.POST) :
         return ApiDataProvider.returnError('no ' + DataNames.SECRET)
     
     # check if secret parameter is correct
     the_secret = request.POST[DataNames.SECRET]
     if the_secret != ApiKeys.GAE_PRIVATE_KEY:
         return ApiDataProvider.returnError('incorrect private key')
     
     try:
         ContentDataOrganizer.clearPhotoDatabase()
         return ApiDataProvider.returnSuccess('cleared database')
     except Exception:
         return ApiDataProvider.returnError('unexpected error')
 def create(self, request):
     print request.POST
     # check if post has secret parameter
     if not(DataNames.SECRET in request.POST) :
         return ApiDataProvider.returnError(PictureCrawlingHandler._TAG + \
                                            'no ' + DataNames.SECRET)
     
     # check if secret parameter is correct
     the_secret = request.POST[DataNames.SECRET]
     if the_secret != ApiKeys.GAE_PRIVATE_KEY:
         return ApiDataProvider.returnError(PictureCrawlingHandler._TAG + \
                                            'incorrect private key')
     
     # Parameter short circuits
     if not(Mood.URL_TAG in request.POST):
         return ApiDataProvider.returnError('no mood param')
     
     # Parameter short circuits
     if not(Media.URL_TAG in request.POST):
         return ApiDataProvider.returnError('no media param')
     
     # get data
     mood = request.POST[Mood.URL_TAG]
     content = request.POST[Media.URL_TAG]
     
     # out of bounds short circuit
     if not(mood in Mood.MOOD_TYPES and content in Media.CONTENT_TYPES):
         return ApiDataProvider.returnError('parameter out of range')
     
     ContentDataOrganizer.collectContentCronJob(mood, content)
     return ApiDataProvider.returnSuccess('added some photo')
     
     
     
     
     
     
    def create(self, request):
        # check if post has secret parameter
        print request.POST
        if not (DataNames.SECRET in request.POST):
            return ApiDataProvider.returnError(FilterCronHandler._TAG + 'no ' +
                                               DataNames.SECRET)

        # check if secret parameter is correct
        the_secret = request.POST[DataNames.SECRET]
        if the_secret != ApiKeys.GAE_PRIVATE_KEY:
            return ApiDataProvider.returnError(FilterCronHandler._TAG +
                                               'incorrect private key')

        # check if mood in post request
        if not (Mood.URL_TAG in request.POST):
            return ApiDataProvider.returnError(FilterCronHandler._TAG + 'no ' +
                                               Mood.URL_TAG)

        # check if parameter is correct
        mood = request.POST[Mood.URL_TAG]
        if not (mood in Mood.MOOD_TYPES):
            return ApiDataProvider.returnError('mood input outofbounds')

        # check if content in post request
        if not (Media.URL_TAG in request.POST):
            return ApiDataProvider.returnError(FilterCronHandler._TAG + 'no ' +
                                               Media.URL_TAG)

        # check if parameter is correct
        content = request.POST[Media.URL_TAG]
        if not (content in Media.CONTENT_TYPES):
            return ApiDataProvider.returnError('content input outofbounds')

        # check if type is defined
        if not (FilterCronHandler.FILTER_TYPE in request.POST):
            return ApiDataProvider.returnError(FilterCronHandler._TAG + 'no ' +
                                               FilterCronHandler.FILTER_TYPE)

        # check if parameter is correect
        type = request.POST[FilterCronHandler.FILTER_TYPE]
        if not (type in FilterCronHandler.ALL_FILTER):
            return ApiDataProvider.returnError('filter type input outofbounds')

        # perform cron job
        if type == FilterCronHandler.CONTENT_FILTER:
            #deprecated
            if ContentDataOrganizer.filterContentCronJob(mood):
                return ApiDataProvider.returnSuccess('success filtered data')
            else:
                return ApiDataProvider.returnError(FilterCronHandler._TAG +
                                                   'error filtering data')

        elif type == FilterCronHandler.SCORE_FILTER:
            res = ContentDataOrganizer.scoreThresholdFilterCronJob(
                mood, content)
            if res > 0:
                print 'filtered ' + str(res)
                return ApiDataProvider.returnSuccess('filtered ' + str(res) +
                                                     ' contents')
            elif res == ScoreFilter.NO_FINAL_SCORE:
                return ApiDataProvider.returnSuccess(
                    'no data need to be filtered')
            elif res == ScoreFilter.EMPTY_DB:
                return ApiDataProvider.returnError('nothing in database')

        elif type == FilterCronHandler.URL_FILTER:
            print 'Broken Filter'
            if ContentDataOrganizer.brokenURLFilterCronJob(mood, content):
                # done
                return ApiDataProvider.returnSuccess('1')
            else:
                # still have more to do
                return ApiDataProvider.returnSuccess('0')
 def create(self, request):
     # check if post has secret parameter
     print request.POST
     if not(DataNames.SECRET in request.POST) :
         return ApiDataProvider.returnError(FilterCronHandler._TAG + 'no ' + DataNames.SECRET)
     
     # check if secret parameter is correct
     the_secret = request.POST[DataNames.SECRET]
     if the_secret != ApiKeys.GAE_PRIVATE_KEY:
         return ApiDataProvider.returnError(FilterCronHandler._TAG + 'incorrect private key')
     
     # check if mood in post request
     if not (Mood.URL_TAG in request.POST):
         return ApiDataProvider.returnError(FilterCronHandler._TAG + 'no ' + Mood.URL_TAG)
     
     # check if parameter is correct
     mood = request.POST[Mood.URL_TAG]
     if not (mood in Mood.MOOD_TYPES) :
         return ApiDataProvider.returnError('mood input outofbounds')
     
     # check if content in post request
     if not (Media.URL_TAG in request.POST) :
         return ApiDataProvider.returnError(FilterCronHandler._TAG + 'no ' + Media.URL_TAG)
     
     # check if parameter is correct
     content = request.POST[Media.URL_TAG]
     if not (content in Media.CONTENT_TYPES) :
         return ApiDataProvider.returnError('content input outofbounds')
     
     # check if type is defined
     if not (FilterCronHandler.FILTER_TYPE in request.POST):
         return ApiDataProvider.returnError(FilterCronHandler._TAG + 'no ' + FilterCronHandler.FILTER_TYPE)
     
     # check if parameter is correect
     type = request.POST[FilterCronHandler.FILTER_TYPE]
     if not (type in FilterCronHandler.ALL_FILTER) :
         return ApiDataProvider.returnError('filter type input outofbounds')
     
     # perform cron job
     if type == FilterCronHandler.CONTENT_FILTER:
         #deprecated
         if ContentDataOrganizer.filterContentCronJob(mood):
             return ApiDataProvider.returnSuccess('success filtered data')
         else:
             return ApiDataProvider.returnError(FilterCronHandler._TAG + 'error filtering data')
         
     elif type == FilterCronHandler.SCORE_FILTER:
         res = ContentDataOrganizer.scoreThresholdFilterCronJob(mood, content)
         if res > 0:
             print 'filtered ' + str(res)
             return ApiDataProvider.returnSuccess('filtered ' + str(res) + ' contents')
         elif res == ScoreFilter.NO_FINAL_SCORE:
             return ApiDataProvider.returnSuccess('no data need to be filtered')
         elif res == ScoreFilter.EMPTY_DB:
             return ApiDataProvider.returnError('nothing in database')
         
     elif type == FilterCronHandler.URL_FILTER:
         print 'Broken Filter'
         if ContentDataOrganizer.brokenURLFilterCronJob(mood, content) :
             # done
             return ApiDataProvider.returnSuccess('1')
         else:
             # still have more to do
             return ApiDataProvider.returnSuccess('0')
示例#6
0
    moods = [Mood.HAPPY, Mood.ROMANTIC]  # , Mood.INSPIRED, Mood.EXCITED]
    picOnly = True
    fill_up_to = 100
    min_pic = 100
    min_vid = 20
    # num_data_needed = 100

    for mood in moods:
        pic_num = fill_up_to - len(
            Media.objects.filter(moods=mood, content_type="PI"))
        pic_num = 0 if pic_num < 0 else pic_num

        vid_num = fill_up_to - len(
            Media.objects.filter(moods=mood, content_type="VI"))
        vid_num = 0 if vid_num < 0 else vid_num

        print 'adding ' + str(pic_num) + ' num of pic'
        print 'adding ' + str(vid_num) + ' num of vid'

        part_num_pic = min_pic if pic_num * 3 < min_pic else pic_num * 3
        part_num_vid = min_vid if vid_num * 3 < min_vid else vid_num * 3

        PictureRetriever.pullAndFilter(
            mood, ContentDataOrganizer._getRandomTerms(mood), pic_num,
            part_num_pic)

        if not picOnly:
            VideoRetriever.pullAndFilter(
                mood, ContentDataOrganizer._getRandomTerms(mood), vid_num,
                part_num_vid)
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "servercore.settings")

    from servercore.CmmCore.ContentDataOrganizer.Retrievers import PictureRetriever, VideoRetriever
    from servercore.CmmCore.ContentDataOrganizer.ContentDataOrganizer import ContentDataOrganizer
    from servercore.CmmData.models import Mood, Media
    
    moods = [Mood.HAPPY, Mood.ROMANTIC] # , Mood.INSPIRED, Mood.EXCITED]
    picOnly = True
    fill_up_to = 100
    min_pic = 100
    min_vid = 20
    # num_data_needed = 100
    
    for mood in moods:
        pic_num = fill_up_to - len(Media.objects.filter(moods = mood, content_type="PI"))
        pic_num = 0 if pic_num < 0 else pic_num
        
        vid_num = fill_up_to - len(Media.objects.filter(moods = mood, content_type="VI"))
        vid_num = 0 if vid_num < 0 else vid_num
        
        print 'adding ' + str(pic_num) + ' num of pic' 
        print 'adding ' + str(vid_num) + ' num of vid' 
        
        part_num_pic = min_pic if pic_num * 3 < min_pic else pic_num * 3
        part_num_vid = min_vid if vid_num * 3 < min_vid else vid_num * 3
        
        
        PictureRetriever.pullAndFilter(mood, ContentDataOrganizer._getRandomTerms(mood), pic_num, part_num_pic)
        
        if not picOnly:
            VideoRetriever.pullAndFilter(mood, ContentDataOrganizer._getRandomTerms(mood), vid_num, part_num_vid)
'''
Created on Nov 12, 2012

@author: hunlan
'''
#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "servercore.settings")

    from servercore.CmmData.models import Mood, Media
    from servercore import CmmData  
    from servercore.CmmCore.ContentDataOrganizer.ContentDataOrganizer import ContentDataOrganizer  
    ContentDataOrganizer.brokenURLFilterCronJob(Mood.HAPPY, Media.PICTURE)
    ContentDataOrganizer.brokenURLFilterCronJob(Mood.HAPPY, Media.VIDEO)
    ContentDataOrganizer.brokenURLFilterCronJob(Mood.ROMANTIC, Media.PICTURE)
    ContentDataOrganizer.brokenURLFilterCronJob(Mood.ROMANTIC, Media.VIDEO)
        
    
    
    
示例#9
0
 def tearDown(self):
     ContentDataOrganizer.clearPhotoDatabase()
     pass
示例#10
0
"""
Created on Nov 12, 2012

@author: hunlan
"""
#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "servercore.settings")
    from servercore.CmmCore.ContentDataOrganizer.ContentDataOrganizer import ContentDataOrganizer

    ContentDataOrganizer.clearPhotoDatabase()
示例#11
0
 def tearDown(self):
     ContentDataOrganizer.clearPhotoDatabase()
     pass