Пример #1
0
    def get(self):
        from application import adminmodel as model
        model.setup(self.request, self.response)
        sourceKey = common.getValidatedParam(self.request, self.response,
                                             'sourceKey', None, None)
        storyKey = common.getValidatedParam(self.request, self.response,
                                            'storyKey', None, None)

        if storyKey:
            logging.info('attempting to reimport story')
            from application import adminmodel as model
            model.setup(self.request, self.response)
            model.reimportStory(storyKey)
            self.response.out.write(
                '<a href="/admin">Return to Admin Home</a>')
        elif sourceKey:
            first = common.getValidatedParam(self.request, self.response,
                                             'first', None, 'number')
            reimport = common.getValidatedParam(self.request, self.response,
                                                'reimport', False, 'bool')
            last = common.getValidatedParam(self.request, self.response,
                                            'last', 0, 'number')
            model.importStories(sourceKey, first, last, reimport)
            self.response.out.write(
                '<a href="/admin">Return to Admin Home</a>')
        else:
            self.response.out.write(
                'No storyKey provided. Could not reimport story <br/> requestUri: {0}'
                .format(self.request.url))
Пример #2
0
 def post(self):
     urlSafeSourceKey = common.getValidatedParam(self.request,
                                                 self.response, 'sourceKey',
                                                 None, None)
     confirm = common.getValidatedParam(self.request, self.response,
                                        'confirm', None, None)
     if confirm and confirm == 'DELETE':
         if urlSafeSourceKey:
             sourceKey = model.ndb.Key(urlsafe=urlSafeSourceKey)
             source = sourceKey.get()
             if source:
                 model.clearDataStore('Story', source.title)
                 source.storyCount = 0
                 source.wordCount = 0
                 source.put()
                 self.response.out.write(
                     'Deleted all stories from: {0}</br>'.format(
                         source.title))
             else:
                 self.response.out.write('Invalid source key recieved.')
         else:
             self.response.out.write('No source key passed in.<br/>')
     else:
         self.response.out.write(
             'Invalid confirm string. Delete aborted.<br/>')
     self.response.out.write('<a href="/admin">Return to Admin Home</a>')
Пример #3
0
	def get(self):
		from application import adminmodel as model
		import urllib
		
		#model.sourceRecount()
		
		pageSize = common.getValidatedParam(self.request, self.response, 'pageSize', 20, 'number')
		offset = common.getValidatedParam(self.request, self.response, 'offset', 0, 'number')
		filters = common.getValidatedParam(self.request, self.response, 'filters', None, 'dict')
		order = common.getValidatedParam(self.request, self.response, 'order', None, 'list')
		
		logging.info(order)		
		
		storyResults = model.getStories(filters, order, pageSize, offset)
		sourceResults = model.getSources()
		
		sources = []
		for s in sourceResults:
			if s.storyCount:
				wps = s.wordCount / s.storyCount
			else:
				wps = 'N/A'
			sources.append({
				'title': s.title
				, 'storyCount' : s.storyCount
				, 'wordCount' : s.wordCount
				, 'wps': wps
				, 'urlSafeKey' : s.key.urlsafe()
				, 'urlSafeTitle':urllib.quote_plus(s.title)
			})

		stories = []
		for s in storyResults:
			stories.append({
				'title' : s.title
				, 'creator' : s.creator
				, 'score':s.score
				, 'publication' : s.firstPub.publication
				, 'wordCount' : s.wordCount
				, 'urlSafeKey' : s.key.urlsafe()
			})		 

			 
		template_values = {'stories':stories, 
			'sources':sources, 
			'filterString':common.getParamString(self.request, self.response, 'filters'),
			'order':order,
			'orderString':common.getParamString(self.request, self.response, 'order')
		}
		logging.info('orderString: {0}'.format(template_values['orderString']))
		self.response.out.write(template.render(tpath+'admin.html', template_values))
Пример #4
0
	def get(self):
		urlSafeStoryKey = common.getValidatedParam(self.request, self.response, 'storyKey', None, None)
		
		if urlSafeStoryKey:
			storyKey = model.ndb.Key(urlsafe=urlSafeStoryKey)
			story = storyKey.get()
			if story:
				self.response.out.write("<a href='/admin'>Return to Admin Home</a>&nbsp;&nbsp;")
				self.response.out.write("<a href='/admin/import?storyKey={0}'>Reimport Story</a>".format(urlSafeStoryKey))
				self.response.out.write("<br/>")
				self.response.out.write("<!DOCTYPE html><html><head><meta charset='utf-8'/></head><body style='width:550px;border:1px solid black; padding:25px;'>")			
				self.response.out.write("Title: {0}<br/>".format(model.encodeString(story.title)))
				if story.creator and story.creator[0]:
					self.response.out.write("Author: {0}<br/>".format(story.creator[0]))		
				if story.wordCount:		
					self.response.out.write("Word Count: {0}<br/>".format(story.wordCount))
				self.response.out.write("Publication: {0}<br/>".format(story.firstPub.publication))
				if story.firstPub.date:
					self.response.out.write("Publication Date: {0}</br>".format(story.firstPub.date))
				self.response.out.write("URL: <a target='_blank' href='{0}'>{0}</a><br/>".format(story.firstPub.url))
				social = ['pageViews','facebook','twitter','comments','altScore']
				for s in social:
					if hasattr(story.firstPub, s) and getattr(story.firstPub, s) != None:
						self.response.out.write('{0}: {1}<br/>'.format(s, getattr(story.firstPub,s)))
				
				if story.text:
					self.response.out.write(model.encodeString(story.text))
				if story.creatorInfo:
					self.response.out.write("<hr/>{0}".format(model.encodeString(story.creatorInfo)))
				self.response.out.write("</body></html>")
			else:
				self.response.out.write('Invalid storyKey provided')
		else:
			self.response.out.write('No storyKey provided')	
		self.response.out.write("<a href='/admin'>Return to Admin Home</a>")
