def do_registration(self, form_values): client_form = ClientForm(form_values) user_form = UserCreationForm(form_values) subscriber_form = SubscriberCreationForm(form_values) if client_form.is_valid() and user_form.is_valid() and subscriber_form.is_valid(): client = client_form.save(commit=False) client.payment_status = 0 # no payment, not so far. client.save() user = user_form.save(commit=False) user.email = subscriber_form.cleaned_data['email'] user.first_name = subscriber_form.cleaned_data['first_name'] user.last_name = subscriber_form.cleaned_data['last_name'] user.is_active = True user.is_staff = False user.save() user_groups = [Group.objects.get(name__exact=GROUP_NAME_MAP['COMPANY_ADMIN'])] user.groups.add(*user_groups) subscriber = Subscriber( user=user, client=client ) subscriber.save() return self.respond(is_saved=True) return self.respond( is_saved=False, client_form_errors=client_form.errors, user_form_errors=user_form.errors, subscriber_form_errors=subscriber_form.errors )
async def subscribe(request): schema = SubscribeSchema() data, error = schema.load(request.form) # todo 传入空的字符串不能required不能识别 if error: for key, value in error.items(): error[key] = key + ':' + ','.join(value) return resp_error(';'.join(error.values())) subscriber = Subscriber() subscriber.nick_name = data['nick_name'] subscriber.email = data['email'] subscriber.resources = data['resources'] session.add(subscriber) try: session.commit() session.close() except Exception as e: session.rollback() session.close() return resp_error(e.args) email_ = await init_email(data['nick_name'], data['email'], data['resources']) if not email_: return resp_ok('您已经成功订阅') else: return resp_error(email_)
def create_user(self, form_values): logged_in_employee = Subscriber.objects.get(user=self.user) if not UserGroupManager.is_company_admin(self.user): return self.respond(is_saved=False, auth_errors='Permission Denied') user_form = UserCreationForm(form_values) subscriber_form = SubscriberCreationForm(form_values) subscriber_form.is_company_admin = UserGroupManager.is_company_admin(self.user) subscriber_form.logged_in_employee = logged_in_employee if user_form.is_valid() and subscriber_form.is_valid(): user = user_form.save(commit=False) user.email = subscriber_form.cleaned_data['email'] user.first_name = subscriber_form.cleaned_data['first_name'] user.last_name = subscriber_form.cleaned_data['last_name'] user.is_active = True user.is_staff = False user.save() user_groups = [Group.objects.get(pk=subscriber_form.cleaned_data['role'])] user.groups.add(*user_groups) subscriber = Subscriber( user=user, client=logged_in_employee.client ) subscriber.save() return self.respond(is_saved=True, subscriber=subscriber.serialize()) return self.respond( is_saved=False, user_form_errors=user_form.errors, subscriber_form_errors=subscriber_form.errors )
def post(self): # Add the user to the list phone_number = request.form.get('From') body = request.form.get('Body') sms_message = self._create_message(phone_number, body) response = make_response(sms_message) Subscriber.create(number=phone_number, location=body) response.headers['Content-Type'] = 'text/xml' return response
def createdb(): print "Creating schema..." Subscriber.drop_table(fail_silently=True) Subscriber.create_table(fail_silently=True) Alert.drop_table(fail_silently=True) Alert.create_table(fail_silently=True) Caller.drop_table(fail_silently=True) Caller.create_table(fail_silently=True) seed_towns() print "Done."
def create_or_find_subscriber(user_id, task_id): try: found_subscriber = Subscriber.get(Subscriber.userId == user_id, Subscriber.taskId == task_id) except Subscriber.DoesNotExist: Subscriber.create(userId=user_id, taskId=task_id).save() found_subscriber = Subscriber.get(Subscriber.userId == user_id, Subscriber.taskId == task_id) return found_subscriber
def get(self, urlparam): cmn = Common() user = users.get_current_user() # create or get a subscriber... query = db.GqlQuery("SELECT * FROM Subscriber WHERE who = :1", user) numUsers = query.count(1) if numUsers == 0: sub = Subscriber(who=user) sub.put() cmn.showMain(self, urlparam)
def addSubscriber(request): form = SubscriberForm(request.POST) if form.is_valid(): subscriber = Subscriber(email=form.clean_data['email']) subscriber.put() message = mail.EmailMessage(sender=u"DunTeam <*****@*****.**>", subject=u"Дагасанд баярлалаа") message.to = subscriber.email message.body = u"Баярлалаа\nТа бидний шинэ мэдээг дагахаар амжилттай бүртгүүллээ.\nDunTeam" message.send() else: return render_to_response('index.html', {'form': form }) return HttpResponseRedirect('/')
def post(self): device_id = self.request.get('device_id') device = Device.get_by_key_name(device_id) if not device: self.response.out.write('<p>Device does not exist</p>') return email = self.request.get('email') subscriber = Subscriber(device=device, email=email) subscriber.trigger_state = "Ready" subscriber.put() self.response.out.write('<p>Subscribed</p>')
def add_subscriber(*args, **kwargs): """ add subscriber to datbase and job queue TODO: verify notify_time_str to be HH:MM. """ subscriber_dict = { 'email': kwargs.get('email'), 'station_id': kwargs.get('station_id'), 'endpoint': kwargs.get('endpoint'), 'dh_param': kwargs.get('p256dh'), 'auth': kwargs.get('auth') } notify_time_str = kwargs.get('notify_time') notify_time = dateutil.parser.parse(notify_time_str) notify_time = transform_notify_time(notify_time) subscriber_dict['notify_time'] = notify_time subscriber = Subscriber(**subscriber_dict) db_session.add(subscriber) # Commit to database, rollback if commit fails try: db_session.commit() except: db_session.rollback() raise InvalidSubscriberInputError() queue_registration_notification(subscriber) set_notification_job(subscriber) return subscriber
def handle_job(): print("I am a job") task_list = Task.select() global last_searched_time print("The last searched time is ", last_searched_time) for task in task_list: print(task.keywords) post_list = reddit_manager.get_posts(task.keywords, int(last_searched_time)) print("length of post list for ", task.keywords, " is ", len(post_list)) if len(post_list) > 0: print("We will send the email!") email_list = Subscriber.select().join(User).where( Subscriber.taskId == task.id) send_list = [] for email in email_list: print(email.email) send_list.append(email.email) #def __init__(self, destination, subject, description): email_manager.send_message(send_list, "found", task) last_searched_time = time.time()
def contact(): form = SubscriberForm() if request.method == "POST": subscriber_name = request.form["subscriber_name"] email = request.form["email"] subscriber = Subscriber(subscriber_name=subscriber_name, email=email) db.session.add(subscriber) db.session.commit() message_subject = "10 Color Theory Basics Everyone Should Know" message_body = "Thank you for choosing Inspire Blog! Enjoy new ideas every day :) \n" \ "To start with - please follow our guide on Color Theory Basics." msg = Message(subject=message_subject, body=message_body, sender="*****@*****.**", recipients=[email]) filename = "10 Color Theory Basics Everyone Should Know.pdf" with app.open_resource("static/images/messages/" + filename) as fp: msg.attach(filename, "10 Color Theory Basics Everyone Should Know/pdf", fp.read()) mail.send(msg) flash("Message sent") return redirect(url_for("index")) return render_template("index.html")
def setUp(self): """Create a router and a Subscriber""" self.router = Router(name='myrouter', fingerprint='1234', exit=False) self.subscriber = Subscriber(email='*****@*****.**', router=self.router)
def subscribe(request: Request, email: str = Form(...), state: int = Form(...), district_id: int = Form(...), DB: Session = Depends(get_db)): respDict = {} try: subscriber = Subscriber(email=email, state_id=state, district_id=district_id, active=True) create_subscriber(DB, subscriber=subscriber) respDict = { 'request': request, 'isSubscriptionSuccess': True, } return RedirectResponse(url='/subscription/success', status_code=HTTP_302_FOUND) except Exception as inst: status_code = 500 respDict = { 'request': request, 'isSubscriptionSuccess': False, 'error_message': inst } return templates.TemplateResponse('home.html', respDict, status_code=status_code)
def index(): form = Form() if request.method == 'POST' and form.validate(): email = request.form['email'] # Check that email does not already exist (not a great query, but works) if not db.session.query(Subscriber).filter( Subscriber.email == email).count(): subscriber = Subscriber(email=email, confirmed=False) db.session.add(subscriber) db.session.commit() token = generate_confirmation_token(subscriber.email) confirm_url = url_for('confirm_email', token=token, _external=True) html = render_template('emails/subscribers.html', confirm_url=confirm_url, token_time_limit=TOKEN_EXPIRATION_MINUTES) subject = "Please confirm your subscription to analyseether.com" send_email(subscriber.email, subject, html) message = Markup("Thank you for subscribing, we have sent you \ a verification email.") flash(message) return redirect(url_for('index', _anchor='signUpForm')) else: # The subscriber email exists in the database subscriber = Subscriber.query.filter_by(email=email).first_or_404() if subscriber.confirmed: # the subscriber has confirmed his email message_email_already_verified = Markup( 'This email has already been verified') flash(message_email_already_verified) else: # resent the confirmation email token = generate_confirmation_token(subscriber.email) confirm_url = url_for('confirm_email', token=token, _external=True) html = render_template( 'emails/subscribers.html', confirm_url=confirm_url, token_time_limit=TOKEN_EXPIRATION_MINUTES) subject = "Please confirm your subscription to analyseether.com" send_email(subscriber.email, subject, html) message_token_resent = Markup( 'Email exists, we have resent you \ a verification email.') flash(message_token_resent) return redirect(url_for('index', _anchor='signUpForm')) elif request.method == 'POST' and not form.validate(): for field, errors in form.errors.items(): for error in errors: message_validation_error = Markup(error) flash(message_validation_error) return redirect(url_for('index', _anchor='signUpForm')) return render_template('index.html', form=form)
def create_subscriber(db: Session, subscriber: Subscriber) -> DBSubscriber: db_subscriber = DBSubscriber(**subscriber.dict(), search_type="STDIS") if check_subscription(db, [db_subscriber]): db.add(db_subscriber) db.commit() db.refresh(db_subscriber) return True else: return False
def subscribe(): try: email = request.json['email'] try: if Subscriber.objects.get(email=email): return make_response( jsonify({"email": email + ' is already subscribed'}), 400) except Subscriber.DoesNotExist: pass subscribe = Subscriber(email=email) subscribe.save() return make_response( jsonify( {"success": "Thank you for subscribing to COVID-19 alerts"}), 201) except KeyError: abort(400)
def subscribe(what_for): email = request.form.get('email') print 'wtfsubscribe ' + str(email) + ' for ' + str(what_for) if email and validate_email(email, check_mx=True): subscriber = Subscriber.query.filter_by(email=email).first() if not subscriber: print ' no existing with this email' subscriber = Subscriber(email) db.session.add(subscriber) else: print ' found existing with this email! interests = ' + subscriber.interests_array interests = json.loads(subscriber.interests_array) print ' old intersts = ' + str(interests) if what_for not in interests: interests.append(what_for) print ' new intersts = ' + str(interests) subscriber.interests_array = json.dumps(interests) db.session.commit() return render_template('thanks.html'); return render_template('invalid.html', email=email)
def post(self): email = self.request.get('email') name = self.request.get('name') subscriber = Subscriber(email=email, name=name) db.put(subscriber) response = {'result': True} dumped = json.dumps(response) self.response.headers.add_header('content-type', 'application/json', charset='utf-8') self.response.out.write(dumped)
def index(request): if request.method == 'POST': email = request.POST['email'] name = request.POST['name'] mobile_number = request.POST["mobile_number"] try: Subscriber.objects.get(email_address=email) user_exists = True except: user_exists = False if user_exists: data = {'status': 0} return JsonResponse(data) if len(mobile_number) == 10: try: number = int(mobile_number) if re.match( r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email): subscriber = Subscriber() subscriber.email_address = email subscriber.name = name subscriber.mobile_number = '+91' + mobile_number subscriber.save() data = { 'status': 1, 'email': email, 'name': name, 'mobile_number': mobile_number } return JsonResponse(data) else: data = {'status': 3} return JsonResponse(data) except ValueError: data = {'status': 2} return JsonResponse(data) else: data = {'status': 2} return JsonResponse(data) return render(request, 'Subscribe/index.html')
def create_subscriber(body: dict) -> tuple: subscriber_schema = SubscriberSchema() subscriber_data = subscriber_schema.load(body).data new_subscriber = Subscriber(**subscriber_data) db.session.add(new_subscriber) db.session.commit() subscriber_data = subscriber_schema.dump(new_subscriber).data return subscriber_data, 201
def subscribe(request): class SubscriptionForm(forms.Form): email = forms.EmailField() form = SubscriptionForm(request.GET) if form.is_valid(): subscriber = Subscriber() subscriber.email = form.cleaned_data['email'] subscriber.campaign_cid = request.campaign_id subscriber.save() ctx = { 'email': subscriber.email, 'guid': subscriber.guid, 'confirmation_url': 'http://%s%s' % ( Site.objects.get_current().domain, reverse('subscription:confirm', kwargs={'guid': subscriber.guid}), ), } mail(subscriber.email, 'subscription/confirmation_email.html', ctx, subject='GameMine. E-mail confirmation') return JsonResponse({'success': True}) return JsonResponse({'success': False})
def get(self, channelid): """Return general information on the channel""" channel = self._getentity(Channel, channelid) if channel is None: return anysubscribers = Subscriber.all().filter('channel =', channel).fetch(1) template_values = { 'channel': channel, 'anysubscribers': anysubscribers, } path = os.path.join(os.path.dirname(__file__), 'channel_detail.html') self.response.out.write(template.render(path, template_values))
def subscribeCallback(self, bot, update): chat_id = update.message.chat_id try: if self.session.query(Subscriber.id).filter_by(id=chat_id).scalar() is not None: for user in self.session.query(Subscriber).filter(Subscriber.id == chat_id): user.subs_type = 'silent' self.session.commit() else: self.session.add(Subscriber(id=chat_id, subs_type='silent')) self.session.commit() bot.send_message(chat_id=chat_id, text="Successfully subscribed on status updates") except: logging.log(logging.ERROR, f"Error during subscriber adding: {sys.exc_info()[0]}") raise
def post(self): device_id = self.request.get("device_id") device = Device.get_by_key_name(device_id) if not device: logging.info("Unknown device") self.redirect("/") return email = self.request.get("email") if not match(r"[^@]+@[^@]+\.[^@]+", email): self.response.out.write("Invalid email") return subscriber = device.subscriber_set.filter("email =", email).filter("trigger_state =", "ready").get() if subscriber: self.response.out.write("Subscribed") return subscriber = Subscriber(device=device, email=email) subscriber.trigger_state = "ready" subscriber.put() self.response.out.write("Subscribed")
def delete(self, channelid): """Handle deletion of a channel. Only allow if there are no subscribers""" channel = self._getentity(Channel, channelid) if channel is None: return # Check the subscribers nrsubscribers = Subscriber.all().filter('channel =', channel).count() if nrsubscribers: # Can't delete if subscribers still exist self.response.set_status(405, "CANNOT DELETE - %s SUBSCRIBERS" % nrsubscribers) self.response.headers['Allow'] = "GET, POST" else: channel.delete() self.response.set_status(204)
def add_subscriber_view(request): if request.GET: response = {'errors': 0} name = request.GET.get('name', '') if name == '': response['errors'] = 1 response['name_error'] = "Введите имя" email = request.GET.get('email', '') if email == '': response['errors'] = 1 response['email_error'] = "Введите e-mail" else: try: Subscriber.objects.get(email=email) response['errors'] = 1 response['email_error'] = "Такой e-mail уже подписан" except Subscriber.DoesNotExist: pass if response['errors'] == 0: subscriber = Subscriber(name=name, email=email) subscriber.save() api = PyUniSend('5wy7awr4cunj36qds3e565bi4xi5wmzy57kzw9wo') # 5715758, 5715742 result = api.subscribe(list_ids='5715758', fields={ 'email': subscriber.email, 'Name': subscriber.name.encode("UTF-8") }, double_optin=1) print result return HttpResponse(json.dumps(response)) raise Http404()
def receive_update(): update = request.json message = update.get('message') text = message.get('text') chat_id = message.get('chat', {}).get('id') command, args = parse_text(text) commands = { '/start': lambda: [start(Subscriber.get_or_create(chat_id))], '/subscribe': lambda: [subscribe(Subscriber.get_or_create(chat_id), name) for name in args], '/unsubscribe': lambda: [ unsubscribe(Subscriber.get_or_create(chat_id), name) for name in args ], '/my_subscriptions': lambda: own_subscription_list(Subscriber.get_or_create(chat_id)), '/subscriptions': lambda: all_subscription_list() } return jsonify({})
def add_subcriber(data, instance_id=""): if instance_id: subscriber = Subscriber.get_by_id(str(instance_id)) else: subscriber = Subscriber() if data["name"]: subscriber.name = data["name"] if data["email"]: subscriber.email = data["email"] if data["fb_id"]: subscriber.fb_id = data["fb_id"] if data["distribution"]: subscriber.distribution = ndb.Key("Distribution", data["distribution"]) subscriber.put() return subscriber
def post(self): device_id = self.request.get('device_id') device = Device.get_by_key_name(device_id) if not device: logging.info('Unknown device') self.redirect('/') return email = self.request.get('email') if not match(r"[^@]+@[^@]+\.[^@]+", email): self.response.out.write('Invalid email') return subscriber = device.subscriber_set.filter('email =', email).filter( 'trigger_state =', "ready").get() if subscriber: self.response.out.write('Subscribed') return subscriber = Subscriber(device=device, email=email) subscriber.trigger_state = "ready" subscriber.put() self.response.out.write('Subscribed')
def unsubscribe(request, message_id): message = Message.objects(id=str(message_id)).first() if message and message.campaign: message.campaign.inc_optout() subscriber = Subscriber.objects(email=message.email_to).first() if subscriber: subscriber.active = False subscriber.deactivate_reason = 'Unsubscribed from message #{}'.format(message.id) subscriber.save() unsub = Unsubscribe.objects().first() if unsub and unsub.redirect_url: return redirect(unsub.redirect_url) return redirect(UNSUBSCRIBE_URL)
def subscribe(): if request.method == 'POST': app.logger.info(request) app.logger.info(request.form['email']) if request.form['email'] not in [sub.email for sub in Subscriber.query.all()]: if basic_valid_email_check(request.form['email']): new_sub = Subscriber(request.form['email']) app.logger.info("New subscriber %s", new_sub) db.session.add(new_sub) db.session.commit() flash("{} is now subscribed!".format(request.form['email'])) else: flash("{} is not a valid email!".format(request.form['email'])) else: flash("{} is already subscribed!".format(request.form['email'])) return render_template('subscribe.html')
def add_subscriber(): form = AddSubscriber() if request.method == 'POST': if form.validate() == False: return render_template('apiadmin.html', form=form) else: new_subscriber = Subscriber(form.username.data, form.password.data) db_session.add(new_subscriber) db_session.commit() flash('New subscriber added') return render_template('apiadmin.html', form=form) elif request.method == 'GET': return render_template('apiadmin.html', form=form)
def post(self, channelid): """Handles a message publish to this channel""" channel = self._getentity(Channel, channelid) if channel is None: return contenttype = self.request.headers['Content-Type'] # Save message message = Message( contenttype = contenttype, body = self.request.body, channel = channel, ) message.put() # for subscriber in Subscriber.all().filter('channel =', channel): subscribers = Subscriber.all().filter('channel =', channel) if subscribers.count(): for subscriber in subscribers: # Set up delivery of message to subscriber delivery = Delivery( message = message, recipient = subscriber, ) delivery.put() # Kick off a task to distribute message taskqueue.Task( url='/distributor/' + str(message.key()) ).add(QUEUE_DISTRIBUTION) logging.debug("Delivery queued for %d subscribers of channel %s" % (subscribers.count(), channelid)) else: logging.debug("No subscribers for channel %s" % (channelid, )) # TODO should we return a 202 instead of a 302? # Actually I think it's just a 201, as we've created a new (message) resource # self.redirect(self.request.url + 'message/' + str(message.key())) # Try to detect whether we're from the coffeeshop browser, and if so, return a 302 self.response.headers['Location'] = self.request.url + "message/%s" % str(message.key()) if contenttype == "application/x-www-form-urlencoded" and self.request.get('messagesubmissionform') == "coffeeshop": self.response.set_status(302) else: self.response.set_status(201)
def subscribe(subscribeReqModel: SubscribeReqModel, response: Response, DB: Session = Depends(get_db)): try: logger.info('Subscribe method start') subscriber = Subscriber(**subscribeReqModel.dict(), active=True) isSuccess = create_subscriber(DB, subscriber=subscriber) respDict = { 'isSubscriptionSuccess': isSuccess, } response.status_code = status.HTTP_200_OK logger.info('Subscribe method successfully ends') except Exception as inst: respDict = {'isSubscriptionSuccess': False, 'error_message': inst} response.status_code = status.HTTP_500_INTERNAL_SERVER_ERROR logger.info('Subscribe method error:') logger.info(inst) finally: return respDict
def start_subscription(email: str) -> bool: """Signup a subscriber. Args: email (str): email of subscriber signing up. Returns: bool: Indicates if signup was successful """ try: subscriber = Subscriber(email=email) db_session.add(subscriber) send_confirmation_email(email) return True except Exception as e: logging.error( f"Unable to create subscription for: {email} | Error {e}") return False
def validate(request, code): try: validation = Validation.objects.get(code=code) if validation.action == 'subscribe': try: subscriber = Subscriber.objects.get(email=validation.email) subscriber.entities.clear() except Subscriber.DoesNotExist: subscriber = Subscriber(email=validation.email) subscriber.save() entities = loads(validation.entities) for key in entities: if entities[key]: subscriber.entities.add(District.objects.get(pk=key)) subscriber.save() validation.delete() elif validation.action == 'unsubscribe': try: subscriber = Subscriber.objects.get(email=validation.email) subscriber.delete() except Subscriber.DoesNotExist: pass # don't tell the user validation.delete() else: raise Exception( "Unknown action '%s' for validation" % validation.action) unsubscribe_path = reverse( 'wbc.news.views.unsubscribe', args=['.']).strip('.') return render(request, 'news/validate.html', { 'success': True, 'action': validation.action, 'unsubscribe_link': settings.SITE_URL + unsubscribe_path }) except Validation.DoesNotExist: return render(request, 'news/validate.html', {})
def subscribe(): error = None results = None if request.method == 'POST': try: name = request.form.get('name', None) email = request.form.get('email', None) if email: person = Subscriber(email=email, name=name) db.session.add(person) db.session.commit() results = '{} has been sent a confirmation email.'.format( person.email) else: error = "Email is required." except Exception as e: print(e) error = "Error creating subscriber." return render_template("subscribe.html", error=error, results=results)
def add(self, new_item: Dict) -> Dict: subscription = subscriptions_wrapper.get_by_id( new_item['subscription_id']) subscriber = Subscriber( first_name=new_item['first_name'].title(), last_name=new_item['last_name'].title(), email=new_item.get('email'), phone=new_item.get('phone'), subscription_id=new_item['subscription_id'], paid=new_item.get('paid'), exp_date=int( (self._now + relativedelta(months=+subscription['months'])).timestamp())) db.session.add(subscriber) try: db.session.commit() except sqlalchemy.exc.IntegrityError as _: db.session.rollback() print('subscriber exists! no need to add new one') except Exception as exc: print(f'Something went wrong: {exc}')
def get(self, channelid): """Handles a GET to the /channel/{id}/subscriber/ resource """ channel = Channel.get_by_id(int(channelid)) if channel is None: self.response.out.write("Channel %s not found" % (channelid, )) self.response.set_status(404) return subscribers = [] for subscriber in Subscriber.all().filter('channel =', channel): subscribers.append({ 'subscriberid': subscriber.key().id(), 'name': subscriber.name, 'resource': subscriber.resource, 'created': subscriber.created, }) template_values = { 'channel': channel, 'subscribers': subscribers, } path = os.path.join(os.path.dirname(__file__), 'channelsubscriber.html') self.response.out.write(template.render(path, template_values))
def subscribeUser(): results = { 'borough': "", 'number': '', 'animal': None, 'prey' : None } BODY_PART_DICT = { 'la': "Left Arm", 'ra': "Right Arm", 'll': "Left Leg", "rl": "Right Leg", "t": "Tail" } def getFullSubscriber(sub): return { "number": sub.subscriber.number, "animal": { "name": sub.animal.name }, "body_part": { "name": sub.body_part.name }, "division":{ "name": sub.division.name } } ''' def get_neighborhood_wl(sub): #Get div div = SubscriberDivision.select().where(SubscriberDivision.subscriber == sub).get().division full_wl = FullSubscriber.select().where(FullSubscriber.division==div) return full_wl ''' def getPredPrey(x): fm = { "animal": x.animal.name, "division": x.division.name, "location": x.location.address, "body_part":x.body_part.name } print fm return fm if request.method == "POST": try: # Check if number exists check = None try: check = Subscriber.get(Subscriber.number == request.form['number']) except: pass if check: return render_template('error.html', error="Number already picked. Try another one.") sub = Subscriber(number=request.form['number']) sub.save() an = Animal.get(Animal.name==request.form['animal']) sa = SubscriberAnimal(subscriber=sub, animal=an) sa.save() bodypart = BodyPart.get(BodyPart.name==request.form['body_part']) sb = SubscriberBodyPart(subscriber=sub, body_part=bodypart) sb.save() div= Division.get(Division.name==request.form['borough']) sd = SubscriberDivision(subscriber=sub, division=div) sd.save() fs = FullSubscriber(subscriber=sub, animal=an, body_part=bodypart, division=div) fs.save() except peewee.IntegrityError: return render_template("error.html", error="Duplicate Phone Number. Pick Another One.") prey = [x.preyAnimal for x in PredPrey.select(PredPrey, Animal).join(Animal).where(PredPrey.predAnimal == fs.animal)] preyMurders = [] for p in prey: q = FullMurder.select(FullMurder, Animal, Division, Location, BodyPart).join(Animal).switch(FullMurder).join(Division).switch(FullMurder).join(Location).switch(FullMurder).join(BodyPart).where(FullMurder.animal == p and FullMurder.division == fs.division) preyMurders.extend([x for x in q]) watchlist = FullSubscriber.select(FullSubscriber, Subscriber, Animal, BodyPart, Division).join(Subscriber).switch(FullSubscriber).join(Animal).switch(FullSubscriber).join(BodyPart).switch(FullSubscriber).join(Division).where(FullSubscriber.division == fs.division and FullSubscriber.subscriber != fs.subscriber) results['prey'] = [getPredPrey(pm) for pm in preyMurders] results['watchlist'] = [getFullSubscriber(sub) for sub in watchlist] results['subFull'] = getFullSubscriber(fs) results['borough'] = fs.division.name results['number'] = fs.subscriber.number if request.method == 'GET': sub = None print request.args.get('number') phonenumber = request.args.get('number') try: sub = Subscriber.get(Subscriber.number== phonenumber) except: return render_template('error.html', error='Number does not exist. Subscribe by going to subscribe page and registering!') fs = FullSubscriber.get(FullSubscriber.subscriber == sub) prey = [x.preyAnimal for x in PredPrey.select(PredPrey, Animal).join(Animal).where(PredPrey.predAnimal == fs.animal)] preyMurders = [] for p in prey: q = FullMurder.select(FullMurder, Animal, Division, Location, BodyPart).join(Animal).switch(FullMurder).join(Division).switch(FullMurder).join(Location).switch(FullMurder).join(BodyPart).where(FullMurder.animal == p and FullMurder.division == fs.division) preyMurders.extend([x for x in q]) watchlist = FullSubscriber.select(FullSubscriber, Subscriber, Animal, BodyPart, Division).join(Subscriber).switch(FullSubscriber).join(Animal).switch(FullSubscriber).join(BodyPart).switch(FullSubscriber).join(Division).where(FullSubscriber.subscriber != fs.subscriber, FullSubscriber.division == fs.division) results['prey'] = [getPredPrey(pm) for pm in preyMurders] results['watchlist'] = [getFullSubscriber(sub) for sub in watchlist] results['subFull'] = getFullSubscriber(fs) results['borough'] = fs.division.name results['number'] = fs.subscriber.number return render_template("subscriber_results.html", results=results)
def post(self, channelid): """Handles a POST to the /channel/{id}/subscriber/ resource which is to add a subscriber to the channel """ # Get channel first channel = Channel.get_by_id(int(channelid)) if channel is None: self.response.out.write("Channel %s not found" % (channelid, )) self.response.set_status(404) return # Add subscriber name = self.request.get('name').rstrip('\n') resource = self.request.get('resource').rstrip('\n') subscriber = Subscriber() subscriber.channel = channel subscriber.name = name subscriber.resource = resource subscriber.put() # Not sure I like this ... re-put()ing if len(subscriber.name) == 0: subscriber.name = 'subscriber-' + str(subscriber.key().id()) subscriber.put() # If we've got here from a web form, redirect the user to the # channel subscriber resource, otherwise return the 201 if self.request.get('subscribersubmissionform'): self.redirect(self.request.path_info) else: self.response.headers['Location'] = self.request.url + str(subscriber.key().id()) + '/' self.response.set_status(201)
def delete_all_subscribers(): while Subscriber.all().fetch(CHUNK): db.delete(Subscriber.all().fetch(CHUNK))
def create(self, request): term = '' guid = None email = '' leaseid = '' try: if request.POST.get('term') and request.POST['term']: term = request.POST['term'] if request.POST.get('email') and request.POST['email']: email = request.POST['email'] if request.POST.get('guid') and request.POST['guid']: guid = request.POST['guid'] if request.POST.get('leaseid') and request.POST['leaseid']: leaseid = request.POST['leaseid'] if term==None or email==None or int(term) < 0 or int(term) > 365: return HttpResponse(json.dumps({'status':'error', 'msg':'Term and email required.Term has to be less than 365 days'}), status=400) if guid == None: resource = Resource() #guid = uuid.uuid4 #resource.guid = guid resource.callbackurl = '' resource.callbackauth = '' resource.save() print('resource saved') guid = resource.guid try: print('all_resources='+repr(Resource.objects.all())) resource = Resource.objects.get(guid=guid) except Resource.DoesNotExist: resource = None return HttpResponse(json.dumps({ 'status': 'error', 'msg': 'Resource could not be created', 'lease':'', }), status=500) try: subscriber = Subscriber.objects.get(email=email) except Subscriber.DoesNotExist: subscriber = None pass if subscriber == None: subscriber = Subscriber() subscriber.email = email subscriber.save() subscriber = Subscriber.objects.get(email=email) if not leaseid: lease = ResourceLease() print('lease.resource='+repr(resource)) lease.resource = resource lease.subscriber = subscriber lease.term = int(term) from datetime import timedelta lease.expires = datetime.datetime.now() + timedelta(days=int(term)) lease.status = 'A' lease.save() print('lease.id'+str(lease.id)) leaseid = str(lease.id) try: lease = ResourceLease.objects.get(id=leaseid) except ResourceLease.DoesNotExist: lease = None return HttpResponse(json.dumps({ 'status': 'error', 'msg': 'Resource could not be created', 'lease':'', }), status=500) queryset = ResourceSubscribers.objects.filter(resource=resource) recipients = [] for item in queryset: recipients.append(item.subscriber.email) if email not in recipients: recipients.append(email) ressub = ResourceSubscribers() ressub.resource = resource ressub.subscriber = subscriber ressub.save() return HttpResponse(json.dumps({'status':'success', 'guid':str(guid), 'leaseid':str(leaseid), 'subscribers':recipients})) except: import sys exc_type, exc_value, exc_traceback = sys.exc_info() import traceback msg = repr(traceback.format_exception(exc_type, exc_value, exc_traceback)) logger.warn(msg) return HttpResponse(json.dumps({ 'status': 'error', 'msg': msg, 'lease':'', }), status=500) finally: pass