mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-04 08:42:24 -06:00 
			
		
		
		
	start messing about with streaming api
This commit is contained in:
		
					parent
					
						
							
								82d9f88e42
							
						
					
				
			
			
				commit
				
					
						0cee5aa569
					
				
			
		
					 9 changed files with 241 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -22,6 +22,7 @@ import (
 | 
			
		|||
	"context"
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	"github.com/gorilla/websocket"
 | 
			
		||||
	"github.com/sirupsen/logrus"
 | 
			
		||||
	apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
 | 
			
		||||
	"github.com/superseriousbusiness/gotosocial/internal/blob"
 | 
			
		||||
| 
						 | 
				
			
			@ -33,6 +34,7 @@ import (
 | 
			
		|||
	"github.com/superseriousbusiness/gotosocial/internal/media"
 | 
			
		||||
	"github.com/superseriousbusiness/gotosocial/internal/oauth"
 | 
			
		||||
	"github.com/superseriousbusiness/gotosocial/internal/processing/synchronous/status"
 | 
			
		||||
	"github.com/superseriousbusiness/gotosocial/internal/processing/synchronous/streaming"
 | 
			
		||||
	"github.com/superseriousbusiness/gotosocial/internal/timeline"
 | 
			
		||||
	"github.com/superseriousbusiness/gotosocial/internal/typeutils"
 | 
			
		||||
	"github.com/superseriousbusiness/gotosocial/internal/visibility"
 | 
			
		||||
| 
						 | 
				
			
			@ -132,6 +134,11 @@ type Processor interface {
 | 
			
		|||
	// PublicTimelineGet returns statuses from the public/local timeline, with the given filters/parameters.
 | 
			
		||||
	PublicTimelineGet(authed *oauth.Auth, maxID string, sinceID string, minID string, limit int, local bool) ([]*apimodel.Status, gtserror.WithCode)
 | 
			
		||||
 | 
			
		||||
	// AuthorizeStreamingRequest returns an oauth2 token info in response to an access token query from the streaming API
 | 
			
		||||
	AuthorizeStreamingRequest(accessToken string) (*gtsmodel.Account, error)
 | 
			
		||||
	// StreamForAccount streams to websocket connection c for an account, with the given streamType.
 | 
			
		||||
	StreamForAccount(c *websocket.Conn, account *gtsmodel.Account, streamType string) gtserror.WithCode
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
		FEDERATION API-FACING PROCESSING FUNCTIONS
 | 
			
		||||
		These functions are intended to be called when the federating client needs an immediate (ie., synchronous) reply
 | 
			
		||||
| 
						 | 
				
			
			@ -192,7 +199,8 @@ type processor struct {
 | 
			
		|||
		SUB-PROCESSORS
 | 
			
		||||
	*/
 | 
			
		||||
 | 
			
		||||
	statusProcessor status.Processor
 | 
			
		||||
	statusProcessor    status.Processor
 | 
			
		||||
	streamingProcessor streaming.Processor
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewProcessor returns a new Processor that uses the given federator and logger
 | 
			
		||||
| 
						 | 
				
			
			@ -202,6 +210,7 @@ func NewProcessor(config *config.Config, tc typeutils.TypeConverter, federator f
 | 
			
		|||
	fromFederator := make(chan gtsmodel.FromFederator, 1000)
 | 
			
		||||
 | 
			
		||||
	statusProcessor := status.New(db, tc, config, fromClientAPI, log)
 | 
			
		||||
	streamingProcessor := streaming.New(db, tc, oauthServer, config, log)
 | 
			
		||||
 | 
			
		||||
	return &processor{
 | 
			
		||||
		fromClientAPI:   fromClientAPI,
 | 
			
		||||
| 
						 | 
				
			
			@ -218,7 +227,8 @@ func NewProcessor(config *config.Config, tc typeutils.TypeConverter, federator f
 | 
			
		|||
		db:              db,
 | 
			
		||||
		filter:          visibility.NewFilter(db, log),
 | 
			
		||||
 | 
			
		||||
		statusProcessor: statusProcessor,
 | 
			
		||||
		statusProcessor:    statusProcessor,
 | 
			
		||||
		streamingProcessor: streamingProcessor,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue