def get(self, result_id): """Handles """ result = ResultModel.get_by_id(int(result_id)) date = result.timestamp data = [] site = result.site_name result = result.merchants lines = result.split(r'\n') for line in lines: items = line.split(r'\t') if len(items) == 6: site = 'apple' # This is needed for 'www.bestbuy.com' data.append(items) results = ResultModel.query().order(-ResultModel.timestamp).fetch() values = { 'site_names': URLS, 'results': results, 'merchants': data, 'date': date, 'site': site } # self.session.add_flash('Some message', level='error') self.render('index.html', values)
def post(self, result_id): """Delete a results object""" if self.logged_in: result = ResultModel.get_by_id(int(result_id)) # Should delete result from site model site = result.site_name print site q = "SELECT * FROM SitesModel WHERE site_name = '%s'" % site data_entry = ndb.gql(q).fetch()[0] print data_entry results = data_entry.results.split('/') for result in results: if str(result_id) in result: results.remove(result) data_entry.results = '/'.join(results) data_entry.put() try: result.key.delete() self.session.add_flash(u'result %s successfully deleted.' % result_id, level='success') except CapabilityDisabledError: self.session.add_flash(u'App Engine Datastore is currently in read-only mode.', level='error') return self.redirect('/results') else: self.redirect('/login')
def show_result(result_id): """List all scraped data""" result = ResultModel.get_by_id(result_id) result = result.merchants data = result.split(r'\n') merchants = dict() for string in data: data = string.split(r'\t') merchants[data[0]] = data[1] return render_template('list_merchants.html', site_names=URLS, merchants=merchants)
def get_data(self, result_id): """Get data from DB by id Return dictionary with 'name': 'rate' """ result = ResultModel.get_by_id(int(result_id)) try: result = result.merchants except AttributeError: return False data = result.split(r'\n') merchants = dict() for item in data: res = item.split(r'\t') name = res[0] rate = res[1].split(' ')[0] merchants[name] = rate return merchants
def test_result(result_id): """Main page""" result = ResultModel.get_by_id(int(result_id)) date = result.timestamp data = [] site = result.site_name result = result.merchants lines = result.split(r'\n') for line in lines: items = line.split(r'\t') if len(items) == 6: site = 'apple' # This is needed for 'www.bestbuy.com' data.append(items) results = ResultModel.query().order(-ResultModel.timestamp).fetch() return render_template('test.html', site_names=URLS, results=results, merchants=data, date=date, site=site)
def delete_result(result_id): """Delete an results object""" result = ResultModel.get_by_id(result_id) # Should delete result from site model site = result.site_name q = "SELECT * FROM ResultModel WHERE site_name = '%s'" % site data_entry = ndb.gql(q).fetch() results = data_entry.results.split('/') for result in results: if str(result_id) in result: results.remove(result) data_entry.results = '/'.join(results) data_entry.put() try: result.key.delete() flash(u'result %s successfully deleted.' % result_id, 'success') return redirect(url_for('list_results')) except CapabilityDisabledError: flash(u'App Engine Datastore is currently in read-only mode.', 'info') return redirect(url_for('list_results'))