# 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 1328
# self = https://watcher.sour.is?uri=https://txt.sour.is/user/xuu/twtxt.txt&offset=219
# next = https://watcher.sour.is?uri=https://txt.sour.is/user/xuu/twtxt.txt&offset=319
# prev = https://watcher.sour.is?uri=https://txt.sour.is/user/xuu/twtxt.txt&offset=119
@prologic @xuu Closer! Last bit to finish is a beast. FormatTwtFactory
@vain @lyse @prologic Nope.. i have updated my gist to include the feeds listing. feeds.txt
@vain @lyse @prologic Nope.. i have updated my gist to include the feeds listing. feeds.txt
@prologic that seems to match my numbers. are you picking up the few gophers out there?

kinda makes me wonder about the ~300k you have cached. y'all got the library of alexandria over there.~
@prologic that seems to match my numbers. are you picking up the few gophers out there? \n\nkinda makes me wonder about the ~300k you have cached. y'all got the library of alexandria over there.~
@prologic that seems to match my numbers. are you picking up the few gophers out there?

kinda makes me wonder about the ~300k you have cached. y'all got the library of alexandria over there.~
@prologic in theory shouldn't need to let users add feeds.. if they get mentioned by a tracked feed they will get added automagically. on a pod it would just need to scan the twtxt feed to know about everyone.
@prologic in theory shouldn't need to let users add feeds.. if they get mentioned by a tracked feed they will get added automagically. on a pod it would just need to scan the twtxt feed to know about everyone.
@prologic sounds about right. I tend to try to build my own before pulling in libs. learn more that way. I was looking at using it as a way to build my twt mirroring idea. and testing the lex parser with a wide ranging corpus to find edge cases. (the pgp signed feeds for one)
@prologic sounds about right. I tend to try to build my own before pulling in libs. learn more that way. I was looking at using it as a way to build my twt mirroring idea. and testing the lex parser with a wide ranging corpus to find edge cases. (the pgp signed feeds for one)
@prologic the add function just scans recursivley everything.. but the idea is to just add and any new mentions then have a cron to update all known feeds
@prologic the add function just scans recursivley everything.. but the idea is to just add and any new mentions then have a cron to update all known feeds
@prologic yeah it reads a seed file. I'm using mine. it scans for any mention links and then scans them recursively. it reads from http/s or gopher. i don't have much of a db yet.. it just writes to disk the feed and checks modified dates.. but I will add a db that has hashs/mentions/subjects and such.
@prologic yeah it reads a seed file. I'm using mine. it scans for any mention links and then scans them recursively. it reads from http/s or gopher. i don't have much of a db yet.. it just writes to disk the feed and checks modified dates.. but I will add a db that has hashs/mentions/subjects and such.
@prologic It is pretty basic, and depends on some local changes i am still working out on my branch.. https://gist.github.com/JonLundy/dc19028ec81eb4ad6af74c50255e7cee
@prologic It is pretty basic, and depends on some local changes i am still working out on my branch.. https://gist.github.com/JonLundy/dc19028ec81eb4ad6af74c50255e7cee
@lyse @prologic very curious... i worked on a very similar track. i built a spider that will trace off any follows = comments and mentions from other users and came up with:

twters:  744
total:  52073
@lyse @prologic very curious... i worked on a very similar track. i built a spider that will trace off any follows = comments and mentions from other users and came up with:\n

twters:  744
total:  52073
@lyse @prologic very curious... i worked on a very similar track. i built a spider that will trace off any follows = comments and mentions from other users and came up with:

twters:  744
total:  52073
Yesterday was rough. Finding it hard to focus on things today.
@prologic that I do. lol. I am xuu on hackint.org and freenode
@prologic that I do. lol. I am xuu on hackint.org and freenode
@prologic sure. I don't use signal much because I have to disclose my personal phone. Telegram? https://www.t.me/xypheri
@prologic sure. I don't use signal much because I have to disclose my personal phone. Telegram? https://www.t.me/xypheri
@xuu @prologic Your feed was great for catching edge cases ;)
@xuu @prologic Your feed was great for catching edge cases ;)
@prologic https://github.com/JonLundy/twtxt/tree/xuu/integrate-lextwt I made a stats command for the new parser that extracts a bunch of info about a twtxt file. run like: go run ./cmd/stats https://twtxt.net/user/prologic/twtxt.txt
@prologic yep@some of the lexer is directly copied from monkey-lang. love that book series.
@prologic yep@some of the lexer is directly copied from monkey-lang. love that book series.
@prologic ah I need to add an edge case for naked urls with fragments.
@prologic ah I need to add an edge case for naked urls with fragments.
@prologic yep. it actually extracts everything at parse time. like mentions/tags/links/media. so they can be accessed and manipulated without additional parsing. it can then be output as MarkDown
@prologic yep. it actually extracts everything at parse time. like mentions/tags/links/media. so they can be accessed and manipulated without additional parsing. it can then be output as MarkDown
@adi @prologic using regex. which can be a rather inexact science ;)
@adi @prologic using regex. which can be a rather inexact science ;)
@prologic kinda.. It can parse the twts into an AST.. but most of the formatting out expects a string to do regex over rather then the parsed AST. thats what i am working out next.
@prologic kinda.. It can parse the twts into an AST.. but most of the formatting out expects a string to do regex over rather then the parsed AST. thats what i am working out next.
@prologic as promised! https://github.com/JonLundy/twtxt/blob/xuu/integrate-lextwt/types/lextwt/lextwt_test.go# https://txt.sour.is/search?tag=L435-L461>\n\nthe lexer is nearing completion.. the tough part left is rooting out all the formatting code.
@prologic as promised! https://github.com/JonLundy/twtxt/blob/xuu/integrate-lextwt/types/lextwt/lextwt_test.go# https://txt.sour.is/search?tag=L435-L461>

