inital commit

Signed-off-by: Michael <michael.lindman@gmail.com>
This commit is contained in:
Michael 2021-01-07 11:46:03 +00:00
parent e6d8fd1d7c
commit f8fd637786
25 changed files with 11400 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
go.sum

7
Makefile Normal file
View File

@ -0,0 +1,7 @@
proto:
protoc \
--proto_path=/usr/local/include/google/protobuf \
--proto_path=proto/ \
--go_out=$(GOPATH)/src proto/*.proto
.PHONY: proto

View File

@ -0,0 +1,638 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: categories.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type Categories struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CategoryList *Categories_CategoryList `protobuf:"bytes,1,opt,name=category_list,json=categoryList,proto3" json:"category_list,omitempty"`
}
func (x *Categories) Reset() {
*x = Categories{}
if protoimpl.UnsafeEnabled {
mi := &file_categories_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Categories) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Categories) ProtoMessage() {}
func (x *Categories) ProtoReflect() protoreflect.Message {
mi := &file_categories_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Categories.ProtoReflect.Descriptor instead.
func (*Categories) Descriptor() ([]byte, []int) {
return file_categories_proto_rawDescGZIP(), []int{0}
}
func (x *Categories) GetCategoryList() *Categories_CategoryList {
if x != nil {
return x.CategoryList
}
return nil
}
type Categories_CategoryList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CanCreateCategory bool `protobuf:"varint,1,opt,name=can_create_category,json=canCreateCategory,proto3" json:"can_create_category,omitempty"`
CanCreateTopic bool `protobuf:"varint,2,opt,name=can_create_topic,json=canCreateTopic,proto3" json:"can_create_topic,omitempty"`
Categories []*Categories_CategoryList_Categories `protobuf:"bytes,3,rep,name=categories,proto3" json:"categories,omitempty"`
}
func (x *Categories_CategoryList) Reset() {
*x = Categories_CategoryList{}
if protoimpl.UnsafeEnabled {
mi := &file_categories_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Categories_CategoryList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Categories_CategoryList) ProtoMessage() {}
func (x *Categories_CategoryList) ProtoReflect() protoreflect.Message {
mi := &file_categories_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Categories_CategoryList.ProtoReflect.Descriptor instead.
func (*Categories_CategoryList) Descriptor() ([]byte, []int) {
return file_categories_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Categories_CategoryList) GetCanCreateCategory() bool {
if x != nil {
return x.CanCreateCategory
}
return false
}
func (x *Categories_CategoryList) GetCanCreateTopic() bool {
if x != nil {
return x.CanCreateTopic
}
return false
}
func (x *Categories_CategoryList) GetCategories() []*Categories_CategoryList_Categories {
if x != nil {
return x.Categories
}
return nil
}
type Categories_CategoryList_Categories struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Color string `protobuf:"bytes,3,opt,name=color,proto3" json:"color,omitempty"`
TextColor string `protobuf:"bytes,4,opt,name=text_color,json=textColor,proto3" json:"text_color,omitempty"`
Slug string `protobuf:"bytes,5,opt,name=slug,proto3" json:"slug,omitempty"`
TopicCount int32 `protobuf:"varint,6,opt,name=topic_count,json=topicCount,proto3" json:"topic_count,omitempty"`
PostCount int32 `protobuf:"varint,7,opt,name=post_count,json=postCount,proto3" json:"post_count,omitempty"`
Position int32 `protobuf:"varint,8,opt,name=position,proto3" json:"position,omitempty"`
Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"`
DescriptionText string `protobuf:"bytes,10,opt,name=description_text,json=descriptionText,proto3" json:"description_text,omitempty"`
DescriptionExcerpt string `protobuf:"bytes,11,opt,name=description_excerpt,json=descriptionExcerpt,proto3" json:"description_excerpt,omitempty"`
TopicUrl string `protobuf:"bytes,12,opt,name=topic_url,json=topicUrl,proto3" json:"topic_url,omitempty"`
ReadRestricted bool `protobuf:"varint,13,opt,name=read_restricted,json=readRestricted,proto3" json:"read_restricted,omitempty"`
Permission int32 `protobuf:"varint,14,opt,name=permission,proto3" json:"permission,omitempty"`
NotificationLevel int32 `protobuf:"varint,15,opt,name=notification_level,json=notificationLevel,proto3" json:"notification_level,omitempty"`
CanEdit bool `protobuf:"varint,16,opt,name=can_edit,json=canEdit,proto3" json:"can_edit,omitempty"`
TopicTemplate string `protobuf:"bytes,17,opt,name=topic_template,json=topicTemplate,proto3" json:"topic_template,omitempty"`
HasChildren bool `protobuf:"varint,18,opt,name=has_children,json=hasChildren,proto3" json:"has_children,omitempty"`
SortOrder string `protobuf:"bytes,19,opt,name=sort_order,json=sortOrder,proto3" json:"sort_order,omitempty"`
ShowSubcategoryList bool `protobuf:"varint,20,opt,name=show_subcategory_list,json=showSubcategoryList,proto3" json:"show_subcategory_list,omitempty"`
NumFeaturedTopics int32 `protobuf:"varint,21,opt,name=num_featured_topics,json=numFeaturedTopics,proto3" json:"num_featured_topics,omitempty"`
DefaultView string `protobuf:"bytes,22,opt,name=default_view,json=defaultView,proto3" json:"default_view,omitempty"`
SubcategoryListStyle string `protobuf:"bytes,23,opt,name=subcategory_list_style,json=subcategoryListStyle,proto3" json:"subcategory_list_style,omitempty"`
DefaultTopPeriod string `protobuf:"bytes,24,opt,name=default_top_period,json=defaultTopPeriod,proto3" json:"default_top_period,omitempty"`
DefaultListFilter string `protobuf:"bytes,25,opt,name=default_list_filter,json=defaultListFilter,proto3" json:"default_list_filter,omitempty"`
MinimumRequiredTags int32 `protobuf:"varint,26,opt,name=minimum_required_tags,json=minimumRequiredTags,proto3" json:"minimum_required_tags,omitempty"`
NavigateToFirstPostAfterRead bool `protobuf:"varint,27,opt,name=navigate_to_first_post_after_read,json=navigateToFirstPostAfterRead,proto3" json:"navigate_to_first_post_after_read,omitempty"`
TopicsDay int32 `protobuf:"varint,28,opt,name=topics_day,json=topicsDay,proto3" json:"topics_day,omitempty"`
TopicsWeek int32 `protobuf:"varint,29,opt,name=topics_week,json=topicsWeek,proto3" json:"topics_week,omitempty"`
TopicsMonth int32 `protobuf:"varint,30,opt,name=topics_month,json=topicsMonth,proto3" json:"topics_month,omitempty"`
TopicsYear int32 `protobuf:"varint,31,opt,name=topics_year,json=topicsYear,proto3" json:"topics_year,omitempty"`
TopicsAllTime int32 `protobuf:"varint,32,opt,name=topics_all_time,json=topicsAllTime,proto3" json:"topics_all_time,omitempty"`
SubcategoryIds []int32 `protobuf:"varint,33,rep,packed,name=subcategory_ids,json=subcategoryIds,proto3" json:"subcategory_ids,omitempty"`
}
func (x *Categories_CategoryList_Categories) Reset() {
*x = Categories_CategoryList_Categories{}
if protoimpl.UnsafeEnabled {
mi := &file_categories_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Categories_CategoryList_Categories) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Categories_CategoryList_Categories) ProtoMessage() {}
func (x *Categories_CategoryList_Categories) ProtoReflect() protoreflect.Message {
mi := &file_categories_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Categories_CategoryList_Categories.ProtoReflect.Descriptor instead.
func (*Categories_CategoryList_Categories) Descriptor() ([]byte, []int) {
return file_categories_proto_rawDescGZIP(), []int{0, 0, 0}
}
func (x *Categories_CategoryList_Categories) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Categories_CategoryList_Categories) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Categories_CategoryList_Categories) GetColor() string {
if x != nil {
return x.Color
}
return ""
}
func (x *Categories_CategoryList_Categories) GetTextColor() string {
if x != nil {
return x.TextColor
}
return ""
}
func (x *Categories_CategoryList_Categories) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *Categories_CategoryList_Categories) GetTopicCount() int32 {
if x != nil {
return x.TopicCount
}
return 0
}
func (x *Categories_CategoryList_Categories) GetPostCount() int32 {
if x != nil {
return x.PostCount
}
return 0
}
func (x *Categories_CategoryList_Categories) GetPosition() int32 {
if x != nil {
return x.Position
}
return 0
}
func (x *Categories_CategoryList_Categories) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Categories_CategoryList_Categories) GetDescriptionText() string {
if x != nil {
return x.DescriptionText
}
return ""
}
func (x *Categories_CategoryList_Categories) GetDescriptionExcerpt() string {
if x != nil {
return x.DescriptionExcerpt
}
return ""
}
func (x *Categories_CategoryList_Categories) GetTopicUrl() string {
if x != nil {
return x.TopicUrl
}
return ""
}
func (x *Categories_CategoryList_Categories) GetReadRestricted() bool {
if x != nil {
return x.ReadRestricted
}
return false
}
func (x *Categories_CategoryList_Categories) GetPermission() int32 {
if x != nil {
return x.Permission
}
return 0
}
func (x *Categories_CategoryList_Categories) GetNotificationLevel() int32 {
if x != nil {
return x.NotificationLevel
}
return 0
}
func (x *Categories_CategoryList_Categories) GetCanEdit() bool {
if x != nil {
return x.CanEdit
}
return false
}
func (x *Categories_CategoryList_Categories) GetTopicTemplate() string {
if x != nil {
return x.TopicTemplate
}
return ""
}
func (x *Categories_CategoryList_Categories) GetHasChildren() bool {
if x != nil {
return x.HasChildren
}
return false
}
func (x *Categories_CategoryList_Categories) GetSortOrder() string {
if x != nil {
return x.SortOrder
}
return ""
}
func (x *Categories_CategoryList_Categories) GetShowSubcategoryList() bool {
if x != nil {
return x.ShowSubcategoryList
}
return false
}
func (x *Categories_CategoryList_Categories) GetNumFeaturedTopics() int32 {
if x != nil {
return x.NumFeaturedTopics
}
return 0
}
func (x *Categories_CategoryList_Categories) GetDefaultView() string {
if x != nil {
return x.DefaultView
}
return ""
}
func (x *Categories_CategoryList_Categories) GetSubcategoryListStyle() string {
if x != nil {
return x.SubcategoryListStyle
}
return ""
}
func (x *Categories_CategoryList_Categories) GetDefaultTopPeriod() string {
if x != nil {
return x.DefaultTopPeriod
}
return ""
}
func (x *Categories_CategoryList_Categories) GetDefaultListFilter() string {
if x != nil {
return x.DefaultListFilter
}
return ""
}
func (x *Categories_CategoryList_Categories) GetMinimumRequiredTags() int32 {
if x != nil {
return x.MinimumRequiredTags
}
return 0
}
func (x *Categories_CategoryList_Categories) GetNavigateToFirstPostAfterRead() bool {
if x != nil {
return x.NavigateToFirstPostAfterRead
}
return false
}
func (x *Categories_CategoryList_Categories) GetTopicsDay() int32 {
if x != nil {
return x.TopicsDay
}
return 0
}
func (x *Categories_CategoryList_Categories) GetTopicsWeek() int32 {
if x != nil {
return x.TopicsWeek
}
return 0
}
func (x *Categories_CategoryList_Categories) GetTopicsMonth() int32 {
if x != nil {
return x.TopicsMonth
}
return 0
}
func (x *Categories_CategoryList_Categories) GetTopicsYear() int32 {
if x != nil {
return x.TopicsYear
}
return 0
}
func (x *Categories_CategoryList_Categories) GetTopicsAllTime() int32 {
if x != nil {
return x.TopicsAllTime
}
return 0
}
func (x *Categories_CategoryList_Categories) GetSubcategoryIds() []int32 {
if x != nil {
return x.SubcategoryIds
}
return nil
}
var File_categories_proto protoreflect.FileDescriptor
var file_categories_proto_rawDesc = []byte{
0x0a, 0x10, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x12, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0xfd, 0x0b, 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67,
0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72,
0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64,
0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x74,
0x65, 0x67, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67,
0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x9c, 0x0b, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65,
0x67, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x5f,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x5f,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x70,
0x69, 0x63, 0x12, 0x56, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72,
0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x61, 0x74, 0x65,
0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4c,
0x69, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x0a,
0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x1a, 0xd9, 0x09, 0x0a, 0x0a, 0x43,
0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f,
0x6c, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f,
0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6c,
0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x70,
0x69, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x5f,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6f, 0x73,
0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x12,
0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65,
0x78, 0x63, 0x65, 0x72, 0x70, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65,
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x63, 0x65, 0x72, 0x70, 0x74,
0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0c, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x27, 0x0a,
0x0f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x74,
0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d,
0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01,
0x28, 0x05, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x5f, 0x65, 0x64, 0x69,
0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x45, 0x64, 0x69, 0x74,
0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x54,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x63,
0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68,
0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f,
0x72, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x73, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x68, 0x6f,
0x77, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69,
0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x68, 0x6f, 0x77, 0x53, 0x75,
0x62, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a,
0x13, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x6f,
0x70, 0x69, 0x63, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x46,
0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a,
0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x16, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x69, 0x65, 0x77,
0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x62, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f,
0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09,
0x52, 0x14, 0x73, 0x75, 0x62, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73,
0x74, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
0x74, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x18, 0x20, 0x01,
0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6f, 0x70, 0x50, 0x65,
0x72, 0x69, 0x6f, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f,
0x6c, 0x69, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28,
0x09, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f,
0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x1a, 0x20,
0x01, 0x28, 0x05, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75,
0x69, 0x72, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x21, 0x6e, 0x61, 0x76, 0x69,
0x67, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x6f,
0x73, 0x74, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x1b, 0x20,
0x01, 0x28, 0x08, 0x52, 0x1c, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x46,
0x69, 0x72, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61,
0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x64, 0x61, 0x79, 0x18,
0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x44, 0x61, 0x79,
0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x18,
0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x57, 0x65, 0x65,
0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x6d, 0x6f, 0x6e, 0x74,
0x68, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x4d,
0x6f, 0x6e, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x79,
0x65, 0x61, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63,
0x73, 0x59, 0x65, 0x61, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f,
0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d,
0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x41, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a,
0x0f, 0x73, 0x75, 0x62, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x73,
0x18, 0x21, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x63, 0x61, 0x74, 0x65, 0x67,
0x6f, 0x72, 0x79, 0x49, 0x64, 0x73, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x2e, 0x30, 0x63,
0x64, 0x2e, 0x78, 0x79, 0x7a, 0x2f, 0x6d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x2f, 0x64, 0x69,
0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
file_categories_proto_rawDescOnce sync.Once
file_categories_proto_rawDescData = file_categories_proto_rawDesc
)
func file_categories_proto_rawDescGZIP() []byte {
file_categories_proto_rawDescOnce.Do(func() {
file_categories_proto_rawDescData = protoimpl.X.CompressGZIP(file_categories_proto_rawDescData)
})
return file_categories_proto_rawDescData
}
var file_categories_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_categories_proto_goTypes = []interface{}{
(*Categories)(nil), // 0: discourse.protobuf.Categories
(*Categories_CategoryList)(nil), // 1: discourse.protobuf.Categories.CategoryList
(*Categories_CategoryList_Categories)(nil), // 2: discourse.protobuf.Categories.CategoryList.Categories
}
var file_categories_proto_depIdxs = []int32{
1, // 0: discourse.protobuf.Categories.category_list:type_name -> discourse.protobuf.Categories.CategoryList
2, // 1: discourse.protobuf.Categories.CategoryList.categories:type_name -> discourse.protobuf.Categories.CategoryList.Categories
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_categories_proto_init() }
func file_categories_proto_init() {
if File_categories_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_categories_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Categories); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_categories_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Categories_CategoryList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_categories_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Categories_CategoryList_Categories); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_categories_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_categories_proto_goTypes,
DependencyIndexes: file_categories_proto_depIdxs,
MessageInfos: file_categories_proto_msgTypes,
}.Build()
File_categories_proto = out.File
file_categories_proto_rawDesc = nil
file_categories_proto_goTypes = nil
file_categories_proto_depIdxs = nil
}

View File

@ -0,0 +1,867 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: categorytopics.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type CategoryTopics struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Users []*CategoryTopics_Users `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
TopicList *CategoryTopics_TopicList `protobuf:"bytes,2,opt,name=topic_list,json=topicList,proto3" json:"topic_list,omitempty"`
}
func (x *CategoryTopics) Reset() {
*x = CategoryTopics{}
if protoimpl.UnsafeEnabled {
mi := &file_categorytopics_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CategoryTopics) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CategoryTopics) ProtoMessage() {}
func (x *CategoryTopics) ProtoReflect() protoreflect.Message {
mi := &file_categorytopics_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CategoryTopics.ProtoReflect.Descriptor instead.
func (*CategoryTopics) Descriptor() ([]byte, []int) {
return file_categorytopics_proto_rawDescGZIP(), []int{0}
}
func (x *CategoryTopics) GetUsers() []*CategoryTopics_Users {
if x != nil {
return x.Users
}
return nil
}
func (x *CategoryTopics) GetTopicList() *CategoryTopics_TopicList {
if x != nil {
return x.TopicList
}
return nil
}
type CategoryTopics_Users struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
AvatarTemplate string `protobuf:"bytes,4,opt,name=avatar_template,json=avatarTemplate,proto3" json:"avatar_template,omitempty"`
}
func (x *CategoryTopics_Users) Reset() {
*x = CategoryTopics_Users{}
if protoimpl.UnsafeEnabled {
mi := &file_categorytopics_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CategoryTopics_Users) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CategoryTopics_Users) ProtoMessage() {}
func (x *CategoryTopics_Users) ProtoReflect() protoreflect.Message {
mi := &file_categorytopics_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CategoryTopics_Users.ProtoReflect.Descriptor instead.
func (*CategoryTopics_Users) Descriptor() ([]byte, []int) {
return file_categorytopics_proto_rawDescGZIP(), []int{0, 0}
}
func (x *CategoryTopics_Users) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *CategoryTopics_Users) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *CategoryTopics_Users) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *CategoryTopics_Users) GetAvatarTemplate() string {
if x != nil {
return x.AvatarTemplate
}
return ""
}
type CategoryTopics_TopicList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CanCreateTopic bool `protobuf:"varint,1,opt,name=can_create_topic,json=canCreateTopic,proto3" json:"can_create_topic,omitempty"`
DraftKey string `protobuf:"bytes,2,opt,name=draft_key,json=draftKey,proto3" json:"draft_key,omitempty"`
DraftSequence int32 `protobuf:"varint,3,opt,name=draft_sequence,json=draftSequence,proto3" json:"draft_sequence,omitempty"`
PerPage int32 `protobuf:"varint,4,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"`
TopTags []string `protobuf:"bytes,5,rep,name=top_tags,json=topTags,proto3" json:"top_tags,omitempty"`
Topics []*CategoryTopics_TopicList_Topics `protobuf:"bytes,6,rep,name=topics,proto3" json:"topics,omitempty"`
BookmarkedPostNumbers []int32 `protobuf:"varint,7,rep,packed,name=bookmarked_post_numbers,json=bookmarkedPostNumbers,proto3" json:"bookmarked_post_numbers,omitempty"`
}
func (x *CategoryTopics_TopicList) Reset() {
*x = CategoryTopics_TopicList{}
if protoimpl.UnsafeEnabled {
mi := &file_categorytopics_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CategoryTopics_TopicList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CategoryTopics_TopicList) ProtoMessage() {}
func (x *CategoryTopics_TopicList) ProtoReflect() protoreflect.Message {
mi := &file_categorytopics_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CategoryTopics_TopicList.ProtoReflect.Descriptor instead.
func (*CategoryTopics_TopicList) Descriptor() ([]byte, []int) {
return file_categorytopics_proto_rawDescGZIP(), []int{0, 1}
}
func (x *CategoryTopics_TopicList) GetCanCreateTopic() bool {
if x != nil {
return x.CanCreateTopic
}
return false
}
func (x *CategoryTopics_TopicList) GetDraftKey() string {
if x != nil {
return x.DraftKey
}
return ""
}
func (x *CategoryTopics_TopicList) GetDraftSequence() int32 {
if x != nil {
return x.DraftSequence
}
return 0
}
func (x *CategoryTopics_TopicList) GetPerPage() int32 {
if x != nil {
return x.PerPage
}
return 0
}
func (x *CategoryTopics_TopicList) GetTopTags() []string {
if x != nil {
return x.TopTags
}
return nil
}
func (x *CategoryTopics_TopicList) GetTopics() []*CategoryTopics_TopicList_Topics {
if x != nil {
return x.Topics
}
return nil
}
func (x *CategoryTopics_TopicList) GetBookmarkedPostNumbers() []int32 {
if x != nil {
return x.BookmarkedPostNumbers
}
return nil
}
type CategoryTopics_TopicList_Topics struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
FancyTitle string `protobuf:"bytes,3,opt,name=fancy_title,json=fancyTitle,proto3" json:"fancy_title,omitempty"`
Slug string `protobuf:"bytes,4,opt,name=slug,proto3" json:"slug,omitempty"`
PostsCount int32 `protobuf:"varint,5,opt,name=posts_count,json=postsCount,proto3" json:"posts_count,omitempty"`
ReplyCount int32 `protobuf:"varint,6,opt,name=reply_count,json=replyCount,proto3" json:"reply_count,omitempty"`
HighestPostNumber int32 `protobuf:"varint,7,opt,name=highest_post_number,json=highestPostNumber,proto3" json:"highest_post_number,omitempty"`
ImageUrl string `protobuf:"bytes,8,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
LastPostedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=last_posted_at,json=lastPostedAt,proto3" json:"last_posted_at,omitempty"`
Bumped bool `protobuf:"varint,11,opt,name=bumped,proto3" json:"bumped,omitempty"`
BumpedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=bumped_at,json=bumpedAt,proto3" json:"bumped_at,omitempty"`
Archetype string `protobuf:"bytes,13,opt,name=archetype,proto3" json:"archetype,omitempty"`
Unseen bool `protobuf:"varint,14,opt,name=unseen,proto3" json:"unseen,omitempty"`
LastReadPostNumber int32 `protobuf:"varint,15,opt,name=last_read_post_number,json=lastReadPostNumber,proto3" json:"last_read_post_number,omitempty"`
Unread int32 `protobuf:"varint,16,opt,name=unread,proto3" json:"unread,omitempty"`
NewPosts int32 `protobuf:"varint,17,opt,name=new_posts,json=newPosts,proto3" json:"new_posts,omitempty"`
Pinned bool `protobuf:"varint,18,opt,name=pinned,proto3" json:"pinned,omitempty"`
Visible bool `protobuf:"varint,19,opt,name=visible,proto3" json:"visible,omitempty"`
Closed bool `protobuf:"varint,20,opt,name=closed,proto3" json:"closed,omitempty"`
Archived bool `protobuf:"varint,21,opt,name=archived,proto3" json:"archived,omitempty"`
NotificationLevel int32 `protobuf:"varint,22,opt,name=notification_level,json=notificationLevel,proto3" json:"notification_level,omitempty"`
Bookmarked bool `protobuf:"varint,23,opt,name=bookmarked,proto3" json:"bookmarked,omitempty"`
Liked bool `protobuf:"varint,24,opt,name=liked,proto3" json:"liked,omitempty"`
Tags []string `protobuf:"bytes,25,rep,name=tags,proto3" json:"tags,omitempty"`
Views int32 `protobuf:"varint,26,opt,name=views,proto3" json:"views,omitempty"`
LikeCount int32 `protobuf:"varint,27,opt,name=like_count,json=likeCount,proto3" json:"like_count,omitempty"`
HasSummary bool `protobuf:"varint,28,opt,name=has_summary,json=hasSummary,proto3" json:"has_summary,omitempty"`
LastPosteUsername string `protobuf:"bytes,29,opt,name=last_poste_username,json=lastPosteUsername,proto3" json:"last_poste_username,omitempty"`
CategoryId int32 `protobuf:"varint,30,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"`
PinnedGlobally bool `protobuf:"varint,31,opt,name=pinned_globally,json=pinnedGlobally,proto3" json:"pinned_globally,omitempty"`
HasAcceptedAnswer bool `protobuf:"varint,32,opt,name=has_accepted_answer,json=hasAcceptedAnswer,proto3" json:"has_accepted_answer,omitempty"`
Posters []*CategoryTopics_TopicList_Topics_Posters `protobuf:"bytes,33,rep,name=posters,proto3" json:"posters,omitempty"`
}
func (x *CategoryTopics_TopicList_Topics) Reset() {
*x = CategoryTopics_TopicList_Topics{}
if protoimpl.UnsafeEnabled {
mi := &file_categorytopics_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CategoryTopics_TopicList_Topics) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CategoryTopics_TopicList_Topics) ProtoMessage() {}
func (x *CategoryTopics_TopicList_Topics) ProtoReflect() protoreflect.Message {
mi := &file_categorytopics_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CategoryTopics_TopicList_Topics.ProtoReflect.Descriptor instead.
func (*CategoryTopics_TopicList_Topics) Descriptor() ([]byte, []int) {
return file_categorytopics_proto_rawDescGZIP(), []int{0, 1, 0}
}
func (x *CategoryTopics_TopicList_Topics) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *CategoryTopics_TopicList_Topics) GetFancyTitle() string {
if x != nil {
return x.FancyTitle
}
return ""
}
func (x *CategoryTopics_TopicList_Topics) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *CategoryTopics_TopicList_Topics) GetPostsCount() int32 {
if x != nil {
return x.PostsCount
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetReplyCount() int32 {
if x != nil {
return x.ReplyCount
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetHighestPostNumber() int32 {
if x != nil {
return x.HighestPostNumber
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetImageUrl() string {
if x != nil {
return x.ImageUrl
}
return ""
}
func (x *CategoryTopics_TopicList_Topics) GetCreatedAt() *timestamppb.Timestamp {
if x != nil {
return x.CreatedAt
}
return nil
}
func (x *CategoryTopics_TopicList_Topics) GetLastPostedAt() *timestamppb.Timestamp {
if x != nil {
return x.LastPostedAt
}
return nil
}
func (x *CategoryTopics_TopicList_Topics) GetBumped() bool {
if x != nil {
return x.Bumped
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetBumpedAt() *timestamppb.Timestamp {
if x != nil {
return x.BumpedAt
}
return nil
}
func (x *CategoryTopics_TopicList_Topics) GetArchetype() string {
if x != nil {
return x.Archetype
}
return ""
}
func (x *CategoryTopics_TopicList_Topics) GetUnseen() bool {
if x != nil {
return x.Unseen
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetLastReadPostNumber() int32 {
if x != nil {
return x.LastReadPostNumber
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetUnread() int32 {
if x != nil {
return x.Unread
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetNewPosts() int32 {
if x != nil {
return x.NewPosts
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetPinned() bool {
if x != nil {
return x.Pinned
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetVisible() bool {
if x != nil {
return x.Visible
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetClosed() bool {
if x != nil {
return x.Closed
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetArchived() bool {
if x != nil {
return x.Archived
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetNotificationLevel() int32 {
if x != nil {
return x.NotificationLevel
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetBookmarked() bool {
if x != nil {
return x.Bookmarked
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetLiked() bool {
if x != nil {
return x.Liked
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *CategoryTopics_TopicList_Topics) GetViews() int32 {
if x != nil {
return x.Views
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetLikeCount() int32 {
if x != nil {
return x.LikeCount
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetHasSummary() bool {
if x != nil {
return x.HasSummary
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetLastPosteUsername() string {
if x != nil {
return x.LastPosteUsername
}
return ""
}
func (x *CategoryTopics_TopicList_Topics) GetCategoryId() int32 {
if x != nil {
return x.CategoryId
}
return 0
}
func (x *CategoryTopics_TopicList_Topics) GetPinnedGlobally() bool {
if x != nil {
return x.PinnedGlobally
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetHasAcceptedAnswer() bool {
if x != nil {
return x.HasAcceptedAnswer
}
return false
}
func (x *CategoryTopics_TopicList_Topics) GetPosters() []*CategoryTopics_TopicList_Topics_Posters {
if x != nil {
return x.Posters
}
return nil
}
type CategoryTopics_TopicList_Topics_Posters struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Extras string `protobuf:"bytes,1,opt,name=extras,proto3" json:"extras,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
UserId int32 `protobuf:"varint,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
}
func (x *CategoryTopics_TopicList_Topics_Posters) Reset() {
*x = CategoryTopics_TopicList_Topics_Posters{}
if protoimpl.UnsafeEnabled {
mi := &file_categorytopics_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CategoryTopics_TopicList_Topics_Posters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CategoryTopics_TopicList_Topics_Posters) ProtoMessage() {}
func (x *CategoryTopics_TopicList_Topics_Posters) ProtoReflect() protoreflect.Message {
mi := &file_categorytopics_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CategoryTopics_TopicList_Topics_Posters.ProtoReflect.Descriptor instead.
func (*CategoryTopics_TopicList_Topics_Posters) Descriptor() ([]byte, []int) {
return file_categorytopics_proto_rawDescGZIP(), []int{0, 1, 0, 0}
}
func (x *CategoryTopics_TopicList_Topics_Posters) GetExtras() string {
if x != nil {
return x.Extras
}
return ""
}
func (x *CategoryTopics_TopicList_Topics_Posters) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *CategoryTopics_TopicList_Topics_Posters) GetUserId() int32 {
if x != nil {
return x.UserId
}
return 0
}
var File_categorytopics_proto protoreflect.FileDescriptor
var file_categorytopics_proto_rawDesc = []byte{
0x0a, 0x14, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbb, 0x0e, 0x0a, 0x0e,
0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x3e,
0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e,
0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63,
0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x4b,
0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79,
0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74,
0x52, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x70, 0x0a, 0x05, 0x55,
0x73, 0x65, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x74,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61,
0x76, 0x61, 0x74, 0x61, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0xa9, 0x0c,
0x0a, 0x09, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x63,
0x61, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x6b,
0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x72, 0x61, 0x66, 0x74, 0x4b,
0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75,
0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, 0x72, 0x61, 0x66,
0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72,
0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x65, 0x72,
0x50, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x73,
0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x73, 0x12,
0x4b, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x33, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x70,
0x69, 0x63, 0x73, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x54, 0x6f,
0x70, 0x69, 0x63, 0x73, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x36, 0x0a, 0x17,
0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x15, 0x62,
0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x73, 0x1a, 0xf2, 0x09, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12,
0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x6e, 0x63, 0x79, 0x5f, 0x74,
0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x6e, 0x63,
0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f,
0x73, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0a, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72,
0x65, 0x70, 0x6c, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13,
0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x68, 0x69, 0x67, 0x68, 0x65,
0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09,
0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x64, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6f,
0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x64,
0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x64, 0x12, 0x37,
0x0a, 0x09, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x62,
0x75, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x63, 0x68, 0x65,
0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x63, 0x68,
0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x73, 0x65, 0x65, 0x6e, 0x18,
0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x73, 0x65, 0x65, 0x6e, 0x12, 0x31, 0x0a,
0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6c, 0x61,
0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05,
0x52, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f,
0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x65, 0x77,
0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18,
0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x18, 0x0a,
0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65,
0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12,
0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28,
0x08, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x6e,
0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65,
0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6f,
0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69,
0x6b, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
0x74, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x1a, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x65, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x69,
0x6b, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73,
0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
0x68, 0x61, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x61,
0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x73,
0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61,
0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x70,
0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x6c, 0x79, 0x18, 0x1f,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x47, 0x6c, 0x6f, 0x62,
0x61, 0x6c, 0x6c, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28,
0x08, 0x52, 0x11, 0x68, 0x61, 0x73, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6e,
0x73, 0x77, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18,
0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67,
0x6f, 0x72, 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c,
0x69, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x65,
0x72, 0x73, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x5c, 0x0a, 0x07, 0x50,
0x6f, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x74, 0x72, 0x61, 0x73,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x74, 0x72, 0x61, 0x73, 0x12, 0x20,
0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74,
0x2e, 0x30, 0x63, 0x64, 0x2e, 0x78, 0x79, 0x7a, 0x2f, 0x6d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c,
0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x70, 0x62, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_categorytopics_proto_rawDescOnce sync.Once
file_categorytopics_proto_rawDescData = file_categorytopics_proto_rawDesc
)
func file_categorytopics_proto_rawDescGZIP() []byte {
file_categorytopics_proto_rawDescOnce.Do(func() {
file_categorytopics_proto_rawDescData = protoimpl.X.CompressGZIP(file_categorytopics_proto_rawDescData)
})
return file_categorytopics_proto_rawDescData
}
var file_categorytopics_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_categorytopics_proto_goTypes = []interface{}{
(*CategoryTopics)(nil), // 0: discourse.protobuf.CategoryTopics
(*CategoryTopics_Users)(nil), // 1: discourse.protobuf.CategoryTopics.Users
(*CategoryTopics_TopicList)(nil), // 2: discourse.protobuf.CategoryTopics.TopicList
(*CategoryTopics_TopicList_Topics)(nil), // 3: discourse.protobuf.CategoryTopics.TopicList.Topics
(*CategoryTopics_TopicList_Topics_Posters)(nil), // 4: discourse.protobuf.CategoryTopics.TopicList.Topics.Posters
(*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
}
var file_categorytopics_proto_depIdxs = []int32{
1, // 0: discourse.protobuf.CategoryTopics.users:type_name -> discourse.protobuf.CategoryTopics.Users
2, // 1: discourse.protobuf.CategoryTopics.topic_list:type_name -> discourse.protobuf.CategoryTopics.TopicList
3, // 2: discourse.protobuf.CategoryTopics.TopicList.topics:type_name -> discourse.protobuf.CategoryTopics.TopicList.Topics
5, // 3: discourse.protobuf.CategoryTopics.TopicList.Topics.created_at:type_name -> google.protobuf.Timestamp
5, // 4: discourse.protobuf.CategoryTopics.TopicList.Topics.last_posted_at:type_name -> google.protobuf.Timestamp
5, // 5: discourse.protobuf.CategoryTopics.TopicList.Topics.bumped_at:type_name -> google.protobuf.Timestamp
4, // 6: discourse.protobuf.CategoryTopics.TopicList.Topics.posters:type_name -> discourse.protobuf.CategoryTopics.TopicList.Topics.Posters
7, // [7:7] is the sub-list for method output_type
7, // [7:7] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
7, // [7:7] is the sub-list for extension extendee
0, // [0:7] is the sub-list for field type_name
}
func init() { file_categorytopics_proto_init() }
func file_categorytopics_proto_init() {
if File_categorytopics_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_categorytopics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CategoryTopics); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_categorytopics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CategoryTopics_Users); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_categorytopics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CategoryTopics_TopicList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_categorytopics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CategoryTopics_TopicList_Topics); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_categorytopics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CategoryTopics_TopicList_Topics_Posters); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_categorytopics_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_categorytopics_proto_goTypes,
DependencyIndexes: file_categorytopics_proto_depIdxs,
MessageInfos: file_categorytopics_proto_msgTypes,
}.Build()
File_categorytopics_proto = out.File
file_categorytopics_proto_rawDesc = nil
file_categorytopics_proto_goTypes = nil
file_categorytopics_proto_depIdxs = nil
}

View File

@ -0,0 +1,519 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: directory_items.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type DirectoryItems struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DirectoryItems []*DirectoryItems_DirectoryItems `protobuf:"bytes,1,rep,name=directory_items,json=directoryItems,proto3" json:"directory_items,omitempty"`
Meta *DirectoryItems_Meta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"`
}
func (x *DirectoryItems) Reset() {
*x = DirectoryItems{}
if protoimpl.UnsafeEnabled {
mi := &file_directory_items_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DirectoryItems) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DirectoryItems) ProtoMessage() {}
func (x *DirectoryItems) ProtoReflect() protoreflect.Message {
mi := &file_directory_items_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DirectoryItems.ProtoReflect.Descriptor instead.
func (*DirectoryItems) Descriptor() ([]byte, []int) {
return file_directory_items_proto_rawDescGZIP(), []int{0}
}
func (x *DirectoryItems) GetDirectoryItems() []*DirectoryItems_DirectoryItems {
if x != nil {
return x.DirectoryItems
}
return nil
}
func (x *DirectoryItems) GetMeta() *DirectoryItems_Meta {
if x != nil {
return x.Meta
}
return nil
}
type DirectoryItems_DirectoryItems struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
TimeRead int32 `protobuf:"varint,2,opt,name=time_read,json=timeRead,proto3" json:"time_read,omitempty"`
LikesReceived int32 `protobuf:"varint,3,opt,name=likes_received,json=likesReceived,proto3" json:"likes_received,omitempty"`
LikesGiven int32 `protobuf:"varint,4,opt,name=likes_given,json=likesGiven,proto3" json:"likes_given,omitempty"`
TopicsEntered int32 `protobuf:"varint,5,opt,name=topics_entered,json=topicsEntered,proto3" json:"topics_entered,omitempty"`
TopicCount int32 `protobuf:"varint,6,opt,name=topic_count,json=topicCount,proto3" json:"topic_count,omitempty"`
PostCount int32 `protobuf:"varint,7,opt,name=post_count,json=postCount,proto3" json:"post_count,omitempty"`
PostsRead int32 `protobuf:"varint,8,opt,name=posts_read,json=postsRead,proto3" json:"posts_read,omitempty"`
DaysVisited int32 `protobuf:"varint,9,opt,name=days_visited,json=daysVisited,proto3" json:"days_visited,omitempty"`
User *DirectoryItems_DirectoryItems_User `protobuf:"bytes,10,opt,name=user,proto3" json:"user,omitempty"`
}
func (x *DirectoryItems_DirectoryItems) Reset() {
*x = DirectoryItems_DirectoryItems{}
if protoimpl.UnsafeEnabled {
mi := &file_directory_items_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DirectoryItems_DirectoryItems) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DirectoryItems_DirectoryItems) ProtoMessage() {}
func (x *DirectoryItems_DirectoryItems) ProtoReflect() protoreflect.Message {
mi := &file_directory_items_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DirectoryItems_DirectoryItems.ProtoReflect.Descriptor instead.
func (*DirectoryItems_DirectoryItems) Descriptor() ([]byte, []int) {
return file_directory_items_proto_rawDescGZIP(), []int{0, 0}
}
func (x *DirectoryItems_DirectoryItems) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetTimeRead() int32 {
if x != nil {
return x.TimeRead
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetLikesReceived() int32 {
if x != nil {
return x.LikesReceived
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetLikesGiven() int32 {
if x != nil {
return x.LikesGiven
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetTopicsEntered() int32 {
if x != nil {
return x.TopicsEntered
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetTopicCount() int32 {
if x != nil {
return x.TopicCount
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetPostCount() int32 {
if x != nil {
return x.PostCount
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetPostsRead() int32 {
if x != nil {
return x.PostsRead
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetDaysVisited() int32 {
if x != nil {
return x.DaysVisited
}
return 0
}
func (x *DirectoryItems_DirectoryItems) GetUser() *DirectoryItems_DirectoryItems_User {
if x != nil {
return x.User
}
return nil
}
type DirectoryItems_Meta struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LastUpdatedAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=last_updated_at,json=lastUpdatedAt,proto3" json:"last_updated_at,omitempty"`
TotalRowsDirectoryItems int32 `protobuf:"varint,2,opt,name=total_rows_directory_items,json=totalRowsDirectoryItems,proto3" json:"total_rows_directory_items,omitempty"`
LoadMoreDirectoryItems string `protobuf:"bytes,3,opt,name=load_more_directory_items,json=loadMoreDirectoryItems,proto3" json:"load_more_directory_items,omitempty"`
}
func (x *DirectoryItems_Meta) Reset() {
*x = DirectoryItems_Meta{}
if protoimpl.UnsafeEnabled {
mi := &file_directory_items_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DirectoryItems_Meta) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DirectoryItems_Meta) ProtoMessage() {}
func (x *DirectoryItems_Meta) ProtoReflect() protoreflect.Message {
mi := &file_directory_items_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DirectoryItems_Meta.ProtoReflect.Descriptor instead.
func (*DirectoryItems_Meta) Descriptor() ([]byte, []int) {
return file_directory_items_proto_rawDescGZIP(), []int{0, 1}
}
func (x *DirectoryItems_Meta) GetLastUpdatedAt() *timestamppb.Timestamp {
if x != nil {
return x.LastUpdatedAt
}
return nil
}
func (x *DirectoryItems_Meta) GetTotalRowsDirectoryItems() int32 {
if x != nil {
return x.TotalRowsDirectoryItems
}
return 0
}
func (x *DirectoryItems_Meta) GetLoadMoreDirectoryItems() string {
if x != nil {
return x.LoadMoreDirectoryItems
}
return ""
}
type DirectoryItems_DirectoryItems_User struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
AvatarTemplate string `protobuf:"bytes,4,opt,name=avatar_template,json=avatarTemplate,proto3" json:"avatar_template,omitempty"`
Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"`
}
func (x *DirectoryItems_DirectoryItems_User) Reset() {
*x = DirectoryItems_DirectoryItems_User{}
if protoimpl.UnsafeEnabled {
mi := &file_directory_items_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DirectoryItems_DirectoryItems_User) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DirectoryItems_DirectoryItems_User) ProtoMessage() {}
func (x *DirectoryItems_DirectoryItems_User) ProtoReflect() protoreflect.Message {
mi := &file_directory_items_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DirectoryItems_DirectoryItems_User.ProtoReflect.Descriptor instead.
func (*DirectoryItems_DirectoryItems_User) Descriptor() ([]byte, []int) {
return file_directory_items_proto_rawDescGZIP(), []int{0, 0, 0}
}
func (x *DirectoryItems_DirectoryItems_User) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *DirectoryItems_DirectoryItems_User) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *DirectoryItems_DirectoryItems_User) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *DirectoryItems_DirectoryItems_User) GetAvatarTemplate() string {
if x != nil {
return x.AvatarTemplate
}
return ""
}
func (x *DirectoryItems_DirectoryItems_User) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
var File_directory_items_proto protoreflect.FileDescriptor
var file_directory_items_proto_rawDesc = []byte{
0x0a, 0x15, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72,
0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x06, 0x0a,
0x0e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12,
0x5a, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65,
0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f,
0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x69,
0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x44, 0x69, 0x72,
0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x0e, 0x64, 0x69, 0x72,
0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x04, 0x6d,
0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x69, 0x73, 0x63,
0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x4d, 0x65,
0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x1a, 0x82, 0x04, 0x0a, 0x0e, 0x44, 0x69, 0x72,
0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74,
0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x61, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x69, 0x6b, 0x65,
0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0d, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12,
0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x5f, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x18, 0x04,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x47, 0x69, 0x76, 0x65, 0x6e,
0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x65, 0x72,
0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73,
0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f,
0x70, 0x69, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x74,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6f,
0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x73,
0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6f, 0x73,
0x74, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x76,
0x69, 0x73, 0x69, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61,
0x79, 0x73, 0x56, 0x69, 0x73, 0x69, 0x74, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x04, 0x75, 0x73, 0x65,
0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75,
0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x69, 0x72,
0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52,
0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x85, 0x01, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a,
0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27,
0x0a, 0x0f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x54,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x1a, 0xc2, 0x01,
0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75,
0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x6c, 0x61, 0x73,
0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x74, 0x6f,
0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f,
0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17,
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f,
0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69,
0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x6c, 0x6f, 0x61, 0x64,
0x4d, 0x6f, 0x72, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65,
0x6d, 0x73, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x2e, 0x30, 0x63, 0x64, 0x2e, 0x78, 0x79,
0x7a, 0x2f, 0x6d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75,
0x72, 0x73, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x69, 0x73,
0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_directory_items_proto_rawDescOnce sync.Once
file_directory_items_proto_rawDescData = file_directory_items_proto_rawDesc
)
func file_directory_items_proto_rawDescGZIP() []byte {
file_directory_items_proto_rawDescOnce.Do(func() {
file_directory_items_proto_rawDescData = protoimpl.X.CompressGZIP(file_directory_items_proto_rawDescData)
})
return file_directory_items_proto_rawDescData
}
var file_directory_items_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_directory_items_proto_goTypes = []interface{}{
(*DirectoryItems)(nil), // 0: discourse.protobuf.DirectoryItems
(*DirectoryItems_DirectoryItems)(nil), // 1: discourse.protobuf.DirectoryItems.DirectoryItems
(*DirectoryItems_Meta)(nil), // 2: discourse.protobuf.DirectoryItems.Meta
(*DirectoryItems_DirectoryItems_User)(nil), // 3: discourse.protobuf.DirectoryItems.DirectoryItems.User
(*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
}
var file_directory_items_proto_depIdxs = []int32{
1, // 0: discourse.protobuf.DirectoryItems.directory_items:type_name -> discourse.protobuf.DirectoryItems.DirectoryItems
2, // 1: discourse.protobuf.DirectoryItems.meta:type_name -> discourse.protobuf.DirectoryItems.Meta
3, // 2: discourse.protobuf.DirectoryItems.DirectoryItems.user:type_name -> discourse.protobuf.DirectoryItems.DirectoryItems.User
4, // 3: discourse.protobuf.DirectoryItems.Meta.last_updated_at:type_name -> google.protobuf.Timestamp
4, // [4:4] is the sub-list for method output_type
4, // [4:4] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_directory_items_proto_init() }
func file_directory_items_proto_init() {
if File_directory_items_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_directory_items_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DirectoryItems); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_directory_items_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DirectoryItems_DirectoryItems); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_directory_items_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DirectoryItems_Meta); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_directory_items_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DirectoryItems_DirectoryItems_User); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_directory_items_proto_rawDesc,
NumEnums: 0,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_directory_items_proto_goTypes,
DependencyIndexes: file_directory_items_proto_depIdxs,
MessageInfos: file_directory_items_proto_msgTypes,
}.Build()
File_directory_items_proto = out.File
file_directory_items_proto_rawDesc = nil
file_directory_items_proto_goTypes = nil
file_directory_items_proto_depIdxs = nil
}

845
discoursepb/latest.pb.go Normal file
View File

@ -0,0 +1,845 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: latest.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type Latest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Users []*Latest_Users `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
TopicList *Latest_TopicList `protobuf:"bytes,2,opt,name=topic_list,json=topicList,proto3" json:"topic_list,omitempty"`
}
func (x *Latest) Reset() {
*x = Latest{}
if protoimpl.UnsafeEnabled {
mi := &file_latest_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Latest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Latest) ProtoMessage() {}
func (x *Latest) ProtoReflect() protoreflect.Message {
mi := &file_latest_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Latest.ProtoReflect.Descriptor instead.
func (*Latest) Descriptor() ([]byte, []int) {
return file_latest_proto_rawDescGZIP(), []int{0}
}
func (x *Latest) GetUsers() []*Latest_Users {
if x != nil {
return x.Users
}
return nil
}
func (x *Latest) GetTopicList() *Latest_TopicList {
if x != nil {
return x.TopicList
}
return nil
}
type Latest_Users struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
AvatarTemplate string `protobuf:"bytes,4,opt,name=avatar_template,json=avatarTemplate,proto3" json:"avatar_template,omitempty"`
}
func (x *Latest_Users) Reset() {
*x = Latest_Users{}
if protoimpl.UnsafeEnabled {
mi := &file_latest_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Latest_Users) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Latest_Users) ProtoMessage() {}
func (x *Latest_Users) ProtoReflect() protoreflect.Message {
mi := &file_latest_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Latest_Users.ProtoReflect.Descriptor instead.
func (*Latest_Users) Descriptor() ([]byte, []int) {
return file_latest_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Latest_Users) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Latest_Users) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *Latest_Users) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Latest_Users) GetAvatarTemplate() string {
if x != nil {
return x.AvatarTemplate
}
return ""
}
type Latest_TopicList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CanCreateTopics bool `protobuf:"varint,1,opt,name=can_create_topics,json=canCreateTopics,proto3" json:"can_create_topics,omitempty"`
MoreTopicsUrl string `protobuf:"bytes,2,opt,name=more_topics_url,json=moreTopicsUrl,proto3" json:"more_topics_url,omitempty"`
PerPage int32 `protobuf:"varint,3,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"`
TopTags []string `protobuf:"bytes,4,rep,name=top_tags,json=topTags,proto3" json:"top_tags,omitempty"`
Topics []*Latest_TopicList_Topics `protobuf:"bytes,5,rep,name=topics,proto3" json:"topics,omitempty"`
Posters []*Latest_TopicList_Posters `protobuf:"bytes,6,rep,name=posters,proto3" json:"posters,omitempty"`
}
func (x *Latest_TopicList) Reset() {
*x = Latest_TopicList{}
if protoimpl.UnsafeEnabled {
mi := &file_latest_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Latest_TopicList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Latest_TopicList) ProtoMessage() {}
func (x *Latest_TopicList) ProtoReflect() protoreflect.Message {
mi := &file_latest_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Latest_TopicList.ProtoReflect.Descriptor instead.
func (*Latest_TopicList) Descriptor() ([]byte, []int) {
return file_latest_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Latest_TopicList) GetCanCreateTopics() bool {
if x != nil {
return x.CanCreateTopics
}
return false
}
func (x *Latest_TopicList) GetMoreTopicsUrl() string {
if x != nil {
return x.MoreTopicsUrl
}
return ""
}
func (x *Latest_TopicList) GetPerPage() int32 {
if x != nil {
return x.PerPage
}
return 0
}
func (x *Latest_TopicList) GetTopTags() []string {
if x != nil {
return x.TopTags
}
return nil
}
func (x *Latest_TopicList) GetTopics() []*Latest_TopicList_Topics {
if x != nil {
return x.Topics
}
return nil
}
func (x *Latest_TopicList) GetPosters() []*Latest_TopicList_Posters {
if x != nil {
return x.Posters
}
return nil
}
type Latest_TopicList_Topics struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
Slug string `protobuf:"bytes,3,opt,name=slug,proto3" json:"slug,omitempty"`
PostsCount int32 `protobuf:"varint,4,opt,name=posts_count,json=postsCount,proto3" json:"posts_count,omitempty"`
ReplyCount int32 `protobuf:"varint,5,opt,name=reply_count,json=replyCount,proto3" json:"reply_count,omitempty"`
HighestPostNumber int32 `protobuf:"varint,6,opt,name=highest_post_number,json=highestPostNumber,proto3" json:"highest_post_number,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
LastPostedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=last_posted_at,json=lastPostedAt,proto3" json:"last_posted_at,omitempty"`
Bumped bool `protobuf:"varint,9,opt,name=bumped,proto3" json:"bumped,omitempty"`
BumpedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=bumped_at,json=bumpedAt,proto3" json:"bumped_at,omitempty"`
Archetype string `protobuf:"bytes,11,opt,name=archetype,proto3" json:"archetype,omitempty"`
Unseen bool `protobuf:"varint,12,opt,name=unseen,proto3" json:"unseen,omitempty"`
LastReadPostNumber int32 `protobuf:"varint,13,opt,name=last_read_post_number,json=lastReadPostNumber,proto3" json:"last_read_post_number,omitempty"`
Unread int32 `protobuf:"varint,14,opt,name=unread,proto3" json:"unread,omitempty"`
NewPosts int32 `protobuf:"varint,15,opt,name=new_posts,json=newPosts,proto3" json:"new_posts,omitempty"`
Pinned bool `protobuf:"varint,16,opt,name=pinned,proto3" json:"pinned,omitempty"`
Visible bool `protobuf:"varint,17,opt,name=visible,proto3" json:"visible,omitempty"`
Closed bool `protobuf:"varint,18,opt,name=closed,proto3" json:"closed,omitempty"`
Archived bool `protobuf:"varint,19,opt,name=archived,proto3" json:"archived,omitempty"`
NotificationLevel int32 `protobuf:"varint,20,opt,name=notification_level,json=notificationLevel,proto3" json:"notification_level,omitempty"`
Bookmarked bool `protobuf:"varint,21,opt,name=bookmarked,proto3" json:"bookmarked,omitempty"`
Liked bool `protobuf:"varint,22,opt,name=liked,proto3" json:"liked,omitempty"`
Tags []string `protobuf:"bytes,23,rep,name=tags,proto3" json:"tags,omitempty"`
Views int32 `protobuf:"varint,24,opt,name=views,proto3" json:"views,omitempty"`
LikeCount int32 `protobuf:"varint,25,opt,name=like_count,json=likeCount,proto3" json:"like_count,omitempty"`
HasSummary bool `protobuf:"varint,26,opt,name=has_summary,json=hasSummary,proto3" json:"has_summary,omitempty"`
LastPosterUsername string `protobuf:"bytes,27,opt,name=last_poster_username,json=lastPosterUsername,proto3" json:"last_poster_username,omitempty"`
CategoryId int32 `protobuf:"varint,28,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"`
PinnedGlobally bool `protobuf:"varint,29,opt,name=pinned_globally,json=pinnedGlobally,proto3" json:"pinned_globally,omitempty"`
BookmarkedPostNumbers []int32 `protobuf:"varint,30,rep,packed,name=bookmarked_post_numbers,json=bookmarkedPostNumbers,proto3" json:"bookmarked_post_numbers,omitempty"`
HasAcceptedAnswer bool `protobuf:"varint,31,opt,name=has_accepted_answer,json=hasAcceptedAnswer,proto3" json:"has_accepted_answer,omitempty"`
}
func (x *Latest_TopicList_Topics) Reset() {
*x = Latest_TopicList_Topics{}
if protoimpl.UnsafeEnabled {
mi := &file_latest_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Latest_TopicList_Topics) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Latest_TopicList_Topics) ProtoMessage() {}
func (x *Latest_TopicList_Topics) ProtoReflect() protoreflect.Message {
mi := &file_latest_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Latest_TopicList_Topics.ProtoReflect.Descriptor instead.
func (*Latest_TopicList_Topics) Descriptor() ([]byte, []int) {
return file_latest_proto_rawDescGZIP(), []int{0, 1, 0}
}
func (x *Latest_TopicList_Topics) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Latest_TopicList_Topics) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *Latest_TopicList_Topics) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *Latest_TopicList_Topics) GetPostsCount() int32 {
if x != nil {
return x.PostsCount
}
return 0
}
func (x *Latest_TopicList_Topics) GetReplyCount() int32 {
if x != nil {
return x.ReplyCount
}
return 0
}
func (x *Latest_TopicList_Topics) GetHighestPostNumber() int32 {
if x != nil {
return x.HighestPostNumber
}
return 0
}
func (x *Latest_TopicList_Topics) GetCreatedAt() *timestamppb.Timestamp {
if x != nil {
return x.CreatedAt
}
return nil
}
func (x *Latest_TopicList_Topics) GetLastPostedAt() *timestamppb.Timestamp {
if x != nil {
return x.LastPostedAt
}
return nil
}
func (x *Latest_TopicList_Topics) GetBumped() bool {
if x != nil {
return x.Bumped
}
return false
}
func (x *Latest_TopicList_Topics) GetBumpedAt() *timestamppb.Timestamp {
if x != nil {
return x.BumpedAt
}
return nil
}
func (x *Latest_TopicList_Topics) GetArchetype() string {
if x != nil {
return x.Archetype
}
return ""
}
func (x *Latest_TopicList_Topics) GetUnseen() bool {
if x != nil {
return x.Unseen
}
return false
}
func (x *Latest_TopicList_Topics) GetLastReadPostNumber() int32 {
if x != nil {
return x.LastReadPostNumber
}
return 0
}
func (x *Latest_TopicList_Topics) GetUnread() int32 {
if x != nil {
return x.Unread
}
return 0
}
func (x *Latest_TopicList_Topics) GetNewPosts() int32 {
if x != nil {
return x.NewPosts
}
return 0
}
func (x *Latest_TopicList_Topics) GetPinned() bool {
if x != nil {
return x.Pinned
}
return false
}
func (x *Latest_TopicList_Topics) GetVisible() bool {
if x != nil {
return x.Visible
}
return false
}
func (x *Latest_TopicList_Topics) GetClosed() bool {
if x != nil {
return x.Closed
}
return false
}
func (x *Latest_TopicList_Topics) GetArchived() bool {
if x != nil {
return x.Archived
}
return false
}
func (x *Latest_TopicList_Topics) GetNotificationLevel() int32 {
if x != nil {
return x.NotificationLevel
}
return 0
}
func (x *Latest_TopicList_Topics) GetBookmarked() bool {
if x != nil {
return x.Bookmarked
}
return false
}
func (x *Latest_TopicList_Topics) GetLiked() bool {
if x != nil {
return x.Liked
}
return false
}
func (x *Latest_TopicList_Topics) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *Latest_TopicList_Topics) GetViews() int32 {
if x != nil {
return x.Views
}
return 0
}
func (x *Latest_TopicList_Topics) GetLikeCount() int32 {
if x != nil {
return x.LikeCount
}
return 0
}
func (x *Latest_TopicList_Topics) GetHasSummary() bool {
if x != nil {
return x.HasSummary
}
return false
}
func (x *Latest_TopicList_Topics) GetLastPosterUsername() string {
if x != nil {
return x.LastPosterUsername
}
return ""
}
func (x *Latest_TopicList_Topics) GetCategoryId() int32 {
if x != nil {
return x.CategoryId
}
return 0
}
func (x *Latest_TopicList_Topics) GetPinnedGlobally() bool {
if x != nil {
return x.PinnedGlobally
}
return false
}
func (x *Latest_TopicList_Topics) GetBookmarkedPostNumbers() []int32 {
if x != nil {
return x.BookmarkedPostNumbers
}
return nil
}
func (x *Latest_TopicList_Topics) GetHasAcceptedAnswer() bool {
if x != nil {
return x.HasAcceptedAnswer
}
return false
}
type Latest_TopicList_Posters struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Extras string `protobuf:"bytes,1,opt,name=extras,proto3" json:"extras,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
UserId int32 `protobuf:"varint,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
PrimaryGroupId int32 `protobuf:"varint,4,opt,name=primary_group_id,json=primaryGroupId,proto3" json:"primary_group_id,omitempty"`
}
func (x *Latest_TopicList_Posters) Reset() {
*x = Latest_TopicList_Posters{}
if protoimpl.UnsafeEnabled {
mi := &file_latest_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Latest_TopicList_Posters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Latest_TopicList_Posters) ProtoMessage() {}
func (x *Latest_TopicList_Posters) ProtoReflect() protoreflect.Message {
mi := &file_latest_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Latest_TopicList_Posters.ProtoReflect.Descriptor instead.
func (*Latest_TopicList_Posters) Descriptor() ([]byte, []int) {
return file_latest_proto_rawDescGZIP(), []int{0, 1, 1}
}
func (x *Latest_TopicList_Posters) GetExtras() string {
if x != nil {
return x.Extras
}
return ""
}
func (x *Latest_TopicList_Posters) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Latest_TopicList_Posters) GetUserId() int32 {
if x != nil {
return x.UserId
}
return 0
}
func (x *Latest_TopicList_Posters) GetPrimaryGroupId() int32 {
if x != nil {
return x.PrimaryGroupId
}
return 0
}
var File_latest_proto protoreflect.FileDescriptor
var file_latest_proto_rawDesc = []byte{
0x0a, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12,
0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0xe1, 0x0d, 0x0a, 0x06, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x36,
0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,
0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52,
0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f,
0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x69, 0x73,
0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74,
0x52, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x70, 0x0a, 0x05, 0x55,
0x73, 0x65, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x74,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61,
0x76, 0x61, 0x74, 0x61, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0xe7, 0x0b,
0x0a, 0x09, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x63,
0x61, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73,
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x6f, 0x72, 0x65, 0x5f,
0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x55, 0x72, 0x6c, 0x12,
0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f,
0x70, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f,
0x70, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18,
0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73,
0x74, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x70, 0x69,
0x63, 0x73, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x70, 0x6f,
0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x69,
0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73,
0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x65,
0x72, 0x73, 0x1a, 0xb9, 0x08, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a,
0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69,
0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x73,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6f,
0x73, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c,
0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72,
0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x69, 0x67,
0x68, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x50,
0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x64, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6f,
0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x64,
0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x64, 0x12, 0x37,
0x0a, 0x09, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x62,
0x75, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x63, 0x68, 0x65,
0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x63, 0x68,
0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x73, 0x65, 0x65, 0x6e, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x73, 0x65, 0x65, 0x6e, 0x12, 0x31, 0x0a,
0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6c, 0x61,
0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05,
0x52, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f,
0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x65, 0x77,
0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18,
0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x18, 0x0a,
0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65,
0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12,
0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28,
0x08, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x6e,
0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65,
0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6f,
0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69,
0x6b, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
0x74, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x18, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x65, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x69,
0x6b, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73,
0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
0x68, 0x61, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61,
0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6f,
0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a,
0x0f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x6c, 0x79,
0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x47, 0x6c,
0x6f, 0x62, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61,
0x72, 0x6b, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x15, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72,
0x6b, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2e,
0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61,
0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x61, 0x73,
0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x1a, 0x86,
0x01, 0x0a, 0x07, 0x50, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78,
0x74, 0x72, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x74, 0x72,
0x61, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a,
0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69,
0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x2e, 0x30,
0x63, 0x64, 0x2e, 0x78, 0x79, 0x7a, 0x2f, 0x6d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x2f, 0x64,
0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_latest_proto_rawDescOnce sync.Once
file_latest_proto_rawDescData = file_latest_proto_rawDesc
)
func file_latest_proto_rawDescGZIP() []byte {
file_latest_proto_rawDescOnce.Do(func() {
file_latest_proto_rawDescData = protoimpl.X.CompressGZIP(file_latest_proto_rawDescData)
})
return file_latest_proto_rawDescData
}
var file_latest_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_latest_proto_goTypes = []interface{}{
(*Latest)(nil), // 0: discourse.protobuf.Latest
(*Latest_Users)(nil), // 1: discourse.protobuf.Latest.Users
(*Latest_TopicList)(nil), // 2: discourse.protobuf.Latest.TopicList
(*Latest_TopicList_Topics)(nil), // 3: discourse.protobuf.Latest.TopicList.Topics
(*Latest_TopicList_Posters)(nil), // 4: discourse.protobuf.Latest.TopicList.Posters
(*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
}
var file_latest_proto_depIdxs = []int32{
1, // 0: discourse.protobuf.Latest.users:type_name -> discourse.protobuf.Latest.Users
2, // 1: discourse.protobuf.Latest.topic_list:type_name -> discourse.protobuf.Latest.TopicList
3, // 2: discourse.protobuf.Latest.TopicList.topics:type_name -> discourse.protobuf.Latest.TopicList.Topics
4, // 3: discourse.protobuf.Latest.TopicList.posters:type_name -> discourse.protobuf.Latest.TopicList.Posters
5, // 4: discourse.protobuf.Latest.TopicList.Topics.created_at:type_name -> google.protobuf.Timestamp
5, // 5: discourse.protobuf.Latest.TopicList.Topics.last_posted_at:type_name -> google.protobuf.Timestamp
5, // 6: discourse.protobuf.Latest.TopicList.Topics.bumped_at:type_name -> google.protobuf.Timestamp
7, // [7:7] is the sub-list for method output_type
7, // [7:7] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
7, // [7:7] is the sub-list for extension extendee
0, // [0:7] is the sub-list for field type_name
}
func init() { file_latest_proto_init() }
func file_latest_proto_init() {
if File_latest_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_latest_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Latest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_latest_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Latest_Users); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_latest_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Latest_TopicList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_latest_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Latest_TopicList_Topics); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_latest_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Latest_TopicList_Posters); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_latest_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_latest_proto_goTypes,
DependencyIndexes: file_latest_proto_depIdxs,
MessageInfos: file_latest_proto_msgTypes,
}.Build()
File_latest_proto = out.File
file_latest_proto_rawDesc = nil
file_latest_proto_goTypes = nil
file_latest_proto_depIdxs = nil
}

750
discoursepb/posts.pb.go Normal file
View File

@ -0,0 +1,750 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: posts.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type PostsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
TopicId int32 `protobuf:"varint,2,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"`
Raw string `protobuf:"bytes,3,opt,name=raw,proto3" json:"raw,omitempty"`
Category int32 `protobuf:"varint,4,opt,name=category,proto3" json:"category,omitempty"`
TargetRecipients string `protobuf:"bytes,5,opt,name=target_recipients,json=targetRecipients,proto3" json:"target_recipients,omitempty"`
Archetype string `protobuf:"bytes,6,opt,name=archetype,proto3" json:"archetype,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
}
func (x *PostsRequest) Reset() {
*x = PostsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_posts_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PostsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostsRequest) ProtoMessage() {}
func (x *PostsRequest) ProtoReflect() protoreflect.Message {
mi := &file_posts_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostsRequest.ProtoReflect.Descriptor instead.
func (*PostsRequest) Descriptor() ([]byte, []int) {
return file_posts_proto_rawDescGZIP(), []int{0}
}
func (x *PostsRequest) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *PostsRequest) GetTopicId() int32 {
if x != nil {
return x.TopicId
}
return 0
}
func (x *PostsRequest) GetRaw() string {
if x != nil {
return x.Raw
}
return ""
}
func (x *PostsRequest) GetCategory() int32 {
if x != nil {
return x.Category
}
return 0
}
func (x *PostsRequest) GetTargetRecipients() string {
if x != nil {
return x.TargetRecipients
}
return ""
}
func (x *PostsRequest) GetArchetype() string {
if x != nil {
return x.Archetype
}
return ""
}
func (x *PostsRequest) GetCreatedAt() *timestamppb.Timestamp {
if x != nil {
return x.CreatedAt
}
return nil
}
type PostsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
AvatarTemplate string `protobuf:"bytes,3,opt,name=avatar_template,json=avatarTemplate,proto3" json:"avatar_template,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
Cooked string `protobuf:"bytes,5,opt,name=cooked,proto3" json:"cooked,omitempty"`
PostNumber int32 `protobuf:"varint,6,opt,name=post_number,json=postNumber,proto3" json:"post_number,omitempty"`
PostType int32 `protobuf:"varint,7,opt,name=post_type,json=postType,proto3" json:"post_type,omitempty"`
UpdatedAt string `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
ReplyCount int32 `protobuf:"varint,9,opt,name=reply_count,json=replyCount,proto3" json:"reply_count,omitempty"`
ReplyToPostNumber int32 `protobuf:"varint,10,opt,name=reply_to_post_number,json=replyToPostNumber,proto3" json:"reply_to_post_number,omitempty"`
QuoteCount int32 `protobuf:"varint,11,opt,name=quote_count,json=quoteCount,proto3" json:"quote_count,omitempty"`
AvgTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=avg_time,json=avgTime,proto3" json:"avg_time,omitempty"`
IncomingLinkCount int32 `protobuf:"varint,13,opt,name=incoming_link_count,json=incomingLinkCount,proto3" json:"incoming_link_count,omitempty"`
Reads int32 `protobuf:"varint,14,opt,name=reads,proto3" json:"reads,omitempty"`
Score float64 `protobuf:"fixed64,15,opt,name=score,proto3" json:"score,omitempty"`
Yours bool `protobuf:"varint,16,opt,name=yours,proto3" json:"yours,omitempty"`
TopicId int32 `protobuf:"varint,17,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"`
TopicSlug string `protobuf:"bytes,18,opt,name=topic_slug,json=topicSlug,proto3" json:"topic_slug,omitempty"`
DisplayUsername string `protobuf:"bytes,19,opt,name=display_username,json=displayUsername,proto3" json:"display_username,omitempty"`
Version int32 `protobuf:"varint,20,opt,name=version,proto3" json:"version,omitempty"`
CanEdit bool `protobuf:"varint,21,opt,name=can_edit,json=canEdit,proto3" json:"can_edit,omitempty"`
CanDelete bool `protobuf:"varint,22,opt,name=can_delete,json=canDelete,proto3" json:"can_delete,omitempty"`
CanRecover bool `protobuf:"varint,23,opt,name=can_recover,json=canRecover,proto3" json:"can_recover,omitempty"`
CanWiki bool `protobuf:"varint,24,opt,name=can_wiki,json=canWiki,proto3" json:"can_wiki,omitempty"`
UserTitle string `protobuf:"bytes,25,opt,name=user_title,json=userTitle,proto3" json:"user_title,omitempty"`
ActionsSummary []*PostsResponse_ActionsSummary `protobuf:"bytes,26,rep,name=actions_summary,json=actionsSummary,proto3" json:"actions_summary,omitempty"`
Moderator bool `protobuf:"varint,27,opt,name=moderator,proto3" json:"moderator,omitempty"`
Admin bool `protobuf:"varint,28,opt,name=admin,proto3" json:"admin,omitempty"`
Staff bool `protobuf:"varint,29,opt,name=staff,proto3" json:"staff,omitempty"`
UserId int32 `protobuf:"varint,30,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
DraftSequence int32 `protobuf:"varint,31,opt,name=draft_sequence,json=draftSequence,proto3" json:"draft_sequence,omitempty"`
Hidden bool `protobuf:"varint,32,opt,name=hidden,proto3" json:"hidden,omitempty"`
HiddenReasonId int32 `protobuf:"varint,33,opt,name=hidden_reason_id,json=hiddenReasonId,proto3" json:"hidden_reason_id,omitempty"`
TrustLevel int32 `protobuf:"varint,34,opt,name=trust_level,json=trustLevel,proto3" json:"trust_level,omitempty"`
DeletedAt *timestamppb.Timestamp `protobuf:"bytes,35,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"`
UserDeleted bool `protobuf:"varint,36,opt,name=user_deleted,json=userDeleted,proto3" json:"user_deleted,omitempty"`
EditReason string `protobuf:"bytes,37,opt,name=edit_reason,json=editReason,proto3" json:"edit_reason,omitempty"`
CanViewEditHistory bool `protobuf:"varint,38,opt,name=can_view_edit_history,json=canViewEditHistory,proto3" json:"can_view_edit_history,omitempty"`
Wiki bool `protobuf:"varint,39,opt,name=wiki,proto3" json:"wiki,omitempty"`
}
func (x *PostsResponse) Reset() {
*x = PostsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_posts_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PostsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostsResponse) ProtoMessage() {}
func (x *PostsResponse) ProtoReflect() protoreflect.Message {
mi := &file_posts_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostsResponse.ProtoReflect.Descriptor instead.
func (*PostsResponse) Descriptor() ([]byte, []int) {
return file_posts_proto_rawDescGZIP(), []int{1}
}
func (x *PostsResponse) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *PostsResponse) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PostsResponse) GetAvatarTemplate() string {
if x != nil {
return x.AvatarTemplate
}
return ""
}
func (x *PostsResponse) GetCreatedAt() *timestamppb.Timestamp {
if x != nil {
return x.CreatedAt
}
return nil
}
func (x *PostsResponse) GetCooked() string {
if x != nil {
return x.Cooked
}
return ""
}
func (x *PostsResponse) GetPostNumber() int32 {
if x != nil {
return x.PostNumber
}
return 0
}
func (x *PostsResponse) GetPostType() int32 {
if x != nil {
return x.PostType
}
return 0
}
func (x *PostsResponse) GetUpdatedAt() string {
if x != nil {
return x.UpdatedAt
}
return ""
}
func (x *PostsResponse) GetReplyCount() int32 {
if x != nil {
return x.ReplyCount
}
return 0
}
func (x *PostsResponse) GetReplyToPostNumber() int32 {
if x != nil {
return x.ReplyToPostNumber
}
return 0
}
func (x *PostsResponse) GetQuoteCount() int32 {
if x != nil {
return x.QuoteCount
}
return 0
}
func (x *PostsResponse) GetAvgTime() *timestamppb.Timestamp {
if x != nil {
return x.AvgTime
}
return nil
}
func (x *PostsResponse) GetIncomingLinkCount() int32 {
if x != nil {
return x.IncomingLinkCount
}
return 0
}
func (x *PostsResponse) GetReads() int32 {
if x != nil {
return x.Reads
}
return 0
}
func (x *PostsResponse) GetScore() float64 {
if x != nil {
return x.Score
}
return 0
}
func (x *PostsResponse) GetYours() bool {
if x != nil {
return x.Yours
}
return false
}
func (x *PostsResponse) GetTopicId() int32 {
if x != nil {
return x.TopicId
}
return 0
}
func (x *PostsResponse) GetTopicSlug() string {
if x != nil {
return x.TopicSlug
}
return ""
}
func (x *PostsResponse) GetDisplayUsername() string {
if x != nil {
return x.DisplayUsername
}
return ""
}
func (x *PostsResponse) GetVersion() int32 {
if x != nil {
return x.Version
}
return 0
}
func (x *PostsResponse) GetCanEdit() bool {
if x != nil {
return x.CanEdit
}
return false
}
func (x *PostsResponse) GetCanDelete() bool {
if x != nil {
return x.CanDelete
}
return false
}
func (x *PostsResponse) GetCanRecover() bool {
if x != nil {
return x.CanRecover
}
return false
}
func (x *PostsResponse) GetCanWiki() bool {
if x != nil {
return x.CanWiki
}
return false
}
func (x *PostsResponse) GetUserTitle() string {
if x != nil {
return x.UserTitle
}
return ""
}
func (x *PostsResponse) GetActionsSummary() []*PostsResponse_ActionsSummary {
if x != nil {
return x.ActionsSummary
}
return nil
}
func (x *PostsResponse) GetModerator() bool {
if x != nil {
return x.Moderator
}
return false
}
func (x *PostsResponse) GetAdmin() bool {
if x != nil {
return x.Admin
}
return false
}
func (x *PostsResponse) GetStaff() bool {
if x != nil {
return x.Staff
}
return false
}
func (x *PostsResponse) GetUserId() int32 {
if x != nil {
return x.UserId
}
return 0
}
func (x *PostsResponse) GetDraftSequence() int32 {
if x != nil {
return x.DraftSequence
}
return 0
}
func (x *PostsResponse) GetHidden() bool {
if x != nil {
return x.Hidden
}
return false
}
func (x *PostsResponse) GetHiddenReasonId() int32 {
if x != nil {
return x.HiddenReasonId
}
return 0
}
func (x *PostsResponse) GetTrustLevel() int32 {
if x != nil {
return x.TrustLevel
}
return 0
}
func (x *PostsResponse) GetDeletedAt() *timestamppb.Timestamp {
if x != nil {
return x.DeletedAt
}
return nil
}
func (x *PostsResponse) GetUserDeleted() bool {
if x != nil {
return x.UserDeleted
}
return false
}
func (x *PostsResponse) GetEditReason() string {
if x != nil {
return x.EditReason
}
return ""
}
func (x *PostsResponse) GetCanViewEditHistory() bool {
if x != nil {
return x.CanViewEditHistory
}
return false
}
func (x *PostsResponse) GetWiki() bool {
if x != nil {
return x.Wiki
}
return false
}
type PostsResponse_ActionsSummary struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Hidden bool `protobuf:"varint,2,opt,name=hidden,proto3" json:"hidden,omitempty"`
CanAct bool `protobuf:"varint,3,opt,name=can_act,json=canAct,proto3" json:"can_act,omitempty"`
}
func (x *PostsResponse_ActionsSummary) Reset() {
*x = PostsResponse_ActionsSummary{}
if protoimpl.UnsafeEnabled {
mi := &file_posts_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PostsResponse_ActionsSummary) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostsResponse_ActionsSummary) ProtoMessage() {}
func (x *PostsResponse_ActionsSummary) ProtoReflect() protoreflect.Message {
mi := &file_posts_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostsResponse_ActionsSummary.ProtoReflect.Descriptor instead.
func (*PostsResponse_ActionsSummary) Descriptor() ([]byte, []int) {
return file_posts_proto_rawDescGZIP(), []int{1, 0}
}
func (x *PostsResponse_ActionsSummary) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *PostsResponse_ActionsSummary) GetHidden() bool {
if x != nil {
return x.Hidden
}
return false
}
func (x *PostsResponse_ActionsSummary) GetCanAct() bool {
if x != nil {
return x.CanAct
}
return false
}
var File_posts_proto protoreflect.FileDescriptor
var file_posts_proto_rawDesc = []byte{
0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x64,
0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0xf3, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70,
0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x6f, 0x70,
0x69, 0x63, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x72, 0x61, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x63,
0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74,
0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12,
0x1c, 0x0a, 0x09, 0x61, 0x72, 0x63, 0x68, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x63, 0x68, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a,
0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63,
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x9d, 0x0b, 0x0a, 0x0d, 0x50, 0x6f, 0x73,
0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27,
0x0a, 0x0f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x54,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f,
0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0a, 0x70, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70,
0x6f, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x70, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70,
0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x79,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65,
0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c,
0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x50,
0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f,
0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x61, 0x76,
0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x61, 0x76, 0x67, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69,
0x6e, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11,
0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x6b, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65,
0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x79, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x79, 0x6f,
0x75, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18,
0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1d,
0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x73, 0x6c, 0x75, 0x67, 0x18, 0x12, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x6c, 0x75, 0x67, 0x12, 0x29, 0x0a,
0x10, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x18, 0x15,
0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x45, 0x64, 0x69, 0x74, 0x12, 0x1d, 0x0a,
0x0a, 0x63, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28,
0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
0x63, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x19, 0x0a,
0x08, 0x63, 0x61, 0x6e, 0x5f, 0x77, 0x69, 0x6b, 0x69, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52,
0x07, 0x63, 0x61, 0x6e, 0x57, 0x69, 0x6b, 0x69, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72,
0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73,
0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x59, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x30, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61,
0x72, 0x79, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61,
0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18,
0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52,
0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x66, 0x66, 0x18,
0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x74, 0x61, 0x66, 0x66, 0x12, 0x17, 0x0a, 0x07,
0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75,
0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x73,
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64,
0x72, 0x61, 0x66, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06,
0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69,
0x64, 0x64, 0x65, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x72,
0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e,
0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f,
0x0a, 0x0b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x22, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x72, 0x75, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x23, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73,
0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a,
0x0b, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x25, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x31,
0x0a, 0x15, 0x63, 0x61, 0x6e, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f,
0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x63,
0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x45, 0x64, 0x69, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
0x79, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x69, 0x6b, 0x69, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52,
0x04, 0x77, 0x69, 0x6b, 0x69, 0x1a, 0x51, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12,
0x17, 0x0a, 0x07, 0x63, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
0x52, 0x06, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x2e,
0x30, 0x63, 0x64, 0x2e, 0x78, 0x79, 0x7a, 0x2f, 0x6d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x2f,
0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x70, 0x62, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_posts_proto_rawDescOnce sync.Once
file_posts_proto_rawDescData = file_posts_proto_rawDesc
)
func file_posts_proto_rawDescGZIP() []byte {
file_posts_proto_rawDescOnce.Do(func() {
file_posts_proto_rawDescData = protoimpl.X.CompressGZIP(file_posts_proto_rawDescData)
})
return file_posts_proto_rawDescData
}
var file_posts_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_posts_proto_goTypes = []interface{}{
(*PostsRequest)(nil), // 0: discourse.protobuf.PostsRequest
(*PostsResponse)(nil), // 1: discourse.protobuf.PostsResponse
(*PostsResponse_ActionsSummary)(nil), // 2: discourse.protobuf.PostsResponse.ActionsSummary
(*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp
}
var file_posts_proto_depIdxs = []int32{
3, // 0: discourse.protobuf.PostsRequest.created_at:type_name -> google.protobuf.Timestamp
3, // 1: discourse.protobuf.PostsResponse.created_at:type_name -> google.protobuf.Timestamp
3, // 2: discourse.protobuf.PostsResponse.avg_time:type_name -> google.protobuf.Timestamp
2, // 3: discourse.protobuf.PostsResponse.actions_summary:type_name -> discourse.protobuf.PostsResponse.ActionsSummary
3, // 4: discourse.protobuf.PostsResponse.deleted_at:type_name -> google.protobuf.Timestamp
5, // [5:5] is the sub-list for method output_type
5, // [5:5] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
}
func init() { file_posts_proto_init() }
func file_posts_proto_init() {
if File_posts_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_posts_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PostsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_posts_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PostsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_posts_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PostsResponse_ActionsSummary); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_posts_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_posts_proto_goTypes,
DependencyIndexes: file_posts_proto_depIdxs,
MessageInfos: file_posts_proto_msgTypes,
}.Build()
File_posts_proto = out.File
file_posts_proto_rawDesc = nil
file_posts_proto_goTypes = nil
file_posts_proto_depIdxs = nil
}

1892
discoursepb/site.pb.go Normal file

File diff suppressed because it is too large Load Diff

945
discoursepb/tag.pb.go Normal file
View File

@ -0,0 +1,945 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: tag.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type Tag struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Users []*Tag_Users `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
TopicList *Tag_TopicList `protobuf:"bytes,2,opt,name=topic_list,json=topicList,proto3" json:"topic_list,omitempty"`
}
func (x *Tag) Reset() {
*x = Tag{}
if protoimpl.UnsafeEnabled {
mi := &file_tag_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tag) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tag) ProtoMessage() {}
func (x *Tag) ProtoReflect() protoreflect.Message {
mi := &file_tag_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tag.ProtoReflect.Descriptor instead.
func (*Tag) Descriptor() ([]byte, []int) {
return file_tag_proto_rawDescGZIP(), []int{0}
}
func (x *Tag) GetUsers() []*Tag_Users {
if x != nil {
return x.Users
}
return nil
}
func (x *Tag) GetTopicList() *Tag_TopicList {
if x != nil {
return x.TopicList
}
return nil
}
type Tag_Users struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
AvatarTemplate string `protobuf:"bytes,3,opt,name=avatar_template,json=avatarTemplate,proto3" json:"avatar_template,omitempty"`
}
func (x *Tag_Users) Reset() {
*x = Tag_Users{}
if protoimpl.UnsafeEnabled {
mi := &file_tag_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tag_Users) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tag_Users) ProtoMessage() {}
func (x *Tag_Users) ProtoReflect() protoreflect.Message {
mi := &file_tag_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tag_Users.ProtoReflect.Descriptor instead.
func (*Tag_Users) Descriptor() ([]byte, []int) {
return file_tag_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Tag_Users) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Tag_Users) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Tag_Users) GetAvatarTemplate() string {
if x != nil {
return x.AvatarTemplate
}
return ""
}
type Tag_TopicList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CanCreateTopic bool `protobuf:"varint,1,opt,name=can_create_topic,json=canCreateTopic,proto3" json:"can_create_topic,omitempty"`
DraftKey string `protobuf:"bytes,2,opt,name=draft_key,json=draftKey,proto3" json:"draft_key,omitempty"`
DraftSequance int32 `protobuf:"varint,3,opt,name=draft_sequance,json=draftSequance,proto3" json:"draft_sequance,omitempty"`
PerPage int32 `protobuf:"varint,4,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"`
TopTags []string `protobuf:"bytes,5,rep,name=top_tags,json=topTags,proto3" json:"top_tags,omitempty"`
Tags []*Tag_TopicList_Tags `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"`
Topics []*Tag_TopicList_Topics `protobuf:"bytes,7,rep,name=topics,proto3" json:"topics,omitempty"`
}
func (x *Tag_TopicList) Reset() {
*x = Tag_TopicList{}
if protoimpl.UnsafeEnabled {
mi := &file_tag_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tag_TopicList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tag_TopicList) ProtoMessage() {}
func (x *Tag_TopicList) ProtoReflect() protoreflect.Message {
mi := &file_tag_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tag_TopicList.ProtoReflect.Descriptor instead.
func (*Tag_TopicList) Descriptor() ([]byte, []int) {
return file_tag_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Tag_TopicList) GetCanCreateTopic() bool {
if x != nil {
return x.CanCreateTopic
}
return false
}
func (x *Tag_TopicList) GetDraftKey() string {
if x != nil {
return x.DraftKey
}
return ""
}
func (x *Tag_TopicList) GetDraftSequance() int32 {
if x != nil {
return x.DraftSequance
}
return 0
}
func (x *Tag_TopicList) GetPerPage() int32 {
if x != nil {
return x.PerPage
}
return 0
}
func (x *Tag_TopicList) GetTopTags() []string {
if x != nil {
return x.TopTags
}
return nil
}
func (x *Tag_TopicList) GetTags() []*Tag_TopicList_Tags {
if x != nil {
return x.Tags
}
return nil
}
func (x *Tag_TopicList) GetTopics() []*Tag_TopicList_Topics {
if x != nil {
return x.Topics
}
return nil
}
type Tag_TopicList_Tags struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
TopicCount int32 `protobuf:"varint,3,opt,name=topic_count,json=topicCount,proto3" json:"topic_count,omitempty"`
Staff bool `protobuf:"varint,4,opt,name=staff,proto3" json:"staff,omitempty"`
}
func (x *Tag_TopicList_Tags) Reset() {
*x = Tag_TopicList_Tags{}
if protoimpl.UnsafeEnabled {
mi := &file_tag_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tag_TopicList_Tags) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tag_TopicList_Tags) ProtoMessage() {}
func (x *Tag_TopicList_Tags) ProtoReflect() protoreflect.Message {
mi := &file_tag_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tag_TopicList_Tags.ProtoReflect.Descriptor instead.
func (*Tag_TopicList_Tags) Descriptor() ([]byte, []int) {
return file_tag_proto_rawDescGZIP(), []int{0, 1, 0}
}
func (x *Tag_TopicList_Tags) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Tag_TopicList_Tags) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Tag_TopicList_Tags) GetTopicCount() int32 {
if x != nil {
return x.TopicCount
}
return 0
}
func (x *Tag_TopicList_Tags) GetStaff() bool {
if x != nil {
return x.Staff
}
return false
}
type Tag_TopicList_Topics struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
FancyTitle string `protobuf:"bytes,3,opt,name=fancy_title,json=fancyTitle,proto3" json:"fancy_title,omitempty"`
Slug string `protobuf:"bytes,4,opt,name=slug,proto3" json:"slug,omitempty"`
PostsCount int32 `protobuf:"varint,5,opt,name=posts_count,json=postsCount,proto3" json:"posts_count,omitempty"`
ReplyCount int32 `protobuf:"varint,6,opt,name=reply_count,json=replyCount,proto3" json:"reply_count,omitempty"`
HighestPostNumber int32 `protobuf:"varint,7,opt,name=highest_post_number,json=highestPostNumber,proto3" json:"highest_post_number,omitempty"`
ImageUrl string `protobuf:"bytes,8,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
LastPostedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=last_posted_at,json=lastPostedAt,proto3" json:"last_posted_at,omitempty"`
Bumped bool `protobuf:"varint,11,opt,name=bumped,proto3" json:"bumped,omitempty"`
BumpedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=bumped_at,json=bumpedAt,proto3" json:"bumped_at,omitempty"`
Archetype string `protobuf:"bytes,13,opt,name=archetype,proto3" json:"archetype,omitempty"`
Unseen bool `protobuf:"varint,14,opt,name=unseen,proto3" json:"unseen,omitempty"`
LastReadPostNumber int32 `protobuf:"varint,15,opt,name=last_read_post_number,json=lastReadPostNumber,proto3" json:"last_read_post_number,omitempty"`
Unread int32 `protobuf:"varint,16,opt,name=unread,proto3" json:"unread,omitempty"`
NewPosts int32 `protobuf:"varint,17,opt,name=new_posts,json=newPosts,proto3" json:"new_posts,omitempty"`
Pinned bool `protobuf:"varint,18,opt,name=pinned,proto3" json:"pinned,omitempty"`
Visible bool `protobuf:"varint,19,opt,name=visible,proto3" json:"visible,omitempty"`
Closed bool `protobuf:"varint,20,opt,name=closed,proto3" json:"closed,omitempty"`
Archived bool `protobuf:"varint,21,opt,name=archived,proto3" json:"archived,omitempty"`
NotificationLevel int32 `protobuf:"varint,22,opt,name=notification_level,json=notificationLevel,proto3" json:"notification_level,omitempty"`
Bookmarked bool `protobuf:"varint,23,opt,name=bookmarked,proto3" json:"bookmarked,omitempty"`
Liked bool `protobuf:"varint,24,opt,name=liked,proto3" json:"liked,omitempty"`
Tags []string `protobuf:"bytes,25,rep,name=tags,proto3" json:"tags,omitempty"`
Views int32 `protobuf:"varint,26,opt,name=views,proto3" json:"views,omitempty"`
LikeCount int32 `protobuf:"varint,27,opt,name=like_count,json=likeCount,proto3" json:"like_count,omitempty"`
HasSummary bool `protobuf:"varint,28,opt,name=has_summary,json=hasSummary,proto3" json:"has_summary,omitempty"`
LastPosterUsername string `protobuf:"bytes,29,opt,name=last_poster_username,json=lastPosterUsername,proto3" json:"last_poster_username,omitempty"`
CategoryId int32 `protobuf:"varint,30,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"`
PinnedGlobally bool `protobuf:"varint,31,opt,name=pinned_globally,json=pinnedGlobally,proto3" json:"pinned_globally,omitempty"`
HasAcceptedAnswer bool `protobuf:"varint,32,opt,name=has_accepted_answer,json=hasAcceptedAnswer,proto3" json:"has_accepted_answer,omitempty"`
Posters []*Tag_TopicList_Topics_Posters `protobuf:"bytes,33,rep,name=posters,proto3" json:"posters,omitempty"`
}
func (x *Tag_TopicList_Topics) Reset() {
*x = Tag_TopicList_Topics{}
if protoimpl.UnsafeEnabled {
mi := &file_tag_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tag_TopicList_Topics) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tag_TopicList_Topics) ProtoMessage() {}
func (x *Tag_TopicList_Topics) ProtoReflect() protoreflect.Message {
mi := &file_tag_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tag_TopicList_Topics.ProtoReflect.Descriptor instead.
func (*Tag_TopicList_Topics) Descriptor() ([]byte, []int) {
return file_tag_proto_rawDescGZIP(), []int{0, 1, 1}
}
func (x *Tag_TopicList_Topics) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Tag_TopicList_Topics) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *Tag_TopicList_Topics) GetFancyTitle() string {
if x != nil {
return x.FancyTitle
}
return ""
}
func (x *Tag_TopicList_Topics) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *Tag_TopicList_Topics) GetPostsCount() int32 {
if x != nil {
return x.PostsCount
}
return 0
}
func (x *Tag_TopicList_Topics) GetReplyCount() int32 {
if x != nil {
return x.ReplyCount
}
return 0
}
func (x *Tag_TopicList_Topics) GetHighestPostNumber() int32 {
if x != nil {
return x.HighestPostNumber
}
return 0
}
func (x *Tag_TopicList_Topics) GetImageUrl() string {
if x != nil {
return x.ImageUrl
}
return ""
}
func (x *Tag_TopicList_Topics) GetCreatedAt() *timestamppb.Timestamp {
if x != nil {
return x.CreatedAt
}
return nil
}
func (x *Tag_TopicList_Topics) GetLastPostedAt() *timestamppb.Timestamp {
if x != nil {
return x.LastPostedAt
}
return nil
}
func (x *Tag_TopicList_Topics) GetBumped() bool {
if x != nil {
return x.Bumped
}
return false
}
func (x *Tag_TopicList_Topics) GetBumpedAt() *timestamppb.Timestamp {
if x != nil {
return x.BumpedAt
}
return nil
}
func (x *Tag_TopicList_Topics) GetArchetype() string {
if x != nil {
return x.Archetype
}
return ""
}
func (x *Tag_TopicList_Topics) GetUnseen() bool {
if x != nil {
return x.Unseen
}
return false
}
func (x *Tag_TopicList_Topics) GetLastReadPostNumber() int32 {
if x != nil {
return x.LastReadPostNumber
}
return 0
}
func (x *Tag_TopicList_Topics) GetUnread() int32 {
if x != nil {
return x.Unread
}
return 0
}
func (x *Tag_TopicList_Topics) GetNewPosts() int32 {
if x != nil {
return x.NewPosts
}
return 0
}
func (x *Tag_TopicList_Topics) GetPinned() bool {
if x != nil {
return x.Pinned
}
return false
}
func (x *Tag_TopicList_Topics) GetVisible() bool {
if x != nil {
return x.Visible
}
return false
}
func (x *Tag_TopicList_Topics) GetClosed() bool {
if x != nil {
return x.Closed
}
return false
}
func (x *Tag_TopicList_Topics) GetArchived() bool {
if x != nil {
return x.Archived
}
return false
}
func (x *Tag_TopicList_Topics) GetNotificationLevel() int32 {
if x != nil {
return x.NotificationLevel
}
return 0
}
func (x *Tag_TopicList_Topics) GetBookmarked() bool {
if x != nil {
return x.Bookmarked
}
return false
}
func (x *Tag_TopicList_Topics) GetLiked() bool {
if x != nil {
return x.Liked
}
return false
}
func (x *Tag_TopicList_Topics) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *Tag_TopicList_Topics) GetViews() int32 {
if x != nil {
return x.Views
}
return 0
}
func (x *Tag_TopicList_Topics) GetLikeCount() int32 {
if x != nil {
return x.LikeCount
}
return 0
}
func (x *Tag_TopicList_Topics) GetHasSummary() bool {
if x != nil {
return x.HasSummary
}
return false
}
func (x *Tag_TopicList_Topics) GetLastPosterUsername() string {
if x != nil {
return x.LastPosterUsername
}
return ""
}
func (x *Tag_TopicList_Topics) GetCategoryId() int32 {
if x != nil {
return x.CategoryId
}
return 0
}
func (x *Tag_TopicList_Topics) GetPinnedGlobally() bool {
if x != nil {
return x.PinnedGlobally
}
return false
}
func (x *Tag_TopicList_Topics) GetHasAcceptedAnswer() bool {
if x != nil {
return x.HasAcceptedAnswer
}
return false
}
func (x *Tag_TopicList_Topics) GetPosters() []*Tag_TopicList_Topics_Posters {
if x != nil {
return x.Posters
}
return nil
}
type Tag_TopicList_Topics_Posters struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Extras string `protobuf:"bytes,1,opt,name=extras,proto3" json:"extras,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
UserId int32 `protobuf:"varint,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
}
func (x *Tag_TopicList_Topics_Posters) Reset() {
*x = Tag_TopicList_Topics_Posters{}
if protoimpl.UnsafeEnabled {
mi := &file_tag_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tag_TopicList_Topics_Posters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tag_TopicList_Topics_Posters) ProtoMessage() {}
func (x *Tag_TopicList_Topics_Posters) ProtoReflect() protoreflect.Message {
mi := &file_tag_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tag_TopicList_Topics_Posters.ProtoReflect.Descriptor instead.
func (*Tag_TopicList_Topics_Posters) Descriptor() ([]byte, []int) {
return file_tag_proto_rawDescGZIP(), []int{0, 1, 1, 0}
}
func (x *Tag_TopicList_Topics_Posters) GetExtras() string {
if x != nil {
return x.Extras
}
return ""
}
func (x *Tag_TopicList_Topics_Posters) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Tag_TopicList_Topics_Posters) GetUserId() int32 {
if x != nil {
return x.UserId
}
return 0
}
var File_tag_proto protoreflect.FileDescriptor
var file_tag_proto_rawDesc = []byte{
0x0a, 0x09, 0x74, 0x61, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x64, 0x69, 0x73,
0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a,
0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0xd1, 0x0e, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x12, 0x33, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75,
0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x61, 0x67,
0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a,
0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x21, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x61, 0x67, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63,
0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x1a,
0x54, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f,
0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x54, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0xfc, 0x0c, 0x0a, 0x09, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c,
0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63,
0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1b, 0x0a,
0x09, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x64, 0x72, 0x61, 0x66, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x72,
0x61, 0x66, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0d, 0x64, 0x72, 0x61, 0x66, 0x74, 0x53, 0x65, 0x71, 0x75, 0x61, 0x6e, 0x63,
0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08,
0x74, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
0x74, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18,
0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x61, 0x67, 0x2e, 0x54,
0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x52, 0x04, 0x74,
0x61, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x61, 0x67, 0x2e, 0x54, 0x6f, 0x70,
0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x52, 0x06, 0x74,
0x6f, 0x70, 0x69, 0x63, 0x73, 0x1a, 0x61, 0x0a, 0x04, 0x54, 0x61, 0x67, 0x73, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x66, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28,
0x08, 0x52, 0x05, 0x73, 0x74, 0x61, 0x66, 0x66, 0x1a, 0xe9, 0x09, 0x0a, 0x06, 0x54, 0x6f, 0x70,
0x69, 0x63, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x6e,
0x63, 0x79, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
0x66, 0x61, 0x6e, 0x63, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c,
0x75, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x12, 0x1f,
0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x2e, 0x0a, 0x13, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x74,
0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x68,
0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a,
0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63,
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74,
0x5f, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6c, 0x61,
0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75,
0x6d, 0x70, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x75, 0x6d, 0x70,
0x65, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x52, 0x08, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61,
0x72, 0x63, 0x68, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x61, 0x72, 0x63, 0x68, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x73,
0x65, 0x65, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x73, 0x65, 0x65,
0x6e, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70,
0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05,
0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x4e, 0x75,
0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x18, 0x10,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x1b, 0x0a, 0x09,
0x6e, 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52,
0x08, 0x6e, 0x65, 0x77, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x6e,
0x6e, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65,
0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01,
0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63,
0x6c, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x6c, 0x6f,
0x73, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18,
0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12,
0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x6f, 0x74,
0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e,
0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x12, 0x14,
0x0a, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c,
0x69, 0x6b, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x19, 0x20, 0x03,
0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x65, 0x77,
0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x65, 0x77, 0x73, 0x12, 0x1d,
0x0a, 0x0a, 0x6c, 0x69, 0x6b, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01,
0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a,
0x0b, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x1c, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30,
0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x73,
0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61,
0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18,
0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49,
0x64, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62,
0x61, 0x6c, 0x6c, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x69, 0x6e, 0x6e,
0x65, 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x61,
0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65,
0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x61, 0x73, 0x41, 0x63, 0x63, 0x65,
0x70, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x07, 0x70, 0x6f,
0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x69,
0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x54, 0x61, 0x67, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x54,
0x6f, 0x70, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x07, 0x70,
0x6f, 0x73, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x5c, 0x0a, 0x07, 0x50, 0x6f, 0x73, 0x74, 0x65, 0x72,
0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x74, 0x72, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x65, 0x78, 0x74, 0x72, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73,
0x65, 0x72, 0x49, 0x64, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x2e, 0x30, 0x63, 0x64, 0x2e,
0x78, 0x79, 0x7a, 0x2f, 0x6d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x2f, 0x64, 0x69, 0x73, 0x63,
0x6f, 0x75, 0x72, 0x73, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64,
0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_tag_proto_rawDescOnce sync.Once
file_tag_proto_rawDescData = file_tag_proto_rawDesc
)
func file_tag_proto_rawDescGZIP() []byte {
file_tag_proto_rawDescOnce.Do(func() {
file_tag_proto_rawDescData = protoimpl.X.CompressGZIP(file_tag_proto_rawDescData)
})
return file_tag_proto_rawDescData
}
var file_tag_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_tag_proto_goTypes = []interface{}{
(*Tag)(nil), // 0: discourse.protobuf.Tag
(*Tag_Users)(nil), // 1: discourse.protobuf.Tag.Users
(*Tag_TopicList)(nil), // 2: discourse.protobuf.Tag.TopicList
(*Tag_TopicList_Tags)(nil), // 3: discourse.protobuf.Tag.TopicList.Tags
(*Tag_TopicList_Topics)(nil), // 4: discourse.protobuf.Tag.TopicList.Topics
(*Tag_TopicList_Topics_Posters)(nil), // 5: discourse.protobuf.Tag.TopicList.Topics.Posters
(*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp
}
var file_tag_proto_depIdxs = []int32{
1, // 0: discourse.protobuf.Tag.users:type_name -> discourse.protobuf.Tag.Users
2, // 1: discourse.protobuf.Tag.topic_list:type_name -> discourse.protobuf.Tag.TopicList
3, // 2: discourse.protobuf.Tag.TopicList.tags:type_name -> discourse.protobuf.Tag.TopicList.Tags
4, // 3: discourse.protobuf.Tag.TopicList.topics:type_name -> discourse.protobuf.Tag.TopicList.Topics
6, // 4: discourse.protobuf.Tag.TopicList.Topics.created_at:type_name -> google.protobuf.Timestamp
6, // 5: discourse.protobuf.Tag.TopicList.Topics.last_posted_at:type_name -> google.protobuf.Timestamp
6, // 6: discourse.protobuf.Tag.TopicList.Topics.bumped_at:type_name -> google.protobuf.Timestamp
5, // 7: discourse.protobuf.Tag.TopicList.Topics.posters:type_name -> discourse.protobuf.Tag.TopicList.Topics.Posters
8, // [8:8] is the sub-list for method output_type
8, // [8:8] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
8, // [8:8] is the sub-list for extension extendee
0, // [0:8] is the sub-list for field type_name
}
func init() { file_tag_proto_init() }
func file_tag_proto_init() {
if File_tag_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_tag_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tag); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tag_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tag_Users); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tag_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tag_TopicList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tag_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tag_TopicList_Tags); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tag_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tag_TopicList_Topics); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tag_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tag_TopicList_Topics_Posters); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tag_proto_rawDesc,
NumEnums: 0,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_tag_proto_goTypes,
DependencyIndexes: file_tag_proto_depIdxs,
MessageInfos: file_tag_proto_msgTypes,
}.Build()
File_tag_proto = out.File
file_tag_proto_rawDesc = nil
file_tag_proto_goTypes = nil
file_tag_proto_depIdxs = nil
}

242
discoursepb/tags.pb.go Normal file
View File

@ -0,0 +1,242 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: tags.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type Tags struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tags []*Tags_Tags `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"`
}
func (x *Tags) Reset() {
*x = Tags{}
if protoimpl.UnsafeEnabled {
mi := &file_tags_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tags) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tags) ProtoMessage() {}
func (x *Tags) ProtoReflect() protoreflect.Message {
mi := &file_tags_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tags.ProtoReflect.Descriptor instead.
func (*Tags) Descriptor() ([]byte, []int) {
return file_tags_proto_rawDescGZIP(), []int{0}
}
func (x *Tags) GetTags() []*Tags_Tags {
if x != nil {
return x.Tags
}
return nil
}
type Tags_Tags struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
Count int32 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
PmCount int32 `protobuf:"varint,4,opt,name=pm_count,json=pmCount,proto3" json:"pm_count,omitempty"`
}
func (x *Tags_Tags) Reset() {
*x = Tags_Tags{}
if protoimpl.UnsafeEnabled {
mi := &file_tags_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tags_Tags) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tags_Tags) ProtoMessage() {}
func (x *Tags_Tags) ProtoReflect() protoreflect.Message {
mi := &file_tags_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tags_Tags.ProtoReflect.Descriptor instead.
func (*Tags_Tags) Descriptor() ([]byte, []int) {
return file_tags_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Tags_Tags) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Tags_Tags) GetText() string {
if x != nil {
return x.Text
}
return ""
}
func (x *Tags_Tags) GetCount() int32 {
if x != nil {
return x.Count
}
return 0
}
func (x *Tags_Tags) GetPmCount() int32 {
if x != nil {
return x.PmCount
}
return 0
}
var File_tags_proto protoreflect.FileDescriptor
var file_tags_proto_rawDesc = []byte{
0x0a, 0x0a, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x64, 0x69,
0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x22, 0x96, 0x01, 0x0a, 0x04, 0x54, 0x61, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x61, 0x67,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75,
0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x61, 0x67,
0x73, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x5b, 0x0a, 0x04,
0x54, 0x61, 0x67, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19,
0x0a, 0x08, 0x70, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x07, 0x70, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74,
0x2e, 0x30, 0x63, 0x64, 0x2e, 0x78, 0x79, 0x7a, 0x2f, 0x6d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c,
0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x70, 0x62, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_tags_proto_rawDescOnce sync.Once
file_tags_proto_rawDescData = file_tags_proto_rawDesc
)
func file_tags_proto_rawDescGZIP() []byte {
file_tags_proto_rawDescOnce.Do(func() {
file_tags_proto_rawDescData = protoimpl.X.CompressGZIP(file_tags_proto_rawDescData)
})
return file_tags_proto_rawDescData
}
var file_tags_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_tags_proto_goTypes = []interface{}{
(*Tags)(nil), // 0: discourse.protobuf.Tags
(*Tags_Tags)(nil), // 1: discourse.protobuf.Tags.Tags
}
var file_tags_proto_depIdxs = []int32{
1, // 0: discourse.protobuf.Tags.tags:type_name -> discourse.protobuf.Tags.Tags
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_tags_proto_init() }
func file_tags_proto_init() {
if File_tags_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_tags_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tags); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tags_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tags_Tags); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tags_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_tags_proto_goTypes,
DependencyIndexes: file_tags_proto_depIdxs,
MessageInfos: file_tags_proto_msgTypes,
}.Build()
File_tags_proto = out.File
file_tags_proto_rawDesc = nil
file_tags_proto_goTypes = nil
file_tags_proto_depIdxs = nil
}

155
discoursepb/tagtopics.pb.go Normal file
View File

@ -0,0 +1,155 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: tagtopics.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type TopicList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Topic []*Topic `protobuf:"bytes,1,rep,name=topic,proto3" json:"topic,omitempty"`
}
func (x *TopicList) Reset() {
*x = TopicList{}
if protoimpl.UnsafeEnabled {
mi := &file_tagtopics_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TopicList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TopicList) ProtoMessage() {}
func (x *TopicList) ProtoReflect() protoreflect.Message {
mi := &file_tagtopics_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TopicList.ProtoReflect.Descriptor instead.
func (*TopicList) Descriptor() ([]byte, []int) {
return file_tagtopics_proto_rawDescGZIP(), []int{0}
}
func (x *TopicList) GetTopic() []*Topic {
if x != nil {
return x.Topic
}
return nil
}
var File_tagtopics_proto protoreflect.FileDescriptor
var file_tagtopics_proto_rawDesc = []byte{
0x0a, 0x0f, 0x74, 0x61, 0x67, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0x3c, 0x0a, 0x09, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12,
0x2f, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63,
0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x2e, 0x30, 0x63, 0x64, 0x2e, 0x78, 0x79, 0x7a, 0x2f,
0x6d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73,
0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f,
0x75, 0x72, 0x73, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_tagtopics_proto_rawDescOnce sync.Once
file_tagtopics_proto_rawDescData = file_tagtopics_proto_rawDesc
)
func file_tagtopics_proto_rawDescGZIP() []byte {
file_tagtopics_proto_rawDescOnce.Do(func() {
file_tagtopics_proto_rawDescData = protoimpl.X.CompressGZIP(file_tagtopics_proto_rawDescData)
})
return file_tagtopics_proto_rawDescData
}
var file_tagtopics_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_tagtopics_proto_goTypes = []interface{}{
(*TopicList)(nil), // 0: discourse.protobuf.TopicList
(*Topic)(nil), // 1: discourse.protobuf.Topic
}
var file_tagtopics_proto_depIdxs = []int32{
1, // 0: discourse.protobuf.TopicList.topic:type_name -> discourse.protobuf.Topic
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_tagtopics_proto_init() }
func file_tagtopics_proto_init() {
if File_tagtopics_proto != nil {
return
}
file_topic_proto_init()
if !protoimpl.UnsafeEnabled {
file_tagtopics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TopicList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tagtopics_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_tagtopics_proto_goTypes,
DependencyIndexes: file_tagtopics_proto_depIdxs,
MessageInfos: file_tagtopics_proto_msgTypes,
}.Build()
File_tagtopics_proto = out.File
file_tagtopics_proto_rawDesc = nil
file_tagtopics_proto_goTypes = nil
file_tagtopics_proto_depIdxs = nil
}

555
discoursepb/topic.pb.go Normal file
View File

@ -0,0 +1,555 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc v3.14.0
// source: topic.proto
package discoursepb
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type Topic struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PostStream *Topic_PostStream `protobuf:"bytes,1,opt,name=post_stream,json=postStream,proto3" json:"post_stream,omitempty"`
Id int32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"`
Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"`
PostsCount int32 `protobuf:"varint,5,opt,name=posts_count,json=postsCount,proto3" json:"posts_count,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
Slug string `protobuf:"bytes,7,opt,name=slug,proto3" json:"slug,omitempty"`
LikeCount int32 `protobuf:"varint,8,opt,name=like_count,json=likeCount,proto3" json:"like_count,omitempty"`
Views int32 `protobuf:"varint,9,opt,name=views,proto3" json:"views,omitempty"`
Details *Topic_Details `protobuf:"bytes,10,opt,name=details,proto3" json:"details,omitempty"`
}
func (x *Topic) Reset() {
*x = Topic{}
if protoimpl.UnsafeEnabled {
mi := &file_topic_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Topic) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Topic) ProtoMessage() {}
func (x *Topic) ProtoReflect() protoreflect.Message {
mi := &file_topic_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Topic.ProtoReflect.Descriptor instead.
func (*Topic) Descriptor() ([]byte, []int) {
return file_topic_proto_rawDescGZIP(), []int{0}
}
func (x *Topic) GetPostStream() *Topic_PostStream {
if x != nil {
return x.PostStream
}
return nil
}
func (x *Topic) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Topic) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *Topic) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *Topic) GetPostsCount() int32 {
if x != nil {
return x.PostsCount
}
return 0
}
func (x *Topic) GetCreatedAt() *timestamppb.Timestamp {
if x != nil {
return x.CreatedAt
}
return nil
}
func (x *Topic) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *Topic) GetLikeCount() int32 {
if x != nil {
return x.LikeCount
}
return 0
}
func (x *Topic) GetViews() int32 {
if x != nil {
return x.Views
}
return 0
}
func (x *Topic) GetDetails() *Topic_Details {
if x != nil {
return x.Details
}
return nil
}
type Topic_PostStream struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Posts []*Topic_PostStream_Posts `protobuf:"bytes,1,rep,name=posts,proto3" json:"posts,omitempty"`
}
func (x *Topic_PostStream) Reset() {
*x = Topic_PostStream{}
if protoimpl.UnsafeEnabled {
mi := &file_topic_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Topic_PostStream) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Topic_PostStream) ProtoMessage() {}
func (x *Topic_PostStream) ProtoReflect() protoreflect.Message {
mi := &file_topic_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Topic_PostStream.ProtoReflect.Descriptor instead.
func (*Topic_PostStream) Descriptor() ([]byte, []int) {
return file_topic_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Topic_PostStream) GetPosts() []*Topic_PostStream_Posts {
if x != nil {
return x.Posts
}
return nil
}
type Topic_Details struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CreatedBy *Topic_Details_CreatedBy `protobuf:"bytes,1,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"`
}
func (x *Topic_Details) Reset() {
*x = Topic_Details{}
if protoimpl.UnsafeEnabled {
mi := &file_topic_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Topic_Details) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Topic_Details) ProtoMessage() {}
func (x *Topic_Details) ProtoReflect() protoreflect.Message {
mi := &file_topic_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Topic_Details.ProtoReflect.Descriptor instead.
func (*Topic_Details) Descriptor() ([]byte, []int) {
return file_topic_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Topic_Details) GetCreatedBy() *Topic_Details_CreatedBy {
if x != nil {
return x.CreatedBy
}
return nil
}
type Topic_PostStream_Posts struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cooked string `protobuf:"bytes,1,opt,name=cooked,proto3" json:"cooked,omitempty"`
PostNumber int32 `protobuf:"varint,2,opt,name=post_number,json=postNumber,proto3" json:"post_number,omitempty"`
Admin bool `protobuf:"varint,3,opt,name=admin,proto3" json:"admin,omitempty"`
Staff bool `protobuf:"varint,4,opt,name=staff,proto3" json:"staff,omitempty"`
}
func (x *Topic_PostStream_Posts) Reset() {
*x = Topic_PostStream_Posts{}
if protoimpl.UnsafeEnabled {
mi := &file_topic_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Topic_PostStream_Posts) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Topic_PostStream_Posts) ProtoMessage() {}
func (x *Topic_PostStream_Posts) ProtoReflect() protoreflect.Message {
mi := &file_topic_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Topic_PostStream_Posts.ProtoReflect.Descriptor instead.
func (*Topic_PostStream_Posts) Descriptor() ([]byte, []int) {
return file_topic_proto_rawDescGZIP(), []int{0, 0, 0}
}
func (x *Topic_PostStream_Posts) GetCooked() string {
if x != nil {
return x.Cooked
}
return ""
}
func (x *Topic_PostStream_Posts) GetPostNumber() int32 {
if x != nil {
return x.PostNumber
}
return 0
}
func (x *Topic_PostStream_Posts) GetAdmin() bool {
if x != nil {
return x.Admin
}
return false
}
func (x *Topic_PostStream_Posts) GetStaff() bool {
if x != nil {
return x.Staff
}
return false
}
type Topic_Details_CreatedBy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
AvatarTemplate string `protobuf:"bytes,3,opt,name=avatar_template,json=avatarTemplate,proto3" json:"avatar_template,omitempty"`
}
func (x *Topic_Details_CreatedBy) Reset() {
*x = Topic_Details_CreatedBy{}
if protoimpl.UnsafeEnabled {
mi := &file_topic_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Topic_Details_CreatedBy) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Topic_Details_CreatedBy) ProtoMessage() {}
func (x *Topic_Details_CreatedBy) ProtoReflect() protoreflect.Message {
mi := &file_topic_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Topic_Details_CreatedBy.ProtoReflect.Descriptor instead.
func (*Topic_Details_CreatedBy) Descriptor() ([]byte, []int) {
return file_topic_proto_rawDescGZIP(), []int{0, 1, 0}
}
func (x *Topic_Details_CreatedBy) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *Topic_Details_CreatedBy) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Topic_Details_CreatedBy) GetAvatarTemplate() string {
if x != nil {
return x.AvatarTemplate
}
return ""
}
var File_topic_proto protoreflect.FileDescriptor
var file_topic_proto_rawDesc = []byte{
0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x64,
0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0xe7, 0x05, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x45, 0x0a, 0x0b,
0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x24, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x73,
0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x72,
0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1f, 0x0a,
0x0b, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39,
0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x75,
0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x12, 0x1d, 0x0a,
0x0a, 0x6c, 0x69, 0x6b, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x65,
0x77, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x2e, 0x44,
0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a,
0xbc, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x40,
0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x72,
0x65, 0x61, 0x6d, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73,
0x1a, 0x6c, 0x0a, 0x05, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f,
0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x65,
0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x62,
0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
0x08, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x66,
0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x74, 0x61, 0x66, 0x66, 0x1a, 0xbb,
0x01, 0x0a, 0x07, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x72,
0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x52, 0x09, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x1a, 0x64, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x64, 0x42, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x74, 0x65,
0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76,
0x61, 0x74, 0x61, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x34, 0x5a, 0x32,
0x67, 0x69, 0x74, 0x2e, 0x30, 0x63, 0x64, 0x2e, 0x78, 0x79, 0x7a, 0x2f, 0x6d, 0x69, 0x63, 0x68,
0x61, 0x65, 0x6c, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2d, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_topic_proto_rawDescOnce sync.Once
file_topic_proto_rawDescData = file_topic_proto_rawDesc
)
func file_topic_proto_rawDescGZIP() []byte {
file_topic_proto_rawDescOnce.Do(func() {
file_topic_proto_rawDescData = protoimpl.X.CompressGZIP(file_topic_proto_rawDescData)
})
return file_topic_proto_rawDescData
}
var file_topic_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_topic_proto_goTypes = []interface{}{
(*Topic)(nil), // 0: discourse.protobuf.Topic
(*Topic_PostStream)(nil), // 1: discourse.protobuf.Topic.PostStream
(*Topic_Details)(nil), // 2: discourse.protobuf.Topic.Details
(*Topic_PostStream_Posts)(nil), // 3: discourse.protobuf.Topic.PostStream.Posts
(*Topic_Details_CreatedBy)(nil), // 4: discourse.protobuf.Topic.Details.CreatedBy
(*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
}
var file_topic_proto_depIdxs = []int32{
1, // 0: discourse.protobuf.Topic.post_stream:type_name -> discourse.protobuf.Topic.PostStream
5, // 1: discourse.protobuf.Topic.created_at:type_name -> google.protobuf.Timestamp
2, // 2: discourse.protobuf.Topic.details:type_name -> discourse.protobuf.Topic.Details
3, // 3: discourse.protobuf.Topic.PostStream.posts:type_name -> discourse.protobuf.Topic.PostStream.Posts
4, // 4: discourse.protobuf.Topic.Details.created_by:type_name -> discourse.protobuf.Topic.Details.CreatedBy
5, // [5:5] is the sub-list for method output_type
5, // [5:5] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
}
func init() { file_topic_proto_init() }
func file_topic_proto_init() {
if File_topic_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_topic_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Topic); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_topic_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Topic_PostStream); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_topic_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Topic_Details); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_topic_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Topic_PostStream_Posts); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_topic_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Topic_Details_CreatedBy); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_topic_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_topic_proto_goTypes,
DependencyIndexes: file_topic_proto_depIdxs,
MessageInfos: file_topic_proto_msgTypes,
}.Build()
File_topic_proto = out.File
file_topic_proto_rawDesc = nil
file_topic_proto_goTypes = nil
file_topic_proto_depIdxs = nil
}

3164
discoursepb/users.pb.go Normal file

File diff suppressed because it is too large Load Diff

8
go.mod Normal file
View File

@ -0,0 +1,8 @@
module git.0cd.xyz/michael/discourse-protobuf
go 1.15
require (
github.com/golang/protobuf v1.4.3
google.golang.org/protobuf v1.25.0
)

49
proto/categories.proto Normal file
View File

@ -0,0 +1,49 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
message Categories {
message CategoryList {
bool can_create_category = 1;
bool can_create_topic = 2;
message Categories {
int32 id = 1;
string name = 2;
string color = 3;
string text_color = 4;
string slug = 5;
int32 topic_count = 6;
int32 post_count = 7;
int32 position = 8;
string description = 9;
string description_text = 10;
string description_excerpt = 11;
string topic_url = 12;
bool read_restricted = 13;
int32 permission = 14;
int32 notification_level = 15;
bool can_edit = 16;
string topic_template = 17;
bool has_children = 18;
string sort_order = 19;
bool show_subcategory_list = 20;
int32 num_featured_topics = 21;
string default_view = 22;
string subcategory_list_style = 23;
string default_top_period = 24;
string default_list_filter = 25;
int32 minimum_required_tags = 26;
bool navigate_to_first_post_after_read = 27;
int32 topics_day = 28;
int32 topics_week = 29;
int32 topics_month = 30;
int32 topics_year = 31;
int32 topics_all_time = 32;
repeated int32 subcategory_ids = 33;
}
repeated Categories categories = 3;
}
CategoryList category_list = 1;
}

View File

@ -0,0 +1,66 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
import "google/protobuf/timestamp.proto";
message CategoryTopics {
message Users{
int32 id = 1;
string username = 2;
string name = 3;
string avatar_template = 4;
}
repeated Users users = 1;
message TopicList {
bool can_create_topic = 1;
string draft_key = 2;
int32 draft_sequence = 3;
int32 per_page = 4;
repeated string top_tags = 5;
message Topics {
int32 id = 1;
string title = 2;
string fancy_title = 3;
string slug = 4;
int32 posts_count = 5;
int32 reply_count = 6;
int32 highest_post_number = 7;
string image_url = 8;
google.protobuf.Timestamp created_at = 9;
google.protobuf.Timestamp last_posted_at = 10;
bool bumped = 11;
google.protobuf.Timestamp bumped_at = 12;
string archetype = 13;
bool unseen = 14;
int32 last_read_post_number = 15;
int32 unread = 16;
int32 new_posts = 17;
bool pinned = 18;
bool visible = 19;
bool closed = 20;
bool archived = 21;
int32 notification_level = 22;
bool bookmarked = 23;
bool liked = 24;
repeated string tags = 25;
int32 views = 26;
int32 like_count = 27;
bool has_summary = 28;
string last_poste_username = 29;
int32 category_id = 30;
bool pinned_globally = 31;
bool has_accepted_answer = 32;
message Posters {
string extras = 1;
string description = 2;
int32 user_id = 3;
}
repeated Posters posters = 33;
}
repeated Topics topics = 6;
repeated int32 bookmarked_post_numbers = 7;
}
TopicList topic_list = 2;
}

View File

@ -0,0 +1,36 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
import "google/protobuf/timestamp.proto";
message DirectoryItems {
message DirectoryItems {
int32 id = 1;
int32 time_read = 2;
int32 likes_received = 3;
int32 likes_given = 4;
int32 topics_entered = 5;
int32 topic_count = 6;
int32 post_count = 7;
int32 posts_read = 8;
int32 days_visited = 9;
message User {
int32 id = 1;
string username = 2;
string name = 3;
string avatar_template = 4;
string title = 5;
}
User user = 10;
}
repeated DirectoryItems directory_items = 1;
message Meta {
google.protobuf.Timestamp last_updated_at = 1;
int32 total_rows_directory_items = 2;
string load_more_directory_items = 3;
}
Meta meta = 2;
}

64
proto/latest.proto Normal file
View File

@ -0,0 +1,64 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
import "google/protobuf/timestamp.proto";
message Latest {
message Users {
int32 id = 1;
string username = 2;
string name = 3;
string avatar_template = 4;
}
repeated Users users = 1;
message TopicList {
bool can_create_topics = 1;
string more_topics_url = 2;
int32 per_page = 3;
repeated string top_tags = 4;
message Topics {
int32 id = 1;
string title = 2;
string slug = 3;
int32 posts_count = 4;
int32 reply_count = 5;
int32 highest_post_number = 6;
google.protobuf.Timestamp created_at = 7;
google.protobuf.Timestamp last_posted_at = 8;
bool bumped = 9;
google.protobuf.Timestamp bumped_at = 10;
string archetype = 11;
bool unseen = 12;
int32 last_read_post_number = 13;
int32 unread = 14;
int32 new_posts = 15;
bool pinned = 16;
bool visible = 17;
bool closed = 18;
bool archived = 19;
int32 notification_level = 20;
bool bookmarked = 21;
bool liked = 22;
repeated string tags = 23;
int32 views = 24;
int32 like_count = 25;
bool has_summary = 26;
string last_poster_username = 27;
int32 category_id = 28;
bool pinned_globally = 29;
repeated int32 bookmarked_post_numbers = 30;
bool has_accepted_answer = 31;
}
repeated Topics topics = 5;
message Posters {
string extras = 1;
string description = 2;
int32 user_id = 3;
int32 primary_group_id = 4;
}
repeated Posters posters = 6;
}
TopicList topic_list = 2;
}

63
proto/posts.proto Normal file
View File

@ -0,0 +1,63 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
import "google/protobuf/timestamp.proto";
message PostsRequest {
string title = 1;
int32 topic_id = 2;
string raw = 3;
int32 category = 4;
string target_recipients = 5;
string archetype = 6;
google.protobuf.Timestamp created_at = 7;
}
message PostsResponse {
int32 id = 1;
string name = 2;
string avatar_template = 3;
google.protobuf.Timestamp created_at = 4;
string cooked = 5;
int32 post_number = 6;
int32 post_type = 7;
string updated_at = 8;
int32 reply_count = 9;
int32 reply_to_post_number = 10;
int32 quote_count = 11;
google.protobuf.Timestamp avg_time = 12;
int32 incoming_link_count = 13;
int32 reads = 14;
double score = 15;
bool yours = 16;
int32 topic_id = 17;
string topic_slug = 18;
string display_username = 19;
int32 version = 20;
bool can_edit = 21;
bool can_delete = 22;
bool can_recover = 23;
bool can_wiki = 24;
string user_title = 25;
message ActionsSummary {
int32 id = 1;
bool hidden = 2;
bool can_act = 3;
}
repeated ActionsSummary actions_summary = 26;
bool moderator = 27;
bool admin = 28;
bool staff = 29;
int32 user_id = 30;
int32 draft_sequence = 31;
bool hidden = 32;
int32 hidden_reason_id = 33;
int32 trust_level = 34;
google.protobuf.Timestamp deleted_at = 35;
bool user_deleted = 36;
string edit_reason = 37;
bool can_view_edit_history = 38;
bool wiki = 39;
}

144
proto/site.proto Normal file
View File

@ -0,0 +1,144 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
message Site {
string default_archetype = 1;
message NotificationTypes {
int32 mentioned = 1;
int32 replied = 2;
int32 qouted = 3;
int32 edited = 4;
int32 liked = 5;
int32 private_message = 6;
int32 invited_to_private_message = 7;
int32 invitee_accepted = 8;
int32 posted = 9;
int32 moved_post = 10;
int32 linked = 11;
int32 granted_badge = 12;
int32 invited_to_topic = 13;
int32 custom = 14;
int32 group_mentioned = 15;
int32 group_message_summary = 16;
int32 watching_first_post = 17;
int32 topic_reminder = 18;
int32 liked_consolidated = 19;
int32 post_approved = 20;
int32 code_review_commit_approved = 21;
int32 membership_request_accepted = 22;
int32 membership_request_consolidated = 23;
int32 bookmark_reminder = 24;
int32 reaction = 25;
int32 votes_released = 26;
int32 event_reminder = 27;
int32 event_invitation = 28;
}
NotificationTypes notification_types = 2;
message PostTypes {
int32 regular = 1;
int32 moderator_action = 2;
int32 small_action = 3;
int32 whisper = 4;
}
PostTypes post_types = 3;
message Groups {
int32 id = 1;
string name = 2;
}
repeated Groups groups = 4;
repeated string filter = 5;
repeated string periods = 6;
repeated string top_menu_items = 7;
repeated string anonymous_top_menu_items = 8;
int32 uncategorized_category_id = 9;
int32 user_field_max_length = 10;
message PostActionTypes {
int32 id = 1;
string name_key = 2;
string name = 3;
string description = 4;
string short_description = 5;
string long_form = 6;
bool is_flag = 7;
bool is_custom_flag = 8;
}
repeated PostActionTypes post_action_types = 11;
message TopicFlagTypes {
int32 id = 1;
string name_key = 2;
string name = 3;
string description = 4;
string short_description = 5;
string long_form = 6;
bool is_flag = 7;
bool is_custom_flag = 8;
}
repeated TopicFlagTypes topic_flag_types = 12;
bool can_create_tag = 13;
bool can_tag_topics = 14;
bool can_tag_pms = 15;
string tags_filter_regexp = 16;
repeated string top_tags = 17;
repeated int32 topic_featured_link_allowed_category_ids = 18;
message UserThemes {
int32 theme_id = 1;
string name = 2;
bool default = 3;
}
repeated UserThemes user_themes = 19;
message Categories {
int32 id = 1;
string name = 2;
string color = 3;
string text_color = 4;
string slug = 5;
int32 topic_count = 6;
int32 post_count = 7;
int32 position = 8;
string description = 9;
string description_text = 10;
string description_excerpt = 11;
string topic_url = 12;
bool read_restricted = 13;
int32 permission = 14;
int32 notification_level = 15;
bool can_edit = 16;
string topic_template = 17;
bool has_children = 18;
string sort_order = 19;
bool show_subcategory_list = 20;
int32 num_featured_topics = 21;
string default_view = 22;
string subcategory_list_style = 23;
string default_top_period = 24;
string default_list_filter = 25;
int32 minimum_required_tags = 26;
bool navigate_to_first_post_after_read = 27;
bool allowed_global_tags = 28;
int32 min_tags_from_required_group = 29;
int32 parent_category_id = 30;
}
repeated Categories categories = 20;
message TrustLevels {
int32 id = 1;
string name = 2;
}
repeated TrustLevels trust_levels = 21;
message Archetypes {
string id = 1;
string name = 2;
}
repeated Archetypes archetypes = 22;
message AuthProviders {
string name = 1;
int32 frame_width = 2;
int32 frame_height = 3;
bool can_connect = 4;
bool can_revoke = 5;
string icon = 6;
}
repeated AuthProviders auth_providers = 23;
}

72
proto/tag.proto Normal file
View File

@ -0,0 +1,72 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
import "google/protobuf/timestamp.proto";
message Tag {
message Users {
int32 id = 1;
string name = 2;
string avatar_template = 3;
}
repeated Users users = 1;
message TopicList {
bool can_create_topic = 1;
string draft_key = 2;
int32 draft_sequance = 3;
int32 per_page = 4;
repeated string top_tags = 5;
message Tags {
int32 id = 1;
string name = 2;
int32 topic_count = 3;
bool staff = 4;
}
repeated Tags tags = 6;
message Topics {
int32 id = 1;
string title = 2;
string fancy_title = 3;
string slug = 4;
int32 posts_count = 5;
int32 reply_count = 6;
int32 highest_post_number = 7;
string image_url = 8;
google.protobuf.Timestamp created_at = 9;
google.protobuf.Timestamp last_posted_at = 10;
bool bumped = 11;
google.protobuf.Timestamp bumped_at = 12;
string archetype = 13;
bool unseen = 14;
int32 last_read_post_number = 15;
int32 unread = 16;
int32 new_posts = 17;
bool pinned = 18;
bool visible = 19;
bool closed = 20;
bool archived = 21;
int32 notification_level = 22;
bool bookmarked = 23;
bool liked = 24;
repeated string tags = 25;
int32 views = 26;
int32 like_count = 27;
bool has_summary = 28;
string last_poster_username = 29;
int32 category_id = 30;
bool pinned_globally = 31;
bool has_accepted_answer = 32;
message Posters {
string extras = 1;
string description = 2;
int32 user_id = 3;
}
repeated Posters posters = 33;
}
repeated Topics topics = 7;
}
TopicList topic_list = 2;
}

15
proto/tags.proto Normal file
View File

@ -0,0 +1,15 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
message Tags {
message Tags {
string id = 1;
string text = 2;
int32 count = 3;
int32 pm_count = 4;
}
repeated Tags tags = 1;
}

10
proto/tagtopics.proto Normal file
View File

@ -0,0 +1,10 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
import "topic.proto";
message TopicList {
repeated Topic topic = 1;
}

36
proto/topic.proto Normal file
View File

@ -0,0 +1,36 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
import "google/protobuf/timestamp.proto";
message Topic {
message PostStream {
message Posts {
string cooked = 1;
int32 post_number = 2;
bool admin = 3;
bool staff = 4;
}
repeated Posts posts = 1;
}
PostStream post_stream = 1;
int32 id = 2;
repeated string tags = 3;
string title = 4;
int32 posts_count = 5;
google.protobuf.Timestamp created_at = 6;
string slug = 7;
int32 like_count = 8;
int32 views = 9;
message Details {
message CreatedBy {
string username = 1;
string name = 2;
string avatar_template = 3;
}
CreatedBy created_by = 1;
}
Details details = 10;
}

257
proto/users.proto Normal file
View File

@ -0,0 +1,257 @@
syntax="proto3";
package discourse.protobuf;
option go_package = "git.0cd.xyz/michael/discourse-protobuf/discoursepb";
import "google/protobuf/timestamp.proto";
message Users {
message UserBadges {
int32 id = 1;
google.protobuf.Timestamp granted_at = 2;
google.protobuf.Timestamp created_at = 3;
int32 count = 4;
int32 badge_id = 5;
int32 user_id = 6;
int32 grated_by_id = 7;
int32 post_id = 8;
int32 post_number = 9;
int32 topic_id = 10;
}
repeated UserBadges user_badges = 1;
message Badges {
int32 id = 1;
string name = 2;
string description = 3;
int32 grant_count = 4;
bool allow_title = 5;
bool multiple_grant = 6;
string icon = 7;
string image = 8;
bool listable = 9;
bool enabled = 10;
int32 badge_grouping_id = 11;
bool system = 12;
string slug = 13;
bool manually_grantable = 14;
int32 badge_type_id = 15;
}
repeated Badges badges = 2;
message BadgeTypes {
int32 id = 1;
string name = 2;
int32 sort_order = 3;
}
repeated BadgeTypes badge_types = 3;
message Users {
int32 id = 1;
string username = 2;
string name = 3;
string avatar_template = 4;
bool moderator = 5;
bool admin = 6;
}
repeated Users users = 4;
message Topics {
int32 id = 1;
string title = 2;
string fancy_title = 3;
string slug = 4;
int32 posts_count = 6;
}
repeated Topics topics = 5;
message User {
int32 id = 1;
string username = 2;
string name = 3;
string avatar_template = 4;
string email = 6;
google.protobuf.Timestamp last_posted_at = 7;
google.protobuf.Timestamp last_seen_at = 8;
google.protobuf.Timestamp created_at = 9;
bool ignored = 10;
bool muted = 11;
bool can_ignore_user = 12;
bool can_mute_user = 13;
bool can_send_private_messages = 14;
bool can_send_private_messages_to_user = 15;
int32 trust_level = 16;
bool moderator = 17;
bool admin = 18;
string title = 19;
int32 badge_count = 20;
int32 time_read = 21;
int32 recent_time_read = 22;
message FeaturedTopic {
int32 id = 1;
string title = 2;
google.protobuf.Timestamp last_posted_at = 3;
google.protobuf.Timestamp created_at = 4;
google.protobuf.Timestamp updated_at = 5;
int32 views = 6;
int32 posts_count = 7;
int32 user_id = 8;
int32 last_post_user_id = 9;
int32 reply_count = 10;
int32 highest_post_number = 11;
int32 like_count = 12;
int32 incoming_link_count = 13;
int32 category_id = 14;
bool visible = 15;
int32 moderator_posts_count = 16;
bool closed = 17;
bool archived = 18;
google.protobuf.Timestamp bumped_at = 19;
bool has_summary = 20;
string archetype = 21;
int32 notify_moderators_count = 22;
int32 spam_count = 23;
double score = 24;
double percent_rank = 26;
string slug = 27;
int32 participant_count = 28;
int32 word_count = 29;
string excerpt = 30;
bool pinned_globally = 31;
string fancy_title = 32;
int32 highest_staff_post_number = 33;
double reviewable_score = 34;
int32 image_upload_id = 35;
}
FeaturedTopic featured_topic = 23;
string website = 24;
string website_name = 25;
bool staged = 26;
bool can_edit = 27;
bool can_edit_username = 28;
bool can_edit_email = 29;
bool can_edit_name = 30;
int32 uploaded_avatar_id = 31;
bool has_title_badges = 32;
int32 pending_count = 33;
int32 profile_view_count = 34;
bool secondary_factor_enabled = 35;
bool secondary_factor_backup_enabled = 36;
int32 secondary_factor_remaining_backup_codes = 37;
message AssociatedAccounts {
string name = 1;
string description =2;
}
repeated AssociatedAccounts associated_accounts = 38;
bool can_upload_profile_header = 39;
bool can_upload_user_card_background = 40;
int32 post_count = 41;
bool can_be_deleted = 42;
bool can_delete_all_posts = 43;
string locale = 44;
repeated int32 muted_category_ids = 45;
repeated int32 regular_category_ids = 46;
repeated string watched_tags = 47;
repeated string watching_first_post_tags = 48;
repeated string tracked_tags = 49;
repeated string muted_tags = 50;
repeated int32 tracked_category_ids = 51;
repeated int32 watched_category_ids = 52;
repeated int32 watched_first_post_category_ids = 53;
int32 system_avatar_upload_id = 54;
string system_avatar_template = 55;
int32 custom_avatar_upload_id = 56;
string custom_avatar_template = 57;
repeated string muted_usernames = 58;
repeated string ignored_usernames = 59;
repeated string allowed_pm_usernames = 60;
int32 mailing_list_posts_per_day = 61;
bool can_change_bio = 62;
bool can_change_website = 63;
message UserAuthTokens {
int32 id = 1;
string client_ip = 2;
string location = 3;
string browser = 4;
string device = 5;
string os = 6;
string icon = 7;
google.protobuf.Timestamp created_at = 8;
google.protobuf.Timestamp seen_at = 9;
bool is_active = 10;
}
repeated UserAuthTokens user_auth_tokens = 64;
repeated int32 featured_user_badge_ids = 65;
message Groups {
int32 id = 1;
bool automatic = 2;
string name = 3;
string display_name = 4;
int32 user_count = 5;
int32 mentionable_level = 6;
int32 messageable_level = 7;
int32 visibility_level = 8;
bool primary_group = 9;
bool has_messages = 10;
string bio_raw = 11;
bool public_admission = 12;
bool public_exit = 13;
bool allow_membership_requests = 14;
string full_name = 15;
int32 default_notification_level = 16;
string membership_request_template = 17;
int32 members_visibility_level = 18;
bool can_see_members = 19;
bool can_admin_group = 20;
bool publish_read_state = 21;
string imap_mailbox_name = 22;
repeated int32 watching_category_ids = 23;
repeated int32 tracking_category_ids = 24;
repeated int32 watching_first_post_category_ids = 25;
repeated int32 regular_category_ids = 26;
repeated int32 muted_category_ids = 27;
repeated string watching_tags = 28;
repeated string watching_first_post_tags = 29;
repeated string trackings_tags = 30;
repeated string regular_tags = 31;
repeated string muted_tags = 32;
}
repeated Groups groups = 66;
message GroupUsers {
int32 group_id = 1;
int32 user_id = 2;
int32 notification_level = 3;
bool owner = 4;
}
repeated GroupUsers group_users = 67;
message UserOption {
int32 user_id = 1;
bool mailing_list_mode = 2;
int32 mailing_list_mode_frequency = 3;
bool email_digests = 4;
int32 email_level = 5;
int32 email_messages_level = 6;
bool external_links_is_new_tab = 7;
int32 dark_scheme_id = 8;
bool dynamic_favicon = 9;
bool enable_quoting = 10;
bool enable_defer = 11;
int32 digest_after_minutes = 12;
bool automatically_unpin_topics = 13;
int32 auto_track_topics_afters_msecs = 14;
int32 notification_level_when_replying = 15;
int32 new_topic_duration_minutes = 16;
int32 email_previous_replies = 17;
bool email_in_reply_to = 18;
int32 like_notification_frequency = 19;
bool include_tl0_in_digests = 20;
repeated int32 theme_ids = 21;
int32 theme_key_seq = 22;
bool allow_private_messages = 23;
bool enable_allowed_pm_users = 24;
bool hide_profile_and_presense = 25;
string text_size = 26;
int32 text_size_seq = 27;
string title_count_mode = 28;
string timezone = 29;
bool skip_new_user_tips = 30;
}
UserOption user_option = 68;
}
User user = 6;
}