示例#1
0
    else:
        CHUNK = 16 * 1024
        with open(dest_url, 'wb') as fp:
            while True:
                chunk = image.read(CHUNK)
                if not chunk: break
                fp.write(chunk)
        foo = db.table('anime').set(image_path=os.path.join(
            "img", "anime", str(anime_id), os.path.basename(dest_url))).where(
                id=int(anime_id)).limit(1).update()
        return True


if __name__ == '__main__':
    bot = animurecs_bot.animurecs('fetch_mal_anime',
                                  animurecs_modules,
                                  config_file='config.txt')
    db = bot.dbs['animurecs']
    mal_session = myanimelist.session.Session()

    parser = argparse.ArgumentParser()
    parser.add_argument("--start",
                        default=1,
                        help="start anime ID for range fetch")
    parser.add_argument("--end",
                        default=None,
                        help="end anime ID for range fetch")
    parser.add_argument("--only_new",
                        action='store_true',
                        help="only update with new anime")
    args = parser.parse_args()
示例#2
0
#!/usr/bin/python
# -*- coding: utf-8 -*-

import animurecs_bot, animurecs_modules
import datetime, pytz
import decimal

if __name__ == '__main__':
    bot = animurecs_bot.animurecs('test',
                                  animurecs_modules,
                                  config_file='./config.txt')

    user_lists = {}
    for row in bot.dbs['animurecs'].table('anime_lists').fields(
            'user_id', 'anime_id', 'time',
            'score').order('user_id ASC, anime_id ASC, time DESC').query():
        if row['user_id'] not in user_lists:
            user_lists[row['user_id']] = {}
        if row['anime_id'] not in user_lists[row['user_id']]:
            user_lists[row['user_id']][row['anime_id']] = row
        elif row['time'] > user_lists[row['user_id']][row['anime_id']]['time']:
            user_lists[row['user_id']][row['anime_id']] = row

    for user in user_lists:
        for anime_id in user_lists[user].keys():
            if user_lists[user][anime_id]['score'] == decimal.Decimal(0.00):
                del user_lists[user][anime_id]

    all_ratings = [
        user_lists[u][a]['score'] for u in user_lists for a in user_lists[u]
    ]
示例#3
0
    zero_pad(dt.year, 4),
    zero_pad(dt.month, 2),
    zero_pad(dt.day, 2)
  ])

def get_max_user_id(queue):
  """Returns the highest user ID in the given queue.
  """
  # get the idx of the user_id field.
  user_id_idx = queue._fields.index('user_id')
  print ""
  print "Exception detected, flushing queue. Highest user ID: " + str(max(queue, key=lambda x: x[user_id_idx])[user_id_idx])

if __name__ == '__main__':
  mal_session = myanimelist.session.Session()
  bot = animurecs_bot.animurecs('fetch_mal_lists', animurecs_modules, config_file='config.txt')
  db = bot.dbs['animurecs']

  parser = argparse.ArgumentParser()
  parser.add_argument("--start", default=1,
                      help="start user ID for range fetch")
  parser.add_argument("--end", required=True,
                      help="end user ID for range fetch")
  parser.add_argument("--per_minute", default=6,
                      help="number of users per minute to fetch, between 1 and 60 inclusive")
  parser.add_argument("--save_ids", default=False,
                      help="filename in which to save user ID : username mapping")
  args = parser.parse_args()

  print "Calculating ID range..."
#!/usr/bin/python
# -*- coding: utf-8 -*-

import animurecs_bot, animurecs_modules
import datetime,pytz
import decimal

if __name__ == '__main__':
  bot = animurecs_bot.animurecs('test', animurecs_modules, config_file='./config.txt')

  user_lists = {}
  for row in bot.dbs['animurecs'].table('anime_lists').fields('user_id', 'anime_id', 'time', 'score').order('user_id ASC, anime_id ASC, time DESC').query():
    if row['user_id'] not in user_lists:
      user_lists[row['user_id']] = {}
    if row['anime_id'] not in user_lists[row['user_id']]:
      user_lists[row['user_id']][row['anime_id']] = row
    elif row['time'] > user_lists[row['user_id']][row['anime_id']]['time']:
      user_lists[row['user_id']][row['anime_id']] = row

  for user in user_lists:
    for anime_id in user_lists[user].keys():
      if user_lists[user][anime_id]['score'] == decimal.Decimal(0.00):
        del user_lists[user][anime_id]

  all_ratings = [user_lists[u][a]['score'] for u in user_lists for a in user_lists[u]]
  all_rating_count = len(all_ratings)
  all_rating_mean = float(sum(all_ratings)) * 1.0 / all_rating_count

  all_rating_square_sum = 0
  for u in user_lists:
    for a in user_lists[u]: