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')
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)
def tearDown(self): ContentDataOrganizer.clearPhotoDatabase() pass
""" 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()