the lexer is nearing completion.. the tough part left is rooting out all the formatting code.
@prologic as promised! https://github.com/JonLundy/twtxt/blob/xuu/integrate-lextwt/types/lextwt/lextwt_test.go# https://txt.sour.is/search?tag=L435-L461>

the lexer is nearing completion.. the tough part left is rooting out all the formatting code.
@prologic ooh I am adding that to my test suite
@prologic ooh I am adding that to my test suite
@prologic @gareppa Tis fake.. that is the name of the tower in Die Hard. A movie that takes place on Christmas Eve. The actual name of the Nakatomi Plaza is the FOX Plaza.
@prologic @gareppa Tis fake.. that is the name of the tower in Die Hard. A movie that takes place on Christmas Eve. The actual name of the Nakatomi Plaza is the FOX Plaza.
@prologic went over to watch this one in my home town last night. https://youtu.be/kUZB0_Jx3iE\n\n# https://txt.sour.is/search?tag=ChristmasLights> #2020
@prologic went over to watch this one in my home town last night. https://youtu.be/kUZB0_Jx3iE

#ChristmasLights #2020
@prologic went over to watch this one in my home town last night. https://youtu.be/kUZB0_Jx3iE

#ChristmasLights #2020
@oevl @prologic (#) for the most part a subject is just the content in the perens. Usually it's a tag. It appears near the start after any mentions. It can also contain text like (re: subjects)
@oevl @prologic for the most part a subject is just the content in the perens. Usually it's a tag. It appears near the start after any mentions. It can also contain text like (re: subjects)
@xuu yikes the style sheet for blogs needs help.
@xuu yikes the style sheet for blogs needs help.
@prologic (#5jqioeq) Wrote up a blog post here: https://txt.sour.is/blog/xuu/2020/12/21/twtxt-auto-discovery
@prologic (#5jqioeq) Wrote up a blog post here: https://txt.sour.is/blog/xuu/2020/12/21/twtxt-auto-discovery
New Blog Post Twtxt Auto Discovery by @xuu 📝
New Blog Post Twtxt Auto Discovery by @xuu 📝
@deadguy @prologic been stewing on a discovery proto for twtxt. support for defining multiple ways to host/mirror a twtxt file. while being low tech enough to still be scriptable with basic Unix commands.
@deadguy @prologic been stewing on a discovery proto for twtxt. support for defining multiple ways to host/mirror a twtxt file. while being low tech enough to still be scriptable with basic Unix commands.
@adi @prologic I'll give it a spin first thing in the AM
@adi @prologic I'll give it a spin first thing in the AM
@prologic when its ready.. this is still in beta.
@prologic when its ready.. this is still in beta.
@prologic yeah it would replace rice. best part is that it's in the go build step so you don't need to do any prep work with make.
@prologic yeah it would replace rice. best part is that it's in the go build step so you don't need to do any prep work with make.
@prologic after stewing on it. I really like the idea of a wiki. throw it on the roadmap after DMs 😆
@prologic after stewing on it. I really like the idea of a wiki. throw it on the roadmap after DMs 😆
@prologic (#keh22ka) maybe a custom linking method on a pod level? like can pass a template that gets translated. ex https://{domain}/wiki/{nick}/{tag} + !somepage -> https://sour.is/wiki/xuu/somepage
@prologic (#keh22ka) maybe a custom linking method on a pod level? like can pass a template that gets translated. ex https://{domain}/wiki/{nick}/{tag} + !somepage -> https://sour.is/wiki/xuu/somepage
So excited for Go embedded files. https://golangtutorial.dev/tips/embed-files-in-go/
@prologic found it!\n\n> 2020-07-25T00:52:27.000000Z\ta new twtxt/weewiki feature: any word starting with '!' will translate to an internal weewiki reference in my HTML renderer. Example: here is my !wiki_index
@prologic found it!

> 2020-07-25T00:52:27.000000Z\ta new twtxt/weewiki feature: any word starting with '!' will translate to an internal weewiki reference in my HTML renderer. Example: here is my !wiki_index
@prologic found it!

> 2020-07-25T00:52:27.000000Z a new twtxt/weewiki feature: any word starting with '!' will translate to an internal weewiki reference in my HTML renderer. Example: here is my !wiki_index
@prologic found it!

> 2020-07-25T00:52:27.000000Z a new twtxt/weewiki feature: any word starting with '!' will translate to an internal weewiki reference in my HTML renderer. Example: here is my !wiki_index
@prologic https://txt.sour.is/twt/cwqmygq
@prologic https://txt.sour.is/twt/cwqmygq
@prologic I see them is why I ask. like here #cwqmygq they use both hashtag and bangtag?
@prologic I see them is why I ask. like here #cwqmygq they use both hashtag and bangtag?
@prologic 😁 that is me testing locally. does it notify you somehow when I follow?
@prologic 😁 that is me testing locally. does it notify you somehow when I follow?
@prologic do you have any info on how the '!' tags are supposed to work? are they just a different kind of hash tag?
@prologic one.. kinda sorta option would be to tailor a workflow for each of the archs.. see https://github.com/JonLundy/twtxt/runs/1568071072?check_suite_focus=true
@prologic one.. kinda sorta option would be to tailor a workflow for each of the archs.. see https://github.com/JonLundy/twtxt/runs/1568071072?check_suite_focus=true
@xuu @prologic oh.. you are.. maybe i don't understand the issue with building?
@xuu @prologic oh.. you are.. maybe i don't understand the issue with building?
@prologic have you tried using the macos github build environment? looks like they have a windows one too.
@prologic have you tried using the macos github build environment? looks like they have a windows one too.
more or less. :D
what are you using to ci/cd? i dont see a travisci/circleci/etc in the repo.. i can put something together to bump the patch level on master branch merges.
more or less. :D\nwhat are you using to ci/cd? i dont see a travisci/circleci/etc in the repo.. i can put something together to bump the patch level on master branch merges.
more or less. :D
what are you using to ci/cd? i dont see a travisci/circleci/etc in the repo.. i can put something together to bump the patch level on master branch merges.
There is.. but we lost the transform file to make it legible.
There is.. but we lost the transform file to make it legible.
@prologic you think its time the version to get bumped? :)
@xuu @prologic had to up my twt size a bit.
@xuu @prologic had to up my twt size a bit.
@prologic \n

-----BEGIN CRYPTUTIL ENCRYPTED MESSAGE-----
l0GwFAQpx3ed+bZlcQ+pexbynFzZOm8EI/FivGbWQ16whyTkToVv8S2GSAjrsJoT
37MdaBDpoitli/f/aP130b6O6SnK/LdHHJ1DTvWgxB14sq9b4mRtk7HvYzA=
-----END CRYPTUTIL ENCRYPTED MESSAGE-----
@prologic

-----BEGIN CRYPTUTIL ENCRYPTED MESSAGE-----
l0GwFAQpx3ed+bZlcQ+pexbynFzZOm8EI/FivGbWQ16whyTkToVv8S2GSAjrsJoT
37MdaBDpoitli/f/aP130b6O6SnK/LdHHJ1DTvWgxB14sq9b4mRtk7HvYzA=
-----END CRYPTUTIL ENCRYPTED MESSAGE-----
@prologic

-----BEGIN CRYPTUTIL ENCRYPTED MESSAGE-----
l0GwFAQpx3ed+bZlcQ+pexbynFzZOm8EI/FivGbWQ16whyTkToVv8S2GSAjrsJoT
37MdaBDpoitli/f/aP130b6O6SnK/LdHHJ1DTvWgxB14sq9b4mRtk7HvYzA=
-----END CRYPTUTIL ENCRYPTED MESSAGE-----
i have no clue how salt works :|
@xuu @prologic This? Fingerprint: 161c614f08e4ed4d1c8e5410f8c457e6878574dbab7c9ac25d474de67db1bdad
@xuu @prologic This? Fingerprint: 161c614f08e4ed4d1c8e5410f8c457e6878574dbab7c9ac25d474de67db1bdad
@prologic I use https://key.sour.is/id/me@sour.is\n\n> I would need an out-of-band way to verify your public key’s fingerprint though 🤣