def do_request(self): _id = request.args.get('_id') if request.method != 'POST': res = DB.app_topic.find_one({'_id':ObjectId(_id)}) if not res: return self._view.error("专题不存在") self._view.assign('search_use', 'topic') self._view.assign('app_topic', res) return self._view.render('app_topic_item_add') try: app = DB.AppBase.find_one({'_id': ObjectId(request.form['_appid'])}) if app == None: raise Exception("app not exists") item_id = '%s%s' % (int(time.time()), random.randint(1000, 9999)) try: rating = app['averageUserRating'] except: rating = 0 try: download_version = app['downloadVersion'] except: download_version = '' #check if items already in app_topic if DB.app_topic.find({"_id": ObjectId(_id), "items":\ {"$elemMatch": {"trackName": app['trackName']}}}).count() != 0: raise ValueError(u"应用已经存在") items = { 'id': item_id, 'sort':int(request.form['sort']), 'trackName':app['trackName'], 'cnname': app.get('cnname', ""), 'arname': app.get('arname', ""), 'icon': artworkUrl512_to_114_icon(app['artworkUrl512']), 'ID': str(app['_id']), 'averageUserRating': rating, 'size': file_size_format(app['fileSizeBytes']), 'version': download_version, "bundleId": app["bundleId"] } DB.app_topic.update({'_id': ObjectId(request.args.get('_id'))}, { '$set':{'update_time': datetime.datetime.now()}, '$push': {'items': items} }) status, message = 'success', '' except Exception, ex: print ex status, message = 'error', str(ex)
def do_request(self): self._identifier = request.args.get('identifier') if request.method != 'POST': res = DB.app_collection.find_one({'identifier':self._identifier}) if not res: return self._view.error("应用集不存在") #语言选项 langs = DB.client_support_language.find() self._view.assign('lang_options', list(langs)) #国家选项 countries = DB.country.find() self._view.assign('country_options', list(countries)) self._view.assign('search_use', 'collection') self._view.assign('app_collection', res) return self._view.render('app_collection_item_add') try: app = DB.AppBase.find_one({'_id':ObjectId(request.form['_id'])}) if app is None: raise Exception("应用不存在") item_id = '%s%s' % (int(time.time()), random.randint(1000, 9999)) try: rating = app['averageUserRating'] except: rating = 0 try: download_version = app['downloadVersion'] except: download_version = '' #check if items already in app_collection print(DB.app_collection.find({'identifier':self._identifier, "items":\ {"$elemMatch": {"trackName": app['trackName']}}}).count()) i_collection = list(DB.app_collection.find({'identifier':self._identifier, "items":{"$elemMatch": {"trackName": app['trackName']}}})) if len(i_collection) != 0: items = i_collection[0]["items"] for item in items: if item["trackName"] == app['trackName']: temp_language = item["language"] for language in request.form.getlist('language'): if language not in temp_language: item["language"].append(language) DB.app_collection.update({'identifier':request.args.get('identifier')}, {'$set':{'items':items}}) return self._view.ajax_response('success', '', '') items = { 'id': int(item_id), 'sort':int(request.form['sort']), 'language':request.form.getlist('language'), 'country':request.form.getlist('country'), 'trackName':app['trackName'], 'cnname': app.get('cnname', ""), 'arname': app.get('arname', ""), 'averageUserRating': rating, 'icon': artworkUrl512_to_114_icon(app['artworkUrl512']), 'ID': str(app['_id']), 'bundleId': app['bundleId'], 'size': file_size_format(app['fileSizeBytes']), 'version': download_version } DB.app_collection.update({'identifier':request.args.get('identifier')}, {'$push':{'items':items}}) status, message = 'success', '' except Exception, ex: status, message = 'error', str(ex)