Difference between revisions of "Lunarpedia:Autostub3/Source"

From Lunarpedia
Jump to: navigation, search
(source code that created the incompletely installed A list)
 
(Redirecting to new location at ExoDictionary)
Line 1: Line 1:
Source code as of the partially successful execution that stopped after 327 entries.
+
#REDIRECT [[exd:ExoDictionary:Source]]
 
 
<PRE>
 
#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#
 
#                                                #
 
# PreAutostub 3                                  #
 
#                                                #
 
# A specialized tool to feed a specific group of  #
 
# HTML sources into Autostub3                    #
 
#                                                #
 
# PUBLIC DOMAIN                                  #
 
#                                                #
 
#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#
 
 
 
TESTNO = "Gamma_A" #? lost count here
 
 
 
#Parser
 
def Parser(List):
 
    #Setup variables and buffers
 
    ListPosition = 0  # position in List; forgot why I needed this
 
    TagID  = ""      # buffer for the current tag
 
    LinkID = ""      # buffer for the link name
 
    Name  = ""      # this is hopefully the correct name for the article
 
    Output = ""      # output text
 
    mode  = "Text"  # what mode we're in
 
    Flag  = ""      # Is this article flagged for something?
 
    Named  = 0        # Is this already named?
 
    Defno  = 1        # Which definition?
 
   
 
    #Loop
 
    for q in List:
 
        # Text Mode -- dumps text directly to output buffer until put into
 
        # another mode; ends with a '<' and switches to tag mode
 
        if mode == "Text":
 
          if q == "<":
 
              mode = "Tag"
 
              TagID = ""
 
          else: Output += q
 
       
 
        # Tag mode -- stores text into TagID buffer; ends with a '>',
 
        # identifies the ID buffer and switches to the appropriate mode or
 
        # outputs the appropriate text and returns to Text mode.
 
        # 'A' -- enter A mode
 
        # 'STRONG' -- enter Strong mode
 
        # 'I' or '/I' -- output "''"
 
        # 'B' or '/B' -- output "'''"
 
        # 'MATH' or '/MATH' -- output '<math>' or '</math>'
 
        # 'SUP' or '/SUP' -- output '<sup>' or '</sup>'
 
        # 'SUB' or '/SUB' -- output '<sub>' or '</sub>'
 
        # 'DD' -- output '<BR/><BR/>'
 
        # 'BR' or 'BR/' -- output '<BR/>'
 
        # 'CITE' or '/CITE' -- output 'CITE' or '/CITE'
 
        # 'IMG' -- set missing image tag; return name of missing image
 
        # P -- replace with nothing
 
        # unknown: return verbatim in angle brackets and switch to Text mode
 
        elif mode == "Tag":
 
            if q == ">":
 
                if ReadTag(TagID) == "A":
 
                  mode = "A"
 
                elif ReadTag(TagID) == "STRONG":   
 
                    if not Named: 
 
                      mode = "Strong"
 
                    else:
 
                        mode = "End" 
 
                        Output += "'''" 
 
                elif ReadTag(TagID) == "I":
 
                    Output += "''"
 
                    mode = "Text" 
 
                elif ReadTag(TagID) == "B":
 
                    Output += "'''"
 
                    mode = "Text" 
 
                elif ReadTag(TagID) == "/I":
 
                    Output += "''"
 
                    mode = "Text" 
 
                elif ReadTag(TagID) == "/B":
 
                    Output += "'''"
 
                    mode = "Text" 
 
                elif ReadTag(TagID) == "CITE":
 
                    Output += "<ref>"
 
                    mode = "Text" 
 
                    Flag += "R"
 
                elif ReadTag(TagID) == "/CITE":
 
                    Output += "</ref>"
 
                    mode = "Text" 
 
                elif ReadTag(TagID) == "/A":
 
                    mode = "Text"
 
                elif ReadTag(TagID) == "P":
 
                    Output += "<BR/>"
 
                    mode = "Text"
 
                elif ReadTag(TagID) == "MATH":
 
                    Output += "<"+TagID.lower()+">"
 
                    mode = "Text" 
 
                elif ReadTag(TagID) == "/MATH":
 
                    Output += "</math>"
 
                    mode = "Text" 
 
                elif ReadTag(TagID) == "DD":
 
                    Output += "<BR/>" # '''"+str(Defno)+".'''"
 
                    Defno += 1
 
                    mode = "Text" 
 
                elif ReadTag(TagID) == "IMG":
 
                    Output += "'''Missing Image:"+TagID+"'''"
 
                    mode = "Text"
 
                    Flag += "I"
 
                else:
 
                    Output += "<"+TagID+">"
 
                    mode = "Text"
 
            else: TagID += q
 
           
 
        # A mode -- stores text into LinkID buffer; ends with a '<', outputs
 
        # a Wikilink version of the text accumilated in its buffer.
 
        elif mode == "A":
 
            if q == "<":
 
                if LinkID != "":
 
                  Output += "[["+CapIt(LinkID)+"|"+LinkID+"]]"
 
                  mode = "End"
 
                  LinkID = ""
 
            else:
 
                  LinkID += q     
 
                                       
 
        # Strong mode -- stores text into Name buffer; ends with a '<' and
 
        # capitalizes
 
        elif mode == "Strong":
 
            if q == "<":
 
                Name = CapIt(Name)
 
                mode = "End"
 
                Named = 1
 
            else:
 
                  Name += q     
 
                                               
 
        # Weak mode -- when the boson is hit by a neutrino it changes the
 
        # flavor of the nearest... Oh. Sorry, wrong model.
 
       
 
        # End mode -- ignores all text until the ending '>' is recieved;
 
        # switches to Text mode.  Nested tags are not supported and it is
 
        # assumed that any new tag is the correct end tag.
 
        elif mode == "End":
 
            if q == ">":
 
                mode = "Text"
 
                                               
 
        # Um, what mode are we in again?       
 
        else: raise TypeError, "Parser internal error: WTF is "+mode+" mode??"
 
       
 
        # Incriment ListPosition
 
        # Q: Do I still need this or did I eliminate its usefulness?
 
        ListPosition += 1
 
   
 
    return [Output, Name, Flag]
 
 
 
