# 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 698
# self = https://watcher.sour.is?uri=https://twtxt.net/user/tkanos/twtxt.txt&offset=98
# next = https://watcher.sour.is?uri=https://twtxt.net/user/tkanos/twtxt.txt&offset=198
@prologic, on the merging of twter and yarnc test I m doing, I did a quickstart that will help to solve those issue of non setup things.
@prologic it didn't, if you do that you will have 2 errors, because the login doesn't know where to send it's request.


WARN[0000] error loading config file: ~/.yarnc.yml  error="open ~/.yarnc.yml: no such file or directory"

ERRO[0011] error making login request                    error="Post \\"http://localhost:8000/api/v1/auth\\": dial tcp 127.0.0.1:8000: connect: connection refused"


I know it took me to read all the code to create that .yarnc.yml file, the first time.

PS: THe yarnc login (when everything set) will only populate the token one.
@prologic it didn't, if you do that you will have 2 errors, because the login doesn't know where to send it's request.


WARN[0000] error loading config file: ~/.yarnc.yml  error="open ~/.yarnc.yml: no such file or directory"

ERRO[0011] error making login request                    error="Post \\"http://localhost:8000/api/v1/auth\\": dial tcp 127.0.0.1:8000: connect: connection refused"


I know, it took me to read all the code to create that .yarnc.yml file, the first time.

PS: The yarnc login (when everything set) will only populate the token one.
@prologic it didn't, if you do that you will have 2 errors, because the login doesn't know where to send it's request.


WARN[0000] error loading config file: ~/.yarnc.yml  error="open ~/.yarnc.yml: no such file or directory"

ERRO[0011] error making login request                    error="Post \"http://localhost:8000/api/v1/auth\": dial tcp 127.0.0.1:8000: connect: connection refused"


I know, it took me to read all the code to create that .yarnc.yml file, the first time.

PS: The yarnc login (when everything set) will only populate the token one.
To start you only need :
A .yarnc.yml with the following on it

uri: https://twtxt.net/user/oevl/twtxt.txt
@prologic you will have a lot of "Hello world" in your bus.
After some experiment I saw that saltpack (salty) when sending to multiple recipient, encrypt the same message many times (with all recipients public key) so don't need to generate a symmetrical key (more safe).
@prologic I will
@prologic I love salty, so simple and so efficient.
My bad, it will apparently be possible, I just don't fully understand how, but keys can encrypt a message to multiple recipient.

echo -n "My secret 🤓" | keys encrypt -armor -sender gabriel@github \
-recipient kex1ts0qw8fwkvle2f2xsqumetmr9ev5ppx22rl5hnycen68sanjzl7qnta629 \
-recipient kex1ts0qw8fwkvle2f2xsqumetmr9ev5ppx22rl5hnycen68sanjzl7qnta627 > msg.enc
My bad, it will apparently be possible, I just don't fully understand how, but keys can encrupt a message o multiple recipient.

echo -n "My secret 🤓" | keys encrypt -armor -sender gabriel@github \\
-recipient kex1ts0qw8fwkvle2f2xsqumetmr9ev5ppx22rl5hnycen68sanjzl7qnta629 \\
-recipient kex1ts0qw8fwkvle2f2xsqumetmr9ev5ppx22rl5hnycen68sanjzl7qnta627 > msg.enc
My bad, it will apparently be possible, I just don't fully understand how, but keys can encrypt a message to multiple recipient.

echo -n "My secret 🤓" | keys encrypt -armor -sender gabriel@github \\
-recipient kex1ts0qw8fwkvle2f2xsqumetmr9ev5ppx22rl5hnycen68sanjzl7qnta629 \\
-recipient kex1ts0qw8fwkvle2f2xsqumetmr9ev5ppx22rl5hnycen68sanjzl7qnta627 > msg.enc
My bad, it will be possible.
My bad, it will apparently be possible, I just don;t fully understand how, but keys can encrupt a message o multiple recipient.