Пример #5
0
	def get(self):
		user = getUserAndSetupStream(self.request, self.response)

		anchorId = common.getValidatedParam(self.request, self.response, 'anchorKey', None, None)
		if anchorId:
			anchor = model.getAnchor(anchorId, 'url')
		else:
			anchor = None
		includeAnchor = common.getValidatedParam(self.request, self.response, 'includeAnchor', True, 'bool')
		numPrevious = common.getValidatedParam(self.request, self.response, 'numPrevious', 0, 'number')
		numAfter = common.getValidatedParam(self.request, self.response, 'numAfter', 0, 'number')
		fullText = common.getValidatedParam(self.request, self.response, 'fullText', False, 'bool')
						
		stories = model.getStories(anchor, includeAnchor, numPrevious, numAfter, fullText)

		self.response.content_type = 'text/json'		
		self.response.out.write(common.json.dumps(stories))
Пример #6
0
	def post(self):
		urlSafeSourceKey = common.getValidatedParam(self.request, self.response, 'sourceKey',None, None)
		confirm = common.getValidatedParam(self.request, self.response, 'confirm', None, None)
		if confirm and confirm == 'DELETE':
			if urlSafeSourceKey:
				sourceKey = model.ndb.Key(urlsafe=urlSafeSourceKey)
				source = sourceKey.get()
				if source:
					model.clearDataStore('Story', source.title)
					source.storyCount = 0
					source.wordCount = 0
					source.put()
					self.response.out.write('Deleted all stories from: {0}</br>'.format(source.title))
				else:
					self.response.out.write('Invalid source key recieved.')
			else:
				self.response.out.write('No source key passed in.<br/>')
		else:
			self.response.out.write('Invalid confirm string. Delete aborted.<br/>')	
		self.response.out.write('<a href="/admin">Return to Admin Home</a>')
Пример #7
0
	def get(self):
		from application import adminmodel as model
		model.setup(self.request, self.response)
		sourceKey = common.getValidatedParam(self.request, self.response, 'sourceKey', None, None)
		storyKey = common.getValidatedParam(self.request, self.response, 'storyKey', None, None)

		if storyKey:
			logging.info('attempting to reimport story')
			from application import adminmodel as model
			model.setup(self.request, self.response)
			model.reimportStory(storyKey)
			self.response.out.write('<a href="/admin">Return to Admin Home</a>')
		elif sourceKey:
			first = common.getValidatedParam(self.request, self.response, 'first', None, 'number')
			reimport = common.getValidatedParam(self.request, self.response, 'reimport', False, 'bool')
			last = common.getValidatedParam(self.request, self.response, 'last', 0, 'number')
			model.importStories(sourceKey, first, last, reimport)
			self.response.out.write('<a href="/admin">Return to Admin Home</a>')
		else:
			self.response.out.write('No storyKey provided. Could not reimport story <br/> requestUri: {0}'.format(self.request.url))
Пример #8
0
    def get(self):
        urlSafeStoryKey = common.getValidatedParam(self.request, self.response,
                                                   'storyKey', None, None)

        if urlSafeStoryKey:
            storyKey = model.ndb.Key(urlsafe=urlSafeStoryKey)
            story = storyKey.get()
            if story:
                self.response.out.write(
                    "<a href='/admin'>Return to Admin Home</a>&nbsp;&nbsp;")
                self.response.out.write(
                    "<a href='/admin/import?storyKey={0}'>Reimport Story</a>".
                    format(urlSafeStoryKey))
                self.response.out.write("<br/>")
                self.response.out.write(
                    "<!DOCTYPE html><html><head><meta charset='utf-8'/></head><body style='width:550px;border:1px solid black; padding:25px;'>"
                )
                self.response.out.write("Title: {0}<br/>".format(
                    model.encodeString(story.title)))
                if story.creator and story.creator[0]:
                    self.response.out.write("Author: {0}<br/>".format(
                        story.creator[0]))
                if story.wordCount:
                    self.response.out.write("Word Count: {0}<br/>".format(
                        story.wordCount))
                self.response.out.write("Publication: {0}<br/>".format(
                    story.firstPub.publication))
                if story.firstPub.date:
                    self.response.out.write(
                        "Publication Date: {0}</br>".format(
                            story.firstPub.date))
                self.response.out.write(
                    "URL: <a target='_blank' href='{0}'>{0}</a><br/>".format(
                        story.firstPub.url))
                social = [
                    'pageViews', 'facebook', 'twitter', 'comments', 'altScore'
                ]
                for s in social:
                    if hasattr(story.firstPub,
                               s) and getattr(story.firstPub, s) != None:
                        self.response.out.write('{0}: {1}<br/>'.format(
                            s, getattr(story.firstPub, s)))

                if story.text:
                    self.response.out.write(model.encodeString(story.text))
                if story.creatorInfo:
                    self.response.out.write("<hr/>{0}".format(
                        model.encodeString(story.creatorInfo)))
                self.response.out.write("</body></html>")
            else:
                self.response.out.write('Invalid storyKey provided')
        else:
            self.response.out.write('No storyKey provided')
        self.response.out.write("<a href='/admin'>Return to Admin Home</a>")