def KingMe(stringy):
 
    '''capitalizer that doesn't uncapitalize'''
 
    return stringy[0].upper()+stringy[1:]
 
 
 
def ReadTag(rawtext):
 
    # should return the leftmost part of the string in SCREAMING CAPITALS.
 
    return rawtext.split(' ',1)[0].upper().strip('\\. ')
 
 
 
def CapIt(Name):
 
    # Needs to consistently return a Capitalized Form of whatever name is
 
    # plugged into it
 
    Name    = Name.split()
 
    CapName = ""
 
    Terms  = 0
 
    for q in Name:
 
        if Terms == 0:
 
          CapName = KingMe(q.strip(',.'))
 
          Terms = 1
 
        else:
 
            CapName = CapName + " " + KingMe(q.strip(',.'))
 
    return CapName 
 
 
 
def FindRedir(gunk):
 
    link      = []
 
    foundlink = 0
 
    buffer    = ""
 
    mode      = "ignore"
 
    Count    = 0 # was added only for debugging
 
    Modemap  = "" # also added only for debugging
 
    for q in gunk:
 
        if mode == "ignore":
 
          Modemap += "i"
 
          if q == "[":
 
              mode = "maybe"
 
        elif mode == "maybe":
 
            Modemap += "m"
 
            if q == "[":
 
                mode = "link"
 
            else: mode = "ignore" #; print "FAILED LINK"
 
        elif mode == "link":
 
            Modemap += "L"
 
            if ((q == "|") or (q == "]")):
 
                foundlink += 1
 
                mode = "ignore"         
 
                link += [buffer]
 
                buffer = ""
 
                # print "found link at "+str(Count)
 
            else: buffer += q
 
        Count += 1   
 
    #print Modemap   
 
    #print "foundlink ==", foundlink, link
 
       
 
    if foundlink:
 
      if len (link) > 1:
 
          # print link
 
          themax = 0    # length of longest
 
          theout = None # which is longest
 
          for q in link:
 
              # print len(q), themax
 
              if len(q) > themax:
 
                themax=len(q)
 
                theout = q
 
          # print theout
 
          return theout 
 
      else: return link[0]
 
    else: return None   
 
 
 
 
 
