Exemple #1
0
	def test_equvalency(self):
		test = '{"test": 2.2000000000000002}'
		res1 = json.loads(test)
		fin1 = json.dumps(res1)
		self.assertEquals(test,fin1)
		
		dt = datetime.datetime.now().replace(microsecond=0)
		test = {'test':dt}
		res2 = json.dumps(test)
		fin2 = json.loads(res2)
		self.assertEquals(test['test'],fin2['test'])
Exemple #2
0
	def _update(self, item, format):
		if format == 'json':
			params = self._validate(json.loads(request.body), UpdateUser, 'edit')
		#elif format == 'atom':
		#	from lxml import etree
		#	params = User.parse_xml(etree.fromstring(request.body))
		elif format == 'html':
			params = self._validate(request.POST.mixed(), UpdateUser, 'edit')
		else:
			raise UnacceptedFormat(format)
		
		item.update_from_dict(params)
		item.save()
		return item
Exemple #3
0
	def _create(self, format, parent_id=None):
		if format == 'json':
			params = self._validate(json.loads(request.body), CreateUser, 'new')
		#elif format == 'atom':
		#	from lxml import etree
		#	params = User.parse_xml(etree.fromstring(request.body))
		elif format == 'html':
			params = self._validate(request.POST.mixed(), CreateUser, 'new')
		else:
			raise UnacceptedFormat(format)
		
		item = User.from_dict(params)
		item.save()
		return item
Exemple #4
0
	def uniques_by_article(self):
		try:
			params = json.loads(request.body)
		except:
			abort(400, detail='400 Bad Request')
		start_time = datetime.strptime(params.get('start_time',zero_formatted),dtformat)
		end_time = datetime.strptime(params.get('end_time',datetime.utcnow().strftime(dtformat)),dtformat)
		hits = meta.Session.execute(
			sql.select([access_log_t.c.path_info, sql.func.count(access_log_t.c.remote_ip.distinct()).label('hits')]).\
			where(access_log_t.c.stamp.between(start_time,end_time)).\
			group_by(access_log_t.c.path_info).\
			order_by(sql.text('hits DESC'))
		).fetchall()
		response.content_type = 'application/json'
		return json.dumps([dict(x.items()) for x in hits])
Exemple #5
0
	def _update(self, item, format):
		if format == 'json':
			from columns.lib import json
			params = self._validate(json.loads(request.body), UpdateUpload, 'edit')
		#elif format == 'atom':
		#	from lxml import etree
		#	params = Upload.parse_xml(etree.fromstring(request.body))
		elif format == 'html':
			params = self._validate(request.POST.mixed(), UpdateUpload, 'edit')
		else:
			raise UnacceptedFormat(format)
		
		item.update_from_dict(params)
		item.add_author_or_contributor(user_from_session(session))
		item.save()
		return item
Exemple #6
0
	def _update(self, item, format):
		if format == 'json':
			params = json.loads(request.body)
		#elif format == 'atom':
		#	from lxml import etree
		#	params = Setting.parse_xml(etree.fromstring(request.body))
		elif format == 'html':
			from formencode import NestedVariables
			params = NestedVariables.to_python(request.POST.mixed())
		else:
			raise UnacceptedFormat(format)
		
		item.update_from_dict(params)
		item.save()
		app_globals.clear_settings()
		return item
Exemple #7
0
	def referers(self):
		try:
			params = json.loads(request.body)
		except:
			abort(400, detail='400 Bad Request')
		start_time = datetime.strptime(params.get('start_time',zero_formatted),dtformat)
		end_time = datetime.strptime(params.get('end_time',datetime.utcnow().strftime(dtformat)),dtformat)
		referers_dict = defaultdict(int)
		for row in meta.Session.execute(access_log_t.select(access_log_t.c.stamp.between(start_time,end_time))).fetchall():
			try:
				row_url = urlparse.urlparse(row.referer_uri).host
			except:
				row_url = ''
			referers_dict[row_url] += 1
		referers = [{'referer':x,'hits':y} for x,y in referers_dict.items()]
		response.content_type = 'application/json'
		return json.dumps(referers)
