示例#1
0
    def post(self):
        model_kind = self.request.get('model_kind')
        frequency = self.request.get('frequency')
        date = str_to_date(self.request.get('date_string'))
        store_key_name = self.request.get('store_key_name')

        logging.info('Cleanupworker model kind: %s frequency: \
    %s store: %s' % (model_kind, frequency, store_key_name))

        recursion_flag = False

        if model_kind == 'ProductRenderer':
            store_key = Key.from_path('Store', store_key_name)
            query = get_renderer_query_for_frequency(frequency, date,
                                                     store_key)
            keys = query.fetch(200, TEMPLATE_PRODUCT_COUNT)
        elif model_kind == 'ProductCounter':
            store_key = Key.from_path('Store', store_key_name)
            query = get_counter_query_for_frequency(frequency, date, store_key)
            keys = query.fetch(200)
        elif model_kind == 'UserCounter':
            query = USER_COUNTER_CLEANUP_TARGETS
            keys = query.fetch(200)
        else:
            logging.error('No type found for CleanupWorker :%s' % model_kind)

        if len(keys):
            recursion_flag = True
            pdb.delete(keys)

        if recursion_flag:
            logging.info('Enqueing cleanup for model %s' % model_kind)
            enqueue_cleanup(model_kind, frequency, str(date), store_key_name)
示例#2
0
 def post(self):
   model_kind = self.request.get('model_kind')
   frequency = self.request.get('frequency')
   date = str_to_date(self.request.get('date_string'))
   store_key_name = self.request.get('store_key_name')
   
   logging.info('Cleanupworker model kind: %s frequency: \
   %s store: %s' %(model_kind,frequency,store_key_name))
   
   recursion_flag = False
   
   if model_kind == 'ProductRenderer':
     store_key = Key.from_path('Store',store_key_name)
     query = get_renderer_query_for_frequency(frequency, date, store_key)
     keys = query.fetch(200, TEMPLATE_PRODUCT_COUNT)
   elif model_kind == 'ProductCounter':
     store_key = Key.from_path('Store',store_key_name)
     query = get_counter_query_for_frequency(frequency, date, store_key)
     keys = query.fetch(200)
   elif model_kind == 'UserCounter':
     query = USER_COUNTER_CLEANUP_TARGETS
     keys = query.fetch(200)
   else:
     logging.error('No type found for CleanupWorker :%s' %model_kind)
   
   if len(keys):
     recursion_flag = True
     pdb.delete(keys)
   
   if recursion_flag:
     logging.info('Enqueing cleanup for model %s' %model_kind)
     enqueue_cleanup(model_kind,frequency,str(date),store_key_name)