#Get raw html
 
#RawML = raw_input()
 
 
 
RawML = ""
 
 
 
tsv=open('/home/Luna/Raw_SP-7_A.txt')
 
RawML += tsv.read()
 
tsv.close()
 
 
 
#/home/Luna/Raw_SP-7_B.txt
 
 
 
#tsv=open('/home/Luna/Raw_SP-7_B.txt_')
 
#RawML += tsv.read()
 
#tsv.close()
 
 
 
#
 
#tsv=open('/home/Luna/Raw_SP-7_C.txt_')
 
#RawML += tsv.read()
 
#tsv.close()
 
 
 
 
 
 
 
#Parse Page into slices using <DT> tags
 
RawList = RawML.split('<DT>')
 
 
 
 
 
#Create ProtoArticles and Redirects and stuff them full of proto-articles
 
ProtoArticles = []
 
Redirects = []
 
bailout = 0
 
punchout = 0
 
for q in RawList:
 
    if q != "":
 
      artie = Parser(q)
 
      if artie[0].count("constellation"):
 
          print "constellation check removing entry:",artie[1]
 
      elif (artie[0].count('=',0,5) or artie[0].upper().count('SEE',0,20)):
 
            #print artie
 
            artie2 = FindRedir(artie[0])
 
            #print artie2
 
            if artie2:
 
              if  artie[1] == "ADF (abbr)": artie[1] = "ADF"           
 
              elif artie[1] == "ADP (abbr)": artie[1] = "ADP"           
 
              elif artie[1] == "AFC (abbr)": artie[1] = "AFC"           
 
              elif artie[1] == "Andromeda (abbr And Andr)": artie[1] = "Andromeda"           
 
              elif artie[1] == "Antlia (abbr Ant Antl.)": artie[1] = "Antlia"           
 
              elif artie[1] == "APU (abbr)": artie[1] = "APU"           
 
              elif artie[1] == "AU (abbr)": artie[1] = "AU"           
 
              elif artie[1] == "Atomic Mass Unit (abbr Amu)": artie[1] = "Atomic Mass Unit"           
 
              elif artie[1] == "Atomic Weight Unit (abbr Awu)": artie[1] = "Atomic Weight Unit"           
 
              elif artie[1] == "Anti-g Suit": artie[1] = "Anti G Suit"           
 
              elif artie[1] == "": artie[1] = ""           
 
              elif artie[1] == "": artie[1] = ""           
 
              elif artie[1] == "": punchout = 1
 
             
 
              #table for collections and bailouts
 
              if not punchout: Redirects += [(artie[1],artie2)]
 
              else: punchout = 0
 
           
 
          #print "artie2",artie2
 
      #print Parser(q)[2]
 
      #print "*****"
 
      else:
 
            #name patch list
 
            if  artie[1] == "Acoustic Velocity (": artie[1] = "Acoustic Velocity"           
 
            elif artie[1] == "(abbr ADC)": artie[1] = "ADC" 
 
            elif artie[1] == "AND-NOT Gate = Exclusive OR Circuit": bailout = 1 
 
            elif artie[1] == "Angular Acceleration (": artie[1] = "Angular Acceleration" 
 
            elif artie[1] == "Angular Velocity (": artie[1] = "Angular Velocity" 
 
            elif artie[1] == "Astronomical Unit (abbr AU)": artie[1] = "Astronomical Unit" 
 
            elif artie[1] == "Atomic Weight (abbr At Wt.)": artie[1] = "Atomic Weight" 
 
            elif artie[1] == "Automatic Direction Finder (abbr ADF)": artie[1] = "Automatic Direction Finder" 
 
            elif artie[1] == "Automatic Frequency Control (abbr AFC)": artie[1] = "Automatic Frequency Control" 
 
            elif artie[1] == "Automatic Gain Control (abbr AGC)": artie[1] = "Automatic Gain Control" 
 
            elif artie[1] == "Auxiliary Power Unit (abbr APU)": artie[1] = "Auxiliary Power Unit" 
 
            elif artie[1] == "Axis (plural Axes)": artie[1] = "Axis" 
 
            elif artie[1] == "Acceleration Of Gravity (": artie[1] = "Acceleration Of Gravity" 
 
            elif artie[1] == "Air Position Indicator (abbr API)": artie[1] = "Air Position Indicator" 
 
            elif artie[1] == "[[]]": bailout = 1 
 
            elif artie[1] == "Alphanumeric (alphabet Plus Numeric)": artie[1] = "Alphanumeric" 
 
            elif artie[1] == "Ampere (abbr A)": artie[1] = "Ampere" 
 
            elif artie[1] == "AND Gate And Gate": artie[1] = "AND Gate" 
 
            elif artie[1] == "Anti-matter": artie[1] = "Antimatter" 
 
            elif artie[1] == "Anti-particle": artie[1] = "Antiparticle" 
 
            elif artie[1] == "": bailout = 1 
 
            elif artie[1] == "Alga (plural Algae)": artie[1] = "Algae" 
 
            elif artie[1] == "B��y Chair": artie[1] = "Bárány Chair" 
 
            elif artie[1] == "Barn (Abbr B)": artie[1] = "Barn" 
 
            elif artie[1] == "(abbr BT Sequencing)": artie[1] = "BT Sequencing" 
 
            elif artie[1] == "Baum�scale (abbr Be)": artie[1] = "Baumé scale" 
 
            elif artie[1] == "Bernoulli Law Or Bernoulli Theorem": artie[1] = "Bernoulli's Law" 
 
            elif artie[1] == "Bluntness (": artie[1] = "Bluntness" 
 
            elif artie[1] == "Boiling Point (abbr Bp)": artie[1] = "Boiling Point" 
 
            elif artie[1] == "Bohr Magneton Electronic Bohr Magneton": artie[1] = "Bohr Magneton" 
 
            elif artie[1] == "Boltzmann Constant (symbol": artie[1] = "Boltzmann Constant" 
 
            elif artie[1] == "Btu (abbr)": artie[1] = "BTU" 
 
            elif artie[1] == "Cae Cael": bailout = 1
 
            elif artie[1] == "Calorie (abbr Cal)": artie[1] = "Calorie" 
 
            elif artie[1] == "Caml": bailout = 1 
 
            elif artie[1] == "Cam Caml": bailout = 1
 
            elif artie[1] == "Cap Capr": bailout = 1 
 
            elif artie[1] == "Car Cari": bailout = 1 
 
            elif artie[1] == "Cet Ceti": bailout = 1 
 
            elif artie[1] == "Cha Cham": bailout = 1 
 
            elif artie[1] == "Cir Circ": bailout = 1 
 
            elif artie[1] == "CMa C Maj": bailout = 1 
 
            elif artie[1] == "Carrier Wave (abbr Cw)": artie[1] = "Carrier Wave" 
 
            elif artie[1] == "Cathode-ray Tube (abbr CRT)": artie[1] = "Cathode Ray Tube" 
 
            elif artie[1] == "Cathode-ray Oscilloscope": artie[1] = "Cathode Ray Oscilloscope" 
 
            elif artie[1] == "Celsius Temperature Scale (abbr C)": artie[1] = "Celsius Temperature Scale" 
 
            elif artie[1] == "Centigrade Temperature Scale (abbr C)": artie[1] = "Centigrade Temperature Scale" 
 
            elif artie[1] == "Centimeter (abbr Cm)": artie[1] = "Centimeter" 
 
            elif artie[1] == "Centimeter-gram-second System (abbr Cgs)": artie[1] = "Centimeter-gram-second System" 
 
            elif artie[1] == "Centipoise (abbr Cp)": artie[1] = "Centipoise" 
 
            elif artie[1] == "Cermet [ceramic + Metal]": artie[1] = "Cermet" 
 
            elif artie[1] == "Circle Of Equal Probability (abbr CEP)": artie[1] = "Circle Of Equal Probability" 
 
            elif artie[1] == "Circular Dispersion (abbr CD)": artie[1] = "Circular Dispersion" 
 
            elif artie[1] == "Co": artie[1] = "Co (prefix)" 
 
            elif artie[1] == "Coefficient (abbr Coeff)": artie[1] = "Coefficient" 
 
            elif artie[1] == "Coherent Oscillator (abbr Coho)": artie[1] = "Coherent Oscillator" 
 
            elif artie[1] == "Comes (plural Comites)": artie[1] = "Comes" 
 
            elif artie[1] == "Continuous Waves (abbr CW)": artie[1] = "Continuous Waves" 
 
            elif artie[1] == "CMi C Min": bailout = 1 
 
            elif artie[1] == "Cnc Canc": bailout = 1 
 
            elif artie[1] == "Colm": bailout = 1 
 
            elif artie[1] == "Com Coma": bailout = 1 
 
            elif artie[1] == "Copy": bailout = 1 
 
            elif artie[1] == "Cor A": bailout = 1 
 
            elif artie[1] == "Cor B": bailout = 1 
 
            elif artie[1] == "CrA Cor A": bailout = 1 
 
            elif artie[1] == "Coolant (": artie[1] = "Coolant" 
 
            elif artie[1] == "Correlation Tracking And Ranging (abbr Cotar)": artie[1] = "Correlation Tracking And Ranging" 
 
            elif artie[1] == "Correlation Tracking And Triangulation (abbr Cotat)": artie[1] = "Correlation Tracking And Triangulation" 
 
            elif artie[1] == "Coulomb (abbr C)": artie[1] = "Coulomb" 
 
            elif artie[1] == "Corv": artie[1] = "" 
 
            elif artie[1] == "Corvus": artie[1] = "" 
 
            elif artie[1] == "CRT (abbr)":  bailout = 1
 
            elif artie[1] == "Curie (abbr C)": artie[1] = "Curie" 
 
            elif artie[1] == "Caelum (abbr Cae Cael)": artie[1] = "Caelum" 
 
            elif artie[1] == "Bit Rate": artie[1] = "Bitrate" 
 
            elif artie[1] == "Black Body Blackbody": artie[1] = "Black Body" 
 
            elif artie[1] == "Black-body Radiation": artie[1] = "Black Body Radiation" 
 
            elif artie[1] == "Body Of Revolution": artie[1] = "Body of Revolution" 
 
            elif artie[1] == "": artie[1] = "" 
 
            elif artie[1] == "CrB Cor B": bailout = 1 
 
            elif artie[1] == "Crt Crat": bailout = 1 
 
            elif artie[1] == "Cruc": bailout = 1 
 
            elif artie[1] == "Crv Corv": bailout = 1 
 
            elif artie[1] == "Cvn C Ven": bailout = 1 
 
            elif artie[1] == "Cyg Cygn": bailout = 1 
 
            elif artie[1] == "Aps Apus": bailout = 1 
 
            elif artie[1] == "Aql Aqil": bailout = 1 
 
            elif artie[1] == "Ari Arie": bailout = 1 
 
            elif artie[1] == "Aur Auri": bailout = 1
 
            #elif artie[1] == "": artie[1] = "" 
 
            #elif artie[1] == "": artie[1] = "" 
 
            #elif artie[1] == "": artie[1] = "" 
 
            #elif artie[1] == "": artie[1] = "" 
 
            #elif artie[1] == "": artie[1] = "" 
 
            #elif artie[1] == "": artie[1] = "" 
 
            #elif artie[1] == "": artie[1] = "" 
 
            #elif artie[1] == "": artie[1] = "" 
 
            elif artie[1] == "Ares": bailout = 1 
 
            #elif artie[1] == "": bailout = 1 
 
            #elif artie[1] == "": bailout = 1 
 
            #elif artie[1] == "": bailout = 1 
 
            #elif artie[1] == "": bailout = 1 
 
            #elif artie[1] == "": bailout = 1 
 
            #elif artie[1] == "": bailout = 1 
 
 
            #add to final list Acceleration Of Gravity (
 
            if not bailout: ProtoArticles += [artie]
 
            else: bailout = 0
 
           
 
            #Redirect-Creation-O-Mat
 
            if artie[1].count(" "):
 
              Redirects += [[artie[1].capitalize(),"#REDIRECT: [["+artie[1]+"]]"]]
 
              ##print "creating: "+artie[1].capitalize()+" -- #REDIRECT: [["+artie[1]+"]]"
 
 
 
