# 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 162
# self = https://watcher.sour.is?uri=https://txt.sour.is/user/https://txt.sour.is/user/xuu/twtxt.txt/twtxt.txt&offset=162
# prev = https://watcher.sour.is?uri=https://txt.sour.is/user/https://txt.sour.is/user/xuu/twtxt.txt/twtxt.txt&offset=62
Twtxt is distributed like in the old school unix2unix copy days
@lyse (#hut4mnq) I am so sorry for you. I left my Java job for Go. Though through "restructuring" its become a Python job.
@thewismit @jlj in old school terminal jargon the ^H means control H or the sequence used in some terminals to indicate backspace. The "joke" is that the term failed to interpret it correctly and you can see the partially typed word before they changed it.
Awesome! do you have the svg available to add to my logo?
@adi @movq ah.. looks like you still follow movq as vain.
golang_news @prologic (#tz2brxq) Woot!
Whew!
@prologic @anth Sounds like a good idea. The hash to conv/search url should stay local to a pod.
@prologic yah I'll get a fix out soonish
@darch @prologic Technically it should be at the start.. Though the parser doesn't currently care where it is. Though that leads to artifacts like any random string inside perens becoming a subject.
@prologic tricky.. punctuation is being grouped in with other text. i need to break up string tokens.
@prologic its the puny code for the yarn emoji. Though you would want the type-able version to redirect so its not hard to type on non mobile.
@prologic :-D i consider myself subpar on UX outside of React, but can def give it a stab.
xn--dw9h.social is taken :-(
@prologic we would want:\n- a way to reply to the current thread. We have this. \n- a way to reply to a specific twt. Need this. Maybe make all the replies start new conversations?\n- check if twt is start of a conversation.. we kinda have this in the main feed with the conversation button. need to extend it for forked convs\n- a way to inline first replies. maybe show one or two in the sub thread with a link to view. \n- for convenience have a link to parent conv?
@xuu @prologic see how it has a bar on the first level reply?
@xuu @prologic we could show first level inline like twitter does. With links for deeper discussion.
@prologic speaking of complexity.. How would checking twts for sub conversations complexify things?
@prologic would that need a NLP library? The lang would be great for a search engine to find language prefs.
@prologic @darch Like with many things that live in a diaspora there will be many names for about the same thing. Just look at e-mail headers!
The keys that have some use would be nick, url/feedurl, avatar, lang
@vain I have seen it pop up on a few feeds around and adopted it into the new parser I built. \n\nThe format I have followed has been '# ' :whitespace: :key-name: :whitespace: '=' :whitespace: :value: keys can be repeated and accessed like an array of values.
@prologic fixed.
@prologic
@prologic I know! it has 55 new emoji!! \\u1F90C
Hmm on mobile it shows as the text :poop: and not 💩\n\nMaybe the mobile version has text emoji substitution like slack/discord does?
Related bookmark: https://command-not-found.com/
@prologic @jlj @thewismit https://gist.github.com/JonLundy/fb2a23c003be46c3a66e4b14e5971f13
@xuu @prologic @thewismit ah.. probably a bug with the re parser. looks like i can do it without the <>'s with lex\n\nhttps://fosstodon.org/@thewismit/105673078150704477
@thewismit @prologic Yo. wrap that naked link in some <>'s https://fosstodon.org/@/105673078150704477
@prologic deedum for android. \n\nKristall for OS X\n\nElaho for iOS\n\nmore here\n\nthough I can only vouch for the first two.
@thewismit @darch @adi @prologic There is another: @hecanjog
@prologic That is strange.. i wonder if there is another change that is causing it. Benchmarks are thinking the other way :|\n\n
\nBenchmarkAll/retwt-16                  1        4940172200 ns/op       587319376 B/op    2587159 allocs/op\nBenchmarkAll/lextwt-16                 1         775764020 ns/op         9223088 B/op     197557 allocs/op\nBenchmarkParse/retwt-16                1         591158277 ns/op        67539096 B/op     230841 allocs/op\nBenchmarkParse/lextwt-16               1         716961837 ns/op         5450448 B/op     130290 allocs/op\nBenchmarkOutput/retwt-html-16          1        8358103017 ns/op       918709168 B/op    4692292 allocs/op\nBenchmarkOutput/lextwt-html-16         1         822033267 ns/op        14280112 B/op     261795 allocs/op\nBenchmarkOutput/retwt-markdown-16      1        8114225415 ns/op       929928384 B/op    4693004 allocs/op\nBenchmarkOutput/lextwt-markdown-16     1         806554306 ns/op        14332608 B/op     270905 allocs/op\nBenchmarkOutput/retwt-text-16          1        8098215897 ns/op       923862192 B/op    4684739 allocs/op\nBenchmarkOutput/lextwt-text-16         1         745064673 ns/op        12689784 B/op     252476 allocs/op\nBenchmarkOutput/retwt-literal-16       1        4068799822 ns/op       409517880 B/op    2372471 allocs/op\nBenchmarkOutput/lextwt-literal-16      1         754793627 ns/op         9834520 B/op     214931 allocs/op\n
@xuu @jlj @hxii only if you look at the raw text file https://0xff.nu/blog.txt
@jlj oh dang the reply didnt add the reply. It was to @hxii because Firefox shows his shruggy like ¯\\_(ツ)_/¯
Are you able to coax your webserver to add the charset to the content type header? Browsers are having a hard time thinking you are sending latin-1 \n\ncontent-type: text/plain; charset=utf-8
@prologic @hxii I'm certain that it is a markdown thing. Its that way on other markdown sites like Reddit. Because the underline is being escaped to prevent the underline style. Gotta double it up ¯\\\\_(ツ)\\_/¯_
@hxii Recursion is the best recursion!
@xuu @hxii example: https://txt.sour.is/conv/ls4ef4a
@hxii There is another twter that uses !<wikiword wikiaddr> or !wikiword for their wiki intigrations.
@lyse @prologic @vain A penny saved is a penny depreciating at a rate of 1.4% per annum.
@lyse @prologic I think lex will do that too currently. Should be able to lock that down.
@lyse (#ezmdswq) Looks good for me!
@thewismit @prologic I too wonder about this.
@prologic @thewismit (#nicbdoq) possible, or a pod following any feeds it finds, if any one follows or not. So it has more twts cached
@prologic (#ffxaisq) Should be ready to merge with lex as opt-in option. Need more eyes on it and some clean up.
@prologic @thewismit (#nicbdoq) Ya I get that error a lot. I mostly use the web on mobile as a result.
@prologic i think i finally suss'd out my hash issue.. now to figure out why im losing avatars on restart.
@prologic @thewismit not sure.. im using Caddy instead of nginix
@prologic lol.. sorry about the spam
@xuu @prologic (#6jkpxzq) hmm from what i can tell its parsing ok.. something got broken in the markdown conversion...
@prologic @xuu (#6jkpxzq)
@prologic hmm this line seems to be tricky to parse. will need to look into it.
@prologic test. Running new parser on txt.sour.is. :D
@prologic that would be an interesting idea. I think your current spec of using an SMTP proto is probably best for DM. \n\nbut having a federation of IRC servers would be interesting for realtime twt propagation.
@prologic the meta info on the top I added manually. it's following what I have seen from some other twtxt feeds. the new parser will read them.
@prologic Veri soon. I have a experimental runflag that I am just about to deploy to my node. I have a few show stoppers holding me back.
Emoji nicks are no problem with lextwt. 😁
@prologic sometimes I think it would be nice to have a XMPP instance. then I remember it's all XML and I think "nah."\n\nI am constantly in awe that IRC remains the only realtime chat that isn't unnecessarily complex. name another that can run chatops bot with just nc and sh?
@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
@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 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 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 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:\n
\ntwters:  744\ntotal:  52073\n
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 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 ;)
@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 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
@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 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 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 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
@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.
@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 📝
@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
@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 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
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 https://txt.sour.is/twt/cwqmygq
@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 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
@xuu @prologic oh.. you are.. maybe i don't understand the issue with building?