示例#1
0
def _importOthers(input, step):

    users = {}
    recs = {}
    installs = {}
    count = -1
    while (True):
        line = input.readline()
        if (not line):
            break
        count = count + 1
        print 'count=',count
        if count >= step:
            break
        line = line.encode('utf8')
        l = line.split('|', 3)
        imei = l[0]
        if imei not in users:
            users[imei] = User(imei)

        packages = set()
        for ll in l[1].split(','):
            package = ll.split('\t')[0]
            packages.add(package)
        installs[imei] = packages

        recApps = []
        for ll in l[2].split(','):
            lll = ll.split()
            if len(lll) > 0:
                package = lll[0]
                score = float(lll[1])
                recApps.append((package, score))
        recs[imei] = recApps

    for imei in users:
        userStore.save(users[imei])

    for imei in installs:
        packages = installs[imei]
        user = users[imei]
        for package in packages:
            aid = IdUtils.genId(package)
            installStore.save(Install(user.id, aid))
    for imei in recs:
        recApps = recs[imei]
        for rec in recApps:
            aid = IdUtils.genId(rec[0])
            score = rec[1]
            uid = users[imei].id
            recStore.save(Rec(uid, aid, score))
    if count == step:
        return True
    return False
示例#2
0
 def genId(self):
     """ generate id if necessary, as a digest value of self.imei"""
     if self.id is None:
         self.id = IdUtils.genId(self.imei)
     return self.id