View Single Post
Old 05-16-2021, 07:41 AM   #5926
aleyx
Addict
aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.aleyx can self-interpret dreams as they happen.
 
Posts: 250
Karma: 20386
Join Date: Sep 2010
Location: France
Device: Bookeen Diva, Kobo Clara BW
Quote:
Originally Posted by midnightmane View Post
Okay let me put some context I'm not massively updating, over the span of a week i have only updated 60 stories. but I was wondering is if there was a way I could set it up on the schedule So that I can spread out my update over the course of days To go easy on the web servers I already know this is strongly discouraged but that's why I'm looking for options on how to update my library without putting strain or hassle on the servers.
There's no scheduling feature that I'm aware of. You could configure a default tweak_fg_sleep for each site to a large value, although others would need to confirm and propose proper values; I'm not familiar with that setting.

You would still have to manually manage batches of books though, if for no other reason that once you've launched the batch, you can't interrupt it without wasting that round, and you have to validate at the end anyways.

If your library is that huge (> 5k books? >6k? ) my advice would be to plan beforehand.

Audit your library. Tag books you actually read; there's no point updating books you forgot you even had, or completed books. The point is to read and enjoy books, not to have the most up-to-date library possible (unless you're an archivist). Create a virtual library based on that tag, and work only on that library.

Once you have a core of books you actually want to read, make sure you have mail notifications enabled for them, and tag them with something like "Mail-managed" so you know you won't have to deal with them manually anymore afterwards.

Now you can start updating this core list. For bonus, you can rate them beforehand and update them in order of rating (you can create a custom column for that if you want). Update by batches of, say, five. One those five are updated, you can untag them to remove them from your virtual library (knowing that you'll be notified from now on).

Start a second batch as a reading buffer but, and here's the trick: if you decided to rate them, don't start another batch until you've finished reading the first one. Because if you didn't read the best batch you won't read the next, and updating a book you won't read is a waste of work.


I understand the natural instinct of the completist: MUST. HAVE. LATEST.

I have to fight this instinct too. But while updating is satisfying in itself, the point is to read something you enjoy. Concentrate on that!


Additionally, you can try to use a custom column to calculate the approximate lateness of an update:

Spoiler:
Code:
program:
# Days since the last update
days_since_last=days_between(today(), raw_field('#updated'));

# The first chapter doesn't count in the average; nor do books with no chapters (since they generate a divide by zero error)
chapters=cmp(raw_field('#chapters'), 2, 1, subtract(raw_field('#chapters'), 1), subtract(raw_field('#chapters'), 1));

# Days between chapters, in average.  If the average is less than one day, we up to one day.  This is so incomplete multi-chapters uploaded in one go don't get crazy values.
pub_length=days_between(raw_field('#updated'), raw_field('pubdate'));
avg=divide(cmp(pub_length, 0, 1, 1, pub_length), chapters);
avg=cmp(avg, 1, 1, 1, avg);
# Number of days an update should have come up, based on average
days_delayed=subtract(days_since_last, avg);

# Number of 'deadlines' missed.
deadlines=divide(days_since_last, avg);

# We only display a value for books with a Last Updated value. Among those, we dismiss completed books.
# You'd think a date column with an undefined value would be considered empty by ifempty(), but nope.  It's a column with a 'None' value.
contains( raw_field('#updated'), 'None', '',
	str_in_list(field('tags'), ",", "Completed", "",
		cmp( deadlines, 2,
		"", "", finish_formatting( deadlines, "0.0f", "x" , finish_formatting(days_delayed, "0.0f", " (", finish_formatting(avg, "0.0f", ", avg ", ")")))
		)
	)
)


The more it's late, the more likely it's been dropped anyways.

(I know Calibre introduced new functions since I wrote that code; I haven't had time to rewrite it yet)

N.
aleyx is offline   Reply With Quote