Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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')
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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'))