Example #1
0
 def getNamedRhythm(self, title):
     q = Rhythm.all().filter('title =', title)
     r = q.fetch(1)
     if r:
       out = r[0].xml
       self.response.headers['Content-Type'] = "text/xml"
       return self.response.out.write(out)
     else:
       return self.write('not found')
Example #2
0
 def get(self):
     song = self.request.get('song')
     back = self.request.get('back')
     if song:
         context = { 'song' : song , 'back' : back }
         self.response.write(self.render_template_arg('animation.html', context))
     else:
         context = {'titles' : [rhythm.title for rhythm in Rhythm.all() ] }
         self.response.write(self.render_template_arg('select_a_song.html', context))
Example #3
0
 def get(self):
     self.arg = self.request.get('arg')
     title = self.request.get('title')
     if title and self.arg == 'get':
       self.getNamedRhythm(title)
     elif title and self.arg == 'delete':
       rhythm = Rhythm.all().filter('title =', title).get()
       if rhythm.owner == self.getUser().username:
         rhythm.delete()
     elif self.arg == 'delete_all':
       self.deleteAll()
Example #4
0
 def get(self):
     self.arg = self.request.get('arg')
     if self.arg == 'all_templates':
       self.rhythms = Rhythm.all().filter('rhythm_type = ', 1).fetch(limit=None)
       user = self.getUser()
       privateRhythms = Rhythm.all()
       privateRhythmsName = RhythmAutorisation.all().filter('username = '******'rhythm_type = ', 2, 'title = ', name).get())
         privateRhythms = Rhythm.all()
       for rhythm in Rhythm.all().filter('owner = ', self.getUser().username).fetch(limit=None):
         if rhythm.rhythm_type == 2:
           self.rhythms.append(rhythm)
       for rhythm in Rhythm.all().filter('rhythm_type = ', 3).fetch(limit=None):
         self.rhythms.append(rhythm)
       return self.write(self.getEncodedRhythms())
     elif self.arg == 'all_official':
       self.rhythms = Rhythm.all().filter('rhythm_type = ', 1).fetch(limit=None)
       return self.write(self.getEncodedRhythms())
     elif self.arg == 'all_publicly_shared':
       self.rhythms = Rhythm.all().filter('rhythm_type = ', 3).fetch(limit=None)
       return self.write(self.getEncodedRhythms())
     elif self.arg == 'all_personal':
       if self.isLoggedIn():
         self.rhythms = Rhythm.all().filter('owner = ', self.getUser().username).fetch(limit=None)
       else:
         self.rhythms = []
       return self.write(self.getEncodedRhythms())
     elif self.arg == 'all_personally_shared':
       if isLoggedIn:
         self.rhythm = []
         privateRhythms = Rhythm.all()
         privateRhythmsName = RhythmAutorisation.all().filter('username = '******'rhythm_type = ', 2, 'title = ', name).get())
           privateRhythms = Rhythm.all()
       else:
         self.rhythms = []
       return self.write(self.getEncodedRhythms())
Example #5
0
 def post(self):
     title, type_str, xml_str = self.request.body.split('|')
     xml = md.parseString(xml_str)
     type = int(type_str)
     if valid_rhythm(xml) and self.validType(type):
       if self.request.get('arg') == 'edit':
         rhy = Rhythm.all().filter('title = ', title).get()
         if rhy.owner == self.getUser().username:
           rhy.xml = xml.toxml()
           rhy.rhythm_type = type
         else:
           return self.write('Invalid rhythm or owner')
       elif valid_title(title):
         rhy = Rhythm(title=str(title), xml=xml.toxml(), owner=self.getUser().username, rhythm_type=type )
       elif not valid_title(title):
         return self.write("The title is already in use or invalid")
       rhy.put()
     else:
       return self.write('invalid rhythm')
Example #6
0
def valid_title(title):
    if not Rhythm.all().filter('title =', title).get() and title:
        return True