print len(ProtoArticles), "articles"
 
print len(Redirects), "redirects"
 
 
 
##qqq=0
 
##for q in ProtoArticles:
 
##    if q[1] == "Aurora": print "aurora is",qqq
 
##    if q[1] == "Absolute Magnitude": print "absolute magnitude is",qqq
 
##    qqq += 1
 
 
 
 
 
#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#
 
#                              #
 
# Definition Autostub Generator #
 
#                              #
 
# Public Domain                #
 
#                              #
 
#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#
 
 
 
#                                                    #
 
# from PreAutostub3:                                  #
 
#                                                    #
 
# ProtoArticles (article text, article name, flags)  #
 
# Redirects (redirect name, redirect to this article) #
 
#                                                    #
 
 
 
def XMLproof(textish):
 
    outp = ""
 
    for q in textish:
 
        if  q == "<": outp += "&lt;"
 
        elif q == ">": outp += "&gt;"
 
        elif q == "&": outp += "&amp;"
 
        elif q == '"': outp += "&quot;"
 
        ##elif q == ":": outp += "%3A"
 
        else: outp += q
 
    return outp
 
 
 
 
 
def StartXML():
 
    out  = [['<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.3/ http://www.mediawiki.org/xml/export-0.3.xsd" version="0.3" xml:lang="en">\n']]
 
    out +=  ['    <siteinfo>\n']
 
    out +=  ['        <sitename>Lunarpedia</sitename>\n']
 
    out +=  ['    </siteinfo>\n']
 
    return out
 
 
 
