1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from __future__ import unicode_literals
- def convert_quotes_to_bbcode(post):
- if not (post[0] == '>' or '\n>' in post):
- return post
- clean_lines = []
- in_quote = False
- quote_author = None
- quote = []
- for i, line in enumerate(post.splitlines() + ['']):
- if in_quote:
- if line.startswith('>'):
- quote.append(line[1:].lstrip())
- else:
- clean_lines.append('')
- if quote_author:
- clean_lines.append('[quote="%s"]' % quote_author)
- clean_lines += quote
- clean_lines.append('[/quote]')
- clean_lines.append('')
- in_quote = False
- quote_author = None
- quote = []
- clean_lines.append(line)
- elif line.startswith('>'):
- in_quote = True
- if clean_lines and clean_lines[-1].startswith('@'):
- quote_author = clean_lines.pop(-1)
- quote.append(line[1:].lstrip())
- else:
- clean_lines.append(line)
- return convert_quotes_to_bbcode('\n'.join(clean_lines))
|