示例#1
0
 def post(self):
   user = self.getAuthentificatedUser()
   if not user:
     return
   try:
     id = int(self.request.get('id'))
     topic = Topic().get(db.Key.from_path('Topic', id))
     preview = self.request.get('preview', None)
     if preview is not None:
       forum = self.getForumInstance()
       postmarkup = create(use_pygments=False)
       body = strip_ml_tags(self.request.get('body'))
       body2 = postmarkup(body)
       template_values = {
         'url' : users.CreateLogoutURL(self.request.uri),
         'user' : user,
         'forum' : forum,
         'topic' : topic,
         'body' : body,
         'body2' : body2,
         'page' : 100
       }
       path = os.path.join(os.path.dirname(__file__), os.path.join('templates', 'previewPost.htm'))
       self.response.out.write(template.render(path, template_values))
       return
   except:
      self.redirect('/')
      return
   post = Post() #parent=topic.key()
   post.topic = topic
   if users.get_current_user():
     post.author = users.get_current_user()
   body = db.Text(strip_ml_tags(self.request.get('body')))
   postmarkup = create(use_pygments=False)
   post.body = postmarkup(body)
   # replace('\n','<br />')
   if post.body != '':
     post.put()
     # index it!
     ix = getdatastoreindex("post_"+str(post.key().id()), schema=SEARCHSCHEMA)
     writer = ix.writer()
     writer.add_document(body=u"%s" % post.body)
     writer.commit()
     # end index
     mailAdditionalText = """ ... testing e-mail notification. Sorry if you get this message accidently."""
     post.sendMailToAll(user.email(), mailAdditionalText)
     #####
     #message = mail.EmailMessage(sender=user.email(), subject="New message in small-forum")
     #message.to = "log1 (sms) <*****@*****.**>"
     #message.body = post.body
     #message.send()
     #####
   # To Do
   if self.request.get('page'):
     self.redirect('/view?id=' + str(self.request.get('id')) + '&page=' + self.request.get('page'))
   else:
     self.redirect('/view?id=' + str(self.request.get('id')))
 def post(self):
   user = self.getAuthentificatedUser()
   if not user:
     return
   try:
     id = int(self.request.get('id'))
     topic = Topic().get(db.Key.from_path('Topic', id))
   except:
      self.redirect('/')
      return
   post = Post(parent=topic.key())
   post.topic = topic
   if users.get_current_user():
     post.author = users.get_current_user()
   body = db.Text(strip_ml_tags(self.request.get('body')))
   postmarkup = create(use_pygments=False)
   post.body = postmarkup(body)
   # replace('\n','<br />')
   if post.body != '':
     post.put()
     message = mail.EmailMessage(sender=user.email(), subject="New message in small-forum")
     message.to = "log1 <*****@*****.**>"
     message.body = post.body + """ ... testing e-mail notification. Sorry if you get this message accidently."""
     message.send()
   #topic = Topic().all().filter('id =', int(self.request.get('id')))
   #topic = topic[0]
   #topic.getUserList()
   # To Do
   if self.request.get('page'):
     self.redirect('/view?id=' + str(self.request.get('id')) + '&page=' + self.request.get('page'))
   else:
     self.redirect('/view?id=' + str(self.request.get('id')))
 def post(self):
   user = self.getAuthentificatedUser()
   if not user:
     return
   id = self.request.get('id')
   try:
     thread = Thread.get(db.Key.from_path('Thread', int(id)))
   except:
     return
   name = strip_ml_tags(self.request.get('name'))
   if name == '':
     template_values = {
       'topics' : self.topics,
       'name' : name,
     }
   else:
     topic = Topic() #parent=thread
     topic.thread = thread
     topic.name = name
     if users.get_current_user():
       topic.author = users.get_current_user()
     topic.put()
     mode = self.request.get('mode')
     self.redirect('/view?id=' + str(topic.key().id()))
     return 
     template_values = {
       'topics' : self.topics,
       'name' : '',
     }
   path = os.path.join(os.path.dirname(__file__), os.path.join('templates', 'addTopic.htm'))
   self.response.out.write(template.render(path, template_values))
示例#4
0
  def post(self):
    user = self.getAuthentificatedUser()
    if not user:
      return
    try:
      id = int(self.request.get('post_id'))
      post = Post().get(db.Key.from_path('Post', id))
      if post.author != user:
        self.redirect('/')
        return
      body = db.Text(strip_ml_tags(self.request.get('body')))
      postmarkup = create(use_pygments=False)
      post.body = postmarkup(body)
      # replace('\n','<br />')
      if post.body != '':
        post.put()
          # re-index it!
        ix = getdatastoreindex("post_"+str(post.key().id()), schema=SEARCHSCHEMA)
        writer = ix.writer()
        writer.add_document(body=u"%s" % post.body)
        writer.commit()   
    except:
      pass
 
    if self.request.get('page'):
      self.redirect('/view?id=' + str(self.request.get('id')) + '&page=' + self.request.get('page'))
    else:
      self.redirect('/view?id=' + str(self.request.get('id')))
