# 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 21
# self = https://watcher.sour.is/conv/kjsrlnq
I was bored tonight, so I created a generator of twtxt file using git (https://github.com/tkanos/gitwtxt) :
- Each commit is a message
- Each branch is a thread
--> Then I generate a twtxt file out of it.
@tkanos Cool idea
@tkanos Oh that's hilariously funny 😂 And very clever use of Git history 👌
@tkanos Oh that's hilariously funny 😂 And very clever use of Git history 👌
@tkanos Nice idea, the generator code is missing, though.
I wonder, what's stopping users from not following the twt hash spec and prepending a Git commit hash to every post? AFAIK yarnd will treat the oldest post it has for a certain hash as the root, and it will handle it as such when people reply.
I wonder, what's stopping users from not following the twt hash spec and prepending a Git commit hash to every new post? AFAIK yarnd will treat the oldest post it has for a certain hash as the root, and it will handle it as such when people reply.
I wonder, what's stopping users from not following the twt hash spec and prepending a Git commit hash to every new post? AFAIK yarnd will treat the oldest post it has for a certain hash as the root and it will handle it as such when people reply, assuming that there is a post with that hash somewhere and people should be replying to
I wonder, what's stopping users from not following the twt hash spec and prepending a Git commit hash to every new post? AFAIK yarnd will display the oldest post it has for a hash as the root, but it assumes that it's a reply to another post with that hash and that people replying should add to that chain. I'm not advocating for breaking the spec, but how do other clients handle this?
@mckinley Actually, I _think_ it makes no such assumptions. I _believe_ yarnd implement the Twt Subject extension which states:

> Twts in their purest form provide only the mentions mechanism to reply to certain twtxt users. This works well in small, low traffic twtxt communities. However, if there are several ongoing discussions at the same time, a single mention may not be enough for consuming twxt users to clearly identify the exact conversation > this twt is considered part of by its author. So twtxt users quickly started to provide more context in parentheses at the beginning of the twt right after any mentions – the so called subject – in the form of:
>
>

> @<nick1 url1> @<nick2 url2> (re: topic) That's what I think as well.
>                             ^^^^^^^^^^^
>                             traditional subject
> 

> The twt subject provides a mechanism to specify references in twt replies and thus group twts into entire conversations.
@mckinley Actually, I _think_ it makes no such assumptions. I _believe_ yarnd implement the Twt Subject extension which states:

> Twts in their purest form provide only the mentions mechanism to reply to certain twtxt users. This works well in small, low traffic twtxt communities. However, if there are several ongoing discussions at the same time, a single mention may not be enough for consuming twxt users to clearly identify the exact conversation > this twt is considered part of by its author. So twtxt users quickly started to provide more context in parentheses at the beginning of the twt right after any mentions – the so called subject – in the form of:
>
>

> @<nick1 url1> @<nick2 url2> (re: topic) That's what I think as well.
>                             ^^^^^^^^^^^
>                             traditional subject
> 

> The twt subject provides a mechanism to specify references in twt replies and thus group twts into entire conversations.
@prologic I must be mistaken. I thought, when we realized @maya was still posting in the future, that there was an entire thread (with a /conv/ page) and the hash didn't resolve to anything until the timestamp of the parent twt. Perhaps yarnd gave it a /conv/ page because it knew about the twt but didn't display it because it was in the future. Perhaps I need to go to bed.
@mckinley Haha no Twts ingested that are found to be in the future are just silently dropped on the floor 🤣
@mckinley Haha no Twts ingested that are found to be in the future are just silently dropped on the floor 🤣
@lyse the generator is the last command line of the README.md file aka :

git log --all --reverse --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=format:'%cd %h %s' | awk -F ' ' '{ if($3 == "HEAD" || $3 == "master") {printf $1 " (#" $2 ") ";} else printf $1 " " $3 " "; {for (i=4; i<NF; i++) printf $i " ";print $NF}}' > twtxt.txt
@tkanos Ah, now there it is!
@tkanos this is cool. It could probably be adapted to generate a twtxt file out of a project's git commit history, which means you could then generate a yarn.social pod for any project you wanted, and then ........
@abucci something like this should be enough :


git log --all --reverse --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=format:'%cd (#%h) %s'
@tkanos Yes, that seems to do it....now, do I want to set up a yarn pod to host my git commits 🤔
If yo really thing to do that, the more complete command line will be :

git --no-pager log --all --reverse --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=format:'%cd (#%h) %s' > twtxt.txt  
If you really think to do that, the more complete command line will be :

git --no-pager log --all --reverse --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=format:'%cd (#%h) %s' > twtxt.txt