def post(self, **kwargs): batch = [] blob_info = self.get_uploads('Filedata')[0] page_id = re.sub('\/edit\/page\/','',self.request.get('folder')) page_id = re.sub('\D*','', decrypt(page_id.decode('hex'))) header_image_url = images.get_serving_url(str(blob_info.key())) #update uploaded file info uploaded_file = UploadedFiles.get_by_key_name(page_id) if not uploaded_file: uploaded_file = UploadedFiles(key_name=page_id,blob=blob_info.key(),page_id=page_id) batch.append(uploaded_file) else: blobstore.delete(uploaded_file.blob.key()) uploaded_file.blob=blob_info.key() batch.append(uploaded_file) #update page info page = Page.get_by_key_name(page_id) page.header_image_url = header_image_url batch.append(page) if batch: db.put(batch) self.response.set_status(302)
def event(page_id): s = '' page = Page.get_by_key_name(str(page_id)) if page: s = 'data: %s\r\n\r\n' % page.url resp = make_response(s) resp.headers['Content-Type'] = 'text/event-stream' return resp
def get(self, **kwargs): page_id = self.request.get('page_id') try: page = Page.get_by_key_name(page_id) widgets = Widget.all().filter('page =', page).filter('deleted = ', False).order('order') except: page=None widgets=None self.render("app/fb-tab.html", page=page,widgets=widgets, method="get")
def post(self, **kwargs): try: privatekey = '792ec9274bc52418e995f355e3a8a4d1' if hashlib.md5(self.request.get("security_data") + privatekey).hexdigest() != self.request.get("security_hash"): self.abort(500) referrer = urllib.unquote(self.request.get("referrer")) referrer = referrer.split('|') uid = referrer[0] pages = referrer[1] subscriber_info = {} subscriber_info['details'] = self.request.get("details") subscriber_info['event'] = self.request.get("event") subscriber_info['productname'] = self.request.get("productname") subscriber_info['quantity'] = self.request.get("quantity") subscriber_info['reference'] = self.request.get("reference") subscriber_info['uid'] = uid subscriber_info['pages'] = pages subscriber_info['status'] = self.request.get("status") subscriber_info['type'] = self.request.get("type") subscriber_info['enddate'] = self.request.get("enddate") subscriber_info['nextperioddate'] = self.request.get("nextperioddate") subscriber_info = simplejson.dumps(subscriber_info) user = User.get_by_key_name(uid) user.subscriber_info = subscriber_info db.put(user) if self.request.get("event") == 'Active': pages = pages.split(','); batch = [] for p in pages: page = Page.get_by_key_name(p) if page: page.upgraded = '1' page.upgraded_by = user batch.append(page) db.put(batch) if self.request.get("event") == 'Inactive': pages = Page.all().filter('upgraded_by =', user) batch = [] for p in pages: p.upgraded = '0' p.upgraded_by = None batch.append(p) db.put(batch) self.response.set_status(200) except: logging.error('Listen Error') self.abort(500)
def post(self, **kwargs): #logging.info(self.request) signed_request = facebook.parse_signed_request(self.request.get('signed_request'),self.get_config('facebook','app_secret')) #logging.info(signed_request) try: user_id = signed_request['user_id'] except: user_id = None page_id = signed_request['page']['id'] liked = signed_request['page']['liked'] admin = signed_request['page']['admin'] options_dict = {} status = 'True' try: page = Page.get_by_key_name(page_id) #check active account or for expired account. if page.upgraded != '1': expire_date = page.created + datetime.timedelta(days=14) min_expire_date = datetime.datetime(2011,5,1) if (expire_date < min_expire_date): expire_date = min_expire_date if expire_date < datetime.datetime.now(): status = 'False' widgets = Widget.all().filter('page =', page).filter('deleted = ', False).order('order') options = Option.all().filter('type_reference =', page) for option in options: options_dict[option.name] = {'id': str(option.key().id()), 'value': option.value} except: page=None widgets=None options_dict = None self.render("app/fb-tab.html", page=page,widgets=widgets, method="post",options=options_dict,admin=admin,status=status)
def manage(page_id): if page_id <= 0 or 10 < page_id: return redirect(url_for('hello_world')) page = Page.get_by_key_name(str(page_id)) if request.method == 'POST': url = request.form['url'] if url.startswith('http://') or url.startswith('https://'): if page: page.url = url else: page = Page(key_name=str(page_id), url=url) page.put() return redirect(url_for('manage', page_id=page_id)) else: url = '' if page: url = page.url return render_template('manage.html', page_id=page_id, url=url)
def get(self, **kwargs): user = self.current_user admin = False method = kwargs.get('method') if method == 'scripturl': upload_url = blobstore.create_upload_url('/upload') self.response.out.write(upload_url) if method == 'headerimageurl': #pages = Page.get(user.pages) key_name = self.request.get("p") #for p in pages: # if p.id == page_id: # page = p # admin = True #if admin: page = Page.get_by_key_name(key_name) if page: header_image_url = page.header_image_url self.response.out.write(header_image_url) else: self.response.out.write('') if method == 'getwidget': widget_id = self.request.get("wid") widget = Widget.get_by_key_name(widget_id) tenr = range(1,11) if widget: widget_type = widget.type if not widget: widget_type = self.request.get("wtype").lstrip('wi-') widget = dict(type=widget_type, id=widget_id ) if widget_type: self.render('app/widgets/'+widget_type+".html", widget=widget,tenr=tenr) else: self.response.out.write("This widget cannot be found.")
def get(self, pagename): page = Page.get_by_key_name(pagename) if page: self.render_secure("page.html", page=page) else: self.redirect('/_edit' + pagename)
def post(self, **kwargs): user = self.current_user admin = False method = kwargs.get('method') if method == 'deletewidget': key_name = self.request.get("wid") widget = Widget.get_by_key_name(key_name) if widget: widget.deleted = True widget.last_modified_by = user try: db.put(widget) self.response.out.write('True') except: self.response.out.write('False') if method == 'savepageorder': page_order = self.request.get('pageorder') page_order = page_order.split(',') batch = [] for k,v in enumerate(page_order): widget = Widget.get_by_key_name(v) if widget: widget.order = k widget.last_modified_by = user batch.append(widget) try: db.put(batch) self.response.out.write('True') except: self.response.out.write('False') if method == 'savewidget': page = Page.get_by_key_name(self.request.get('pageid')) key_name = self.request.get('wid') widget = Widget.get_by_key_name(key_name) if self.request.get('wtype') == 'embedly': fields = simplejson.loads(self.request.get('wcontents')) #get_embedly_code({'id':self.request.get('wid'),"url":fields['embedly_url'],"type":"embedly"}) deferred.defer(get_embedly_code,{'id':self.request.get('wid'),"url":fields['embedly_url'],"type":"embedly"}) if self.request.get('wtype') == 'googlemaps': fields = simplejson.loads(self.request.get('wcontents')) deferred.defer(get_embedly_code,{'id':self.request.get('wid'),"url":fields['googlemaps_link'],"type":"googlemaps"}) if not widget: widget = Widget(key_name=key_name, id = key_name, type = self.request.get('wtype'), name = self.request.get('wname'), page = page, contents = self.request.get('wcontents'), last_modified_by = user ) fields = simplejson.loads(self.request.get('wcontents')) for k,v in fields.iteritems(): db_type = k.split('__') try: db_type = db_type[1] except IndexError: db_type = None logging.info(db_type) if db_type == 'text': setattr(widget, k, db.Text(v)) else: setattr(widget, k, v) else: widget.name = self.request.get('wname') widget.contents = self.request.get('wcontents') widget.last_modified_by = user fields = simplejson.loads(self.request.get('wcontents')) for k,v in fields.iteritems(): db_type = k.split('__') try: db_type = db_type[1] except IndexError: db_type = None logging.info(db_type) if db_type == 'text': setattr(widget, k, db.Text(v)) else: setattr(widget, k, v) try: db.put(widget) self.response.out.write('True') except: self.response.out.write('False') if method == 'saveoption': try: option = Option.get_by_id(int(self.request.get('id'))) except: option = None if self.request.get('otype') == 'page': link = Page.get_by_key_name(self.request.get('opageid')) if not option: option = Option( name = self.request.get('oname'), value = self.request.get('ovalue'), type = self.request.get('otype'), type_reference = link ) else: option.value = self.request.get('ovalue') try: db.put(option) self.response.out.write('True') except: self.response.out.write('False') if method == 'upgradedowngrade': try: username = self.get_config('saasy','username') password = self.get_config('saasy','password') product = self.get_config('saasy','product') qty = str(self.request.get('qty')) basic_auth = base64.b64encode('%s:%s' % (username, password)) xml_data = "<subscription><productPath>/%s</productPath><quantity>%s</quantity><no-end-date/></subscription>" % (product,qty) subscriber_info=simplejson.loads(self.current_user.subscriber_info) url = "https://api.fastspring.com/company/seedprod/subscription/%s" % subscriber_info['reference'] response = urlfetch.fetch(url=url,payload=xml_data,headers={'Authorization': 'Basic %s' % basic_auth ,'Content-Type': 'application/xml' },method=urlfetch.PUT) if response.status_code == 200: # Update Pages upgraded_pages = self.request.get('pages').split(',') pages = Page.get(user.pages) batch = [] for p in pages: if p.id in upgraded_pages: p.upgraded = '1' p.upgraded_by = user else: if p.upgraded_by: if p.upgraded_by.id == user.id: p.upgraded = '0' p.upgraded_by = None batch.append(p) db.put(batch) self.response.out.write('True') else: self.response.out.write('False') except: self.response.out.write('False')
def get(self, **kwargs): '''Get Users Pages From Facebook''' try: fb_users_pages = self.graph.get_connections("me", "accounts") fb_page_ids = [] for p in fb_users_pages['data']: #if p['category'] != 'Application' or p['id'] == '141947329155355': try: if p['name']: fb_page_ids.append(p["id"]) except: pass fb_pages = self.graph.get_objects(fb_page_ids) '''Update Pages Cache''' batch = [] for k,fb_page in fb_pages.items(): try: picture = fb_page["picture"] except KeyError: picture = None try: fan_count = fb_page["fan_count"] except KeyError: fan_count = None try: has_added_app = fb_page["has_added_app"] except KeyError: has_added_app = None try: category = fb_page["category"] except KeyError: category = None page = Page.get_by_key_name(fb_page["id"]) if not page: page = Page(key_name=str(fb_page["id"]), id=str(fb_page["id"]), name=fb_page["name"], link=fb_page["link"], category=category, picture=picture, fan_count=str(fan_count), has_added_app=has_added_app ) batch.append(page) else: page.picture = picture page.fan_count=str(fan_count) page.has_added_app = has_added_app batch.append(page) if batch: page_keys = db.put(batch) user = self.current_user user.pages = page_keys db.put(user) except: pass """Get Users Pages""" try: user = self.current_user pages = Page.get(user.pages) self.render("app/dashboard.html", admin=True,pages=pages) except: pass