Example #1
0
def myheart(db):
    """
		列出全部含有心的收藏,同时可以进行编辑了.
	"""

    def buildtagurl(cid, tag):
        url = "/my/"
        v = []
        if cid:
            v.append("cid=%s" % cid)
        if tag:
            v.append("tag=%s" % urllib.quote(tag))
        if v:
            return url + "?" + "&".join(v)
        return url

    data = []
    alltags = set()
    for urlid, cid, url, title, tags, notes, pt, thisarchive, isheart in getUrls(db):
        for x in tags:
            alltags.add('"%s"' % x.replace('"', '\\"'))

        if isheart != 1:
            continue

        thistags = []
        for t in tags:
            thistags.append((t, buildtagurl(0, t)))  # 全局的Tag

        data.append((urlid, url, title, cid, tags, notes, pt, thistags, isheart, thisarchive))

    allcats = dict([(cid, title) for cid, title in getCategory(db)])
    ret = template("myheart", allcategorys=allcats, bookmarks=data, tags=",".join(list(alltags)), count=len(data))
    return compressit(ret)
Example #2
0
def myheart(db):
    """
		列出全部含有心的收藏,同时可以进行编辑了.
	"""
    def buildtagurl(cid, tag):
        url = '/my/'
        v = []
        if cid:
            v.append('cid=%s' % cid)
        if tag:
            v.append('tag=%s' % urllib.quote(tag))
        if v:
            return url + '?' + '&'.join(v)
        return url

    data = []
    alltags = set()
    for urlid, cid, url, title, tags, notes, pt, thisarchive, isheart in getUrls(
            db):
        for x in tags:
            alltags.add('"%s"' % x.replace('"', '\\"'))

        if isheart != 1: continue

        thistags = []
        for t in tags:
            thistags.append((t, buildtagurl(0, t)))  #全局的Tag

        data.append((urlid, url, title, cid, tags, notes, pt, thistags,
                     isheart, thisarchive))

    allcats = dict([(cid, title) for cid, title in getCategory(db)])
    ret = template('myheart',
                   allcategorys=allcats,
                   bookmarks=data,
                   tags=','.join(list(alltags)),
                   count=len(data))
    return compressit(ret)
Example #3
0
def my(db):
	def getparams():
		#返回catid(str),pageno
		cid = int(request.GET.get('cid','0'))
		pn = int(request.GET.get('pn','1'))
		tag = request.GET.get('tag','').lower()
		return cid,pn,tag
	def buildurl(cid,tag,pn):
		url = '/my/'
		v = []
		if cid:
			v.append('cid=%s' % cid)
		if tag:
			v.append('tag=%s' % tag)
		if pn != 0:
			v.append('pn=%s' % pn)
		if v:
			return url+'?'+'&'.join(v)
		return url
	def buildtagurl(cid,tag):
		url = '/my/'
		v = []
		if cid:
			v.append('cid=%s' % cid)
		if tag:
			v.append('tag=%s' % urllib.quote(tag))
		if v:
			return url+'?'+'&'.join(v)
		return url

	updatemsg = versionupdated(db)
	curcid,curpn,curtag = getparams() #当前的catid,当前的curpn,当前的书签.
	#---列出全部的类目信息以及书签---
	data = []
	cats = defaultdict(int) #已经被使用的Category{id:count}
	alltags = set()

	for urlid,cid,url,title,tags,notes,pt,thisarchive,isheart in getUrls(db):
		cats[cid] += 1

		for x in tags:
			alltags.add('"%s"' % x.replace('"','\\"'))

		#选择了类目的
		if curcid and curcid != cid: continue
		#选择了Tag
		if curtag and (curtag not in tags): continue

		thistags = []
		for t in tags:
			thistags.append( (t,buildtagurl(0,t)) ) #全局的Tag

		data.append( (urlid,url,title,cid,tags,notes,pt,thistags,isheart,thisarchive) )

	if not data: #没有数据
		if curcid or curtag: #可能是这个目录/Tag下没了(最后一条)
			redirect("/my/")

	categorys = [] #[ [(url,title,count)] ]  #全部有数据的Category的信息.
	allcats   = {} #全部的Category信息.
	emptycats = {} #空的Category信息

	if cats: #用户全部的有效目录信息.
		defaultcatid = 0
		for cid,title in getCategory(db):
			defaultcatid = cid

			allcats[cid]=title
			if cid not in cats: #有收藏的
				emptycats[cid]=title

		#这里按照真正的categoryid排下,免得出现不断位置排列的问题.
		v = [(count,catid) for catid,count in cats.iteritems()]
		v.sort(reverse=True)
		tmp = []
		for count,catid in v:
			if catid not in allcats: continue #有这个发生,就说明用户删除了含有收藏的收藏夹.
			tmp.append( (buildurl(catid,'',0),allcats[catid],count) )
			if len(tmp) == 6:
				categorys.append(tmp)
				tmp = []
		if tmp:
			cnt = 6 - len(tmp)
			for x in xrange(cnt):
				tmp.append( ('',0,0) )
			categorys.append(tmp)
		#--禁止删除默认收藏夹--
		if defaultcatid in emptycats:
			del emptycats[defaultcatid]
	#计算pagecount	
	pagecount = 1+(len(data)-1)/RECORD_PER_PAGE
	prevurl = buildurl(curcid,curtag,curpn-1)
	nexturl = buildurl(curcid,curtag,curpn+1)

	pages = (curpn,pagecount,prevurl,nexturl)

	s = RECORD_PER_PAGE*(curpn-1)
	bookmarks = data[s:s+RECORD_PER_PAGE]

	ret = template('my',
		categorys=categorys, #当前已经有收藏的收藏夹
		curcatinfo=(allcats.get(curcid,''),len(data)),
		allcategorys=allcats,
		emptycategorys=emptycats,
		bookmarks=bookmarks,
		pages=pages,
		updatemsg=updatemsg,
		disabled = not needarchive(db),
		tags=','.join(list(alltags)))
	return ret