def add_relationship(rel): # this condition is already tested for, but is so bad if it happens # that there is an extra check here just in case. if rel.originid == rel.relatedid: return [ ] origin = PenName.get_by_id(rel.originid) #intransaction if not origin: logging.warn("add_relationship origin pen not found: " +\ str(rel.originid)) return [ ] related = PenName.get_by_id(rel.relatedid) #intransaction if not related: logging.warn("add_relationship related pen not found: " +\ str(rel.relatedid)) return [ ] if not origin.following: origin.following = 0 if not related.followers: related.followers = 0 origin.following += 1 related.followers += 1 cached_put(origin) cached_put(related) cached_put(rel) return [ origin, related, rel ]
def delete_relationship(rel): origin = PenName.get_by_id(rel.originid) #intransaction origin.following -= 1 related = PenName.get_by_id(rel.relatedid) #intransaction related.followers -= 1 cached_put(origin) cached_put(related) cached_delete(rel.key().id(), Relationship) return [ origin, related ]
def prepare_content(handler, cpen, content): # Same index retrieval already used by pen.py NewPenName pens = PenName.gql("WHERE name_c=:1 LIMIT 1", cpen) if pens.count() != 1: handler.error(404) handler.response.out.write("Blog identifier " + cpen + " not found") return pen = pens[0]; # filter sensitive PenName fields pen.mid = 0 pen.gsid = "0" pen.fbid = 0 pen.twid = 0 pen.ghid = 0 pen.abusive = "" # retrieve reviews qres = fetch_blog_reviews(pen) # write content picurl = "img/emptyprofpic.png" if pen.profpic: picurl = "profpic?profileid=" + str(pen.key().id()) # facebook doesn't like "../" relative urls if "localhost" in handler.request.url: picurl = "../" + picurl else: picurl = "http://www.fgfweb.com/" + picurl content = re.sub('\$PENNAME', pen.name, content) content = re.sub('\$PAGEDESCR', make_page_desc(handler, pen), content) content = re.sub('\$IMGSRC', picurl, content) content = re.sub('\$PENID', str(pen.key().id()), content) content = re.sub('\$PENJSON', obj2JSON(pen), content) content = re.sub(', "abusive": ""', '', content) #bad SEO :-) content = re.sub('\$REVDATA', qres2JSON( qres.objects, "", -1, ""), content) refer = handler.request.referer if refer: refer = "<img src=\"../bytheimg?bloginqref=" +\ safeURIEncode(refer) + "\"/>\n" else: refer = "<img id=\"btwimg\" src=\"../bytheimg?bloginq=" +\ str(pen.key().id()) + "\"/>\n" content = re.sub('\$REFER', refer, content) content = re.sub('\"', "\\\"", content) #browser interp pre-parse return content