@movq@www.uninformativ.de Today I had unexpected old twts after jenny -f. Have now jennys cache under revision control, automatically commiting changes after each fetch. Let’s see if this helps finding a (possible) bug.
@fastidious@arrakis.netbros.com will reply to this twt, quoting something in it. I will do that same afterwards on his reply.
**
🧮 USERS:3 FEEDS:6 TWTS:226 BLOGS:0 ARCHIVED:54944 CACHE:2124 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:226 BLOGS:0 ARCHIVED:54944 CACHE:2124 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44569 ARCHIVED:115777 CACHE:17622 FOLLOWERS:23 FOLLOWING:45
**
🧮 USERS:3 FEEDS:6 TWTS:225 BLOGS:0 ARCHIVED:54681 CACHE:2086 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:225 BLOGS:0 ARCHIVED:54681 CACHE:2086 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44562 ARCHIVED:113664 CACHE:14484 FOLLOWERS:23 FOLLOWING:45
@movq@www.uninformativ.de What do you think about this?
diff –git a/jenny b/jenny
index b47c78e..20cf659 100755
— a/jenny
+++ b/jenny
@@ -278,7 +278,8 @@ def prefill_for(email, reply_to_this, self_mentions):
def process_feed(config, nick, url, content, lasttwt):
nick_address, nick_desc = decide_nick(content, nick)
url_for_hash = decide_url_for_hash(content, url)
new_lasttwt = parse(‘1800-01-01T12:00:00+00:00’).timestamp()
# new_lasttwt = parse(‘1800-01-01T12:00:00+00:00’).timestamp()
new_lasttwt = None
for line in twt_lines_from_content(content):
res = twt_line_to_mail(@@ -296,7 +297,7 @@ def process_feed(config, nick, url, content, lasttwt):
twt_stamp = twt_date.timestamp() if lasttwt is not None and lasttwt >= twt_stamp: continueif twt_stamp > new_lasttwt:
if not new_lasttwt or twt_stamp > new_lasttwt:
new_lasttwt = twt_stamp mailname_new = join(config['maildir_target'], 'new', twt_hash)
@movq@www.uninformativ.de I just observed unexpected old twts coming back.
It looks like lasttwts is reset to -5364619200.0 every time no new content wasfetched for example if if-modified-since did not produce new twts?
**
🧮 USERS:3 FEEDS:6 TWTS:224 BLOGS:0 ARCHIVED:54447 CACHE:2059 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:224 BLOGS:0 ARCHIVED:54447 CACHE:2059 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44561 BLOGS:3 ARCHIVED:108163 CACHE:15398 FOLLOWERS:23 FOLLOWING:44
**
🧮 USERS:3 FEEDS:6 TWTS:223 BLOGS:0 ARCHIVED:54236 CACHE:2108 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:223 BLOGS:0 ARCHIVED:54236 CACHE:2108 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44560 BLOGS:3 ARCHIVED:107759 CACHE:15365 FOLLOWERS:23 FOLLOWING:44
@lyse@lyse.isobeef.org
Sorry, I should have mentioned your twt #vjjdara where you already described the same idea.
Don’t miss step 0 (I should have made this a separate point): having a meta header promising appending twts with strictly monotonically increasing timestamps.
(Also, I’d first like to see the pagination thingy implemented.)
In jenny I would like to see “don’t process previously fetched twts” AKA “Allow the user to archive/delete old twts” feature implemented ;-)
**
🧮 USERS:3 FEEDS:6 TWTS:222 BLOGS:0 ARCHIVED:54048 CACHE:2122 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:222 BLOGS:0 ARCHIVED:54048 CACHE:2122 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44559 BLOGS:3 ARCHIVED:107383 CACHE:15350 FOLLOWERS:23 FOLLOWING:44
My thoughts about range requests
Additionally to pagination also range request should be used to reduce traffic.
I understand that there are corner cases making this a complicated matter.
I would like to see a meta header saying that the given twtxt is append only with increasing timestamps so that a simple strategy can detect valid content fetched per range request.
- read meta part per range request
- read last fetched twt at expected range (as known from last fetch)
- if fetched content starts with expected twt then process rest of data
- if fetched content doesn’t start with expected twt discard all and fall back to fetching whole twtxt
Pagination (e.g. archiving old content in a different file) will lead to point 4.
Of course especially pods should support range requests, correct @prologic@twtxt.net?
My thoughts about pagination (paging)
Following the discussion about pagination (paging) I think that’s the right thing to do.
Fetching the same content again and again with only a marginal portion of actually new twts is unbearable and does not scale in any way. It’s not only a waste of bandwidth but with increasing number of fetchers it will also become a problem for pods to serve all requests.
Because it’s so easy to implement and simple to understand, splitting twtxt file in parts with next and prev pointers seems a really amazing solution.
As in RFC5005 there should also be a meta header pointing to the main URL, e.g. current or baseurl or something like that. This way hashes can calculated correctly even for archived twts.
**
🧮 USERS:3 FEEDS:6 TWTS:221 BLOGS:0 ARCHIVED:53815 CACHE:2111 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:221 BLOGS:0 ARCHIVED:53815 CACHE:2111 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44558 BLOGS:3 ARCHIVED:106992 CACHE:15325 FOLLOWERS:23 FOLLOWING:44
@jlj@twt.nfld.uk
Yup, jenny. She is so cool! 😋
**
🧮 USERS:3 FEEDS:6 TWTS:220 BLOGS:0 ARCHIVED:53495 CACHE:2116 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:220 BLOGS:0 ARCHIVED:53495 CACHE:2116 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44557 BLOGS:3 ARCHIVED:106371 CACHE:15079 FOLLOWERS:23 FOLLOWING:44
**
🧮 USERS:3 FEEDS:6 TWTS:219 BLOGS:0 ARCHIVED:53234 CACHE:2064 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:219 BLOGS:0 ARCHIVED:53234 CACHE:2064 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44555 BLOGS:3 ARCHIVED:106018 CACHE:14922 FOLLOWERS:23 FOLLOWING:44
**
🧮 USERS:3 FEEDS:6 TWTS:218 BLOGS:0 ARCHIVED:52943 CACHE:2028 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:218 BLOGS:0 ARCHIVED:52943 CACHE:2028 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44554 BLOGS:3 ARCHIVED:105912 CACHE:14907 FOLLOWERS:23 FOLLOWING:44
D~d>1m and then fetched by !jenny -f. This brings back all deleted twts. Isn't lastmods used to skip older twts?
@movq@www.uninformativ.de
Yes, I did ask whether or not it was possible to move twts to an “archive” folder, but it will be the same at @stackeffect@twtxt.stackeffect.de experienced (which I have, too), that is, twts will “come back”.
There is no clear solution, I am afraid, right? It is the nature of the beast.
D~d>1m and then fetched by !jenny -f. This brings back all deleted twts. Isn't lastmods used to skip older twts?
I’m curious, what is your use case for deleting twts?
Not just deleting, also sorting into other folders is impossible.
It also doesn’t scale in the long term. When I cannot delete twts then I have a full copy of every twtxt I follow - forever. That’s a waste of bandwidth and disk space.
@movq@www.uninformativ.de How is deletion supposed to work? In mutt I deleted by D~d>1m and then fetched by !jenny -f. This brings back all deleted twts. Isn’t lastmods used to skip older twts?
**
🧮 USERS:3 FEEDS:6 TWTS:217 BLOGS:0 ARCHIVED:52648 CACHE:2015 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:217 BLOGS:0 ARCHIVED:52648 CACHE:2015 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44553 BLOGS:3 ARCHIVED:105763 CACHE:14865 FOLLOWERS:23 FOLLOWING:44
**
🧮 USERS:3 FEEDS:6 TWTS:216 BLOGS:0 ARCHIVED:52412 CACHE:2110 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:216 BLOGS:0 ARCHIVED:52412 CACHE:2110 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44552 BLOGS:3 ARCHIVED:105647 CACHE:14845 FOLLOWERS:23 FOLLOWING:44
**
🧮 USERS:3 FEEDS:6 TWTS:215 BLOGS:0 ARCHIVED:52195 CACHE:2122 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:215 BLOGS:0 ARCHIVED:52195 CACHE:2122 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44551 BLOGS:3 ARCHIVED:105499 CACHE:14827 FOLLOWERS:23 FOLLOWING:44
**
🧮 USERS:3 FEEDS:6 TWTS:214 BLOGS:0 ARCHIVED:51989 CACHE:2112 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:214 BLOGS:0 ARCHIVED:51989 CACHE:2112 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44550 BLOGS:3 ARCHIVED:105434 CACHE:14813 FOLLOWERS:23 FOLLOWING:44
@movq@www.uninformativ.de
Aha! Cool! Not just deleting, but proceeding as if the twt is going to be send. If I :q! on vi it will add an empty line. If, instead, I go :x like I normally do, it works as you said—and as I wanted it. Thanks!
@movq@www.uninformativ.de OK, I am on request/question asking mode today. 😋 How do you cancel a twt, or a reply to a twt? Say I hit my reply, and then I change my mind? Right now, even exiting vi is creating an empty line on my twtxt.txt. Is there an obvious way to cancel a twt, reply, or fork that I am missing?
If
Subjectcontains the full twt, then you can skim over conversations just by reading those lines in mutt’s index pager
Yes, I do the same, true.
So I decided: Okay, let’s have mutt do it.
And Mutt does it well. I agree it was/is a good idea.
The subject lines are already “compressed”
I noticed, yes.
I am not sure why I asked to begin with; in retrospect, in was a silly request. Perhaps the OCD in me got triggered while viewing rich headers, on a specific twt, when I saw the huge subject line that is, otherwise, always hidden.
Anyway, don’t mind me, move along. 😂
**
🧮 USERS:3 FEEDS:6 TWTS:213 BLOGS:0 ARCHIVED:51744 CACHE:2131 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:213 BLOGS:0 ARCHIVED:51744 CACHE:2131 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@prologic@twtxt.net
Jenny populates Mutt’s subject with the entire twt. That makes for very, very long subject lines.
🧮 USERS:1 FEEDS:6 TWTS:44548 BLOGS:3 ARCHIVED:105327 CACHE:14831 FOLLOWERS:22 FOLLOWING:44
**
🧮 USERS:3 FEEDS:6 TWTS:212 BLOGS:0 ARCHIVED:51483 CACHE:2109 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:212 BLOGS:0 ARCHIVED:51483 CACHE:2109 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
🧮 USERS:1 FEEDS:6 TWTS:44547 BLOGS:3 ARCHIVED:105017 CACHE:14595 FOLLOWERS:22 FOLLOWING:44
@stackeffect@twtxt.stackeffect.de
I am seeing this characters on your twts: )?â\200¨â\200¨. Which client are you using?
@stigatle@twtxt.net
A twtxt client would be nice! Or a very simple cgi script to print twts to web nicely—not a second Yarn, just something to show twts in a pretty form on the web.
@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?