Toggle menu
Toggle personal menu
Δεν έχετε συνδεθεί
Your IP address will be publicly visible if you make any edits.

Module:Video citation: Διαφορά μεταξύ των αναθεωρήσεων

Από την ΠρολεΒίκι, την προλεταριακή εγκυκλοπαίδεια
(εισαγωγή προσθέτου)
 
(Ενημέρωση προσθέτου)
 
(Μία ενδιάμεση αναθεώρηση από τον ίδιο χρήστη δεν εμφανίζεται)
Γραμμή 11: Γραμμή 11:
function p.cite(frame)
function p.cite(frame)
local parent = frame:getParent()
local parent = frame:getParent()
 
local Title = parent.args['τίτλος'] or parent.args.title
local Title = parent.args['τίτλος'] or parent.args.title
local Channel = parent.args['κανάλι'] or parent.args.channel
local Channel = parent.args['κανάλι'] or parent.args.channel
Γραμμή 25: Γραμμή 25:
local third_part = ''
local third_part = ''
local extTimestamp = ''
local platform = ''
if is_set(URL) then
if is_set(URL) then
extTimestamp = URL:match("?t=(%d+)")
local linkDomain = URL:match("(%a+.%a+)/")
if is_set(extTimestamp) then
if linkDomain == 'youtube.com' or linkDomain == 'youtu.be' then
local second = extTimestamp%60
platform = '[[YouTube]]'
local minute = math.floor(extTimestamp/60)
local hour = math.floor(minute/60)
while (minute>=60) do
minute = minute - 60
end
extTimestamp = second
-- Checks if the youtube link has a timestamp
if minute>0 then
local extTimestamp = URL:match("?t=(%d+)")
if minute<10 then
if is_set(extTimestamp) then
minute = "0" .. minute
-- Extracts seconds, minutes and hours from timestamp
local second = extTimestamp%60
local minute = math.floor(extTimestamp/60)%60
local hour = math.floor(minute/60)
local timestampString = second
timestampString = string.format("%02d", minute) .. ":" .. timestampString
-- Display hours only if it's larger than 0
if hour>0 then
timestampString = string.format("%02d", hour) .. ":" .. timestampString
end
end
extTimestamp = minute .. ":" .. extTimestamp
second_part = second_part .. " (" .. timestampString .. ")"
else
extTimestamp = "00:" .. extTimestamp
end
if hour>0 then
if hour<10 then
hour = "0" .. hour
end
extTimestamp = hour .. ":" .. extTimestamp
end
end
elseif linkDomain == 'dailymotion.com' then
platform = 'DailyMotion'
end
end
end
end
Γραμμή 73: Γραμμή 72:
Title = '[' .. URL .. " " .. '"' .. Title .. '"' .. ']'
Title = '[' .. URL .. " " .. '"' .. Title .. '"' .. ']'
end
end
second_part = second_part  .. Title
second_part = Title .. second_part  
end
if is_set(extTimestamp) then
second_part = second_part .. " (" .. extTimestamp .. ")"
elseif is_set(Timestamp) then
second_part = second_part .. " (" .. Timestamp .. ")"
end
end
Γραμμή 88: Γραμμή 81:
second_part = second_part .. ' (' .. Date .. ')'
second_part = second_part .. ' (' .. Date .. ')'
end
end
end
if is_set(platform) then
second_part = second_part .. ". ''" .. platform .. "''"
end
end
if is_set(ArchiveURL) then
if is_set(ArchiveURL) then
if is_set(ArchiveDate) then
if is_set(ArchiveDate) then
third_part = " [" .. ArchiveURL .. " " .. "Αρχειοθετήθηκε" .. "]" .. " " .. " από το πρωτότυπο στις" .. " " .. ArchiveDate .. "."
third_part = " [" .. ArchiveURL .. " " .. "Αρχειοθετήτηκε" .. "]" .. " " .. " from the original on" .. " " .. ArchiveDate .. "."
else
else
third_part = " [" .. ArchiveURL .. " " .. "Αρχειοθετήθηκε" .. "]" .. " από το πρωτότυπο."
third_part = " [" .. ArchiveURL .. " " .. "Αρχειοθετήτηκε" .. "]" .. " from the original."
end
end
end
end
if is_set (Retrieved) then
if is_set (Retrieved) then
third_part = third_part .. " Ανακτήθηκε" .. " " .. Retrieved .. "."
third_part = third_part .. " Ανακτήθηκε" .. " " .. Retrieved
end
-- Concatenating all strings and adding the dot punctuations at the end of every part if they are set
local finalString = ''
if is_set(first_part) then
finalString = first_part .. "."
end
if is_set(second_part) then
finalString = finalString .. " " .. second_part .. "."
end
if is_set(third_part) then
finalString = finalString .. " " .. third_part .. "."
end
end
return first_part .. ". " .. second_part .. ". " .. "''[[YouTube]]''." .. third_part
return finalString
end
end
return p
return p

