From b515143fc66c8df2f35e426789c43b5ebd740b1b Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Wed, 12 Jan 2022 22:05:18 -0500 Subject: [PATCH] impl map images --- config.json | 24 ++++++++++++++++++------ config/config.go | 11 +++++++++++ main.go | 16 ++++++++++++---- message/map.go | 1 - message/matrix.go | 18 +++++++++++++++++- message/testdata/whatever.jpg | Bin 0 -> 2292 bytes todo.yaml | 5 +++++ 7 files changed, 63 insertions(+), 12 deletions(-) delete mode 100644 message/map.go create mode 100644 message/testdata/whatever.jpg diff --git a/config.json b/config.json index f427ff1..80a36a4 100644 --- a/config.json +++ b/config.json @@ -4,15 +4,27 @@ "OK": "6h0m0s..6h0m0s", "Error": "6h0m0s..6h0m0s" }, + "Images": { + "ClientID": "d9ac7cabe813d10", + "ClientSecret": "9d0b3d82800b30ca88f595d3bcd6985f627d7d82", + "RefreshToken": "171417741bf762b99b0b9f9137491b7a69874a77", + "AccessToken": "e63db98f92d2db7ac7f56914a2030c889b378e9b", + "RefreshURI": "https://api.imgur.com/oauth2/token", + "RefreshFormat": "refresh_token=%s&client_id=%s&client_secret=%s&grant_type=refresh_token", + "RefreshMethod": "POST", + "UploadURI": "https://api.imgur.com/3/image", + "UploadMethod": "POST" + }, "Maps": { - "URIFormat": "https://maps.googleapis.com/maps/api/staticmap?center=%s\u0026markers=label=A|%s\u0026zoom=5\u0026size=250x250\u0026scale=2\u0026format=jpeg\u0026maptype=roadmap\u0026key=AIzaSyBkACm-LQkoSfsTO5_XAzBVZE9-JQzcNkg", + "URIFormat": "https://maps.googleapis.com/maps/api/staticmap?center=%s\u0026markers=label=A|%s\u0026zoom=5\u0026size=250x250\u0026scale=1\u0026format=jpeg\u0026maptype=roadmap\u0026key=AIzaSyBkACm-LQkoSfsTO5_XAzBVZE9-JQzcNkg", "Pickup": true, - "Dropoff": false + "Dropoff": true }, "Clients": { "broc": { "States": [ - "OH" + "FL", + "NC" ], "IDs": { "Matrix": "@belandbroc:matrix.org" @@ -21,7 +33,7 @@ }, "caleb": { "States": [ - "OH" + "FL" ], "IDs": { "Matrix": "@belandbroc:matrix.org" @@ -44,12 +56,12 @@ "Message": { "Matrix": { "ReceiveEnabled": true, - "Mock": true, + "Mock": false, "Homeserver": "https://matrix-client.matrix.org", "Username": "@breellocaldev:matrix.org", "Token": "syt_YnJlZWxsb2NhbGRldg_HTewKMMePdEcLvceAKEz_2fHsHa", "Device": "TGNIOGKATZ", - "Room": "!rMvyKroCAJMRqFwTwC:matrix.org" + "Room": "!ySKxwGHQPzPfVAldfJ:matrix.org" } }, "Once": true, diff --git a/config/config.go b/config/config.go index f72074b..38298c2 100644 --- a/config/config.go +++ b/config/config.go @@ -15,6 +15,17 @@ type Config struct { OK Duration Error Duration } + Images struct { + ClientID string + ClientSecret string + RefreshToken string + AccessToken string + RefreshURI string + RefreshFormat string + RefreshMethod string + UploadURI string + UploadMethod string + } Maps struct { URIFormat string Pickup bool diff --git a/main.go b/main.go index 6b80588..dfa296a 100644 --- a/main.go +++ b/main.go @@ -277,13 +277,21 @@ func sendJob(job broker.Job) error { return err } maps := config.Get().Maps - pickup := fmt.Sprintf("%s, %s", job.Pickup.City, job.Pickup.State) - dropoff := fmt.Sprintf("%s, %s", job.Dropoff.City, job.Dropoff.State) if maps.Pickup { - sender.SendImage(fmt.Sprintf(maps.URIFormat, pickup, pickup)) + pickup := fmt.Sprintf("%s,%s", job.Pickup.City, job.Pickup.State) + uri := fmt.Sprintf(maps.URIFormat, pickup, pickup) + log.Printf("sending pickup image: %s", uri) + if err := sender.SendImage(uri); err != nil { + return err + } } if maps.Dropoff { - sender.SendImage(fmt.Sprintf(maps.URIFormat, dropoff, dropoff)) + dropoff := fmt.Sprintf("%s,%s", job.Dropoff.City, job.Dropoff.State) + uri := fmt.Sprintf(maps.URIFormat, dropoff, dropoff) + log.Printf("sending dropoff image: %s", uri) + if err := sender.SendImage(uri); err != nil { + return err + } } return nil } diff --git a/message/map.go b/message/map.go deleted file mode 100644 index ede1b09..0000000 --- a/message/map.go +++ /dev/null @@ -1 +0,0 @@ -package message diff --git a/message/matrix.go b/message/matrix.go index 66dff02..63f7dcf 100644 --- a/message/matrix.go +++ b/message/matrix.go @@ -2,8 +2,10 @@ package message import ( "fmt" + "io/ioutil" "local/truckstop/config" "log" + "net/http" "regexp" "strings" "time" @@ -109,10 +111,24 @@ func (m Matrix) SendImage(uri string) error { log.Printf("matrix.SendImage(%s)", uri) return nil } + response, err := http.Get(uri) + if err != nil { + return err + } + b, err := ioutil.ReadAll(response.Body) + response.Body.Close() + if err != nil { + return err + } + publicURI, err := UploadImage(b) + if err != nil { + return err + } c, err := m.getclient() if err != nil { return err } - _, err = c.SendImage(m.room, "", uri) + resp, err := c.SendImage(m.room, "img", publicURI) + log.Printf("sent image %s => %s: %+v", uri, publicURI, resp) return err } diff --git a/message/testdata/whatever.jpg b/message/testdata/whatever.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c28c41db2fe9802022fa059d8328f898ed88886d GIT binary patch literal 2292 zcmViQ(LlfWxI7{yn8~0^i7QNRFCdkk?C2K z@@JCUc%Iy1l;~iW@MD_uZK3mbpyhI*?Qo*@d#UuYJ1??6GPOW2v_UnrL^`@nJHAmn zw@pF0Pei*?MY&W-zgkbcTv5GaSifjp#aTb;LpA6}IOs__<5xe&Ur4}PP~2QX+*(c9 zUs1P||K&Z)ELzaPWO|jDcK)gnyHcfBU=z_PrR@hE>doa@2r%+n8q5oOkYqdh&>T z>9ceC!z22~G3LWu_sK!}%0c+fQ25ea_RnSc)Mxb7efimZi;Iemkd2X#hm(+nkdTj* zl#`sEo0qMexQc?Hp`Wg)n5(R+rLMcNv#++dwt%77pRdb>uk((#^qRZtl)3V!v&Xx? z#-Y9Ana`7>z^lH&yRg=ytHIu;!|$fV^0dk8v(5Cj&-l2`^1IjSwb=N}m5R-tlh2}+ z(W95pqnOmRsMWZv*uAaSzOwF;hwq(}^O%M4os{sYpYywi^}43ZL)g!$cz^xcy2-J0y&q3qtM_1&uc;f(j;nf>IG{^^|J;HB;0 zt>@vs@8PoO;=T0Yr1s^g|LdXm=d=Cmv;6J7!^OhR&dkZp)6db)&D7i5&BD{r#?jQw z-OCV;Z(%azG-Q(HV>D1is+urcq&E)OO z==|B|=Pq>D}q)-tX$w>FVC|>B98t z$o=TW^x)d@>Cp7<+xq0*{_(^7@XY-3)c*C|<>uq&>)_z->gw*~>+I_2@A2>O=kD_A z;_&(N>*eWqDe$SR7l5tl?_}IWf;J>>12`~i5X->kS3X(mYJGmY61a?vogv`Q)m)at}N5O z?90?Xv=6N`%-XvTy6z%Im#owXs+ls%P+|pd9hD`_>#)BDSma>z63&`70GT!`<^+2&=oRubzW9l_A#Pmy*W9!yM9!(qptKYvcFN(;^`ZCV-Sj6Lj(8?^lEDE{g zMfkr67AFlHW3G*qB&YohNF?tL)(&6GniM7`Wxoy+BOV+>SZqucgtMpj#XcJ*L_AGR zku{*55bn#Is}gfF_bIxLjyNQS@KQke3Y!TV0U#EMa!QTfq6D@}ZMBKnyHurBu^ffO z5E!v>Sl|Suqi0SC$HzKit-yf@4>wQ7$mGpoXDRQQ>VgkDX{$oOhD?lPhWfFJ0Tuv2 zbzEJ-SBB>Rz;0m~KZTq!9w*CL;L(wctQ;87VVl6G$AIHL}m6$rZa=t5wdg?37F@oft6{cOiy{i zuPxrQcNBpoWxcrqX)C*gU<3(jF_L^%1d*|_B1uN)5*g1wvOz_X%6-8ejaxyKjG-ix zPfi|=`W%xL#H`)3h8T$&4S|3>#Dp5m-?;S#gj}nRBlBQ4I)3jLzbIDxl3!2}ml??` z%%h0UQIA^=$nN&PZp+QPr4gN8wqU`Xr^Uz5Nl6_&>M?9(M*&%MO29oP$}%n-BGQnI z&R4>b^T`_v$ZhBj<6`_l8AMt-L42D$dr(7$%{=oDf*`KBZl zk{=lFmV!%+O+>mVt|q=t9$u7tq$HPY6~p%hV(oLH=@+Tsq{T)zk@mNk zp&&)%8&d0AlAv6%S_%)3I!_8goJ|nt?d-aNEXXCdN=uB378#eFe3VE{C5ZjW!&-C6 zLNfP{e>Bi(WhlGT>+JmXnGxw3FGz!b`h8nr;dVbSS?*f=p>$GOpPrsh?0@oUskNlA zq}9)9Drx4ucS9}OSjZmAZ4VTIFUyDyZci?@MAs4X&j(Rc{Age zzNcoM((J`;>T8MT)hWtJYn8;W{S8m6uxPCP^U2Iv=IM0BHC6`jeG>VjHUW#_|VeNlX9B>P{iZdAi O0000rO literal 0 HcmV?d00001 diff --git a/todo.yaml b/todo.yaml index 800ceea..928434c 100644 --- a/todo.yaml +++ b/todo.yaml @@ -19,6 +19,11 @@ todo: - setup ma on element !!fluffychat - set up copy for caleb, broc done: +- todo: upload g map to imgur + details: | + w oath d9ac7cabe813d10 9d0b3d82800b30ca88f595d3bcd6985f627d7d82 + Authorization: Client-ID d9ac7cabe813d10 + Authorization: Bearer YOUR_ACCESS_TOKEN - quiet hours - "@caleb commands: args" - accept after date