Exemple #8
0
	def _create(self, format, parent_id=None):
		if format == 'json':
			params = self._validate(json.loads(request.body), CreateArticle, 'new')
		#elif format == 'atom':
		#	from lxml import etree
		#	params = Article.parse_xml(etree.fromstring(request.body))
		elif format == 'html':
			params = self._validate(request.POST.mixed(), CreateArticle, 'new')
		else:
			raise UnacceptedFormat(format)
		
		item = Article.from_dict(params, default_thumb=app_globals.settings(u'default_thumb',u'blog'))
		item.add_author_or_contributor(user_from_session(session))
		if item.published is not None:
			item.atom_id = atom.get_tag_uri(url("story", permalink=str(item.permalink), qualified=True), item.published, item.title)
		item.save()
		app_globals.clear_get_cached_article_from_id()
		app_globals.clear_get_article_from_permalink()
		return item
Exemple #9
0
	def _update(self, item, format):
		if format == 'json':
			params = self._validate(json.loads(request.body), UpdateComment, 'edit')
		#elif format == 'atom':
		#	from lxml import etree
		#	params = Comment.parse_xml(etree.fromstring(request.body))
		elif format == 'html':
			params = self._validate(request.POST.mixed(), UpdateComment, 'edit')
		else:
			raise UnacceptedFormat(format)
		
		already_published = item.published is not None
		item.update_from_dict(params)
		item.add_author_or_contributor(user_from_session(session))
		# All comments are published. This is unnessecary
		#if not already_published and item.published is not None:
		#	permalink = atom.slugify('-'.join([item.published.strftime("%Y-%m-%dT%H-%M-%S"),item.author['name']]))
		#	story_permalink = Article.get_from_id(item.article_id).permalink
		#	story_url = url('story',permalink=story_permalink)
		#	item.atom_id = atom.get_tag_uri(story_url,item.published,item.author['name'])
		item.save()
		app_globals.clear_count_comments()
		return item
Exemple #10
0
	def _create(self, format, parent_id=None):
		if format == 'json':
			params = self._validate(json.loads(request.body), CreateComment, 'new')
		#elif format == 'atom':
		#	from lxml import etree
		#	params = Comment.parse_xml(etree.fromstring(request.body))
		elif format == 'html':
			params = self._validate(request.POST.mixed(), CreateComment, 'new')
		else:
			raise UnacceptedFormat(format)
		
		params['parent'] = parent_id
		item = Comment.from_dict(params)
		item.add_author_or_contributor(user_from_session(session))
		if item.published is not None:
			user_id = item.author['name'] or str(session['user_id'])
			permalink = atom.slugify('-'.join([item.published.strftime("%Y-%m-%dT%H-%M-%S"),user_id]))
			story_permalink = meta.Session.query(Article).get(int(parent_id)).permalink
			story_url = url('story',permalink=story_permalink)
			item.atom_id = atom.get_tag_uri(story_url,item.published,user_id)
		item.save()
		app_globals.clear_count_comments()
		return item
Exemple #11
0
	def test_loads_decimal(self):
		test = '{"test": 2.2000000000000002}'
		res = json.loads(test)
		self.assertEquals(res['test'],Decimal('2.2000000000000002'))
Exemple #12
0
	def test_loads_datetime(self):
		dt = datetime.datetime.now()
		test = '{"test": ["%s"]}'%dt.strftime('%Y-%m-%dT%H:%M:%SZ')
		res = json.loads(test)
		self.assertEquals(res['test'][0],dt.replace(microsecond=0))
Exemple #13
0
	def test_loads(self):
		fp = '{"test": 1}'
		res = json.loads(fp)
		self.assertEquals(res['test'],1)
Exemple #14
0
	def process_result_value(self, value, dialect):
		return json.loads(value) if value is not None else None