echo -n "My secret 🤓" | keys encrypt -armor -sender gabriel@github \\
-recipient kex1ts0qw8fwkvle2f2xsqumetmr9ev5ppx22rl5hnycen68sanjzl7qnta629 \\
-recipient kex1ts0qw8fwkvle2f2xsqumetmr9ev5ppx22rl5hnycen68sanjzl7qnta627 > msg.enc
@prologic, very good.
Just for information : keybase.io has a go pkg to deal with saltpack : https://github.com/keybase/saltpack
Very good.
What you did will be perfect for a one to one conversation.
But if I want to tell to everybody that I follow something encrypted. It won't be possible.
Actually it's good : RFC for Encrypted Feeds
Yes of course, I was just doing a global overview. Of the basis, to be able to build on it.
Thanks, Yes of course, I was just doing a global overview. Of the basis, to be able to build on it.
Thanks, Yes of course, I was just doing a global overview. Of the basis, to be able to build on it.
And I was not aware of that RFC. Will be reading it.
Here are my thought about the subject : https://git.mills.io/tkanos/encrption-twtxt-paper/wiki/Research
But the real issue is that if you use an app it’s easy to store the private asymmetrical key and use it “locally” but through web …. Maybe somehow the site can load/ask it locally and store it in the browser cache.
But the real issue is that if you use an app it’s easy to store the private asymmetrical key and use it “locally” but through web …. Maybe somehow the site can load/ask it locally and store it in the browser cache and then use it in JavaScript to decrypt
Reading Keybase.io as suggested by @xuu . Very good for now
Thanks @xuu I will.
I was also reading the cryptographic part of Scuttlebutt: https://ssbc.github.io/scuttlebutt-protocol-guide/
Do you know protonmail, they use PGP for all the mail between the users of their own platform.
go 1.18 is released with :
- Generics
- Fuzzing
- Workspace
Genius.
Is in moment like that, I feel the need of a like button.
Perfect.
@prologic Harder to refactor on an existing project. So I will refactor here, with the goal you assigned to me, (copying a lot of code of original yarnc), once it will be over, we can try to merge on your yarnc or keep it separate, it will be up to you.
@prologic refactoring https://git.mills.io/tkanos/yarnc
Hello @prologic, I'm a bit muted, because i'm working hard in A yarnc. I will be more talkative when I will need help or advice.
Time stamp +user id+ hashtwt should be enough. So you can have an append log and do the edit in the application.
@off_grid_living I saw that in France with the family protest "Manif pour tous", and more recently in Canada with the Trucker convoy. Basically you are free to express yourself as long as you go along the president willing.
@off_grid_living I thin the "tree" is a tsadi in hebrew. A rabbi once told me that the Bereshit was hard to translate because it was very cryptic.
@mutefall I m curious now. Let me try to gues, are you Jack Dorsey :D
Yeah very funny (sarcastic tired of the morning face)
Hav eyou already done all the HTBs one ?
I see that you Nuke everything on February 16th, since then I don't see any reference to quickstart on the code.
Are you rebuilding everything and the go install duriny.envs.sh/twtr@latest comes from a version before the Nuke ?
@<~duriny https://envs.net/~duriny/twtxt.txt> looking at your code here : duriny.envs.sh/twtr
I am not familiar with cobra, but I don't see where you call the quickstart function ?
I ll try to be there, but at 7 AM, I won't be very useful :D

> Is this in relation to the so-called (dead and unmaintained) “reference client” ?

What ???????

> I would consider @<~duriny https://envs.net/~duriny/twtxt.txt>’s client twtr to be the new reference client once complete

Yep agree, is what I wanted to politely highlight.
State of the Art on the command line apps for twtxt:
#Twtxt :
- Great for handling personal files
- A nightmare to install and find the good requirements.txt
- Not handling the metadata
- Not handling web connection (yarnsocial)
#Twtr :
- Better than Twtxt for installing And metadata
- Lacking web connection (yarnsocial) (being developped)
- Lacking Pre and Post exec (easy to develop)
- Thread View lacking / User info view lacking
#Yarnc :
- Best for yarn social connection
- Follow/Unfollow/ Thread View / User Info/ View feature missing
- No files handling (may be hard)
Sorry I'm late, on the discussion, but as I see it. A big redis cluster will solve that issue (Twitter uses it) and a bit of js for the pagination client side. BUT the ability to be able to edit a post (impossible in twitter) makes it hard to have a big redis cluster.
The hardest part will mainly be for the client command line app.
Nop I just notied that the user information comes from the metadata from twtxt file.
Oh oki, I got it I think, you are not connected to twtxt.net, you are connected in .uk, but the web interface extract the data of your twtxt to create a user information page on the fly.
@search_social How can you connect to here and at the same time in twt.nfld.uk. I tried to connect to the interface and it gave me an error.
Very beautiful picture, What its his name ? who is the painter ?
Has anyone already tried Nebula
Will give a try to Matrix that week-wend.Installing weechat-matrix and dendrite
@mckinley Merci
@prologic Thanks, will be reading it. I need to check a bit more about how yarnd works, and how the architecture is design and so on.
talking about missing metadata, do we have somewhere a document talking about the data format (and those metadata)
yep
After have fixed the missing requirement to make it work, it's a great app, i 'd like at some point that yarnc be able to handle also simple files.
(did you do it) ? it's a great package, I'd like at some point that yarnc will be able to handle files as well as yanrs ?
Yep actually I was testing twtxt (the python package)
Hello @prologic what is the roadmap ?
hello @gitkanos
Today I will try to convince my brother to join me.
@<~duriny https://envs.net/~duriny/twtxt.txt> btw I really like the simplicity and efficiency of twtr.
Actually my last message was already a test for the -f options :D That is working.
Tomorrow I try the -f --follow from tail
@prologic if you think it's git you will be wrong.

