Benutzer:Antonsusi/Spielwiese/Modul:Leiste

aus Wikipedia, der freien Enzyklopädie
< Benutzer:Antonsusi‎ | Spielwiese
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 11. Mai 2013 um 21:36 Uhr durch imported>Antonsusi(815279) (AZ: Die Seite wurde neu angelegt: local Leiste = {} local LuaWiki = require( "Module:LuaWiki" ) -- function Test.lesen(frame) …).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
 local Leiste = {} 
 local LuaWiki = require( "Module:LuaWiki" )
--
   function Test.lesen(frame)
     local Folge     = frame.args[1]
     local Vorlage   = frame.args[2]
     local Lemma     = frame.args[3]
     local Titel     = frame.args[4]
     local idx       = 0
     local Pos       = 0
     local Von       = 0
     local Bis       = 0
     local Satz      = ""
     local Link      = ""
     local Seite     = ""
     local Zeit      = ""
     local Rest      = ""
     local T_Satz    = {}
     local T_Link    = {}
     local T_Seite   = {}
     local T_Zeit    = {}
     local Tlen = 0
     local Teil  = ""
     local DavorL= ""
     local DavorZ= ""
     local DanachL= ""
     local DanachZ= ""
     local Ausgabe = LuaWiki.transclude(Vorlage)
     local Text    = LuaWiki.transclude(Folge)
     if mw.ustring.len(Text)  < 5 then
      return "Folgeliste nicht gefunden!"
     end
-- Evtl. am Anfang stehendes Semikolon entfernen
     if  mw.ustring.sub(Text,1,1) ==";" then
       Text = mw.ustring.sub(Text,2,-1)
     end
-- Evtl. am Ende fehlendes Semikolon ergänzen
     if  mw.ustring.sub(Text,-1,-1) ~=";" then
       Text = Text ..";"
     end
-- Etwaige Leerzeichen vor oder nach einem Semikolon entfernen, je bis zu sechs
     Text = mw.ustring.gsub(Text,'   ;',';')
     Text = mw.ustring.gsub(Text,'  ;',';')
     Text = mw.ustring.gsub(Text,' ;',';')
     Text = mw.ustring.gsub(Text,';   ',';')
     Text = mw.ustring.gsub(Text,';  ',';')
     Text = mw.ustring.gsub(Text,'; ',';')
-- Etwaige leere Felder entfernen, da wohl Tippfehler
     Text = mw.ustring.gsub(Text,';;',';')
-- Datensätze trennen
     Rest  = Text
     while #Rest > 0 do
       idx  = mw.ustring.find(Rest,';',1,true)
       if not idx then
         break
       end
       Teil = mw.ustring.sub(Rest,1,idx-1)
       table.insert(T_Satz,Teil)
       Rest = mw.ustring.sub(Rest,idx+1,-1)
     end
-- Extrahieren der Seitenlinks und eintragen in T_Link
     for idx, Satz in ipairs(T_Satz) do
       Von =  mw.ustring.find(Satz,'[[',1,true)
       Bis =  1 + mw.ustring.find(Satz,']]',1,true)
       table.insert(T_Link, mw.ustring.sub(Satz,von,Bis))
     end
-- Extrahieren der Seitennamen und eintragen in T_Seite
     for idx, Link in ipairs(T_Link) do
       Pos =  mw.ustring.find(Link,'|',1,true)
       if Pos then
         Seite =  mw.ustring.sub(Link,3,Pos-1)
       else 
         Seite =  mw.ustring.sub(Link,3,-3)
       end
       Seite = mw.ustring.gsub(Seite,'_',' ')    -- Etwaige Unterstriche tauschen
       table.insert(T_Seite,Seite)
     end
-- Extrahieren der Zeiten und eintragen in T_Zeit
     for idx, Satz in ipairs(T_Satz) do
       Pos =  mw.ustring.find(Satz,'@',1,true)
       if Pos then
         Zeit =  mw.ustring.sub(Satz,Pos+1,-1)
       else 
         Zeit = ""
       end
       table.insert(T_Zeit,Zeit)
     end
-- Wikitext - Erstellen der Tabelle durch Einfügen der Werte in eine Seite
-- Nachbarseiten suchen
     Tlen = #T_Seite
     for idx,Seite in ipairs(T_Seite) do
       if Seite == Lemma then
         if idx == 1 then
           DavorL  = ""
           DavorZ  = ""
           DanachL = T_Link[idx+1]
           DanachZ = T_Zeit[idx+1]
           break
         elseif idx == Tlen then
           DavorL  =T_Link[idx-1]
           DavorZ  =T_Zeit[idx-1]
           DanachL = ""
           DanachZ = ""
           break
         else
           DavorL  =T_Link[idx-1]
           DavorZ  =T_Zeit[idx-1]
           DanachL = T_Link[idx+1]
           DanachZ = T_Zeit[idx+1]
           break
         end
         break
       end
       DavorL  = "???"
       DavorZ  = "???"
       DanachL = "???"
       DanachZ = "???"
     end
     Ausgabe = mw.ustring.gsub(Ausgabe,'{DavorL}',DavorL)
     Ausgabe = mw.ustring.gsub(Ausgabe,'{DavorZ}',DavorZ)
     Ausgabe = mw.ustring.gsub(Ausgabe,'{DanachL}',DanachL)
     Ausgabe = mw.ustring.gsub(Ausgabe,'{DanachZ}',DanachZ)
     Ausgabe = mw.ustring.gsub(Ausgabe,'{Titel}',Titel)
     return Ausgabe
   end
--
 return Leiste