示例#5
0
文件: main.py 项目: ahyangyi/killard
 def post(self):
   user = self.getAuthentificatedUser()
   if not user:
     return
   try:
     id = int(self.request.get('id'))
     topic = Topic().get(db.Key.from_path('Topic', id))
   except:
      self.redirect('/')
      return
   post = Post(parent=topic.key())
   post.topic = topic
   if users.get_current_user():
     post.author = users.get_current_user()
   body = db.Text(strip_ml_tags(self.request.get('body')))
   postmarkup = create(use_pygments=False)
   post.body = postmarkup(body)
   # replace('\n','<br />')
   if post.body != '':
     post.put()
     #mailAdditionalText = """ ... testing e-mail notification. Sorry if you get this message accidently."""
     #post.sendMailToAll(user.email(), mailAdditionalText)
     #####
     #message = mail.EmailMessage(sender=user.email(), subject="New message in small-forum")
     #message.to = "log1 (sms) <*****@*****.**>"
     #message.body = post.body
     #message.send()
     #####
   # To Do
   if self.request.get('page'):
     self.redirect('/view?id=' + str(self.request.get('id')) + '&page=' + self.request.get('page'))
   else:
     self.redirect('/view?id=' + str(self.request.get('id')))
 def post(self):
   user = self.getAuthentificatedUser()
   if not user:
     return
   userData = self.getUser(self.user)
   userData.name = strip_ml_tags(self.request.get('name'))
   userData.lastName = strip_ml_tags(self.request.get('lastName'))
   userData.cameFrom = strip_ml_tags(self.request.get('from'))
   userData.webpage = self.request.get('webpage')
   if self.request.get('avatar'):
     try:
       avatar = db.Blob(images.resize(self.request.get('avatar'), 100, 100))
       userData.avatar = avatar
     except:
       pass
   userData.put()
   self.redirect('/myProfile')
 def post(self):
   if self.checkIfAuthentificatedUserIsAdmin():
     name = strip_ml_tags(self.request.get('name'))
     if name != '':
       thread = Thread()
       thread.name = name
       thread.position = int(self.request.get('position'))
       thread.put()
   self.redirect('/?mode=admin')
 def post(self):
   if self.checkIfAuthentificatedUserIsAdmin():
     id = int(self.request.get('id'))
     try:
       thread = Thread.get(db.Key.from_path('Thread', int(id)))
       name = strip_ml_tags(self.request.get('name'))
       if name != '':
         thread.name = name
         thread.put()
     except:
       pass
   self.redirect('/?mode=admin')
示例#9
0
 def post(self):
   user = self.getAuthentificatedUser()
   forum = self.getForumInstance()
   whatTextSearchFor = strip_ml_tags(self.request.get('text'))
   whereSearch = self.request.get('where')
   #self.response.out.write(whatTextSearchFor + ' .. ' + str(whereSearch))
   # where to find results? in fourm, thread or single topic
   # can i do it simpler ?  
   kind = None
   if int(whereSearch) == 0:
     kind = 'Forum'
   if not kind:
     try:
       baseEntity = db.get(db.Key.from_path('Thread', int(whereSearch)))
       kind = baseEntity.kind()
     except:
       pass
   if not kind:
     try:
       baseEntity = db.get(db.Key.from_path('Topic', int(whereSearch)))
       kind = baseEntity.kind()
     except:
       pass
   #self.response.out.write(kind)
   if kind == 'Topic':
     self.postKeys = self.searchTextInTopic(baseEntity, whatTextSearchFor)
   elif kind == 'Thread':
     for topic in baseEntity.topics:
       self.postKeys.extend(self.searchTextInTopic(topic, whatTextSearchFor))
   else:
     # search whole forum
     for thread in self.getThreads():
       for topic in thread.topics:
         self.postKeys.extend(self.searchTextInTopic(topic, whatTextSearchFor))
   #self.response.out.write(self.postKeys)
   #posts = list()
   #for key in self.postKeys:
     #x = Post.get(db.Key.from_path('Post', int(key)))
     #print x.kind()
     #posts.append(Post.get(db.Key.from_path('Post', int(key))))
   #print posts
   template_values = {
     'url' : users.CreateLogoutURL(self.request.uri),
     'user' : user.nickname(),
     'forum' : forum,
     'results' : self.postKeys,
   }
   path = os.path.join(os.path.dirname(__file__), os.path.join('templates', 'viewSearchResults.htm'))
   self.response.out.write(template.render(path, template_values))
       
   '''search in topic only
 def get(self):
   try:
     n = int(self.request.get('n'))
   except:
     n = 20
   forum = self.getForumInstance()
   posts = self.getLastPosts(n)
   try:
     for post in posts:
       post.body = strip_ml_tags(post.body)
   except:
     pass
   template_values = {
     'forum' : forum,
     'selfurl' : self.request.host_url,
     'posts' : posts,
   }
   self.response.headers['Content-Type'] = 'text/xml'
   path = os.path.join(os.path.dirname(__file__), os.path.join('templates', 'rss2.xml'))
   self.response.out.write(template.render(path, template_values))
示例#11
0
 def post(self):
   user = self.getAuthentificatedUser()
   if not user: return
   jid = self.request.get('jid')
   # check if jid ends with 'gmail.com'
   if jid[-10:] != '@gmail.com':
     return
   body = strip_ml_tags(self.request.get('body'))
   if jid != '' and body != '':
     end = """
           .
           This message was sent using small forum for GAE form
           http://small-forum.appspot.com/
           """
     body += end
     sender = user.email()
     try:
       if sender[-10:] == '@gmail.com':
         xmpp.send_message(jid, body)
       else:
         xmpp.send_message(jid, body, from_jid=sender)
     except:
       print 'error'
     print 'OK, done'