Package net.coljac.pirates.data

Source Code of net.coljac.pirates.data.LinkDataImporter

package net.coljac.pirates.data;

import net.coljac.util.FileTools;
import net.coljac.pirates.CardDatabase;
import net.coljac.pirates.Card;
import net.coljac.pirates.Crew;

import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.io.IOException;

/**
* By Colin Jacobs, colin@q9software.com
* Date: Apr 2, 2006
*/
public class LinkDataImporter {

  private static Map<String, String> links = new HashMap<String, String>();

//  static String regex = "(Crew Link: [^<]*)<br:";
  static String regex = "<SPAN class=TwelvepxUnderlineLink><b>[^<]*</b>.*?Crew Link: ([^<]*)";
  static Pattern pattern = Pattern.compile(regex);


  public static void main2(String[] args) {
    String regex = ".*?([A-z]+) -> ([A-z]+)";
    Pattern p = Pattern.compile(regex);
    String input = "some stuff Col -> dave, Simon -> mike";
    Matcher m = p.matcher(input);
    while(m.find()) {
      System.out.println(m.group(1) + ": " + m.group(2));
    }

  }

  public static void main(String[] args) {
    process("linkdata.txt");
    process("linkdata2.txt");
    process("linkdata3.txt");
    process("linkdata4.txt");
    process("linkdata5.txt");
    try {
      CardDatabase db = CardDatabase.init("cards.db");
      for(String name: links.keySet()) {
        List<Card> cards = db.getCardsByName(name);
        if(cards.size()==0) {
          System.out.println("Can't find " + name);
        } else if (cards.size()==1) {
          ((Crew)cards.get(0)).setLink(links.get(name));
        } else {
          System.out.println("Several results " + name);
        }

      }
      db.save();

    } catch (IOException e) {
      e.printStackTrace();
    }

  }

  static void process(String file) {
    String in = FileTools.getFileContentsAsString(file);
    Matcher m = pattern.matcher(in);
    while(m.find()) {
      processLine(m.group());
    }
  }

  static String regex2= ".*<SPAN class=TwelvepxUnderlineLink><b>([^<]*)</b>.*?Crew Link: ([^<]*)";
  static Pattern pattern2 = Pattern.compile(regex2);

  private static void  processLine(String in) {
    Matcher m = pattern2.matcher(in);
    if(m.find()) {
      links.put(m.group(1), m.group(2));
      System.out.println(m.group(1) + " -> " +  m.group(2));
    }
  }

}
TOP

Related Classes of net.coljac.pirates.data.LinkDataImporter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.