def EndXML():
 
    out  = [['</mediawiki>\n']]
 
    return out
 
 
 
def ArtXML(title, contrib, date, text):
 
    '''XML markup for article in file
 
    title --  title of article
 
    contrib -- name of script (ie Autostub2)
 
    text --    the article
 
    '''
 
    out  = [['    <page>\n']]
 
    out +=  ['        <title>'+title+'</title>\n']
 
    out +=  ['        <revision>\n']
 
    out +=  ['            <timestamp>'+date+'</timestamp>']
 
    out +=  ['            <contributor>\n']
 
    out +=  ['                <username>'+contrib+'</username>\n']
 
    out +=  ['            </contributor>\n']
 
    ##out += ['            <text xml:space="preserve">'+text+'</text>']
 
    out +=  ['            <text xml:space="preserve">']
 
    ##print text
 
    out +=  text
 
    out +=  ['</text>\n']
 
    out +=  ['        </revision>\n']
 
    out +=  ['    </page>\n']
 
    return out
 
 
 
def linebrk(listish):
 
    newlist = []
 
    for q in listish:
 
        newlist += [q+"\n"]
 
    return newlist
 
 
 
def Stringify(listish):
 
    stringish = ""
 
    for q in listish:
 
        if type(q) == type('str'):
 
          stringish += q
 
          #print "str"
 
        elif type(q) == type([]):
 
          stringish += Stringify(q)
 
          #print "list"
 
        else:
 
            print type(q)
 
            print q
 
            raise TypeError, "non-string non-list!!!"
 
    return stringish 
 
 
 
 
 
 
 
 
 
