예제 #1
0
    def get_downloads_of_allbundleids(self, bundle_ids, sign, vv_version="common"):
        """add by kq for bundle search"""

        download_direct = AppDownloadController()
        reses = download_direct.get_by_bundleids(bundle_ids, sign, vv_version)
        download_netdisk = AppDownloadNetDiskController()
        reses2 = download_netdisk.get_by_bundleids(bundle_ids, sign)

        result_for_download = {}
        for bundle_id in bundle_ids:

            ipaHash = "" #最新版
            ipaVersion = "" #最新版本号
            ipaHistoryDownloads = "" #历史版本
            res = reses.get(bundle_id, None)
            tmp_download_list = {}
            if res:
                for down in res:
                    down_version = "0" if down.get('version', "") == "" else down["version"]
                    try:
                        tmp = {
                            'ipaHash': down['hash'],
                            'version': down_version,
                            'addTime': str(down['addTime'])
                        }
                        if down_version not in tmp_download_list:
                            tmp_download_list[down_version] = []
                        tmp_download_list[down_version].append(tmp)
                    except Exception, ex: continue
                try:
                    ipaHistoryDownloads = sort_dict_keys(tmp_download_list)
                except Exception, ex:
                    print ex
                try:
                    key = ipaHistoryDownloads.keys()[0]
                    ipaHash = ipaHistoryDownloads[key][0]['ipaHash']
                    ipaVersion = ipaHistoryDownloads[key][0]['version']
                except Exception, ex:
                    traceback.print_exc()
                    pass
예제 #2
0
    def get_apps_cache_mg(self, device, sign, genre_id, page, sort):
        """
        获取app列表展示  luoluo0
        """
        language = self._language if self._language in ['zh-Hans','en', 'ar'] else 'en'
        key = "%s_%s_%s_%s_%s" % (device, sign, language, genre_id, sort)
        count = mongo_db.AppKeylists.find({'appKey':key}).count()

        page_size = 12 # 每页显示12行
        total_page = int(math.ceil(count / float(page_size)))
        prev_page = (page - 1) if page - 1 > 0 else 1
        next_page = (page + 1) if page + 1 < total_page else total_page

        lists1 = list(mongo_db.AppKeylists.find(
            {'appKey':key},
            {'appKey':0,'order':0}
        ).sort([('order',pymongo.DESCENDING)]).skip((page-1)*page_size).limit(page_size))

        bundleIdlist = [i['bundleId'] for i in lists1 if 'bundleId' in i]
        download = AppDownloadController()
        ipaHashdic = download.get_by_bundleids(bundleIdlist)
        ipaHashlist = [i[0] for i in ipaHashdic.values()]

        for i in lists1:
            i['ID'] = str(i['_id'])
            del i['_id']
            for x in ipaHashlist:
                if i['bundleId'] == x['bundleId']:
                    i['ipaHash'] = str(x['hash'])
                    i['ipaVersion'] = x.get('version', '1.0')
        lists = [convertAppIpaHashToIpaURL(x) for x in lists1]
        return {
            'results': lists,
            'pageInfo': {
                'count': count, 'page': page, 'totalPage': total_page, 'prevPage': prev_page,
                'nextPage': next_page
            }
        }