class StructuredGroupV2Change: by: bytes = optional_field(1) new_members: List[StructuredDecryptedMember] = field( 3, default_factory=list ) deleted_members: List[bytes] = field(4, default_factory=list) new_title: StructuredDecryptedString = optional_field(10)
class SequenceSettings: bpm: int32 = field(1, default=0) time_signature: int32 = field(2, default=0) # Maps aren't implemented in pure_protobuf yet but we can still parse them # thanks to # https://developers.google.com/protocol-buffers/docs/proto3#backwards_compatibility instruments: list[InstrumentSettingsPair] = field(3, default_factory=list) # Storing volume as (1 - volume) so it defaults to volume=1. one_minus_volume: float = field(4, default=0.0)
class InstrumentSettings: volume: float = field(1, default=0.0) delay: bool = field(2, default=False) reverb: bool = field(3, default=False) pan: float = field(4, default=0.0) enable_eq: bool = field(5, default=False) eq_low: float = field(6, default=0.0) eq_mid: float = field(7, default=0.0) eq_high: float = field(8, default=0.0) detune: float = field(9, default=0.0)
class Title: id: int32 = field(1) name: str = field(2) author: str = field(3) portrait_image_url: str = field(4) landscape_image_url: str = field(5) view_count: int32 = field(6) language: LanguageEnum = field(7, default=LanguageEnum.ENGLISH)
class Chapter: title_id: int32 = field(1) id: int32 = field(2) name: str = field(3) subtitle: str = field(4, default=None) start_timestamp: int32 = field(6, default=None) end_timestamp: int32 = field(7, default=None)
class Any_: """ See also: https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto """ type_url: str = field(1, default='') value: bytes = field(2, default=b'')
class Sequence: settings: SequenceSettings = field(1, default_factory=SequenceSettings) notes: list[Note] = field(2, default_factory=list) markers: list[Marker] = field(3, default_factory=list)
class Note: type: NoteType = field(1, default=NoteType.C0) time: float = field(2, default=0.0) length: float = field(3, default=0.0) instrument: int32 = field(4, default=0) volume: float = field(5, default=0.0)
class Test: duration: Optional[timedelta] = field(0, default=None)
class StructuredDecryptedMember: uuid: bytes = field(1) role: StructuredMemberRole = field(2)
class MangaViewer: pages: List[Page] = field(1, default_factory=[])
class Page: page: MangaPage = field(1, default=None)
class MangaPage: image_url: str = field(1) width: int32 = field(2) height: int32 = field(3) encryption_key: str = field(5, default=None)
class ErrorResult: action: ActionEnum = field(1) english_popup: Popup = field(2) spanish_popup: Popup = field(3) debug_info: str = field(4)
class Popup: subject: str = field(1) body: str = field(2)
class StructuredMentions: mentions: List[StructuredMention] = field(1, default_factory=list)
class StructuredGroupDataV1: group_name: str = optional_field(3) phone_members: List[str] = field(4, default_factory=list) members: List[StructuredGroupMember] = field(6, default_factory=list)
class TitleDetail: title: Title = field(1) title_image_url: str = field(2) synopsis: str = field(3) background_image_url: str = field(4) next_timestamp: int32 = field(5, default=0) update_timimg: UpdateTimingEnum = field(6, default=UpdateTimingEnum.DAY) viewing_period_description: str = field(7, default=None) first_chapters: List[Chapter] = field(9, default_factory=[]) last_chapters: List[Chapter] = field(10, default_factory=[]) is_simul_related: bool = field(14, default=True) chapters_descending: bool = field(17, default=True)
class StructuredDecryptedString: value: str = field(1)
class TitlesAll: titles: List[Title] = field(1)
class Test: timestamp: Optional[datetime] = field(0, default=None)
class TitlesRanking: titles: List[Title] = field(1)
class Test: value: Any = field(1)
class SuccessResult: is_featured_updated: bool = field(1, default=False) titles_all: TitlesAll = field(5, default=None) titles_ranking: TitlesRanking = field(6, default=None) title_detail: TitleDetail = field(8, default=None) manga_viewer: MangaViewer = field(10, default=None)
class Marker: time: float = field(1, default=0.0) setting: int32 = field(2, default=0) instrument: int32 = field(3, default=0) value: float = field(4, default=0.0) blend: bool = field(5, default=False)
class MangaplusResponse: success: SuccessResult = field(1, default=None) error: ErrorResult = field(2, default=None)
class StructuredGroupV2State: title: str = optional_field(2) rev: uint32 = optional_field(6) members: List[StructuredDecryptedMember] = field(7, default_factory=list)
class StructuredGroupDataV2: change: StructuredGroupV2Change = field(2) state: StructuredGroupV2State = field(3)
class StructuredReactions: reactions: List[StructuredReaction] = field(1, default_factory=list)
class TimeSpan: """ Base class to represent timespan as whole seconds plus its nanoseconds part. """ seconds: int64 = field(1, default=0) nanos: int32 = field(2, default=0)