def createClubRequest(self, request): collegeId = ndb.Key('CollegeDb',int(request.college_id)) print("Required College ID",collegeId) college_ret = collegeId.get() print("College Ret",college_ret) if(college_ret): club_ret = Club.query(Club.name == request.club_name).filter(Club.abbreviation == request.abbreviation).filter(Club.collegeId == college_ret.key).fetch(1) print("Club Ret",club_ret) if(len(club_ret) == 0): clubRequest = createClub(request) currentProfile = clubRequest.to_pid.get() newNotif = Notifications( clubName = clubRequest.club_name, clubphotoUrl = clubRequest.photoUrl, to_pid = clubRequest.to_pid, type = "Club Creation Request", timestamp = dt.datetime.now().replace(microsecond = 0) ) print("Notification to be inserted in club creation request",newNotif) newNotifKey = newNotif.put() data = {'message': clubRequest.club_name,"title": "Creation Request"} print (data) gcmId = currentProfile.gcmId gcm_message = GCMMessage(gcmId, data) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message) print("Finished the clubRequest") return message_types.VoidMessage()
def send_gcm_message(payload, users=None, collapse=None): if not users: users = [] tokens = [u.gcm_reg_id for u in users if u and u.gcm_reg_id] if len(tokens): gcm_message = GCMMessage(tokens, payload, collapse_key=collapse) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message) else: logging.debug("No GCM connected devices - Not sending GCM message.")
def greeting_get(self, request): try: push_token = 'dT3u3O6QBNk:APA91bEdvRfSa_Qd3KhOFQJ2yZTGIFZQgivgYOFxDVUp84izpRSFToFSDJ_l0r1qAz7YFtEriRDbIQzA0hPfQjX_oxHXiEkWe1yJCEwEC6MWRRX3maNyF4imrzG32vUzUv-7HDmMCow-' android_payload = {'your-key': 'your-value'} gcm_message = GCMMessage(push_token, android_payload) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message) #if(request.id!=99): return STORED_GREETINGS.items[request.id] #else: # return Greeting(message=blobstore.create_upload_url('/upload_file')) except (IndexError, TypeError): raise endpoints.NotFoundException('Greeting %s not found.' % (request.id, ))
def messageProp(batch, collegeId, data): postList = [] print("collegeId", collegeId) if collegeId == None or collegeId == "": college = None else: collegeId = ndb.Key('CollegeDb', int(collegeId)) college = collegeId.get() if batch == None or batch == "": batch = None if (college != None and batch != None): print "CASE 1" print data print batch print college profileList = Profile.query( ndb.AND(Profile.batch == batch, Profile.collegeId == collegeId)) elif (college == None and batch == None): print "Case 2" print data print batch print college print "Entered normal" profileList = Profile.query() elif (college != None and batch == None): print data print batch print college print "Case 3" profileList = Profile.query(Profile.collegeId == collegeId) else: print data print batch print college print "Case 4" profileList = Profile.query(Profile.batch == batch) print "Reached" print profileList for profile in profileList: if (profile.gcmId): postList.append(profile.gcmId) print postList gcm_message = GCMMessage(postList, data) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message)
def joinClubApi(self,request): if request: clubKey = ndb.Key('Club',int(request.club_id)) club = clubKey.get() profileKey = ndb.Key('Profile',int(request.from_pid)) profile = profileKey.get() if (club and profile and profileKey not in club.members): joinCreationObj = Join_Creation() joinCreationObj.from_pid = profileKey joinCreationObj.to_pid = club.admin to_pidProfile = joinCreationObj.to_pid.get() joinCreationObj.club_id = clubKey joinCreationObj.timestamp = dt.datetime.now().replace(microsecond = 0) print("join obj",joinCreationObj) joinCreationObjKey = joinCreationObj.put() newNotif = Notifications( clubName = club.name, clubId = club.key, clubphotoUrl = club.photoUrl, to_pid = joinCreationObj.to_pid, type = "Join Request", timestamp = joinCreationObj.timestamp ) print("Notification to be inserted in join approval",newNotif) newNotifKey = newNotif.put() data = {'message': profile.name + " wishes to join","title": club.name} print (data) gcmId = to_pidProfile.gcmId gcm_message = GCMMessage(gcmId, data) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message) return message_types.VoidMessage()
def post(self): try: device_tokens = self.request.get('device_tokens') notification = self.request.get('notification') collapse_key = self.request.get('collapse_key') delay_while_idle = self.request.get('delay_while_idle') time_to_live = self.request.get('time_to_live') if ',' in device_tokens: device_tokens = device_tokens.split(',') else: device_tokens = [device_tokens] message = GCMMessage(device_tokens, notification, collapse_key, delay_while_idle, time_to_live) gcm_connection = GCMConnection() gcm_connection._send_request(message) except: logging.exception('Error in send_request_handler') logging.info('message: ' + repr(self.request)) return HttpResponse()
def createPostRequest(self, request): print("Entered Post Request Portion") clubRequest = postRequest(request) currentProfile = clubRequest.to_pid.get() newNotif = Notifications( clubName = clubRequest.club_id.get().name, clubId = clubRequest.club_id, clubphotoUrl = clubRequest.photoUrl, to_pid = clubRequest.to_pid, type = "Post Creation Request", timestamp = dt.datetime.now().replace(microsecond = 0) ) print("Notification to be inserted in Post Creation Request",newNotif) newNotifKey = newNotif.put() data = {'message': clubRequest.title,"title": "Post Creation Request"} print (data) gcmId = currentProfile.gcmId gcm_message = GCMMessage(gcmId, data) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message) print("Inserted into the post request table") return message_types.VoidMessage()
def getEventsBasedonTimeLeft(): logging.basicConfig(level=logging.DEBUG) LOG = logging.getLogger(__name__) current = dt.datetime.now().replace(microsecond=0) #current_utc = current - dt.timedelta(hours =5,minutes=30) currentDate = current.date() currentTime = current.time() LOG.info("Current time") LOG.info(currentTime) eventlist = [] event_query = Event.query().fetch() for event in event_query: #LOG.info("Event") #LOG.info(event.title) #LOG.info(event.start_time) start_time_utc = event.start_time - dt.timedelta(hours=5, minutes=30) start_date = start_time_utc.date() diff = start_date - currentDate #LOG.info("Considering this event") #LOG.info(event.title) if (diff == dt.timedelta(hours=0) and diff == dt.timedelta(minutes=0) and diff == dt.timedelta(seconds=0)): LOG.info("this event is happening today") LOG.info(event.title) start_time = start_time_utc.time() FMT = '%H:%M:%S' tdelta = datetime.strptime(str(start_time), FMT) - datetime.strptime( str(currentTime), FMT) LOG.info("Time delta is") LOG.info(tdelta) b = dt.timedelta(days=0) c = dt.timedelta(hours=2) if tdelta >= b: LOG.info("made through first part") if (tdelta <= c): LOG.info(event.title) eventlist.append(event.key) LOG.info("has reached here") LOG.info("Creating notification") group = event.club_id.get() groupName = group.name data = { 'message': event.title + "About to start soon", "title": groupName, 'id': str(event.key.id()), 'type': "Event" } LOG.info(data) #get the followers of the club pids. Get GCM Id's from those and send LOG.info("Event attendees list") LOG.info(event.attendees) attendeeslist = [] if (event.attendees): newNotif = Notifications( clubName=groupName, clubId=event.club_id, clubphotoUrl=group.photoUrl, eventName=event.title, eventId=event.key, timestamp=dt.datetime.now().replace(microsecond=0), type="Reminder") for pid in event.attendees: person = pid.get() LOG.info("PID is") LOG.info(person) gcmId = person.gcmId #to_pid = pid) if (gcmId): attendeeslist.append(gcmId) newNotif.to_pid_list.append(pid) #newNotif = Notifications( # clubName = groupName, # clubId = event.club_id, # clubphotoUrl = group.photoUrl, # eventName = event.title, # eventId = event.key, # timestamp = dt.datetime.now().replace(microsecond = 0), # type = "Reminder", # to_pid = pid) newNotifKey = newNotif.put() LOG.info("Attendees GCM list is") LOG.info(attendeeslist) gcm_message = GCMMessage(attendeeslist, data) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message) LOG.info("Chill") else: LOG.info( "This event is still some time away from notification") else: LOG.info("This event is over") LOG.info(eventlist)
from gae_python_gcm.gcm import GCMMessage, GCMConnection push_token = 'YOUR_PUSH_TOKEN' android_payload = {'your-key': 'your-value'} gcm_message = GCMMessage(push_token, android_payload) gcm_conn = GCMConnection() logging.info( "Attempting to send Android push notification %s to push_token %s." % (repr(android_payload), repr(push_token))) gcm_conn.notify_device(gcm_message)
def send_push_notification(payload, recipient_user): payload['user'] = recipient_user.key.id() logging.info('Sending %s to %s' % (str(payload), recipient_user)) if recipient_user and len(recipient_user.gcm_ids): gcm_message = GCMMessage(recipient_user.gcm_ids, payload) get_gcm_connection().notify_device(gcm_message)
def scoreBoardHelper(request): ob = SlamDunkScoreBoard() for field in request.all_fields(): if field.name == "completed": if request.completed is None: ob.completed = "N" print "ENTERED HERE" else: completed = str(getattr(request, field.name)) setattr(ob, field.name, completed.upper()) else: setattr(ob, field.name, getattr(request, field.name)) flag = 0 query = SlamDunkScoreBoard.query() for q in query: if (q.team1.upper() == ob.team1.upper() and q.team2.upper() == ob.team2.upper() and q.round.upper() == ob.round.upper()) or ( q.team1.upper() == ob.team2.upper() and q.team2.upper() == ob.team1.upper() and q.round.upper() == ob.round.upper()): if (q.score1 != ob.score1 or q.score2 != ob.score2): q.score1 = ob.score1 q.score2 = ob.score2 eventlist = [] if request.crazy == "Y": if (q.crazy == "C"): eventlist = [] dynamicmessage = "Quarter " + str( q.quarter) + " Score : " + str( q.score1) + " : " + str(q.score2) title = str(q.team1) + " vs " + str(q.team2) data = { 'message': dynamicmessage, "title": title, 'id': None, 'type': "ScoreBoard" } print "Gonna send GCM" for profile in q.subscribers: person = profile.get() gcmId = person.gcmId if (gcmId): print("GCM ID is", gcmId) eventlist.append(gcmId) print("Event list is", eventlist) gcm_message = GCMMessage(eventlist, data) gcm_conn = GCMConnection() #gcm_conn.notify_device(gcm_message) print("Should have worked") else: dynamicmessage = "Things are heating up! Stay tuned for live updates " data = { 'message': dynamicmessage, "title": "ScoreBoard", 'id': None, 'type': "ScoreBoard" } print "Gonna send GCM" for profile in q.subscribers: person = profile.get() gcmId = person.gcmId if (gcmId): print("GCM ID is", gcmId) eventlist.append(gcmId) print("Event list is", eventlist) gcm_message = GCMMessage(eventlist, data) gcm_conn = GCMConnection() #gcm_conn.notify_device(gcm_message) print("Should have worked") q.crazy = "C" if q.completed != ob.completed and request.completed is not None: q.completed = ob.completed if q.quarter != ob.quarter: q.quarter = ob.quarter #Insert GCM HERE eventlist = [] dynamicmessage = "End of quarter " + str( q.quarter) + " Score : " + str(q.score1) + " : " + str( q.score2) title = str(q.team1) + " vs " + str(q.team2) data = { 'message': dynamicmessage, "title": title, 'id': None, 'type': "ScoreBoard" } print "Gonna send GCM" for profile in q.subscribers: person = profile.get() gcmId = person.gcmId if (gcmId): print("GCM ID is", gcmId) eventlist.append(gcmId) print("Event list is", eventlist) gcm_message = GCMMessage(eventlist, data) gcm_conn = GCMConnection() #gcm_conn.notify_device(gcm_message) print("Should have worked") q.put() flag = 1 if flag == 0: ob.put() return message_types.VoidMessage()
def createPostHelper(request): response = MessageResponse() print("Entered Post Entry Portion") flag = 0 try: person_key = ndb.Key('Profile', int(request.fromPid)) profile = person_key.get() print(profile) club_key = ndb.Key('Club', int(request.clubId)) if club_key in profile.follows: print "Present" newPost = postEntry(request, flag) print("NEW POST", newPost) response.status = "1" response.text = "Inserted into Posts Table" #Create Notification Feed group = newPost.club_id.get() groupName = group.name data = { 'message': groupName, "title": newPost.title, 'id': str(newPost.key.id()), 'type': "Post" } postlist = [] if (group.follows): newNotif = Notifications( clubName=groupName, clubId=newPost.club_id, clubphotoUrl=group.photoUrl, postName=newPost.title, postId=newPost.key, timestamp=newPost.timestamp, type="Post", #to_pid = pid ) for pid in group.follows: person = pid.get() newNotif.to_pid_list.append(pid) print("PID is", person) gcmId = person.gcmId if (gcmId): print("GCM ID is", gcmId) postlist.append(gcmId) #newNotif = Notifications( # clubName = groupName, # clubId = newPost.club_id, # clubphotoUrl = group.photoUrl, # postName = newPost.title, # postId = newPost.key, # timestamp = newPost.timestamp, # type = "Post", # to_pid = pid # ) print("Notification to be inserted", newNotif) newNotifKey = newNotif.put() print("post list is", postlist) gcm_message = GCMMessage(postlist, data) gcm_conn = GCMConnection() #gcm_conn.notify_device(gcm_message) else: print "Not present" clubRequest = postRequest(request) response.status = "2" response.text = "Inserted into Posts Requests Table" except Exception, e: print "Error" print str(e) response.status = "3" response.text = "Couldn't insert into Posts Table"
def createEventHelper(request): response = MessageResponse() print("Entered Event Entry Portion") try: person_key = ndb.Key('Profile', int(request.eventCreator)) print(person_key) profile = person_key.get() club_key = ndb.Key('Club', int(request.clubId)) if club_key in profile.clubsJoined: print "GOING INTO EVENTS ENTRY" newEvent = eventEntry(request) response.status = "1" response.text = "Inserted into Posts Table" group = newEvent.club_id.get() groupName = group.name data = { 'message': groupName, "title": newEvent.title, 'id': str(newEvent.key.id()), 'type': "newEvent" } #get the followers of the club pids. Get GCM Id's from those and send print("GROUP FOLLOWS LIST ", group.follows) eventlist = [] if (group.follows): newNotif = Notifications( clubName=groupName, clubId=newEvent.club_id, clubphotoUrl=group.photoUrl, eventName=newEvent.title, eventId=newEvent.key, timestamp=newEvent.timestamp, type="Event", #to_pid = pid ) for pid in group.follows: person = pid.get() newNotif.to_pid_list.append(pid) gcmId = person.gcmId if (gcmId): print("GCM ID is", gcmId) eventlist.append(gcmId) #newNotif = Notifications( # clubName = groupName, # clubId = newEvent.club_id, # clubphotoUrl = group.photoUrl, # eventName = newEvent.title, # eventId = newEvent.key, # timestamp = newEvent.timestamp, # type = "Event", # to_pid = pid # ) print("Notification to be inserted", newNotif) newNotifKey = newNotif.put() print("Event list is", eventlist) gcm_message = GCMMessage(eventlist, data) gcm_conn = GCMConnection() #gcm_conn.notify_device(gcm_message) print("Should have worked") else: print "Not Present" response.status = "2" response.text = "Could not insert" except Exception, e: print "Error" print str(e) response.status = "3" response.text = "Error"
def approveClubHelper(request): clubRequest = ndb.Key('Club_Creation', int(request.reqId)) action = request.action print("Action is", action) req = clubRequest.get() currentProfile = req.from_pid.get() print("From Pid profile is", currentProfile) if (action == 'N'): print("Disapproving request and removing entry") print("Request Approval Denied") newNotif = Notifications( clubName=req.club_name, clubphotoUrl=req.photoUrl, #to_pid = req.from_pid, type="Rejected Club Creation Request", timestamp=dt.datetime.now().replace(microsecond=0)) newNotif.to_pid_list.append(req.from_pid) print("Notification to be inserted in club approval rejection", newNotif) newNotifKey = newNotif.put() data = { 'message': req.club_name, "title": "Creation Request Denied", 'id': "None", 'type': "None" } print(data) gcmId = currentProfile.gcmId gcm_message = GCMMessage(gcmId, data) gcm_conn = GCMConnection() #gcm_conn.notify_device(gcm_message) req.key.delete() elif (req and req.approval_status == "N"): status = approveClub(req) if (status == "Y"): print("Request Approval Granted") newClub = createClubAfterApproval(req) currentProfile = newClub.admin.get() if (newClub): newNotif = Notifications( clubName=newClub.name, clubId=newClub.key, clubphotoUrl=newClub.photoUrl, #to_pid = newClub.admin, type="Approved Club Creation Request", timestamp=dt.datetime.now().replace(microsecond=0)) newNotif.to_pid_list.append(newClub.admin) print("Notification to be inserted in club approval ", newNotif) newNotifKey = newNotif.put() data = { 'message': newClub.name, "title": "Creation Request Approved", 'id': str(newClub.key.id()), 'type': "Club" } print(data) gcmId = currentProfile.gcmId gcm_message = GCMMessage(gcmId, data) gcm_conn = GCMConnection() #gcm_conn.notify_device(gcm_message) print("The club that has been created is", newClub) req.key.delete() else: print("Request Approval Denied") newNotif = Notifications( clubName=req.club_name, clubphotoUrl=req.photoUrl, #to_pid = req.from_pid, type="Rejected Club Creation Request", timestamp=dt.datetime.now().replace(microsecond=0)) newNotif.to_pid_list.append(req.from_pid) print("Notification to be inserted in club approval rejection", newNotif) newNotifKey = newNotif.put() data = { 'message': req.club_name, "title": "Creation Request Denied", 'id': "None", 'type': "None" } print(data) gcmId = currentProfile.gcmId gcm_message = GCMMessage(gcmId, data) gcm_conn = GCMConnection() #gcm_conn.notify_device(gcm_message) req.key.delete() return message_types.VoidMessage()
def joinClubApprovalApi(self,request): if request: joinCreation = ndb.Key('Join_Creation',int(request.req_id)).get() club = joinCreation.club_id.get() profileKey = joinCreation.from_pid profile = profileKey.get() print("Retrieved Profile ",profile) if(request.action == "N"): #send notif message to the guy who has req,saying that it has been rejected newNotif = Notifications( clubName = club.name, clubId = club.key, clubphotoUrl = club.photoUrl, to_pid = joinCreation.from_pid, type = "Approval Rejection", timestamp = dt.datetime.now().replace(microsecond = 0) ) print("Notification to be inserted in join approval",newNotif) newNotifKey = newNotif.put() data = {'message': "Approval Denied","title": club.name} print (data) gcmId = profile.gcmId gcm_message = GCMMessage(gcmId, data) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message) joinCreation.key.delete() elif (club and profile and (profileKey not in club.members)): print("entered here") currentClub = club currentClub.members.append(profile.key) currentProfile = profile currentProfile.clubsJoined.append(currentClub.key) if (currentProfile.key not in currentClub.follows): print ("I've entered this because these guys are totally new") currentProfile.follows.append(currentClub.key) currentClub.follows.append(profile.key) currentClub.put() currentProfile.put() #Create Notification here where the to_pid = guy who has made the join req #Send push notification to the gcm id of this dude. newNotif = Notifications( clubName = club.name, clubId = club.key, clubphotoUrl = club.photoUrl, to_pid = joinCreation.from_pid, type = "Approved Join Request", timestamp = dt.datetime.now().replace(microsecond = 0) ) print("Notification to be inserted in join approval",newNotif) newNotifKey = newNotif.put() data = {'message': "You are now a member","title": currentClub.name} print (data) gcmId = currentProfile.gcmId gcm_message = GCMMessage(gcmId, data) gcm_conn = GCMConnection() gcm_conn.notify_device(gcm_message) joinCreation.key.delete() return message_types.VoidMessage()