Exemple #1
0
	def make_note(self, note, unit, en_note, en_content):
		if note is None:
			note = Note(id='en-%s'%en_note.guid, parent=unit.key)

		""" set note title """
		en_note.title = en_note.title #.decode('utf-8')

		if note.title != en_note.title:

			note.title = en_note.title

			""" handle english and non-english short name """
			if all(c in string.printable for c in en_note.title):
				short = '-'.join(re.findall('\w+', en_note.title)).lower()
			else:
				#short = urllib.quote(en_note.title.encode('utf-8')).lower()
				#short = re.sub('\W+', '-', en_note.title.encode('utf-8')).lower()
				short = re.sub('\s+', '-', en_note.title, flags=re.U).lower()

			""" if short name is too long or duplicated """
			retry = 0
			while len(short) > 450 or Note.query(Note.short==short, ancestor=unit.key).get() is not None:
				short = self.get_lazy_short_name(unit.key)
				retry += 1

				if retry >= 10:
					logging.error('en-note-guid = %s, faild to create lazy short name.' % en_note.guid)
					raise Exception

			note.short = short

		note.content = parse.parse_evernote(en_content)
		note.summary = parse.create_summary(note.content)
		note.usn = en_note.updateSequenceNum
		note.updated = en_note.updated
		note.created = en_note.created

		note.put()