Module:Χρόνος ανάγνωσης: Διαφορά μεταξύ των αναθεωρήσεων
Από την ΠρολεΒίκι, την προλεταριακή εγκυκλοπαίδεια
More languages
More actions
(Δημιουργία προσθέτου) |
μ (Μετάφραση) |
||
Γραμμή 41: | Γραμμή 41: | ||
-- Create the reading time string | -- Create the reading time string | ||
local readingTime = minReadingTime .. "-" .. maxReadingTime .. " | local readingTime = minReadingTime .. "-" .. maxReadingTime .. " λεπτά" | ||
return readingTime | return readingTime | ||
else | else | ||
return " | return "Σφάλμα: Μη έγκυρο περιεχόμενο" | ||
end | end | ||
else | else | ||
return " | return "Σφάλμα: Μη έγκυρο όνομα σελίδας" | ||
end | end | ||
end | end | ||
return p | return p |
Τελευταία αναθεώρηση της 10:19, 21 Απριλίου 2024
Documentation for this module may be created at Module:Χρόνος ανάγνωσης/τεκμηρίωση
-- Υπολογισμός χρόνου ανάγνωσης για κάθε σελίδα, στρογγυλοποιημένος στα πολλαπλάσια του 5. Η έξοδος είναι "X-Ψ λεπτά".
-- Χρησιμοποιήστε σε οποιαδήποτε σελίδα ή πρότυπο με την εντολή {{#invoke:Χρόνος ανάγνωσης|estimateReadingTime|ΌνομαΣελίδας}}
-- (αντί για ΌνομαΣελίδας γράψτε το όνομα της σελίδας)
local p = {}
local mw = require("mw")
function p.estimateReadingTime(frame)
-- Get the page title from the frame parameter
local pageTitle = frame.args[1]
-- Ensure that pageTitle is a string
if type(pageTitle) == "string" then
-- Use MediaWiki's built-in function to get the page content
local content = mw.title.new(pageTitle):getContent()
-- Ensure that content is a string
if type(content) == "string" then
-- Count words using a more robust pattern
local wordCount = 0
for word in content:gmatch("%S+") do
wordCount = wordCount + 1
end
-- Define the range of reading speeds
local minSpeed = 160
local maxSpeed = 238
-- Calculate reading times for both minimum and maximum speeds
local minReadingTime = math.floor(wordCount / maxSpeed)
local maxReadingTime = math.ceil(wordCount / minSpeed)
-- Round the reading times to the nearest multiple of 5
minReadingTime = math.floor(minReadingTime / 5) * 5
maxReadingTime = math.ceil(maxReadingTime / 5) * 5
-- Ensure that minReadingTime is at least 1
if minReadingTime == 0 then
minReadingTime = 1
end
-- Create the reading time string
local readingTime = minReadingTime .. "-" .. maxReadingTime .. " λεπτά"
return readingTime
else
return "Σφάλμα: Μη έγκυρο περιεχόμενο"
end
else
return "Σφάλμα: Μη έγκυρο όνομα σελίδας"
end
end
return p