示例#3
0
文件: main.py 项目: frankk00/TweetHit
def create_template_data(locale, frequency, date, request, **kwargs):

    current_date = time_util.today()
    current_period_flag = False
    query_cache_expiration = 0
    store_key = Store.key_for_locale(locale)
    query = get_renderer_query_for_frequency(frequency, date, store_key)
    result_data = {}

    if len(request.query_string) > 0:
        result_data['query_string'] = '?' + request.query_string
        request_url = request.url[:request.url.find('?')]
    else:
        result_data['query_string'] = ''
        request_url = request.url

    #Debugger for turkey ban filter
    try:
        request.params['ban']
        root = 'http://tweethitapp.appspot.com'
    except KeyError:
        root = root_url

    if frequency == DAILY:
        result_data['next_href'] = create_day_href(locale, date, 1, root)
        result_data['prev_href'] = create_day_href(locale, date, -1, root)
        if date == current_date:
            current_period_flag = True

    elif frequency == WEEKLY:
        result_data['next_href'] = create_week_href(locale, date, 1, root)
        result_data['prev_href'] = create_week_href(locale, date, -1, root)
        if date.year == current_date.year and \
        date.isocalendar()[1] == current_date.isocalendar()[1]:
            current_period_flag = True

    elif frequency == MONTHLY:
        if date.year == current_date.year and \
        date.month == current_date.month:
            current_period_flag = True
        result_data['next_href'] = create_month_href(locale, date, 1, root)
        result_data['prev_href'] = create_month_href(locale, date, -1, root)

    else:
        raise RendererException('Problem creating template data for \
      locale: %s, frequency: %s, kwargs: %s' % (locale, frequency, kwargs))

    groups = defaultdict(int)
    products = query.fetch(TEMPLATE_PRODUCT_COUNT)

    for item in products:
        groups[item.product_group] += 1
        if len(item.title) > 72:
            item.title = item.title[:72] + '...'

    group_tuples = []
    keys = sorted(groups.keys())
    for key in keys:
        group_tuples.append((key, groups[key]))

    result_data['date'] = date
    result_data['current_period_flag'] = current_period_flag
    result_data['products'] = products
    result_data['group_tuples'] = group_tuples
    result_data['assoc_id'] = secret.ASSOCIATE_DICT[locale]
    result_data['root_url'] = root
    result_data['daily_ranking_href'] = root + '/' + locale + '/day/'
    result_data['weekly_ranking_href'] = root + '/' + locale + '/week/'
    result_data['monthly_ranking_href'] = root + '/' + locale + '/month/'

    return result_data
示例#4
0
文件: main.py 项目: frankk00/TweetHit
def create_template_data(locale,frequency,date,request,**kwargs):
    
  current_date = time_util.today()
  current_period_flag = False
  query_cache_expiration = 0
  store_key = Store.key_for_locale(locale)
  query = get_renderer_query_for_frequency(frequency,date,store_key)
  result_data = {}
  
  if len(request.query_string) > 0:
    result_data['query_string'] = '?'+request.query_string
    request_url  = request.url[:request.url.find('?')]
  else:
    result_data['query_string'] = ''
    request_url  = request.url
      
  #Debugger for turkey ban filter
  try:
      request.params['ban']
      root = 'http://tweethitapp.appspot.com'
  except KeyError:
      root = root_url
      
  if frequency == DAILY:  
    result_data['next_href'] = create_day_href(locale, date, 1,root)
    result_data['prev_href'] = create_day_href(locale, date, -1,root)
    if date == current_date:
      current_period_flag = True

  elif frequency == WEEKLY: 
    result_data['next_href'] = create_week_href(locale, date, 1,root)
    result_data['prev_href'] = create_week_href(locale, date, -1,root)
    if date.year == current_date.year and \
    date.isocalendar()[1] == current_date.isocalendar()[1]:
      current_period_flag = True

  elif frequency == MONTHLY:
    if date.year == current_date.year and \
    date.month == current_date.month:
      current_period_flag = True
    result_data['next_href'] = create_month_href(locale, date, 1,root)
    result_data['prev_href'] = create_month_href(locale, date, -1,root) 

  else:
      raise RendererException('Problem creating template data for \
      locale: %s, frequency: %s, kwargs: %s' %(locale,frequency,kwargs))
      
  groups = defaultdict(int)
  products = query.fetch(TEMPLATE_PRODUCT_COUNT)
  
  for item in products:
      groups[item.product_group] += 1
      if len(item.title) > 72:
        item.title = item.title[:72]+'...'
  
  group_tuples = []
  keys = sorted(groups.keys())
  for key in keys:
    group_tuples.append((key,groups[key]))
        
  result_data['date'] = date
  result_data['current_period_flag'] = current_period_flag
  result_data['products'] = products
  result_data['group_tuples'] = group_tuples
  result_data['assoc_id'] = secret.ASSOCIATE_DICT[locale]
  result_data['root_url'] = root
  result_data['daily_ranking_href'] = root+'/'+locale+'/day/'
  result_data['weekly_ranking_href'] = root+'/'+locale+'/week/'
  result_data['monthly_ranking_href'] = root+'/'+locale+'/month/'
  
  return result_data