Compare commits
No commits in common. "7d7d55099e81338002a43131be4aa04e6d1a7a95" and "73591b81ca71d5c0db26701cda3440705a131a26" have entirely different histories.
7d7d55099e
...
73591b81ca
|
|
@ -10,5 +10,4 @@ RUN ["mkdir", "-p", "/opt/micropub"]
|
|||
WORKDIR /opt/micropub
|
||||
EXPOSE 80
|
||||
COPY --from=build-env /go/bin/eksterd /app/
|
||||
COPY --from=build-env /go/bin/ek /app/
|
||||
ENTRYPOINT ["/app/eksterd"]
|
||||
|
|
|
|||
|
|
@ -109,10 +109,7 @@ func main() {
|
|||
log.Fatal(err)
|
||||
}
|
||||
|
||||
clientID := "https://p83.nl/microsub-client"
|
||||
scope := "read follow mute block channels"
|
||||
|
||||
token, err := indieauth.Authorize(me, endpoints, clientID, scope)
|
||||
token, err := indieauth.Authorize(me, endpoints)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
|
@ -148,8 +145,6 @@ func performCommands(sub microsub.Microsub, commands []string) {
|
|||
|
||||
Commands:
|
||||
|
||||
connect URL login to Indieauth url
|
||||
|
||||
channels list channels
|
||||
channels NAME create channel with NAME
|
||||
channels UID NAME update channel UID with NAME
|
||||
|
|
@ -258,10 +253,7 @@ Commands:
|
|||
}
|
||||
|
||||
func showItem(item *microsub.Item) {
|
||||
if item.Name != "" {
|
||||
fmt.Printf("%s - ", item.Name)
|
||||
}
|
||||
fmt.Printf("%s\n", item.Published)
|
||||
fmt.Printf("%s - %s - %s\n", item.Name, item.Published, item.ID)
|
||||
if item.Content != nil {
|
||||
if item.Content.Text != "" {
|
||||
fmt.Println(item.Content.Text)
|
||||
|
|
|
|||
|
|
@ -121,19 +121,20 @@ func createMemoryBackend() microsub.Microsub {
|
|||
backend.Channels = make(map[string]microsub.Channel)
|
||||
backend.Feeds = make(map[string][]microsub.Feed)
|
||||
channels := []microsub.Channel{
|
||||
microsub.Channel{UID: "notifications", Name: "Notifications"},
|
||||
microsub.Channel{UID: "home", Name: "Home"},
|
||||
microsub.Channel{UID: "0000", Name: "default"},
|
||||
microsub.Channel{UID: "0001", Name: "notifications"},
|
||||
microsub.Channel{UID: "1000", Name: "Friends"},
|
||||
microsub.Channel{UID: "1001", Name: "Family"},
|
||||
}
|
||||
for _, c := range channels {
|
||||
backend.Channels[c.UID] = c
|
||||
}
|
||||
backend.NextUid = 1000000
|
||||
backend.NextUid = 1002
|
||||
|
||||
backend.Me = "https://example.com/"
|
||||
|
||||
log.Println(`Config file "backend.json" is created in the current directory.`)
|
||||
log.Println(`Update "Me" variable to your website address "https://example.com/"`)
|
||||
log.Println(`Update "TokenEndpoint" variable to the address of your token endpoint "https://example.com/token"`)
|
||||
return &backend
|
||||
}
|
||||
|
||||
|
|
@ -151,9 +152,7 @@ func (b *memoryBackend) ChannelsGetList() []microsub.Channel {
|
|||
}
|
||||
} else {
|
||||
for _, uid := range uids {
|
||||
if c, e := b.Channels[uid]; e {
|
||||
channels = append(channels, c)
|
||||
}
|
||||
channels = append(channels, b.Channels[uid])
|
||||
}
|
||||
}
|
||||
return channels
|
||||
|
|
@ -189,15 +188,14 @@ func (b *memoryBackend) ChannelsUpdate(uid, name string) microsub.Channel {
|
|||
func (b *memoryBackend) ChannelsDelete(uid string) {
|
||||
defer b.save()
|
||||
|
||||
conn := pool.Get()
|
||||
defer conn.Close()
|
||||
|
||||
conn.Do("SREM", "channels", uid)
|
||||
conn.Do("DEL", "channel_sortorder_"+uid)
|
||||
|
||||
if _, e := b.Channels[uid]; e {
|
||||
delete(b.Channels, uid)
|
||||
}
|
||||
|
||||
if _, e := b.Feeds[uid]; e {
|
||||
delete(b.Feeds, uid)
|
||||
}
|
||||
}
|
||||
|
||||
func mapToAuthor(result map[string]string) *microsub.Card {
|
||||
item := µsub.Card{}
|
||||
|
|
@ -724,9 +722,6 @@ func (b *memoryBackend) MarkRead(channel string, uids []string) {
|
|||
unread -= len(uids)
|
||||
|
||||
if ch, e := b.Channels[channel]; e {
|
||||
if unread < 0 {
|
||||
unread = 0
|
||||
}
|
||||
ch.Unread = unread
|
||||
b.Channels[channel] = ch
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,9 +9,6 @@ import (
|
|||
"net/http"
|
||||
"net/url"
|
||||
|
||||
"linkheader"
|
||||
|
||||
"github.com/pstuifzand/ekster/pkg/util"
|
||||
"willnorris.com/go/microformats"
|
||||
)
|
||||
|
||||
|
|
@ -40,44 +37,25 @@ func GetEndpoints(me *url.URL) (Endpoints, error) {
|
|||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
var links linkheader.Links
|
||||
|
||||
if headers, e := res.Header["Link"]; e {
|
||||
links = linkheader.ParseMultiple(headers)
|
||||
for _, link := range links {
|
||||
if link.Rel == "authorization_endpoint" {
|
||||
endpoints.AuthorizationEndpoint = link.URL
|
||||
} else if link.Rel == "token_endpoint" {
|
||||
endpoints.TokenEndpoint = link.URL
|
||||
} else if link.Rel == "micropub" {
|
||||
endpoints.MicropubEndpoint = link.URL
|
||||
} else if link.Rel == "microsub" {
|
||||
endpoints.MicrosubEndpoint = link.URL
|
||||
} else {
|
||||
log.Printf("Skipping unsupported rels in Link header: %s %s\n", link.Rel, link.URL)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data := microformats.Parse(res.Body, baseURL)
|
||||
|
||||
if auth, e := data.Rels["authorization_endpoint"]; e && endpoints.AuthorizationEndpoint == "" {
|
||||
if auth, e := data.Rels["authorization_endpoint"]; e {
|
||||
endpoints.AuthorizationEndpoint = auth[0]
|
||||
}
|
||||
if token, e := data.Rels["token_endpoint"]; e && endpoints.TokenEndpoint == "" {
|
||||
if token, e := data.Rels["token_endpoint"]; e {
|
||||
endpoints.TokenEndpoint = token[0]
|
||||
}
|
||||
if micropub, e := data.Rels["micropub"]; e && endpoints.MicropubEndpoint == "" {
|
||||
if micropub, e := data.Rels["micropub"]; e {
|
||||
endpoints.MicropubEndpoint = micropub[0]
|
||||
}
|
||||
if microsub, e := data.Rels["microsub"]; e && endpoints.MicrosubEndpoint == "" {
|
||||
if microsub, e := data.Rels["microsub"]; e {
|
||||
endpoints.MicrosubEndpoint = microsub[0]
|
||||
}
|
||||
|
||||
return endpoints, nil
|
||||
}
|
||||
|
||||
func Authorize(me *url.URL, endpoints Endpoints, clientID, scope string) (TokenResponse, error) {
|
||||
func Authorize(me *url.URL, endpoints Endpoints) (TokenResponse, error) {
|
||||
var tokenResponse TokenResponse
|
||||
|
||||
authURL, err := url.Parse(endpoints.AuthorizationEndpoint)
|
||||
|
|
@ -90,9 +68,10 @@ func Authorize(me *url.URL, endpoints Endpoints, clientID, scope string) (TokenR
|
|||
return tokenResponse, err
|
||||
}
|
||||
|
||||
clientID := "https://p83.nl/microsub-client"
|
||||
local := ln.Addr().String()
|
||||
redirectURI := fmt.Sprintf("http://%s/", local)
|
||||
state := util.RandStringBytes(16)
|
||||
state := "12345344"
|
||||
|
||||
q := authURL.Query()
|
||||
q.Add("response_type", "code")
|
||||
|
|
@ -100,7 +79,7 @@ func Authorize(me *url.URL, endpoints Endpoints, clientID, scope string) (TokenR
|
|||
q.Add("client_id", clientID)
|
||||
q.Add("redirect_uri", redirectURI)
|
||||
q.Add("state", state)
|
||||
q.Add("scope", scope)
|
||||
q.Add("scope", "read follow mute block channels")
|
||||
authURL.RawQuery = q.Encode()
|
||||
|
||||
log.Printf("Browse to %s\n", authURL.String())
|
||||
|
|
@ -115,7 +94,6 @@ func Authorize(me *url.URL, endpoints Endpoints, clientID, scope string) (TokenR
|
|||
if state != responseState {
|
||||
log.Println("Wrong state response")
|
||||
}
|
||||
fmt.Fprintf(w, `<div style="width:100%%;height:100%%;display: flex; align-items: center; justify-content: center;">You can close this window, proceed on the command line</div>`)
|
||||
close(shutdown)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user