Thanks for helping!!
However, when I use what you wrote, I get an error:
SJABLOONFOUT Formatter: incorrect number of arguments for function folderOnDevice dichtbij )
With "Export" I meant save to disk (Having the Dutch language I have to translate every item, sorry for that...)
But I think this will not work when sending to device.
Could you please give me the definition for this function? (correct parameters are enough, I think)
Currently I have this:
Code:
def evaluate(self, formatter, kwargs, mi, locals, val, genretext, serietext, number_in_series, max_number_in_series, aantal_menu_items):
titletext=val
try:
aant_mi = int(aantal_menu_items)
except:
return 'aantal_menu_items is geen aantal!'
if number_in_series is None:
num_in_serie = 0
else:
try:
num_in_serie = int(number_in_series)
except:
num_in_serie = 0
#return 'number_in_series is geen aantal!'
MaxAantInSerie = 0
if num_in_serie > 0:
if max_number_in_series is None:
MaxAantInSerie = num_in_serie
else:
try:
MaxAantInSerie = int(max_number_in_series)
except:
MaxAantInSerie = num_in_serie
# return 'max_number_in_series is niet ingevuld!'
s = ''
DoeBerekening = 1
if MaxAantInSerie == 0:
DoeBerekening = 0
if num_in_serie == 0:
DoeBerekening = 0
#return 'MaxAantInSerie={0}, num_in_serie={1}, DoeBerekening={2}'.format(MaxAantInSerie, num_in_serie, DoeBerekening)
if DoeBerekening == 1:
#try:
# Menu structuur aanbrengen
f = num_in_serie - 1
f1 = f / aant_mi
f2 = f1 / aant_mi
f3 = f2 / aant_mi
f4 = f3 / aant_mi
f5 = f4 / aant_mi
# Aantal items dat per menudiepte kan worden geplaatst
items_in_menu_diepte1 = aant_mi
items_in_menu_diepte2 = items_in_menu_diepte1 * aant_mi
items_in_menu_diepte3 = items_in_menu_diepte2 * aant_mi
items_in_menu_diepte4 = items_in_menu_diepte3 * aant_mi
items_in_menu_diepte5 = items_in_menu_diepte4 * aant_mi
# Bereken diepst benodigde niveau
max_mi_diepte=5
if MaxAantInSerie <= items_in_menu_diepte5:
max_mi_diepte=4
if MaxAantInSerie <= items_in_menu_diepte4:
max_mi_diepte=3
if MaxAantInSerie <= items_in_menu_diepte3:
max_mi_diepte=2
if MaxAantInSerie <= items_in_menu_diepte2:
max_mi_diepte=1
if MaxAantInSerie <= items_in_menu_diepte1:
max_mi_diepte=0
# Bereken de van.. tot per menudiepte voor betreffende boek
fl1 = f1 * items_in_menu_diepte1 + 1
fh1 = (f1 + 1) * items_in_menu_diepte1
fl2 = f2 * items_in_menu_diepte2 + 1
fh2 = (f2 + 1) * items_in_menu_diepte2
fl3 = f3 * items_in_menu_diepte3 + 1
fh3 = (f3 + 1) * items_in_menu_diepte3
fl4 = f4 * items_in_menu_diepte4 + 1
fh4 = (f4 + 1) * items_in_menu_diepte4
fl5 = f5 * items_in_menu_diepte5 + 1
fh5 = (f5 + 1) * items_in_menu_diepte5
# Zorg ervoor dat de hoogste niet meer wordt dan het maximum in de serie
if fh1 > MaxAantInSerie:
fh1 = MaxAantInSerie
if fh2 > MaxAantInSerie:
fh2 = MaxAantInSerie
if fh3 > MaxAantInSerie:
fh3 = MaxAantInSerie
if fh4 > MaxAantInSerie:
fh4 = MaxAantInSerie
if fh5 > MaxAantInSerie:
fh5 = MaxAantInSerie
# Bepaal aantal cijfers benodigd om maximum vast te houden
ac=1
if MaxAantInSerie>9:
ac=2
if MaxAantInSerie>99:
ac=3
if MaxAantInSerie>999:
ac=4
if MaxAantInSerie>9999:
ac=5
# Bepaal hier de feitelijke string voor de menustructuur
acs='{0:02}'.format(ac) #Levert een string op zoals: 01 of 02
if max_mi_diepte == 0: #1-10
s = ''
if max_mi_diepte > 1: #1-100, dus gelijk al 2 diep: 001-100/001-010, 001-100/011-020, ... 101-200/101-110
s = serietext + ' {2:' + acs + '}-{3:' + acs + '}' + '/{0:' + acs + '}-{1:' + acs + '}'
if max_mi_diepte > 2:
s = serietext + ' {4:' + acs + '}-{5:' + acs + '}' + '/' + s
if max_mi_diepte > 3:
s = serietext + ' {6:' + acs + '}-{7:' + acs + '}' + '/' + s
if max_mi_diepte > 4:
s = serietext + ' {8:' + acs + '}-{9:' + acs + '}' + '/' + s
#if max_mi_diepte > 5:
# s = serietext + ' {10:' + acs + '}-{11:' + acs + '}' + '/' + s
#return 'ac={0}, MaxAantInSerie={1}, max_mi_diepte={2}, s={3}'.format(ac,MaxAantInSerie,max_mi_diepte,s)
s = s.format(fl1,fh1,fl2,fh2,fl3,fh3,fl4,fh4,fl5,fh5)
#return 'items_in_menu_diepte: 1={0}, 2={1}, 3={2}, 4={3}; aant_menu_nodig_voor_max_serie={4}; max_mi_diepte={5}; s={6}'.format(items_in_menu_diepte1,items_in_menu_diepte2,items_in_menu_diepte3,items_in_menu_diepte4,aant_menu_nodig_voor_max_serie,max_mi_diepte,s);
#except:
# pass
# return 'OEPS!'
if genretext != '':
genretext = genretext + '/'
if serietext != '':
serietext = serietext + '/'
if (genretext + serietext != '') and (s != ''):
s = s + '/'
return genretext + serietext + s
btw: I got this information from here:
http://manual.calibre-ebook.com/temp...late-functions
so this is the manual for Calibre itself, right?
If you can point me to any place where the construction 'program:' is used, please do so!