def post(self): #which takes a stream definition and returns a status code statusCode = 0 username = self.request.get('username') streamName = self.request.get('stream_name') sId = cStream.getStreamId(streamName) newSubscribers = self.request.get('new_subscriber_list') comment = self.request.get('message') newSubscribers = newSubscribers.split(',') urlCoverImage = self.request.get('url_cover_image') streamTags = self.request.get('stream_tags') streamTagsList = streamTags.split('#') streamTagsList.pop(0) streamList = [] for stream in cStream.query(): if stream.streamId == sId: statusCode = 1 if stream.streamName == streamName: statusCode = 2 streamList.append((stream.streamName, stream.creatorName)) if statusCode == 0: streamKey = cStream.addNewStream(sId, streamName, username,urlCoverImage,streamTagsList) cUser.addUserStream(username, streamKey) CreateStream.addNewSubscribers(newSubscribers, streamKey) CreateStream.sendSubscriptionEmail(newSubscribers, streamName, username, comment) self.response.write(json.dumps({'status_code': statusCode, 'streams': streamList,}))
def getTopStreams(): searchStreams = [] top_streams = [] cStream.updateStreamViews() for stream in cStream.query(): searchStreams.append((stream.streamName, len(stream.viewTimes),stream.streamId,stream.coverImageURL)) top_streams = sorted(searchStreams, key=lambda x: -x[1]) return top_streams[:3]
def generateCache(): CacheSearch.cache = [] for stream in cStream.query(): CacheSearch.cache.append({'id': stream.streamId, 'lable': stream.creatorName, 'value': stream.creatorName}) CacheSearch.cache.append({'id': stream.streamId, 'lable': stream.streamName, 'value': stream.streamName}) for tag in stream.streamTags: CacheSearch.cache.append({'id': stream.streamId, 'lable': tag, 'value': tag})
def handle_upload(self): results = [] blob_keys = [] for name, fieldStorage in self.request.POST.items(): if type(fieldStorage) is unicode: continue result = {} result['name'] = re.sub( r'^.*\\', '', fieldStorage.filename ) result['type'] = fieldStorage.type result['size'] = self.get_file_size(fieldStorage.file) if self.validate(result): blob_key = str( self.write_blob(fieldStorage.value, result) ) blob_keys.append(blob_key) #use the images API to get a permanent serving URL if the file is an image results.append(result) streamId = self.request.get('streamId') loc = (self.request.get('lat'), self.request.get('lon')) stream = cStream.query(cStream.streamId == int(streamId)).get() if stream: for key in blob_keys: blobKey = blobstore.BlobKey(str(key)) imageId = stream.getNextImageId() cImage.addImage(stream.streamId, imageId, blobKey, loc) stream.images.insert(0,imageId) stream.put() return results
def post(self): result = [] for image in cImage.query(): stream = cStream.query(cStream.streamId == image.streamId).get() if (stream): url = images.get_serving_url(image.blobKey) result.append({'streamId': image.streamId, 'streamname': stream.streamName, 'url': url, 'lat': image.lat, 'lon': image.lon}) self.response.write(json.dumps(result))
def post(self): streamId = self.request.get('streamId') username = self.request.get('username') stream = cStream.query(cStream.streamId == int(streamId)).get() if stream: user = cUser.query(cUser.username == username).get() if user: if stream.key not in user.subbedStreams: user.subbedStreams.append(stream.key) user.put()
def post(self): #which takes a stream id and a page range and returns a #list of URLs to images, and a page range streamId = self.request.get('streamId') startPage = int(self.request.get('start_page')) endPage = int(self.request.get('end_page')) BlobKeyList = [] result = cStream.query(cStream.streamId == int(streamId)) stream = result.get() logging.info("in viewstream") if stream: i = 0 cStream.addViewToStream(int(streamId)) for x in range(0,len(stream.imageURLs)): if i >= startPage and i < endPage: BlobKeyList.append(images.get_serving_url(stream.imageURLs[x])) logging.info(images.get_serving_url(stream.imageURLs[x])) i = i + 1 self.response.write(json.dumps({'blob_key_list': BlobKeyList, 'start_page': startPage, 'end_page': endPage, 'stream_size': len(stream.imageURLs)}))
def post(self): #which takes a query string and returns a list of streams #(titles and cover image urls) that contain matching text queryString = self.request.get('query_string') streamInfo = [] for stream in cStream.query(): #logging.info(stream.streamTags) #logging.info(any(queryString in tag for tag in stream.streamTags)) if len(streamInfo) < 5 and queryString.lower() in stream.creatorName.lower() or queryString.lower() in stream.streamName.lower() or any(queryString.lower() in tag.lower() for tag in stream.streamTags): streamInfo.append({'stream_id': stream.streamId, stream.streamId: (stream.streamName, stream.coverImageURL)}) self.response.write(json.dumps({'stream_list': streamInfo}))
def post(self): params = self.request.arguments() streamsIds = [] for i in range(len(params)): streamsIds.append(self.request.get(params[i])) for i in range(len(streamsIds)): streamToDelete = cStream.query(cStream.streamId == int(streamsIds[i])).get() streamKeyToDelete = streamToDelete.key for user in cUser.query(): if (streamKeyToDelete in user.subbedStreams): user.subbedStreams.remove(streamKeyToDelete) user.put() owner = cUser.query(cUser.username == streamToDelete.creatorName).get() owner.userStreams.remove(streamKeyToDelete) owner.put() cStream.deleteStream(int(streamsIds[i])) top_stream = tStream.query(tStream.streamId == int(streamsIds[i])).get() top_stream.key.delete()
def get(self): term = str(self.request.get('term')) names = [] for stream in cStream.query(): #logging.info(stream.streamTags) #logging.info(any(queryString in tag for tag in stream.streamTags)) if term.lower() in stream.streamName.lower() or any(term.lower() in tag.lower() for tag in stream.streamTags): names.append(stream.streamName.lower()) self.response.write(json.dumps({'allTags':names}))
def post(self): streamInfo = [] username = self.request.get('username') if not username == "": user = cUser.query(cUser.username == username).get() if user: for streamKey in user.subbedStreams: stream = streamKey.get() if stream: streamInfo.append({'stream_id': int(stream.streamId), stream.streamId: (stream.streamName, stream.coverImageURL, (stream.lastViewed - datetime.datetime.utcfromtimestamp(0)).total_seconds())}) returnList = {'stream_list': streamInfo} self.response.write(json.dumps(returnList)) else: for stream in cStream.query(): streamInfo.append({'stream_id': int(stream.streamId), stream.streamId: (stream.streamName, stream.coverImageURL, (stream.lastViewed - datetime.datetime.utcfromtimestamp(0)).total_seconds())}) self.response.write(json.dumps({'stream_list': streamInfo}))
def post(self): username = self.request.get('username') streamsIds=[] params = self.request.arguments() for i in range(len(params)): if (params[i].find('stream') != -1): streamsIds.append(str(self.request.get(params[i]))) self.response.write(streamsIds[0]) for i in range(len(streamsIds)): streamToUnsubscribe = cStream.query(cStream.streamId ==int(streamsIds[i])).get() if streamToUnsubscribe: streamKey = streamToUnsubscribe.key user = cUser.query(cUser.username == username).get() if user: user.subbedStreams.remove(streamKey) user.put()
def handle_upload(self): blob_keys = [] results = [] logging.info("in handle_upload") for name, fieldStorage in self.request.POST.items(): if type(fieldStorage) is unicode: continue result = {} result['name'] = str(re.sub( r'^.*\\', '', fieldStorage.filename )) result['type'] = fieldStorage.type result['size'] = self.get_file_size(fieldStorage.file) logging.info(self.validate(result)) if self.validate(result): blob_key = str( self.write_blob(fieldStorage.value, result) ) logging.info(blob_key) #use the images API to get a permanent serving URL if the file is an image results.append(result) streamId = self.request.get('streamId') stream =cStream.query(cStream.streamId == int(streamId)).get() if stream: logging.info("blob_key is" + str(blob_key)) blobKey = blobKey = blobstore.BlobKey(str(blob_key)) logging.info("blobKey is" + str(blobKey)) stream.imageURLs.insert(0,blobKey) stream.put() logging.info(stream.imageURLs) return results
def get(self): streamId = 1 stream = cStream.query(cStream.streamId == int(streamId)).get() self.response.write(stream.imageURLs)
def post(self): streamInfo = [] for stream in cStream.query(): streamInfo.append({'stream_id': int(stream.streamId), stream.streamId: (stream.streamName, stream.coverImageURL)}) self.response.write(json.dumps({'stream_list': streamInfo}))