camp's over
This commit is contained in:
		
							parent
							
								
									c7ab5f2662
								
							
						
					
					
						commit
						9fa9bf6a75
					
				
					 1 changed files with 0 additions and 0 deletions
				
			
		
							
								
								
									
										81
									
								
								examples/camp-neinomat-workshops
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										81
									
								
								examples/camp-neinomat-workshops
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,81 @@
 | 
			
		|||
#!/usr/bin/env ruby
 | 
			
		||||
$:.unshift('../vendor/ruby-mediawiki/lib')
 | 
			
		||||
require 'mediawiki/dotfile'
 | 
			
		||||
@wiki = MediaWiki.dotfile(nil,'camp')
 | 
			
		||||
 | 
			
		||||
def parse_template(title, template)
 | 
			
		||||
  template_re = Regexp.new("\\\{\\\{" + template + "(.*?)\\\}\\\}", Regexp::MULTILINE)
 | 
			
		||||
 | 
			
		||||
  info = []
 | 
			
		||||
 | 
			
		||||
  if (scanned = @wiki.article(title).text.scan(template_re)) != []
 | 
			
		||||
    scanned.each do |m|
 | 
			
		||||
      fields = {}
 | 
			
		||||
      fields_string = m[0]
 | 
			
		||||
 | 
			
		||||
      inlink = 0
 | 
			
		||||
      field = ""
 | 
			
		||||
      fields_string += "|" unless fields_string.match(/\|$/)
 | 
			
		||||
      fields_string.split(//).each do |c|
 | 
			
		||||
        if c == "|" && inlink == 0
 | 
			
		||||
          (key, value) = field.split(/=/)
 | 
			
		||||
          value.chomp! if value
 | 
			
		||||
          fields[key] = value
 | 
			
		||||
          field = ""
 | 
			
		||||
        else
 | 
			
		||||
          inlink += 1 if c == "["
 | 
			
		||||
          inlink -= 1 if c == "]"
 | 
			
		||||
          field += c
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      info << fields
 | 
			
		||||
    end
 | 
			
		||||
  else
 | 
			
		||||
    $stderr.print "Template #{template} not found in #{title}!\n"
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
  info
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
list = "
 | 
			
		||||
<!-- 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 _   _ _____ _     _     ___    
 | 
			
		||||
| | | | ____| |   | |   / _ \   
 | 
			
		||||
| |_| |  _| | |   | |  | | | |  
 | 
			
		||||
|  _  | |___| |___| |__| |_| |  
 | 
			
		||||
|_| |_|_____|_____|_____\___( ) 
 | 
			
		||||
                            |/  
 | 
			
		||||
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
''This is an auto-generated list - please use [[Template:Workshop]] (description is there) to include your workshop here. Contact [[User:Neingeist|Neingeist]] if you have problems or questions (Jabber is preferred.)''
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
@wiki.category("Workshop").articles.each do |article|
 | 
			
		||||
  if article != "Template:Workshop" && article != "List of workshops" && article != "ExampleVille"
 | 
			
		||||
 | 
			
		||||
    workshops = parse_template(article, "Workshop")
 | 
			
		||||
 | 
			
		||||
    workshops.each do |workshop|
 | 
			
		||||
      list += "* '''[[#{article}|#{workshop["what"]}]]''' "
 | 
			
		||||
      if workshop["day"] != ""
 | 
			
		||||
        list += "Day " + workshop["day"] + "/" + workshop["start"]
 | 
			
		||||
      end
 | 
			
		||||
      list += "\n"
 | 
			
		||||
      list += ":''#{workshop["where"]} ''\n"
 | 
			
		||||
      list += "::#{workshop["abstract"]}\n"
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
list += "\n[[Category:Workshop]]\n"
 | 
			
		||||
 | 
			
		||||
puts list
 | 
			
		||||
a = @wiki.article("List of workshops")
 | 
			
		||||
a.text = list
 | 
			
		||||
a.submit("wiki ex machina")
 | 
			
		||||
a.protect("Automatically generated article")
 | 
			
		||||
		Reference in a new issue