setpriv
on Linux supports Landlock.
@prologic@twtxt.net Yeah, itâs not a strong sandbox in jennyâs case, it could still read my SSH private key (in case of an exploit of some sort). But I still like it.
I think my main takeaway is this: Knowing that technologies like Landlock/pledge/unveil exist and knowing that they are very easy to use, will probably nudge me into writing software differently in the future.
jenny was never meant to be sandboxed, so it canât make great use of it. Future software might be different.
(And this is finally a strong argument for static linking.)
PSA: setpriv
on Linux supports Landlock.
If this twt goes through, then restricting the filesystem so that jenny can only write to ~/Mail/twt
, ~/www/twtxt.txt
, ~/.jenny-cache
, and /tmp
works.
I have zero mental energy for programming at the moment. đ«€
Iâll try to implement the new hashing stuff in jenny before the âdeadlineâ. But I donât think youâll see any texudus development from me in the near future. âčïž
@andros@twtxt.andros.dev You know, Iâd really love to see how/if location-based addressing works in practice. I might fork jenny to judy and run both things in parallel for a while ⊠đ€
tt2
from @lyse and Twtxtory from @javivf?
@prologic@twtxt.net I have:
- jenny
- buckketâs original (patched, or not)
- tt/tt2
- Timeline
- Twtxtory
- Yarnd
@prologic@twtxt.net well, this fork will work. I an fork this one with jenny, not so with Yarnd.
Interesting factoid⊠By inspecting my âfollowersâ list every now and again, I can tell who uses a client like jenny
, tt
or any other client where fetches are driven by user interactions of invoking the app. What do we call this type of client? Hmmm đ€ Then I can tell who uses yarnd
because they are âseenâ more frequently đ€Ł
@bender@twtxt.net It isnât @aelaraji@aelaraji.comâs fault at all here đ I think the only way I can improve this somewhat is by introducing a similar convergence that I believe @movq@www.uninformativ.de built for Jenny which would fetch the mentioned feed temporarily to see if it contains the subject being replied to (in case itâs not in the cache).
Iâll think about doing this too, but I have to do it carefully so as not to cost too much in terms of resources or performanceâŠ
@bender@twtxt.net You said:
as long as those working on clients can reach an agreement on how to move forward. That has proven, though, to be a pickle in the past.
I think this is because we probably need to start thinking about three different aspects to the ecosystem and document them out:
- Specifications (as they are now)
- Server recommendations (e.g: Timeline, yarnd, etc)
- Client recommendations (e.g: jenny, tt, tt2, twet, etc)
@movq@www.uninformativ.de json and database put together sounds terrifying. i must try jenny
jenny really isnât well equipped to handle edits of my own twts.
For example, in 2021, this change got introduced:
https://www.uninformativ.de/git/jenny/commit/6b5b25a542c2dd46c002ec5a422137275febc5a1.html
This means that jenny will always ignore my own edits unless I also manually edit its internal âjson databaseâ. Annoying.
That change was requested by a user who had the habit of deleting twts or moving them to another mailbox or something. I think that person is long gone and I might revert that change. đ€
si4er3q
. See https://twtxt.dev/exts/twt-hash.html, a timezone offset of +00:00
or -00:00
must be replaced by Z
.
Scratch that, no bug in jenny. Thereâs actually a test case for this. Python normalizes -00:00
to +00:00
, so the negative case never happens.
@david@collantes.us @andros@twtxt.andros.dev The correct hash would be si4er3q
. See https://twtxt.dev/exts/twt-hash.html, a timezone offset of +00:00
or -00:00
must be replaced by Z
.
(That said, thereâs a bug in jenny as well. It only replaces +00:00
, not -00:00
. đ€Ą)
i have got to try the jenny yarn client it looks so fun and old schoolâŠâŠ..
@andros@twtxt.andros.dev jenny can and, IIRC, Yarn also supports it. đ€
I think @movq@www.uninformativ.de removed support for it in jenny. đ«
@andros@twtxt.andros.dev I believe you have just reproduced the bug⊠it looks like youâve replayed to a twt but the hash is wrong. I can see the hash here from Jenny, but it doesnât look like it corresponds to any{twt,thing}. if you check it out on any yarn instance it wonât look like a replay.
@andros@twtxt.andros.dev hmmm⊠pretty strange, isnât it? replaying to threads worked perfectly, Iâve only had that problem trying to replay to a twt that was part of a thread.
As an example, this one is a Fork-Replay from Jenny. My next twt will be a replay to this exact twt but from twtxt-el as a test.
Then Iâwill file an issue if it doesnât behave the way itâs supposed to. Cheers!
Thanks for your replies to my âHello Worldâ. Seems I can post but not reply myself. Using jenny, who isnât as gentle as the name suggests ;-) Iâll figure it out.
Yes, error on my side. All of the sudden jenny refused to show me my own posts. Had to recreate mailbox (got rid of cache too) to make it work.
@prologic@twtxt.net LMAO thats so funny i need to try jenny i was trying it but i couldnât figure out my twtxt sync script for it
trying to set up @movq@www.uninformativ.deâs jenny client⊠currently trying to find where twtxt files are stored on the server so i can set up the scp script i have for this
I mean bug where jenny donât know about these idâs and tried to request from twtxt.net (prologic sent access logs)
Hello @movq@uninformativ.de . Did you fixed jenny bug which causes fetching long ids from yarn instances on feeds like https://ciberlandia.pt/@marado.txt ? Iâm asking because i want to store links in brackets on some of my posts and donât want to confuse jenny users
@<@chyrp.doesnm.cc https://chyrp.doesnm.cc/twtxt.txt> this is broken in jenny too, I figure. No nick breaks things.
Android phone with 4GB RAM. Jenny+mutt runned in Termux. With change #tho4wpq from aeralaji mutt loading 3-5 seconds
Tried migrating to jenny⊠So seems it not suitable for my phone. Fetch command fetched archived feeds so i have 37k+ entries and mutt hangs for several seconds for loading this. Also i donât like hardcoded paths for config and follow file
@prologic@twtxt.net Iâm grateful for this accident. I find browsing twtxt.net useful even though I donât have an account there. I do it when I canât use Jenny because I only have my phone, or if I want to see messages I might have missed. I know itâs not guaranteed to catch everything, but itâs pretty good, even if itâs not intentional.
@Codebuzz@www.codebuzz.nl I use Jenny to add to a local copy of my twtxt.txt file, and then manually push it to my web servers. I prefer timestamps to end with âZâ rather than â+00:00â so I modified Jenny to use that format. I mostly follow conversations using Jenny, but sometimes I check twtxt.net, which could catch twts I missed.
@bender@twtxt.net @prologic@twtxt.net Iâm not exactly asking yarnd to change. If you are okay with the way it displayed my twts, then by all means, leave it as is. I hope you wonât mind if I continue to write things like 1/4
to mean âfirst out of fourâ.
What has text/markdown
got to do with this? I donât think Markdown says anything about replacing 1/4
with ÂŒ, or other similar transformations. Itâs not needed, because ÂŒ is already a unicode character that can simply be directly inserted into the text file.
Whatâs wrong with my original suggestion of doing the transformation before the text hits the twtxt.txt file? @prologic@twtxt.net, I think it would achieve what you are trying to achieve with this content-type thing: if someone writes 1/4
on a yarnd instance or any other client that wants to do this, it would get transformed, and other clients simply wouldnât do the transformation. Every client that supports displaying unicode characters, including Jenny, would then display ÂŒ as ÂŒ.
Alternatively, if you prefer yarnd to pretty-print all twts nicely, even ones from simpler clients, thatâs fine too and you donât need to change anything. My 1/4
-> ÂŒ thing is nothing more than a minor irritation which probably isnât worth overthinking.
@movq@www.uninformativ.de How hard would it be to implement something like (#<2024-10-25T17:15:50Z https://www.uninformativ.de/twtxt.txt>)
in jenny as a replacement for (#twthash)
and have it not care about if is http(s) or a g-protocol?
Only with dovecot xD. For mail im use android native mail client and not mutt. And jenny display some errors with found some files and /tmp dir (android dont have /tmp)
#fzf is the new emacs: a tool with a simple purpose that has evolved to include an #email client. https://sr.ht/~rakoo/omail/
Iâm being a little silly, of course. fzf doesnât actually check your email, but it appears to be basically the whole user interface for that mail program, with #mblaze wrangling the emails.
Iâve been thinking about how I handle my email, and am tempted to make something similar. (When I originally saw this linked the author was presenting it as an example tweaked to their own needs, encouraging people to make their own.)
This approach could surely also be combined with #jenny, taking the place of (neo)mutt. For example mblazeâs mthread tool presents a threaded discussion with indentation.
Sorry, youâre right, I should have used numbers!
Iâm donât understand what âpreserve the original hashâ could mean other than âmake sure thereâs still a twt in the feed with that hashâ. Maybe the text could be clarified somehow.
Iâm also not sure what you mean by markdown already being part of it. Of course people can already use Markdown, just like presumably nothing stopped people from using (twt subjects) before they were formally described. But itâs not universal; e.g. as a jenny user I just see the plain text.
@prologic@twtxt.net Do you have a link to some past discussion?
Would the GDPR would apply to a one-person client like jenny? I seriously hope not. If someone asks me to delete an email they sent me, I donât think I have to honour that request, no matter how European they are.
I am really bothered by the idea that someone could force me to delete my private, personal record of my interactions with them. Would I have to delete my journal entries about them too if they asked?
Maybe a public-facing client like yarnd needs to consider this, but that also bothers me. I was actually thinking about making an Internet Archive style twtxt archiver, letting you explore past twts, including long-dead feeds, see edit histories, deleted twts, etc.
@david@collantes.us Well, I wouldnât recommend using my code for your main jenny use anyway. If you want to try it out, set XDG_CONFIG_HOME and XDG_CACHE_HOME to some sandbox directories and only run my code there. If @movq@www.uninformativ.de is interested in any of this getting upstreamed, Iâd be happy to try rebasing the changes, but otherwise itâs a proof of concept and fun exercise.
@falsifian@www.falsifian.org this one hits hard, as jenny
was just updated today. :â-(
BTW this code doesnât incorporate existing twts into jennyâs database. Itâs best used starting from scratch. Iâve been testing it using a custom XDG_CACHE_HOME and XDG_CONFIG_HOME to avoid messing with my ârealâ jenny data.
I wrote some code to try out non-hash reply subjects formatted as (replyto ), while keeping the ability to use the existing hash style.
I donât think we need to decide all at once. If clients add support for a new method then people can use it if they like. The downside of course is that this costs developer time, so I decided to invest a few hours of my own time into a proof of concept.
With apologies to @movq@www.uninformativ.de for corrupting jennyâs beautiful code. I donât write this expecting you to incorporate the patch, because it does complicate things and might not be a direction you want to go in. But if you like any part of this approach feel free to use bits of it; I release the patch under jennyâs current LICENCE.
Supporting both kinds of reply in jenny was complicated because each email can only have one Message-Id, and because itâs possible the target twt will not be seen until after the twt referencing it. The following patch uses an sqlite database to keep track of known (url, timestamp) pairs, as well as a separate table of (url, timestamp) pairs that havenât been seen yet but are wanted. When one of those âwantedâ twts is finally seen, the mail file gets rewritten to include the appropriate In-Reply-To header.
Patch based on jenny commit 73a5ea81.
https://www.falsifian.org/a/oDtr/patch0.txt
Not implemented:
- Composing twts using the (replyto âŠ) format.
- Probably other important things Iâm forgetting.
compressed_subject(msg_singlelined)
be configurable, so only a certain number of characters get displayed, ending on ellipses? Right now the entire twtxt is crammed into the Subject:
. This request aims to make twtxts display on mutt
/neomutt
, etc. more like emails do.
I mean, really, it couldnât get any better. I love it!
I have configured my twtxt.txt
as simple as possible. I have setup a publish_command
on jenny. Hopefully all works fine, and I am good to go. Next will be setting the announce_me
to true
. Here we go!
Hey, @movq@www.uninformativ.de, a tiny thing to add to jenny
, a -v
switch. That way when you twtxt âThatâs an older format that was used before jenny version v23.04â, I can go and run jenny -v
, and âduh!â myself on the way to a git pull
. :-D
@movq@www.uninformativ.de to paraphrase US Presidents speech on each State of the Union, âthe State of the Jenny is strong!â :-D As for the potential upcoming changes, there has to be a knowledgeable head honcho that will agglomerate and coalesce, and guide onto the direction that will be taken. All that with the strong input from the developers that will be implementing the changes, and a lesser (but not less valuable) input from users.
@prologic@twtxt.net I just realised the jenny
also does what I want, as of latest commit. Simply use jenny --debug-feed <feed url>
, and it will do what I wanted too!
@prologic@twtxt.net sorry but nope. Neither jenny
, nor yarnd
supports it at all. This was treated as a thread because I picked one of @falsifian@www.falsifian.orgâs twtxts (with the âold subjectâ), and replied to it (hence starting the thread).
@sorenpeter@darch.dk I like this idea. Just for fun, Iâm using a variant in this twt. (Also because Iâm curious how it non-hash subjects appear in jenny and yarn.)
URLs can contain commas so I suggest a different character to separate the url from the date. Is this twt Iâve used space (also after âreplytoâ, for symmetry).
I think this solves:
- Changing feed identities: although @mckinley@twtxt.net points out URLs can change, I think this syntax should be okay as long as the feed at that URL can be fetched, and as long as the current canonical URL for the feed lists this one as an alternate.
- editing, if you donât care about message integrity
- finding the root of a thread, if youâre not following the author
An optional hash could be added if message integrity is desired. (E.g. if you donât trust the feed author not to make a misleading edit.) Other recent suggestions about how to deal with edits and hashes might be applicable then.
People publishing multiple twts per second should include sub-second precision in their timestamps. As you suggested, the timestamp could just be copied verbatim.
@movq@www.uninformativ.de I didnât run the command as you recommended, but, I wiped things once more, and ran jenny -f
, and this time got:
david@arrakis:~$ jenny -f
Fetching archived feed https://anthony.buc.ci/user/abucci/twtxt.txt/1 (configured as abucci, https://anthony.buc.ci/user/abucci/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2024-04.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://darch.dk/twtxt-archive.txt (configured as soren, https://darch.dk/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2024-04-21_6v47cua.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://twtxt.net/user/prologic/twtxt.txt/1 (configured as prologic, https://twtxt.net/user/prologic/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2024-03.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2022-12-21_2us6qbq.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://twtxt.net/user/prologic/twtxt.txt/2 (configured as prologic, https://twtxt.net/user/prologic/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2024-02.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2022-01-14_ew5gzca.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://twtxt.net/user/prologic/twtxt.txt/3 (configured as prologic, https://twtxt.net/user/prologic/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2024-01.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-12-23_f6y65bq.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://twtxt.net/user/prologic/twtxt.txt/4 (configured as prologic, https://twtxt.net/user/prologic/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-12.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-12-04_e4x7yba.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://twtxt.net/user/prologic/twtxt.txt/5 (configured as prologic, https://twtxt.net/user/prologic/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-11.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-11-18_42tjxba.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://twtxt.net/user/prologic/twtxt.txt/6 (configured as prologic, https://twtxt.net/user/prologic/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-10.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-11-08_i2wnvaa.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-09.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-10-23_kvwn5oa.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-08.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-10-11_mljudaa.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-07.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-09-22_5mkqwua.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-06.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-07-27_xcnzmlq.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-05.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-06-16_mtedqya.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-04.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-04-29_z7lvzja.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-03.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-03-19_xjabvhq.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-02.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-02-24_te4a6oa.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2023-01.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2021-01-26_qxgigma.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-12.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://www.uninformativ.de/twtxt-old_2020-12-13_igfnala.txt (configured as movq, https://www.uninformativ.de/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-11.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-10.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-09.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-08.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-07.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-06.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-05.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-04.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-03.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-02.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2022-01.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-12.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-11.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-10.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-09.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-08.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-07.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-06.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-05.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-04.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-03.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-02.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2021-01.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Fetching archived feed https://lyse.isobeef.org/twtxt-2020-12.txt (configured as lyse, https://lyse.isobeef.org/twtxt.txt)
Notice that @prologic@twtxt.netâs /6
is there. I found the twtxt then. Kind of odd it didnât show before.
@movq@www.uninformativ.de I did the same. jenny
fetches archives, yes, but that twtxt I am referring about is no longer. If you fetch it, but I donât, there is certainly something going onâŠ
@movq@www.uninformativ.de I figured it will be something like this, yet, you were able to reply just fine, and I wasnât. Looking at your twtxt.txt
I see this line:
2024-09-16T17:37:14+00:00 (#o6dsrga) @<prologic https://twtxt.net/user/prologic/twtxt.txt>
@<quark https://ferengi.one/twtxt.txt> This is what I get. đ€
Which is using the right hash. Mine, on the other hand, when I replied to the original, old style message (Message-Id: <o6dsrga>
), looks like this:
2024-09-16T16:42:27+00:00 (#o) @<prologic https://twtxt.net/user/prologic/twtxt.txt> this was your first twtxt. Cool! :-P
What did you do to make yours work? I simply went to the oldest @prologic@twtxt.netâs entry on my Maildir, and replied to it (jenny
set the reply-to
hash to #o
, even though the Message-Id
is o6dsrga
). Since jenny
canât fetch archived twtxts, how could I go to re-fetch everything? And, most importantly, would re-fetching fix the Message-Id:
?
This is how my original message shows up on jenny
:
From: quark <quark>
Subject: (#o) @prologic this was your first twtxt. Cool! :-P
Date: Mon, 16 Sep 2024 12:42:27 -0400
Message-Id: <k7imvia@twtxt>
X-twtxt-feed-url: https://ferengi.one/twtxt.txt
(#o) @<prologic https://twtxt.net/user/prologic/twtxt.txt> this was your first twtxt. Cool! :-P
@aelaraji@aelaraji.com no, it is not just you. Do fetch the parent with jenny, and you will see there are two messages with different hash. Soren did something funky, for sure.
@lyse@lyse.isobeef.org This looks like a nice way to do it.
Another thought: if clients canât agree on the url (for example, if we switch to this new way, but some old clients still do it the old way), that could be mitigated by computing many hashes for each twt: one for every url in the feed. So, if a feed has three URLs, every twt is associated with three hashes when it comes time to put threads together.
A client stills need to choose one url to use for the hash when composing a reply, but this might add some breathing room if thereâs a period when clients are doing different things.
(From what I understand of jenny, this would be difficult to implement there since each pseudo-email can only have one msgid to match to the in-reply-to headers. I donât know about other clients.)
The actual end-user problem is that I canât see the thread properly when using neomutt+jenny.
@prologic@twtxt.net One of your twts begins with (#st3wsda): https://twtxt.net/twt/bot5z4q
Based on the twtxt.net web UI, it seems to be in reply to a twt by @cuaxolotl@sunshinegardens.org which begins âIâve been sketching outâŠâ.
But jenny thinks the hash of that twt is 6mdqxrq. At least, thereâs a very twt in their feed with that hash that has the same text as appears on yarn.social (except with â instead of â).
Based on this, it appears jenny and yarnd disagree about the hash of the twt, or perhaps the twt was edited (though I canât see any difference, assuming â vs â is just a rendering choice).
@movq@www.uninformativ.de Thanks, it works!
But when I tried it out on a twt from @prologic@twtxt.net, I discovered jenny and yarn.social seem to disagree about the hash of this twt: https://twtxt.net/twt/st3wsda . jenny assigned it a hash of 6mdqxrq but the URL and prologicâs reply suggest yarn.social thinks the hash is st3wsda. (And as a result, jenny âfetch-context didnât work on prologicâs twt.)
@falsifian@www.falsifian.org have you tried jennyâs fetch-context
branch? It works great!
vim
cursor at the end of the first line on replies, and forks. I have tried adding to this to jenny
's configuration:
@movq@www.uninformativ.de hmm, I am already using au BufNewFile,BufRead jenny-posting.eml setl completefunc=jenny#CompleteMentions fo-=t wrap
, from jenny
. How would I go to incorporate that there?
@movq@www.uninformativ.de, maybe you can help me with this. I want to place the vim
cursor at the end of the first line on replies, and forks. I have tried adding to this to jenny
âs configuration:
"editor": "vim \"+normal $\"",
But that doesnât work. How would you go about it?
@movq@www.uninformativ.de I donât know if Iâd want to discard the twts. I think what Iâm looking for is a command âjenny -g https://host.org/twtxt.txtâ to fetch just that one feed, even if itâs not in my follow list. I could wrap that in a shell script so that when I see a twt in reply to a feed I donât follow, I can just tap a key and the feed will get added to my maildir. I guess the script would look for a mention at the start of a selected twt and call jenny -g on the feed.
@movq@www.uninformativ.de Is there a good way to get jenny to do a one-off fetch of a feed, for when you want to fill in missing parts of a thread? I just added @slashdot@feeds.twtxt.net to my private follow file just because @prologic@twtxt.net keeps responding to the feed :-P and I want to know what heâs commenting on even though I donât want to see every new slashdot twt.
@movq@www.uninformativ.de, well, yes, that has always been the case. Not just on jenny, but on Yarn. I canât follow everything, and everyone. To see whether is a reply, a simple h
on mutt shows the headers, and there you have it. That is not too convoluted, is it? I mean, if you really want to knowâbut why?âit is a simple key press. If I donât see a context on something as obvious as the example you used, it is simply a reply to someone I donât follow, and pretty much ignore. End of story. đ
@benk@kwiecien.us I am using jenny (we chatted a bit on IRC earlier today). I have been using it for over five months now, I think. It is truly a joy to use, specially because you can use the power of Mutt/NeoMutt to read your twts.
I think something has caused my feed to be in a bad state and is now unpardableđ„
I can read this on jenny, but the twt isnât making it to my own pod. Something has gone really wrong, me thinks.
@fastidious@arrakis.netbros.com
I hit RETURN after the subject, and nick [âŠ]
I shows fine on jenny
. Letâs see how Yarn renders mine above.
Not to boast, but jenny
has never failed me đ. It is so neat, powerful, and streamlined, not even funny! Thank you very much, @movq@www.uninformativ.de for it! đ
@prologic@twtxt.net
Awesome! Hope he will reply as fast as he did with me. And yes about the noise and length. Not an issue on jenny, or my own pod (I have it set to 2048, I think), but yes, ephemeral is right.
@jlj@twt.nfld.uk
Yup, jenny
. She is so cool! đ
@fastidious@arrakis.netbros.com
The signs show fine on jenny. So, it is a display thing. Probably related to Markdown.
FOLLOW: @xuu@txt.sour.is from @quark@ferengi.one using jenny/latest
@prologic@twtxt.net
Jenny populates Muttâs subject with the entire twt. That makes for very, very long subject lines.
@movq@www.uninformativ.de
Fair enough, I will modify my cron job to match. When I come across edited twts, I just delete both knowing jenny will fetch the right one next iteration. I like keeping things tidy. đ
@movq@www.uninformativ.de what is your cron job repeat time for jenny? Currently I have mine to every minute, and while it allows me to participate fairly quick on conversations it has some drawbacks: it captures every single edited twt, so I end up with seemingly the same twt, but not quiteâas it has minor edits, etc. So, ârepeatsâ. Perhaps setting cron to check every 5 minutes or so is best?
FOLLOW: @xuu@txt.sour.is from @stackeffect@twtxt.stackeffect.de using jenny/latest
@lyse@lyse.isobeef.org Unless you are stripping stuff on your twts, there is no much to implement. Things will be bold , italics , underlined , and so on, on a client that can render them. Since jenny uses Mutt, I can use my own regex in it to color them as I like. Thatâs pretty much it.
@movq@www.uninformativ.de Goryon parsing is broken. Yarn shows it as I see it on jenny. Exactly the same.
@movq@www.uninformativ.de To clarify, Markdown is just text. đ I can do bolding, link things, and if single return multilines ever comes to jenny, I would be able to do bulleted and numbered lists.
Headings are OK tooThe only thingsâthat I know ofâthat doesnât work is â> â, but I can use â>â, like so:
Dâoh!
So, jenny allows me to write Markdown almost just fine!
Boy, do I love jenny/latest, and Neomutt! đ
https://pasteboard.co/CDMQJYvWuYtY.png
Only thing jenny is missing, to be completely happy, @movq@www.uninformativ.de already knows about. đ
@movq@www.uninformativ.de This is my env, on language:
LANGUAGE=en_US.UTF-8
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
I had to explicitly set it on the cron job to make jenny work.
@quark@ferengi.one If so, @movq@www.uninformativ.de, not quite https://www.uninformativ.de/git/jenny/commit/4a02eeec58317107c07e759733312d168e319f17.html#h0-0-5... Markdown needs single new lines for many things. Bulleted, numbered, code, etc. need them.
@movq@www.uninformativ.de I am getting this when I run it on cron (extra lines in between becuase otherwise jenny will make them a mash):
Traceback (most recent call last):
File â/home/quark/jenny/jennyâ, line 565, in
if not retrieve_all(config):
File â/home/quark/jenny/jennyâ, line 373, in retrieve_all
refresh_self(config)
File â/home/quark/jenny/jennyâ, line 294, in refresh_self
process_feed(config, config[âself_nickâ], config[âself_urlâ], content)
File â/home/quark/jenny/jennyâ, line 280, in process_feed
fp.write(mail_body)
File â/usr/lib/python3.8/encodings/iso8859_15.pyâ, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: âcharmapâ codec canât encode character â\U0001f4e3â in position 31: character maps to
@quark@ferengi.one By the way, you reply did not showed as a reply to a conversation on jenny this time. I wonder is something broke with the latest changes.
FOLLOW: @xuu@txt.sour.is from @vain-test@www.uninformativ.de using jenny/latest
How would jenny handle multiline twts? Letâs find out! - One - Two - Three And: 1. One 2. Two 3. Three
@quark@twtxt.netbros.com I have removed the cron job, and added jenny -f
to the small script that starts mutt with the .muttrc-jenny
file. That way when I open, it refresh the feed before. Letâs see how it goes.
Seeing repeated twts again. Only thing I am doing different is running jenny
every 5 minutes on a cron job. I really donât know what to think.
@movq@www.uninformativ.de I got it! I had jenny under my ~/.local/bin/, and didnât realised the one on the repo changed. Dâoh! I am symlinking it now, so this doesnât happen again. I love autocomplete!
@movq@www.uninformativ.de I did a git pull
but that isnât pulling jenny-posting.eml. Am I missing something?
@movq@www.uninformativ.de I noticed that if I ran jenny -f
on a cron job, and kept mutt
open, messages will get duplicated (same message, time, different message-id). I run it now on a small script before opening mutt
.
@movq@www.uninformativ.de Ah, I see. I mean, it is not biggie, as normally I just reply to people, so that part works beautifully. A vi/vim script would work, but it is not universal. What if I use joe, or Emacs, or nano? Meh, jenny is awesome as is, thank you for it! âșïž
I need someone with a nice, and clean twtxt.txt feed. One that doesnât include muchâif anyâimages, and in which twts have more content. Just looking to see how formatting is handled in jenny
and how to tweak it to my liking.
I might have figure out what was causing duplicated entries here. I think running jenny -f
while mutt is open was causing it. I have disabled the cron job, and it doesnât seem to be happening anymore. Letâs see how accurate my theory is. đ
@movq@www.uninformativ.de is there a better way to mention others while using jenny?