本文整理汇总了Python中bookie.models.BmarkMgr.get_by_url方法的典型用法代码示例。如果您正苦于以下问题:Python BmarkMgr.get_by_url方法的具体用法?Python BmarkMgr.get_by_url怎么用?Python BmarkMgr.get_by_url使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bookie.models.BmarkMgr
的用法示例。
在下文中一共展示了BmarkMgr.get_by_url方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: posts_get
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def posts_get(request):
"""Return one or more bmarks based on search criteria
Supported criteria:
- url
TBI:
- tag={TAG}+{TAG}+
- dt={CCYY-MM-DDThh:mm:ssZ}
- hashes={MD5}+{MD5}+...+{MD5}
"""
params = request.GET
request.response_content_type = "text/xml"
try:
if "url" in params and params["url"]:
url = request.GET["url"]
bmark = BmarkMgr.get_by_url(url=url)
if not bmark:
return HTTPNotFound()
# we need to escape any html entities in things
return {"datefound": bmark.stored.strftime("%Y-%m-%d"), "posts": [bmark], "escape": escape}
else:
request.override_renderer = "string"
return '<result code="Not Found" />'
except NoResultFound:
request.override_renderer = "string"
return '<result code="Not Found" />'
示例2: posts_get
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def posts_get(request):
"""Return one or more bmarks based on search criteria
Supported criteria:
- url
TBI:
- tag={TAG}+{TAG}+
- dt={CCYY-MM-DDThh:mm:ssZ}
- hashes={MD5}+{MD5}+...+{MD5}
"""
params = request.params
request.response.content_type = 'text/xml'
LOG.debug(params)
try:
if 'url' in params and params['url']:
url = request.params['url']
LOG.debug(url)
bmark = BmarkMgr.get_by_url(url=url, username=request.user.username)
if not bmark:
return HTTPNotFound()
# we need to escape any html entities in things
return {'datefound': bmark.stored.strftime('%Y-%m-%d'),
'posts': [bmark],
'escape': escape, }
else:
request.override_renderer = 'string'
return '<result code="Not Found" />'
except NoResultFound:
request.override_renderer = 'string'
return '<result code="Not Found" />'
示例3: posts_add
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def posts_add(request):
"""Add a new bmark into the system given request params
For example usage make sure to check out the unit tests in the
test_delicious directory
"""
params = request.GET
with Authorize(request.registry.settings.get("api_key", ""), params.get("api_key", None)):
request.response_content_type = "text/xml"
if "url" in params and params["url"]:
# check if we already have this
try:
mark = BmarkMgr.get_by_url(params["url"])
mark.description = params.get("description", mark.description)
mark.extended = params.get("extended", mark.extended)
new_tags = params.get("tags", None)
if new_tags:
mark.update_tags(new_tags)
except NoResultFound:
# then let's store this thing
# if we have a dt param then set the date to be that manual
# date
if "dt" in request.params:
# date format by delapi specs:
# CCYY-MM-DDThh:mm:ssZ
fmt = "%Y-%m-%dT%H:%M:%SZ"
stored_time = datetime.strptime(request.params["dt"], fmt)
else:
stored_time = None
# we want to store fulltext info so send that along to the
# import processor
conn_str = request.registry.settings.get("sqlalchemy.url", False)
fulltext = get_fulltext_handler(conn_str)
BmarkMgr.store(
params["url"],
params.get("description", ""),
params.get("extended", ""),
params.get("tags", ""),
dt=stored_time,
fulltext=fulltext,
)
return '<result code="done" />'
else:
return '<result code="Bad Request: missing url" />'
示例4: edit_error
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def edit_error(request):
rdict = request.matchdict
params = request.params
post = request.POST
with ReqAuthorize(request, username=rdict['username']):
if 'new' in request.url:
try:
try:
bmark = BmarkMgr.get_by_url(post['url'])
except:
bmark = None
if bmark:
return {
'new': False,
'bmark': bmark,
'message': "URL already Exists",
'user': request.user,
}
bmark = BmarkMgr.store(
post['url'],
request.user.username,
post['description'],
post['extended'],
post['tags'])
# Assign a task to fetch this pages content and parse it out
# for storage and indexing.
DBSession.flush()
tasks.fetch_bmark_content.delay(bmark.bid)
except InvalidBookmark, exc:
# There was an issue using the supplied data to create a new
# bookmark. Send the data back to the user with the error
# message.
bmark = Bmark(
post['url'],
request.user.username,
desc=post['description'],
ext=post['extended'],
tags=post['tags'])
return {
'new': True,
'bmark': bmark,
'message': exc.message,
'user': request.user,
}
else:
示例5: posts_delete
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def posts_delete(request):
"""Remove a bmark from the system"""
params = request.params
request.response.content_type = 'text/xml'
if 'url' in params and params['url']:
try:
bmark = BmarkMgr.get_by_url(params['url'],
username=request.user.username)
session = DBSession()
session.delete(bmark)
return '<result code="done" />'
except NoResultFound:
# if it's not found, then there's not a bookmark to delete
return '<result code="Bad Request: bookmark not found" />'
示例6: posts_delete
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def posts_delete(request):
"""Remove a bmark from the system"""
params = request.GET
request.response_content_type = "text/xml"
with Authorize(request.registry.settings.get("api_key", ""), params.get("api_key", None)):
if "url" in params and params["url"]:
try:
bmark = BmarkMgr.get_by_url(params["url"])
session = DBSession()
session.delete(bmark)
return '<result code="done" />'
except NoResultFound:
# if it's not found, then there's not a bookmark to delete
return '<result code="Bad Request: bookmark not found" />'
示例7: bmark_add
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def bmark_add(request):
"""Add a new bookmark to the system"""
rdict = request.matchdict
if 'url' in request.params or 'hash_id' in request.params:
params = request.params
elif 'url' in request.json_body or 'hash_id' in request.json_body:
params = request.json_body
else:
request.response.status_int = 400
return {
'error': 'Bad Request: missing url',
}
user = request.user
if 'url' not in params and 'hash_id' not in rdict:
request.response.status_int = 400
return {
'error': 'Bad Request: missing url',
}
elif 'hash_id' in rdict:
try:
mark = BmarkMgr.get_by_hash(rdict['hash_id'],
username=user.username)
mark = _update_mark(mark, params)
except NoResultFound:
request.response.status_code = 404
return {
'error': 'Bookmark with hash id {0} not found.'.format(
rdict['hash_id'])
}
else:
# check if we already have this
try:
mark = BmarkMgr.get_by_url(params['url'],
username=user.username)
mark = _update_mark(mark, params)
except NoResultFound:
# then let's store this thing
# if we have a dt param then set the date to be that manual
# date
if 'dt' in request.params:
# date format by delapi specs:
# CCYY-MM-DDThh:mm:ssZ
fmt = "%Y-%m-%dT%H:%M:%SZ"
stored_time = datetime.strptime(request.params['dt'], fmt)
else:
stored_time = None
# check to see if we know where this is coming from
inserted_by = params.get('inserted_by', 'unknown_api')
mark = BmarkMgr.store(params['url'],
user.username,
params.get('description', ''),
params.get('extended', ''),
params.get('tags', ''),
dt=stored_time,
inserted_by=inserted_by,
)
# we need to process any commands associated as well
commander = Commander(mark)
mark = commander.process()
# if we have content, stick it on the object here
if 'content' in params:
content = StringIO(params['content'])
content.seek(0)
parsed = ReadContent.parse(content,
content_type="text/html",
url=mark.hashed.url)
mark.readable = Readable()
mark.readable.content = parsed.content
mark.readable.content_type = parsed.content_type
mark.readable.status_code = parsed.status
mark.readable.status_message = parsed.status_message
# we need to flush here for new tag ids, etc
DBSession.flush()
mark_data = dict(mark)
mark_data['tags'] = [dict(mark.tags[tag]) for tag in mark.tags.keys()]
return {
'bmark': mark_data,
'location': request.route_url('bmark_readable',
hash_id=mark.hash_id,
username=user.username),
}
示例8: posts_add
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def posts_add(request):
"""Add a new bmark into the system given request params
For example usage make sure to check out the unit tests in the
test_delicious directory
"""
params = request.params
request.response.content_type = 'text/xml'
if 'url' in params and params['url']:
# check if we already have this
try:
mark = BmarkMgr.get_by_url(params['url'],
username=request.user.username)
mark.description = params.get('description', mark.description)
mark.extended = params.get('extended', mark.extended)
new_tags = params.get('tags', None)
if new_tags:
mark.update_tags(new_tags)
except NoResultFound:
# then let's store this thing
# if we have a dt param then set the date to be that manual
# date
if 'dt' in request.params:
# date format by delapi specs:
# CCYY-MM-DDThh:mm:ssZ
fmt = "%Y-%m-%dT%H:%M:%SZ"
stored_time = datetime.strptime(request.params['dt'], fmt)
else:
stored_time = None
mark = BmarkMgr.store(params['url'],
request.user.username,
params.get('description', ''),
params.get('extended', ''),
params.get('tags', ''),
dt=stored_time,
inserted_by="DELICIOUS_API"
)
# if we have content, stick it on the object here
if 'content' in request.params:
content = StringIO(request.params['content'])
content.seek(0)
parsed = ReadContent.parse(content,
content_type="text/html",
url=mark.hashed.url)
mark.readable = Readable()
mark.readable.content = parsed.content
mark.readable.content_type = parsed.content_type
mark.readable.status_code = parsed.status
mark.readable.status_message = parsed.status_message
return '<result code="done" />'
else:
return '<result code="Bad Request: missing url" />'
示例9: posts_add
# 需要导入模块: from bookie.models import BmarkMgr [as 别名]
# 或者: from bookie.models.BmarkMgr import get_by_url [as 别名]
def posts_add(request):
"""Add a new bmark into the system given request params
For example usage make sure to check out the unit tests in the
test_delicious directory
"""
params = request.params
with Authorize(request.registry.settings.get('api_key', ''),
params.get('api_key', None)):
request.response_content_type = 'text/xml'
if 'url' in params and params['url']:
# check if we already have this
try:
mark = BmarkMgr.get_by_url(params['url'])
mark.description = params.get('description', mark.description)
mark.extended = params.get('extended', mark.extended)
new_tags = params.get('tags', None)
if new_tags:
mark.update_tags(new_tags)
except NoResultFound:
# then let's store this thing
# if we have a dt param then set the date to be that manual
# date
if 'dt' in request.params:
# date format by delapi specs:
# CCYY-MM-DDThh:mm:ssZ
fmt = "%Y-%m-%dT%H:%M:%SZ"
stored_time = datetime.strptime(request.params['dt'], fmt)
else:
stored_time = None
# we want to store fulltext info so send that along to the
# import processor
conn_str = request.registry.settings.get('sqlalchemy.url',
False)
fulltext = get_fulltext_handler(conn_str)
mark = BmarkMgr.store(params['url'],
params.get('description', ''),
params.get('extended', ''),
params.get('tags', ''),
dt=stored_time,
fulltext=fulltext,
)
# if we have content, stick it on the object here
if 'content' in request.params:
content = StringIO(request.params['content'])
content.seek(0)
parsed = ReadContent.parse(content, content_type="text/html")
mark.hashed.readable = Readable()
mark.hashed.readable.content = parsed.content
mark.hashed.readable.content_type = parsed.content_type
mark.hashed.readable.status_code = parsed.status
mark.hashed.readable.status_message = parsed.status_message
return '<result code="done" />'
else:
return '<result code="Bad Request: missing url" />'