# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 196258
# self = https://watcher.sour.is?offset=176056
# next = https://watcher.sour.is?offset=176156
# prev = https://watcher.sour.is?offset=175956
@bender Glad you could find it useful ... as for like I'm glad they're not a thing here xD otherwise we wouldn't be having as much conversations going on in here. but I get it, and do appreciate it. 🙏
@bender Glad you could find it useful ... as for like I'm glad they're not a thing here xD otherwise we wouldn't be having as much conversations going on in here. but I get it, and do appreciate it. 🙏
@aelaraji You could use https://lyse.isobeef.org/tmp/twthash.py to generate twt hashes. I cobbled that together in order to generate test data for my client.
@bender Gave it a try on Termux same thing @doesnm uses and it worked 👍
@bender Gave it a try on Termux same thing @doesnm uses and it worked 👍
@bender Gave it a try on Termux same thing @doesnm uses and it worked 👍
It looks just like this.

Pizza Hut's tavern style "ultimate" pizza
@bender He'll probably reply from his other feed, let's see. :-)
@movq but what kind of pizza? :-D We get pizza once a month, specifically on Fridays (and, of course, we are not alone). Lately we have been buying Pizza Hut's "tavern style", everything in it, large pizzas (well, just one). Thinking of it makes me hungry! :-)
I’m going to have a pizza and there’s nothing you can do about it. 🍕
I’m going to have a pizza and there’s nothing you can do about it. 🍕
I’m going to have a pizza and there’s nothing you can do about it. 🍕
I’m going to have a pizza and there’s nothing you can do about it. 🍕
This video is quite lengthy (almost 3.5 hours long), but really worth watching.

https://www.youtube.com/watch?v=ZYp7EmEgxg0
@aelaraji love it, thanks for sharing!
@wbknl ah, a digital garden... that reminds me to water mine. I am sure much of my plants are wilting.
@aelaraji I often wish "like" was a thing here. I would have just giving it one to this twtxt, and a re-post, to boost. :-) Thank you!
[47°09′12″S, 126°43′57″W] Wind speed: 76kph
@bender here:

e
FROM golang:alpine as builder
ARG version
ENV HTWTXT_VERSION=$version

WORKDIR $GOPATH/pkg/

RUN wget -O htwtxt.tar.gz https://github.com/plomlompom/htwtxt/archive/refs/tags/${HTWTXT_VERSION}.tar.gz
RUN tar xf htwtxt.tar.gz && cd htwtxt-${HTWTXT_VERSION} && go mod init htwtxt && go mod tidy && go install htwtxt

FROM alpine
ARG version
ENV HTWTXT_VERSION=$version

