More languages
More actions
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