Add templating for msgtypes. ImageInfo core type is not referred to for m.image in order for the ImageInfo table to render for it.
72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
"""Contains all the sections for the spec."""
|
|
from batesian import AccessKeyStore
|
|
from batesian.sections import Sections
|
|
import inspect
|
|
import os
|
|
|
|
|
|
class MatrixSections(Sections):
|
|
|
|
# pass through git ver so it'll be dropped in the input file
|
|
def render_git_version(self):
|
|
return self.units.get("git_version")
|
|
|
|
def render_spec_version(self):
|
|
return "0.1.0"
|
|
|
|
def render_room_events(self):
|
|
template = self.env.get_template("events.tmpl")
|
|
examples = self.units.get("event_examples")
|
|
schemas = self.units.get("event_schemas")
|
|
sections = []
|
|
for event_name in sorted(schemas):
|
|
if (not event_name.startswith("m.room") or
|
|
event_name.startswith("m.room.message#m.")):
|
|
continue
|
|
sections.append(template.render(
|
|
example=examples[event_name],
|
|
event=schemas[event_name]
|
|
))
|
|
return "\n\n".join(sections)
|
|
|
|
def render_msgtype_events(self):
|
|
template = self.env.get_template("msgtypes.tmpl")
|
|
examples = self.units.get("event_examples")
|
|
schemas = self.units.get("event_schemas")
|
|
sections = []
|
|
for event_name in sorted(schemas):
|
|
if not event_name.startswith("m.room.message#m."):
|
|
continue
|
|
sections.append(template.render(
|
|
example=examples[event_name],
|
|
event=schemas[event_name]
|
|
))
|
|
return "\n\n".join(sections)
|
|
|
|
def render_voip_events(self):
|
|
template = self.env.get_template("events.tmpl")
|
|
examples = self.units.get("event_examples")
|
|
schemas = self.units.get("event_schemas")
|
|
sections = []
|
|
for event_name in sorted(schemas):
|
|
if not event_name.startswith("m.call"):
|
|
continue
|
|
sections.append(template.render(
|
|
example=examples[event_name],
|
|
event=schemas[event_name]
|
|
))
|
|
return "\n\n".join(sections)
|
|
|
|
def _render_ce_type(self, type):
|
|
template = self.env.get_template("common-event-fields.tmpl")
|
|
ce_types = self.units.get("common_event_fields")
|
|
return template.render(common_event=ce_types[type])
|
|
|
|
def render_common_event_fields(self):
|
|
return self._render_ce_type("event")
|
|
|
|
def render_common_room_event_fields(self):
|
|
return self._render_ce_type("room_event")
|
|
|
|
def render_common_state_event_fields(self):
|
|
return self._render_ce_type("state_event")
|