mail based rss feed aggregator
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

add alias for pubsub subject name `pubsub.Registry`

ollie 9272f65b a1d1fd78

+19 -19
+3 -4
src/eater/fetcher.gleam
··· 30 30 import gleam/otp/supervision 31 31 import gleam/result 32 32 import gleam/string 33 - import group_registry 34 33 import parsed_it/xml 35 34 import sqlight 36 35 import woof ··· 62 61 /// 63 62 pub fn start_all_existing( 64 63 factory: process.Name(factory.Message(Start, _)), 65 - registry: process.Name(group_registry.Message(pubsub.Message)), 64 + registry: pubsub.Registry, 66 65 database: sqlight.Connection, 67 66 ) -> Result(List(actor.Started(a)), actor.StartError) { 68 67 use feeds <- result.try( ··· 97 96 /// `database` - used to update the feed cooldowns 98 97 Start( 99 98 feed: rss.Location, 100 - registry: process.Name(group_registry.Message(pubsub.Message)), 99 + registry: pubsub.Registry, 101 100 database: sqlight.Connection, 102 101 ) 103 102 } ··· 115 114 self: process.Subject(Message), 116 115 fetch_timer: process.Timer, 117 116 feed: rss.Location, 118 - registry: process.Name(group_registry.Message(pubsub.Message)), 117 + registry: pubsub.Registry, 119 118 database: sqlight.Connection, 120 119 ) 121 120 }
+10 -10
src/eater/pubsub.gleam
··· 36 36 |> woof.log(level, message, fields) 37 37 } 38 38 39 + pub type Registry = 40 + process.Name(group_registry.Message(Message)) 41 + 39 42 pub fn supervised( 40 - name: process.Name(group_registry.Message(Message)), 43 + name: Registry, 41 44 ) -> supervision.ChildSpecification(group_registry.GroupRegistry(Message)) { 42 45 group_registry.supervised(name) 43 46 } ··· 63 66 64 67 /// publish a message about subscription changes for a user to the registry 65 68 /// 66 - pub fn subscription_changed( 67 - for user: user.User, 68 - in registry: process.Name(group_registry.Message(Message)), 69 - ) -> Nil { 69 + pub fn subscription_changed(for user: user.User, in registry: Registry) -> Nil { 70 70 let registry = group_registry.get_registry(registry) 71 71 72 72 let members = group_registry.members(registry, user_channel(user)) ··· 84 84 pub fn feed_update( 85 85 update update: rss.FeedUpdate, 86 86 for feed: rss.Location, 87 - in registry: process.Name(group_registry.Message(Message)), 87 + in registry: Registry, 88 88 ) -> Nil { 89 89 let registry = group_registry.get_registry(registry) 90 90 let channel = feed_channel(feed) ··· 107 107 /// 108 108 pub fn user_selector( 109 109 user user: user.User, 110 - in registry: process.Name(group_registry.Message(a)), 110 + in registry: Registry, 111 111 self self: process.Pid, 112 112 subject subject: process.Subject(b), 113 - handler handler: fn(a) -> b, 113 + handler handler: fn(Message) -> b, 114 114 ) -> process.Selector(b) { 115 115 let registry = group_registry.get_registry(registry) 116 116 ··· 125 125 /// 126 126 pub fn feed_selector( 127 127 feed feed: rss.Location, 128 - in registry: process.Name(group_registry.Message(a)), 128 + in registry: Registry, 129 129 self self: process.Pid, 130 130 subject subject: process.Subject(b), 131 - handler handler: fn(a) -> b, 131 + handler handler: fn(Message) -> b, 132 132 ) -> process.Selector(b) { 133 133 let registry = group_registry.get_registry(registry) 134 134
+3 -3
src/eater/sender.gleam
··· 61 61 /// 62 62 pub fn start_all_existing( 63 63 factory: process.Name(factory.Message(Start, Nil)), 64 - registry: process.Name(group_registry.Message(pubsub.Message)), 64 + registry: pubsub.Registry, 65 65 database: sqlight.Connection, 66 66 smtp_environment: smtp.SmtpEnvironment, 67 67 ) -> Result(List(actor.Started(Nil)), actor.StartError) { ··· 84 84 pub type Start { 85 85 Start( 86 86 database: sqlight.Connection, 87 - registry: process.Name(group_registry.Message(pubsub.Message)), 87 + registry: pubsub.Registry, 88 88 user: user.User, 89 89 smtp_environment: smtp.SmtpEnvironment, 90 90 ) ··· 106 106 type State { 107 107 State( 108 108 database: sqlight.Connection, 109 - registry: process.Name(group_registry.Message(pubsub.Message)), 109 + registry: pubsub.Registry, 110 110 user: user.User, 111 111 smtp_environment: smtp.SmtpEnvironment, 112 112 self: process.Subject(Message),
+3 -2
src/eater/webserver.gleam
··· 2 2 //// the webserver used to serve the lustre ui `main_ui` 3 3 4 4 import eater/configuration 5 + import eater/pubsub 5 6 import eater/smtp 6 7 import eater/ui/main_ui 7 8 import ewe ··· 25 26 26 27 pub fn supervised( 27 28 database database, 28 - registry registry, 29 + registry registry: pubsub.Registry, 29 30 smtp_environment smtp_environment, 30 31 configuration configuration: configuration.AppConfig, 31 32 ) { ··· 194 195 195 196 fn serve_component( 196 197 request: Request(ewe.Connection), 197 - _registry: process.Name(group_registry.Message(_)), 198 + registry: pubsub.Registry, 198 199 database: sqlight.Connection, 199 200 smtp_environment: smtp.SmtpEnvironment, 200 201 configuration: configuration.AppConfig,