# -*- coding: utf-8 # -*- Mode: Python; py-indent-offset: 4 -*- # $Id$ # # Copyright (c) 2006, Vahur Rebas # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """ utils """ __version__ = "$Revision$"[11:-2] from random import randint MAX_UNIQUEID_ATTEMPTS = 1000 def generateId(self, prefix='item', suffix='', rand_ceiling=999999999999): """ method copied from BTreeFolder """ id = 0 while 1: n = randint(1, rand_ceiling) id = '%s%d%s' % (prefix, n, suffix) if not hasattr(self, id): break attempt = attempt + 1 if attempt > MAX_UNIQUEID_ATTEMPTS: # Prevent denial of service raise 'Error: cannot find uniq id' return id def get_text(elem): res = u'' if not elem: return '' for line in elem.childNodes: res += line.nodeValue return res.encode('utf-8') def getChildNode(elem, target_name): for x in elem.childNodes: if x.nodeName == target_name: return x return None from time import time from md5 import md5 from random import random def gen_key(arg): t = str(time() * 1000L) r = str(random()*100000000000000000L) data = arg+ ' '+ t +' '+ r uid = md5(data).hexdigest() return uid # EOF