git?
it's oki, thanks, I found _ "go.yarn.social/lextwt"_
Sorry @prologic to disturb you, but using
types.MakeTwt(mainTwter, time.Now(), "Hello")
for some unit tests, I found that
panic("twt manager not configured")
, I searched in the code without seeing where you use SetManager ??
Thanks, I was not aware.
And What do you think about search.brave ?
Here are some articles about how they did it : https://0x65.dev/ ?
Nop far from being finished. It's just a begining.
@novaburst ewwwww is it a like sound or a dislike sound :D. Have you already tried, do you know if it's track like duckduckgo ?
@novaburst I am trying now brave with https://search.brave.com/
Nebula written in go, is a private performant network released by slack
@prologic Playing with the code of yarnc to convert twt.Twts in a daq, in order to print git log twtxt view :

 *  [65l67gq] 19 minutes ago test_feed_dont_follow@twtxt.net 2
 | \\
 | *  [tiavzlq] 18 minutes ago test_feed_dont_follow@twtxt.net (#65l67gq) 2.1
 | *  [4zjeqta] 18 minutes ago test_feed_dont_follow@twtxt.net (#65l67gq) 2.2
 | | \\
 | | *  [pyg4iaq] 18 minutes ago test_feed_dont_follow@twtxt.net (#4zjeqta) 2.2.1
 | | *  [b2wxclq] 18 minutes ago test_feed_dont_follow@twtxt.net (#4zjeqta) 2.2.2
@prologic Playing with the code of yarnc to convert twt.Twts in a daq, in order to print git log twtxt view :

 *  [65l67gq] 19 minutes ago test_feed_dont_follow@twtxt.net 2
 | \
 | *  [tiavzlq] 18 minutes ago test_feed_dont_follow@twtxt.net (#65l67gq) 2.1
 | *  [4zjeqta] 18 minutes ago test_feed_dont_follow@twtxt.net (#65l67gq) 2.2
 | | \
 | | *  [pyg4iaq] 18 minutes ago test_feed_dont_follow@twtxt.net (#4zjeqta) 2.2.1
 | | *  [b2wxclq] 18 minutes ago test_feed_dont_follow@twtxt.net (#4zjeqta) 2.2.2
Sorry I was doing some tests that actually were :

$yarnc post $(echo "test" | gpg --symmetric | base64)
$yarnc timeline | tail -n 3 | head -n 1 | tr ' ' '\\n' | base64 --decode | gpg --decrypt
Sorry I was doing some tests that actually were :

$yarnc post $(echo "test" | gpg --symmetric | base64)
$yarnc timeline | tail -n 3 | head -n 1 | tr ' ' '\n' | base64 --decode | gpg --decrypt
@prologic yep, I did all the tests on that feed I wanted, the next tests will be running it locally.
@prologic I mean SIR @prologic, I am astonished and I pay a tribute to all what you have done (just saw feeds.twtxt.net and search.twtxt.net)

Congrats sir.

$yarnc post $(echo test | gpg --symmetric | base64)
$yarnc timeline | tail -n 3 | head -n 1 | tr ' ' '\n' | base64 --decode | gpg --decrypt

$yarnc post $(echo test | gpg --symmetric | base64)
$yarnc timeline | tail -n 3 | head -n 1 | tr ' ' '\\n' | base64 --decode | gpg --decrypt
post -a test_feed
timeline | tail -n 3 | head -n 1 | tr ' ' '\\n' | base64 --decode | gpg --decrypt
post -a test_feed
timeline | tail -n 3 | head -n 1 | tr ' ' '\n' | base64 --decode | gpg --decrypt
@test_feed Trying a post in a newly create feed
I ll try thanks
I was more thinking in viewing the timeline ordered by branch (hash) and timeline after, but that's not for now
merda forgot the sharp before the reference @tkanos
(q65oplq) myself being @tkanos
(q65oplq) answering to myself
@prologic Do you know what can be cool on yarnc, to be able to read the post like git logs
For later, I mean.
Please don't read what will follow, I am just doing some tests between yarnc and yarnweb
@prologic Yes Thanks
~duriny, @prologic Sorry guys, my bad, was trying some feature between web app and command line, and ended up posting 2 times, and removing one~
~duriny, @prologic Sorry guys, my bad, was trying some feature between web app and command line, and ended up posting 2 times, and removing one~
@<~duriny https://envs.net/~duriny/twtxt.txt> @prologic

Stupid question guys, yarnc has what twtr doesn’t and twtr has what yarnc doesn’t.
Should i ask the obvious question ?
@<~duriny https://envs.net/~duriny/twtxt.txt> @prologic
Yep ~duriny, I saw that you have a backend code with yarnsocial, not yet used.~
oki got it

curl -X 'POST' -d '{"username":"test","password":"test"}  ' -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'User-Agent: go.yarn.social/1.0.0@HEAD' 'https://twtxt.net/api/v1/auth' | jq '.token'

But now I realise, that I can't inject it on twtr :S>
At least i had fun debugging yarnc and yarnd code.
Thanks
funny : I like it.
reading your code makes me create that request:

curl -X POST https://twtxt.net/auth -d '{"username":"tkanos", "password":"test"}'

But unfortunately I got a bad request.
Help you, why not, all will depend on time.
Ideally for now, I'd like to use yarnc for my timeline and twtr for following, despite I have seen some follow function in your code that doesn't seems link to the console.
Hello M. @prologic, very funny project you have here. I like yarnc (despite some feature missing), when i have time i will try to use twtr with pre_tweet_hook with a curl to have some kind of token I guess.
hello world