Пример #9
0
	def get(self):
		urlSafeSourceKey = common.getValidatedParam(self.request, self.response, 'sourceKey',None, None)
		if urlSafeSourceKey:
			source = model.ndb.Key(urlsafe=urlSafeSourceKey).get()
			if source:
				s = "<!DOCTYPE html><html><body><form action='/admin/delete' method='POST'>"
				s += "You are about to delete all stories imported from {0}<br/>".format(source.title)
				s += "To proceed, enter 'DELETE' (all caps) below and submit<br/>"
				s +="<input type='text' name='confirm' autocomplete='off'/><input type='submit'/><input name='sourceKey' type='hidden' value='{0}'/>".format(urlSafeSourceKey)
				s +="</form></body</html>"
				self.response.out.write(s)
			else:
				response.out.write('Invalid source key passed in.<br/>')
		else:
			self.response.out.write('No source key passed in.<br/>')
		self.response.out.write('<a href="/admin">Return to Admin Home</a>')
Пример #10
0
 def get(self):
     urlSafeSourceKey = common.getValidatedParam(self.request,
                                                 self.response, 'sourceKey',
                                                 None, None)
     if urlSafeSourceKey:
         source = model.ndb.Key(urlsafe=urlSafeSourceKey).get()
         if source:
             s = "<!DOCTYPE html><html><body><form action='/admin/delete' method='POST'>"
             s += "You are about to delete all stories imported from {0}<br/>".format(
                 source.title)
             s += "To proceed, enter 'DELETE' (all caps) below and submit<br/>"
             s += "<input type='text' name='confirm' autocomplete='off'/><input type='submit'/><input name='sourceKey' type='hidden' value='{0}'/>".format(
                 urlSafeSourceKey)
             s += "</form></body</html>"
             self.response.out.write(s)
         else:
             response.out.write('Invalid source key passed in.<br/>')
     else:
         self.response.out.write('No source key passed in.<br/>')
     self.response.out.write('<a href="/admin">Return to Admin Home</a>')
Пример #11
0
    def get(self):
        from application import adminmodel as model
        import urllib

        #model.sourceRecount()

        pageSize = common.getValidatedParam(self.request, self.response,
                                            'pageSize', 20, 'number')
        offset = common.getValidatedParam(self.request, self.response,
                                          'offset', 0, 'number')
        filters = common.getValidatedParam(self.request, self.response,
                                           'filters', None, 'dict')
        order = common.getValidatedParam(self.request, self.response, 'order',
                                         None, 'list')

        logging.info(order)

        storyResults = model.getStories(filters, order, pageSize, offset)
        sourceResults = model.getSources()

        sources = []
        for s in sourceResults:
            if s.storyCount:
                wps = s.wordCount / s.storyCount
            else:
                wps = 'N/A'
            sources.append({
                'title': s.title,
                'storyCount': s.storyCount,
                'wordCount': s.wordCount,
                'wps': wps,
                'urlSafeKey': s.key.urlsafe(),
                'urlSafeTitle': urllib.quote_plus(s.title)
            })

        stories = []
        for s in storyResults:
            stories.append({
                'title': s.title,
                'creator': s.creator,
                'score': s.score,
                'publication': s.firstPub.publication,
                'wordCount': s.wordCount,
                'urlSafeKey': s.key.urlsafe()
            })

        template_values = {
            'stories':
            stories,
            'sources':
            sources,
            'filterString':
            common.getParamString(self.request, self.response, 'filters'),
            'order':
            order,
            'orderString':
            common.getParamString(self.request, self.response, 'order')
        }
        logging.info('orderString: {0}'.format(template_values['orderString']))
        self.response.out.write(
            template.render(tpath + 'admin.html', template_values))
Пример #12
0
	def post(self):
		user = getUserAndSetupStream(self.request, self.response)	
		stories = common.getValidatedParam(self.request, self.response, 's', None, 'json')			
		updatedStories = model.updateStream(stories)
		
		self.response.out.write(common.json.dumps(updatedStories))