#!/usr/bin/python
#
# The new line-based text format, oggtext!
#
# Puts lines of text into a new ogg-format stream.
#
# Each page of the text gets a new page in the ogg stream;
# try it with the ogg rfcs.
#
# Daniel Holth <dholth@fastmail.fm>, 2004

import oggpy
import sys

granule  = 0

os = oggpy.stream(0x00FF00FF)
page = oggpy.page()

pack = oggpy.userpacket("OGGText", granule, True, False)
os.packetin(pack)

os.flush(page)
sys.stdout.write(page.header())
sys.stdout.write(page.body())

for data in sys.stdin.readlines():
    if data[0] == chr(12):
        while(os.flush(page) != 0):
            sys.stdout.write(page.header())
            sys.stdout.write(page.body())
    granule += 1
    pack = oggpy.userpacket(data, granule, False, False)
    os.packetin(pack)

pack = oggpy.userpacket("", granule, False, True)
os.packetin(pack)
os.pageout(page)
sys.stdout.write(page.header())
sys.stdout.write(page.body())


syntax highlighted by Code2HTML, v. 0.9.1