def get_hash(string = None):
    logging.debug("get_hash")
    seed = "4b9bb860b4934a7fa17d1bedf31b78679ed3fe5f"
    random_number = random.random()
    random_string = str(random_number)
    time = get_date_time()
    
    h = ""
    if string:
        hash_string = time + seed + string
        h = hashlib.sha1(seed + string)
        #print 3
    else:
        h = hashlib.sha1(time + random_string)
    new_hash = h.hexdigest()

    return new_hash
        
        
def put_comment(self):
    logging.debug("put_post")
    if check_login(self):
        
        continue_boolean = False
        email = ""
        #try:
        session = get_current_session()
        email = session['email']
        continue_boolean = True
        #except:
        #logging.debug("gaesessions exception, do not continue")
        #continue_boolean = False
        #show_error_html(self, "session error")
        comment = self.request.get("comment")
        post_id = self.request.get("post_id")
        
        if not comment:
            logging.debug("No comment entered")
            return False, post_id
        if continue_boolean:
            ### check db, if not in db put tag
            new_hash = get_hash()
            timestamp = get_date_time()
        
            c = model.Comment(comment = comment, email = email, comment_id = new_hash, post_id = post_id, timestamp = timestamp)
            c.put()
            filters = {
                "email": email,
            }
            results, results_exist = datastore_results("Member", filters = filters, inequality_filters = None, order = None, fetch_total = 1, offset = 0, mem_key = None)
            if results_exist:
                for result in results:
                    key = result.key()
                    points = result.rep_points
                    
                    member = model.Member.get(key)
                    member.rep_points = points + 5
                    member.put()
            return True, post_id
                
    else:
        self.redirect("/")
def put_post(self):
    logging.debug("put_post")
    if check_login(self):
        
        continue_boolean = False
        email = ""
        #try:
        session = get_current_session()
        email = session['email']
        continue_boolean = True
        #except:
            #logging.debug("gaesessions exception, do not continue")
            #continue_boolean = False
            #show_error_html(self, "session error")
            
            
        if continue_boolean:
            title = self.request.get("title")
            tags = self.request.get("tags")
            entry = self.request.get("entry")
            old_hash = self.request.get("old_hash")

            
            tags_list = []
            final_list = []
            tags = tags.lower()
            tags_list = tags.split(",")
        
            for item in tags_list:
                final_item = item.strip()
                put_tag(self, final_item)
                
                final_list.append(final_item)
            new_hash = get_hash()
            timestamp = get_date_time()
            key = check_post_duplicates(old_hash)
            if key:
                p = model.Post.get(key)
                p.title = title
                p.tags = tags
                p.entry = entry
                p.tags_list = final_list
                p.timestamp = timestamp
                p.put()
                return old_hash
                
            p = model.Post(post_id = new_hash, email = email, title = title, tags = tags, entry = entry, tags_list = final_list, timestamp = timestamp, points=0)
            p.put()
            
            filters = {
                "email": email,
            }
            results, results_exist = datastore_results("Member", filters = filters, inequality_filters = None, order = None, fetch_total = 1, offset = 0, mem_key = None)
            if results_exist:
                for result in results:
                    key = result.key()
                    points = result.rep_points
                    
                    member = model.Member.get(key)
                    member.rep_points = points + 10
                    member.put()
            
            return new_hash        
    else:
        self.redirect("/")