def dodef(thisentry):
 
    """Create stub article from sequence
 
    """
 
    global TESTNO
 
    #                                   
 
    # 0 -- body of definition article   
 
    # 1 -- name of article               
 
    # 2 -- flags                         
 
    #      I: missing image             
 
    #      R: needs references section   
 
    #                                   
 
    #%#%#%#%#%#%#%#%#%#%#%#%#%#%%#%#%#%#%#                           
 
                                        #                           
 
                                        #                           
 
    #%#%#%#%#%#%#%#%#%#%#%#%#%#%%#%#%#%#%#                           
 
    #                                   
 
    # start generating the article here: 
 
    #                                   
 
 
 
    to_out = []
 
    ##to_out  = ["{{Script Test}}"]   
 
    to_out += ["{{Autostub}}"]
 
    to_out += ["{{Initial Proof Needed}}"]
 
    ##print thisentry[0]
 
    ##print "*****"
 
    ##print thisentry[1]
 
    ##print "*****"
 
    ##print thisentry[2]
 
 
 
    to_out += ["'''"+thisentry[1]+"'''"]
 
    to_out += [thisentry[0]]
 
    #print "*****"
 
    #print to_out
 
   
 
    to_out += ["==References=="]
 
    to_out += ["''This article is based on NASA's [[NASA SP-7|Dictionary of Technical Terms for Aerospace Use]]''"]
 
 
 
    if thisentry[2].count("R"):
 
      to_out += ["<references/>"]
 
 
 
    to_out += ["[[Category%3ADefinitions]]"] 
 
    to_out += ["[[Category%3ANASA SP-7]]"]
 
    if thisentry[2].count("I"):
 
      to_out += ["[[Category%3ADefinitions with Missing Images]]"]
 
 
 
 
 
    ##to_out += [""]
 
    ##to_out += ["<!-- Generated by a gamma candidate version of Autostub3 (Test "+TESTNO+") -->"]
 
 
 
    to_out = linebrk(to_out)
 
 
 
    return to_out
 
 
 
 
 