RUN mkdir -p /srv/htwtxt
COPY --from=builder /go/bin/htwtxt /usr/bin/
COPY --from=builder /go/pkg/htwtxt-${HTWTXT_VERSION}/templates/* /srv/htwtxt/templates/
WORKDIR /srv/htwtxt
VOLUME /srv/htwtxt

EXPOSE 8000

ENTRYPOINT ["htwtxt", "-dir", "/srv/htwtxt", "-templates", "/srv/htwtxt/templates"]


Don't forget the --build-arg version="1.0.7" for example when building this one, although there isn't much difference between the couple last versions.
P.S: I may have effed up changing htwtxt's files directory to /srv/htwtxt when the command itself defaults to /root/htwtxt so you'll have to throw in a -dir whenever you issue an htwtxt command (i.e: htwtxt -adduser somename:somepwd -dir /srv/htwtxt ... etc)
@bender here:

e
FROM golang:alpine as builder
ARG version
ENV HTWTXT_VERSION=$version

WORKDIR $GOPATH/pkg/

RUN wget -O htwtxt.tar.gz https://github.com/plomlompom/htwtxt/archive/refs/tags/${HTWTXT_VERSION}.tar.gz
RUN tar xf htwtxt.tar.gz && cd htwtxt-${HTWTXT_VERSION} && go mod init htwtxt && go mod tidy && go install htwtxt

FROM alpine
ARG version
ENV HTWTXT_VERSION=$version

RUN mkdir -p /srv/htwtxt
COPY --from=builder /go/bin/htwtxt /usr/bin/
COPY --from=builder /go/pkg/htwtxt-${HTWTXT_VERSION}/templates/* /srv/htwtxt/templates/
WORKDIR /srv/htwtxt
VOLUME /srv/htwtxt

EXPOSE 8000

ENTRYPOINT ["htwtxt", "-dir", "/srv/htwtxt", "-templates", "/srv/htwtxt/templates"]


Don't forget the --build-arg version="1.0.7" for example when building this one, although there isn't much difference between the couple last versions.
P.S: I may have effed up changing htwtxt's files directory to /srv/htwtxt when the command itself defaults to /root/htwtxt so you'll have to throw in a -dir whenever you issue an htwtxt command (i.e: htwtxt -adduser somename:somepwd -dir /srv/htwtxt ... etc)
@bender here:

e
FROM golang:alpine as builder
ARG version
ENV HTWTXT_VERSION=$version

WORKDIR $GOPATH/pkg/

RUN wget -O htwtxt.tar.gz https://github.com/plomlompom/htwtxt/archive/refs/tags/${HTWTXT_VERSION}.tar.gz
RUN tar xf htwtxt.tar.gz && cd htwtxt-${HTWTXT_VERSION} && go mod init htwtxt && go mod tidy && go install htwtxt

FROM alpine
ARG version
ENV HTWTXT_VERSION=$version

RUN mkdir -p /srv/htwtxt
COPY --from=builder /go/bin/htwtxt /usr/bin/
COPY --from=builder /go/pkg/htwtxt-${HTWTXT_VERSION}/templates/* /srv/htwtxt/templates/
WORKDIR /srv/htwtxt
VOLUME /srv/htwtxt

EXPOSE 8000

ENTRYPOINT ["htwtxt", "-dir", "/srv/htwtxt", "-templates", "/srv/htwtxt/templates"]


Don't forget the --build-arg version="1.0.7" for example when building this one, although there isn't much difference between the couple last versions.
P.S: I may have effed up changing htwtxt's files directory to /srv/htwtxt when the command itself defaults to /root/htwtxt so you'll have to throw in a -dir whenever you issue an htwtxt command (i.e: htwtxt -adduser somename:somepwd -dir /srv/htwtxt ... etc)
@aelaraji wow, the difference in size is astonishing! What your Dockerfile looks like?
@aelaraji I am not sure, because I might have names confused, but I think @doesnm main problem is the fact they use a phone as their main computer. Don't fully quote me on that, though! :-D
P.S:

h
~/remote/htwtxt » podman image list htwtxt                                                                                the@wks
REPOSITORY                TAG           IMAGE ID      CREATED      SIZE
localhost/htwtxt          1.0.5-alpine  13610a37e347  3 hours ago  20.1 MB
localhost/htwtxt          1.0.7-alpine  2a5c560ee6b7  3 hours ago  20.1 MB
docker.io/buckket/htwtxt  latest        c0e33b2913c6  8 years ago  778 MB
P.S:

h
~/remote/htwtxt » podman image list htwtxt                                                                                the@wks
REPOSITORY                TAG           IMAGE ID      CREATED      SIZE
localhost/htwtxt          1.0.5-alpine  13610a37e347  3 hours ago  20.1 MB
localhost/htwtxt          1.0.7-alpine  2a5c560ee6b7  3 hours ago  20.1 MB
docker.io/buckket/htwtxt  latest        c0e33b2913c6  8 years ago  778 MB
P.S:

h
~/remote/htwtxt » podman image list htwtxt                                                                                the@wks
REPOSITORY                TAG           IMAGE ID      CREATED      SIZE
localhost/htwtxt          1.0.5-alpine  13610a37e347  3 hours ago  20.1 MB
localhost/htwtxt          1.0.7-alpine  2a5c560ee6b7  3 hours ago  20.1 MB
docker.io/buckket/htwtxt  latest        c0e33b2913c6  8 years ago  778 MB
@bender I built my own, a much smaller one with a multi stage build... shouldn't that do the trick? 🤔
@bender I built my own, a much smaller one with a multi stage build... shouldn't that do the trick? 🤔
@bender I built my own, a much smaller one with a multi stage build... shouldn't that do the trick? 🤔
@doesnm I tried to go install github.com/plomlompom/htwtxt@1.0.7 as well as

h
# this is snippet from what I used for the Dockerfile but I guess it should work just fine.
cd ~/go/pkg && wget -O htwtxt.tar.gz https://github.com/plomlompom/htwtxt/archive/refs/tags/1.0.7.tar.gz 
tar xf htwtxt.tar.gz && cd htwtxt-1.0.7 && go mod init htwtxt && go mod tidy && go install htwtxt


both worked just fine...
@doesnm I tried to go install github.com/plomlompom/htwtxt@1.0.7 as well as

h
# this is snippet from what I used for the Dockerfile but I guess it should work just fine.
cd ~/go/pkg && wget -O htwtxt.tar.gz https://github.com/plomlompom/htwtxt/archive/refs/tags/1.0.7.tar.gz 
tar xf htwtxt.tar.gz && cd htwtxt-1.0.7 && go mod init htwtxt && go mod tidy && go install htwtxt


both worked just fine...
@doesnm I tried to go install github.com/plomlompom/htwtxt@1.0.7 as well as

h
# this is snippet from what I used for the Dockerfile but I guess it should work just fine.
cd ~/go/pkg && wget -O htwtxt.tar.gz https://github.com/plomlompom/htwtxt/archive/refs/tags/1.0.7.tar.gz 
tar xf htwtxt.tar.gz && cd htwtxt-1.0.7 && go mod init htwtxt && go mod tidy && go install htwtxt


both worked just fine...
@bender here... Enjoy 🦊🧡 😂
@bender here... Enjoy 🦊🧡 😂
@bender here... Enjoy 🦊🧡 😂
@aelaraji hehehehe! Being a nine years old container, the first thing to do is to bring the code complaint to the latest Go release. :-P

Yeah, metadata is an extension, and not part of the original spec.
@movq been getting so sloppy my feed is slowly turning into a fox nursery, I might end up renaming it into nature-reserve.txt
@movq been getting so sloppy my feed is slowly turning into a fox nursery, I might end up renaming it into nature-reserve.txt
@movq been getting so sloppy my feed is slowly turning into a fox nursery, I might end up renaming it into nature-reserve.txt
@bender highly probably, unless I learn go and implement it myself (or someone else more capable does) ... but I'm so lazy I'd just copy them from twtxt.net and call it a day xD and yeah, it's kinda rough the way things are...

- I don't see a way to follow others, all I can do is go to the /feeds URI for a list of the server's users/feeds.
- I still couldn't figure out how to get a direct link to a user's twtxt file, curling /feeds/usernick spits out a list of the user usernick twts, so I guess you could use that to follow them.
- no way to add in your # nick = usernick / # url = proto://domain.ltd/path/to/twtxt.txt ...etc. Probably because that wasn't part of the spec back then?

So yeah, it would make for a nice project while learning Go. :P
@bender highly probably, unless I learn go and implement it myself (or someone else more capable does) ... but I'm so lazy I'd just copy them from twtxt.net and call it a day xD and yeah, it's kinda rough the way things are...

- I don't see a way to follow others, all I can do is go to the /feeds URI for a list of the server's users/feeds.
- I still couldn't figure out how to get a direct link to a user's twtxt file, curling /feeds/usernick spits out a list of the user usernick twts, so I guess you could use that to follow them.
- no way to add in your # nick = usernick / # url = proto://domain.ltd/path/to/twtxt.txt ...etc. Probably because that wasn't part of the spec back then?

So yeah, it would make for a nice project while learning Go. :P
@bender highly probably, unless I learn go and implement it myself (or someone else more capable does) ... but I'm so lazy I'd just copy them from twtxt.net and call it a day xD and yeah, it's kinda rough the way things are...

- I don't see a way to follow others, all I can do is go to the /feeds URI for a list of the server's users/feeds.
- I still couldn't figure out how to get a direct link to a user's twtxt file, curling /feeds/usernick spits out a list of the user usernick twts, so I guess you could use that to follow them.
- no way to add in your # nick = usernick / # url = proto://domain.ltd/path/to/twtxt.txt ...etc. Probably because that wasn't part of the spec back then?

So yeah, it would make for a nice project while learning Go. :P
@movq I know, right?! Kind of jealous, I love those little rascals! :-D
@aelaraji Lots of foxes around here lately. 🥴
@aelaraji Lots of foxes around here lately. 🥴
@aelaraji Lots of foxes around here lately. 🥴
@aelaraji Lots of foxes around here lately. 🥴
@lyse 😂
@lyse 😂
@lyse 😂
@lyse 😂
@lyse I don't see a single reply on that feed. Looks like a one way kind of feed to me, but I might be wrong.
@aelaraji you will have to compute hashes by hand, right? How is the timeline, to read from those you follow? I figure it was a nice exercise to raise the dead, but with very little practical purposes, wouldn't you agree? ;-)
@prologic it seems to have stabilised on 18.1.1, just when 18.2 is around the corner (9 December?). All good. :-)
@bender Can't say I have sorry 😔
@bender Can't say I have sorry 😔
[47°09′00″S, 126°43′35″W] Weather forecast alert -- storm from SE
[47°09′29″S, 126°43′51″W] Storm recedes -- back to normal work
[47°09′55″S, 126°43′53″W] Working impossible due to thunderstorm
You were mentioned in: https://aelaraji.com/twtxt.txt#:~:text=2024-11-21T17:34:48,%0A" rel=noopener>https://aelaraji.com/twtxt.txt#:~:text=2024-11-21T17:34:48>
>
🧮 USERS:1 FEEDS:2 TWTS:1161 ARCHIVED:80975 CACHE:2542 FOLLOWERS:17 FOLLOWING:14
On my blog: Real Life in Star Trek, Time's Arrow, part 2 https://john.colagioia.net/blog/2024/11/21/time-s-arrow-2.html #scifi #startrek #closereading
@bender Yep! Twtxt spec by the letter I guess 🥲
@bender Yep! Twtxt spec by the letter I guess 🥲
@bender Yep! Twtxt spec by the letter I guess 🥲
Ever made an Oopsie, fixed it then Fuxed it up all over again? That's clearly my queue to get AFK ... Have a good one TWTXT!
Ever made an Oopsie, fixed it then Fuxed it up all over again? That's clearly my queue to get AFK ... Have a good one TWTXT!
Ever made an Oopsie, fixed it then Fuxed it up all over again? That's clearly my queue to get AFK ... Have a good one TWTXT!
@aelaraji I am sure @yarn_police already knows. Nothing passes by law and order here!
well... 🦊
well... 🦊
well... 🦊
I'm getting way too comfortable with editing twts and fixing Eff' ups... I gotta stop auto-syncing my twtxt file, at least I'll have a breathing room for quick fixes when needed. I know, Michael Lucas might not approve of this but, I wouldn't want the @yarn_police in the middle of the night, right?
I'm getting way too comfortable with editing twts and fixing Eff' ups... I gotta stop auto-syncing my twtxt file, at least I'll have a breathing room for quick fixes when needed. I know, Michael Lucas might not approve of this but, I wouldn't want the @yarn_police in the middle of the night, right?
I'm getting way too comfortable with editing twts and fixing Eff' ups... I gotta stop auto-syncing my twtxt file, at least I'll have a breathing room for quick fixes when needed. I know, Michael Lucas might not approve of this but, I wouldn't want the @yarn_police in the middle of the night, right?
Cool! Max 140 characters, LOL.
@bender :-)
Alright, I gave #htwtxt container a quick spin. The thing lives and feels dead simple, like, echo -e "`date -Im`\tHello world!" >> twtxt.txt kind of simple but with a GUI. and I LOVE IT! Now let's see if we can rebuild the image with the latest version of htwtxt.






Alright, I gave #htwtxt container a quick spin. The thing lives and feels dead simple, like, echo -e "`date -Im`\\tHello world!" >> twtxt.txt kind of simple but with a GUI. and I LOVE IT! Now let's see if we can rebuild the image with the latest version of htwtxt.






Alright, I gave #htwtxt container a quick spin. The thing lives and feels dead simple, like, echo -e "`date -Im`\tHello world!" >> twtxt.txt kind of simple but with a GUI. and I LOVE IT! Now let's see if we can rebuild the image with the latest version of htwtxt.






@movq Her maiden name is Raider.
@movq I like it!
@bender 😃 Pronunciation: Marie Twixt?
@bender 😃 Pronunciation: Marie Twixt?
@bender 😃 Pronunciation: Marie Twixt?
@bender 😃 Pronunciation: Marie Twixt?
If John Mastodon feats are spoken about on Mastodon, Marie Twtxt is our heroine!
[47°09′50″S, 126°43′17″W] Wind speed: 97kph
We need prediction markets for Linux kernel development.
@bender + a 9 years old container image by the good ol' buckket himself ... not sure what to expect from that but will give it a quick spin and report back
@bender + a 9 years old container image by the good ol' buckket himself ... not sure what to expect from that but will give it a quick spin and report back
@bender + a 9 years old container image by the good ol' buckket himself ... not sure what to expect from that but will give it a quick spin and report back
@aelaraji LOL. All good mate.

I didn't mean as if I was perceiving the use of Yarn to be malicious, but rather not accurate, and perhaps misleading, or confussing. But I got it when Soren explained it. He used yarn (lower case) after twtxt, because at some point there were considerations to call the "evolved" twtxt, with the several additions/enhancements, "yarn". After all, current twtxt/yarn has moved beyond the original twtxt.
@bender I kinda fixed it, but there's still a hell lot more than that still waiting to be fixed 😅
@bender I kinda fixed it, but there's still a hell lot more than that still waiting to be fixed 😅
@bender I kinda fixed it, but there's still a hell lot more than that still waiting to be fixed 😅
@bender Aye Aye, Captain 🫡
@bender Aye Aye, Captain 🫡
@bender Aye Aye, Captain 🫡
@bender 😆 Would calling it a Single user Twtxt "Yarn Pod **Like**" software help you sleep better at night? And just in case things are not clear here, I'm being sarcastic (well, kinda...) and not trying to gaslight anyone. Think of my comment as Bromance or something like that LOL.

But seriously, Just like any UNIX-Like system to Unix™, as in non of them are UNIX™, but each of them is providing more or less similar experience and re-implementing what once was parts of "UNIX™ software" their own (more or less better) ways. Timeline is Yarn™ Pod like, (my personal take on the word pod is: "an instance of XYZ software acting an _escape POD_ from X-BS for... ABC reasons.") providing more or less of a similar experience, implementing some of Yarn.social Extensions, trying to add in some more ...etc.

Otherwise, I don't see the Yarn pod mention as some kind of malicious manoeuvre, but more of a tribute to what (might have) sparked inspiration for creating Timeline? Also, our friend @sorenpeter here has got a valid reason for using PHP (#tms7aka) so let's let's put our unease towards the language itself aside and maybe just help however/as much as we can in order to make internet (the World?) a better place.