use of com.pratilipi.data.type.Page in project pratilipi by Pratilipi.
the class UriAliasUtil method generateUriAlias.
public static String generateUriAlias(String oldUriAlias, String uriPrefix, String... keywords) {
String uriAlias = uriPrefix;
for (String keyword : keywords) if (keyword != null)
uriAlias += keyword.trim().toLowerCase().replaceAll("[^a-z0-9]+", "-") + "-";
uriAlias = uriAlias.replaceAll("[-]+", "-");
if (uriAlias.length() > uriPrefix.length() + 1) {
if (uriAlias.charAt(uriPrefix.length()) == '-')
uriAlias = uriPrefix + uriAlias.substring(uriPrefix.length() + 1, uriAlias.length() - 1);
else
uriAlias = uriAlias.substring(0, uriAlias.length() - 1);
} else {
return null;
}
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
for (int i = 0; ; i++) {
String aUriAlias = i == 0 ? uriAlias : uriAlias + "-" + i;
if (oldUriAlias != null && oldUriAlias.equals(aUriAlias))
return aUriAlias;
Page page = dataAccessor.getPage(aUriAlias);
if (page == null)
return aUriAlias;
}
}
use of com.pratilipi.data.type.Page in project pratilipi by Pratilipi.
the class DataAccessorGaeImpl method getPage.
@Override
public Page getPage(String uri) {
String memcacheId = _createPageEntityMemcacheId(uri);
Page page = memcache.get(memcacheId);
if (page == null) {
page = ObjectifyService.ofy().load().type(PageEntity.class).filter("URI_ALIAS", uri).order("CREATION_DATE").first().now();
if (page != null)
memcache.put(memcacheId, page);
}
if (page == null) {
page = ObjectifyService.ofy().load().type(PageEntity.class).filter("URI", uri).order("CREATION_DATE").first().now();
if (page != null)
memcache.put(memcacheId, page);
}
if (page == null) {
// Hack: This will save lots of DB queries.
page = newPage();
memcache.put(memcacheId, page);
}
return page.getId() == null ? null : page;
}
use of com.pratilipi.data.type.Page in project pratilipi by Pratilipi.
the class DataAccessorGaeImpl method getPages.
@Override
public Map<String, Page> getPages(List<String> uriList) {
Map<String, Page> pages = new HashMap<>(uriList.size());
if (uriList.size() == 0)
return pages;
List<String> memcacheIdList = new ArrayList<>(uriList.size());
for (String uri : uriList) memcacheIdList.add(_createPageEntityMemcacheId(uri));
// Fetching entities from Memcache.
Map<String, Page> keyValueMap = memcache.getAll(memcacheIdList);
// Fetching missing entities from DataStore
for (String uri : uriList) {
Page page = keyValueMap.get(_createPageEntityMemcacheId(uri));
if (page == null)
page = getPage(uri);
pages.put(uri, page);
}
return pages;
}
use of com.pratilipi.data.type.Page in project pratilipi by Pratilipi.
the class BlogPostDataUtil method createBlogPostData.
public static BlogPostData createBlogPostData(BlogPost blogPost) {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
Page blogPostPage = dataAccessor.getPage(PageType.BLOG_POST, blogPost.getId());
return createBlogPostData(blogPost, blogPostPage);
}
use of com.pratilipi.data.type.Page in project pratilipi by Pratilipi.
the class BlogPostDataUtil method _updateBlogPostPageUrl.
private static void _updateBlogPostPageUrl(BlogPost blogPost) {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
Page blogPage = dataAccessor.getPage(PageType.BLOG, blogPost.getBlogId());
Page blogPostPage = dataAccessor.getPage(PageType.BLOG_POST, blogPost.getId());
if (blogPost.getState() == BlogPostState.DELETED) {
if (blogPostPage != null)
dataAccessor.deletePage(blogPostPage);
return;
}
boolean isNew = blogPostPage == null;
if (isNew) {
blogPostPage = dataAccessor.newPage();
blogPostPage.setType(PageType.BLOG_POST);
blogPostPage.setUri(PageType.BLOG_POST.getUrlPrefix() + blogPost.getId());
blogPostPage.setPrimaryContentId(blogPost.getId());
blogPostPage.setCreationDate(new Date());
}
String uriAlias = UriAliasUtil.generateUriAlias(blogPostPage.getUriAlias(), blogPage.getUriAlias() + "/", blogPost.getTitleEn() == null ? blogPost.getTitle() : blogPost.getTitleEn());
if (isNew && uriAlias == null) {
// Do Not Return
} else if (uriAlias == blogPostPage.getUriAlias() || (uriAlias != null && uriAlias.equals(blogPostPage.getUriAlias())) || (blogPostPage.getUriAlias() != null && blogPostPage.getUriAlias().equals(uriAlias))) {
// Do Nothing.
return;
} else {
logger.log(Level.INFO, "Updating Event Page Url: '" + blogPostPage.getUriAlias() + "' -> '" + uriAlias + "'");
blogPostPage.setUriAlias(uriAlias);
}
blogPostPage = dataAccessor.createOrUpdatePage(blogPostPage);
}
Aggregations