def doredir(thisentry):
 
    """Create redirect from two item sequence
 
    """
 
    #                                   
 
    # 0 -- name of redirect             
 
    # 1 -- redirect to this article     
 
    #                                   
 
    #%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#                           
 
                                          #                           
 
                                          #                           
 
    #%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#                           
 
    #                                   
 
    # start generating the redirect here:
 
    #                                   
 
 
 
    return ["#REDIRECT: [["+thisentry[1]+"]]"]
 
 
 
 
 
def doare(tup):
 
    proofme = doredir(tup)
 
    proofed = []
 
    for q in proofme:
 
        proofed += XMLproof(q)
 
    return ArtXML(tup[0], "Autostub3", "2007-03-07T18:00:00Z", proofed)   
 
 
 
def doanart(tup):
 
    proofme = dodef(tup)
 
    proofed = []
 
    for q in proofme:
 
        proofed += XMLproof(q)
 
    return ArtXML(tup[1], "Autostub3", "2007-03-07T18:00:00Z", proofed)   
 
 
 
execute = StartXML()
 
 
 
for q in ProtoArticles:
 
    execute += doanart(q)
 
 
 
for q in Redirects:
 
    execute += doare(q)
 
 
 
##test4 += doanart(ProtoArticles[600])
 
##test4 += doanart(ProtoArticles[690])
 
##test4 += doare(Redirects[130])
 
##test4 += doare(Redirects[140])
 
##test4 += doare(Redirects[159])
 
 
 
##print doare(ProtoArticles[50])
 
 
 
##print "*****"
 
 
 
##print
 
 
 
##print dodef(ProtoArticles[117])
 
 
 
execute += EndXML()
 
 
 
execute = Stringify(execute)
 
 
 
##print test4
 
 
 
 
 
do_xml=open("/home/Luna/autostub3test"+TESTNO+".xml", 'w')
 
do_xml.write(execute)
 
do_xml.close()
 
 
 
#create and sort table to avoid name collisions
 
##testlist = []
 
##redund = []
 
##
 
##for q in ProtoArticles:
 
##    testlist += ["[["+q[1]+"]] article<BR/>"]
 
##    redund += [q[1]]
 
##
 
##for q in Redirects:
 
##    testlist += ["[["+q[0]+"]] redirect<BR/>"]
 
##    redund += [q[0]]
 
##
 
##print "sorting"
 
##testlist.sort()
 
##redund.sort()
 
##
 
###check for interproject name collisions
 
##past = "configio.$$$"
 
##for q in redund:
 
##    if q == past: print "Collision:",q
 
##    past = q
 
##
 
##print "sorted:"
 
##print
 
##for q in testlist: print q
 
</PRE>
 

Revision as of 01:04, 2 April 2007