Τελευταία αναθεώρηση της 15:53, 23 Απριλίου 2024

Documentation for this module may be created at Module:Video citation/τεκμηρίωση

local p = {}

local function is_set (var)
	return not (var == nil or var == '');
end

local function italics (var)
	return "<i>" .. var .. "</i>"
end

function p.cite(frame)
	local parent = frame:getParent()

	local Title = parent.args['τίτλος'] or parent.args.title
	local Channel = parent.args['κανάλι'] or parent.args.channel
	local Date = parent.args['ημερομηνία'] or parent.args['date']
	local Quote = parent.args['απόφθεγμα'] or parent.args.quote
	local URL = parent.args.url
	local ArchiveURL = parent.args['αρχειοθετημένο-url'] or parent.args['archive-url']
	local ArchiveDate = parent.args['ημερομηνία-αρχειοθέτησης'] or parent.args['archive-date']
	local Retrieved = parent.args['ανακτήθηκε'] or parent.args.retrieved

	local first_part = ''
	local second_part = ''
	local third_part = ''
	
	local platform = ''
	
	if is_set(URL) then
		local linkDomain = URL:match("(%a+.%a+)/")
		if linkDomain == 'youtube.com' or linkDomain == 'youtu.be' then
			platform = '[[YouTube]]'
			
			-- Checks if the youtube link has a timestamp
			local extTimestamp = URL:match("?t=(%d+)")
			if is_set(extTimestamp) then
				-- Extracts seconds, minutes and hours from timestamp
				local second = extTimestamp%60
				local minute = math.floor(extTimestamp/60)%60
				local hour = math.floor(minute/60)
				
				local timestampString = second
				timestampString = string.format("%02d", minute) .. ":" .. timestampString
				-- Display hours only if it's larger than 0
				if hour>0 then
					timestampString = string.format("%02d", hour) .. ":" .. timestampString
				end
				second_part = second_part .. " (" .. timestampString .. ")"
			end
		elseif linkDomain == 'dailymotion.com' then
			platform = 'DailyMotion'
		end
	end

	if is_set (Quote) then
		Quote = string.gsub(Quote,"\n","<br>")
		Quote = "“" .. Quote .. "”"
		local div = mw.html.create ('div')
		div
		:attr("style", "width:80%; margin-left:10%;")
		:wikitext(Quote)
		local br = mw.html.create ('br', selfClosing)
		first_part = italics(tostring(div)) .. tostring(br) .. first_part
	end

	if is_set(Channel) then
		first_part = first_part .. Channel
	end
	
	if is_set(Title) then
		if is_set(URL) then
			Title = '[' .. URL .. " " .. '"' .. Title .. '"' .. ']'
		end
		second_part = Title .. second_part 
	end
	
	if is_set(Date) then
		if is_set(Channel) then
			first_part = first_part .. ' (' .. Date .. ')'
		else
			second_part = second_part .. ' (' .. Date .. ')'
		end
	end
	
	if is_set(platform) then
		second_part = second_part .. ". ''" .. platform .. "''"
	end
	
	if is_set(ArchiveURL) then
		if is_set(ArchiveDate) then
			third_part = " [" .. ArchiveURL .. " " .. "Αρχειοθετήτηκε" .. "]" .. " " .. " from the original on" .. " " .. ArchiveDate .. "."
			else
				third_part = " [" .. ArchiveURL .. " " .. "Αρχειοθετήτηκε" .. "]" .. " from the original."
		end
	end
			
	if is_set (Retrieved) then
		third_part = third_part .. " Ανακτήθηκε" .. " " .. Retrieved
	end
	
	-- Concatenating all strings and adding the dot punctuations at the end of every part if they are set
	local finalString = ''
	if is_set(first_part) then
		finalString = first_part .. "."
	end
	if is_set(second_part) then
		finalString = finalString .. " " .. second_part .. "."
	end
	if is_set(third_part) then
		finalString = finalString .. " " .. third_part .. "."
	end
	
return finalString
end
return p