package dynamic.degrees;

import dynamic.common.ContentGrabber;
import dynamic.common.FileGrabber;
import dynamic.common.HtmlStripper;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class DegreeOutputChecker {

    public static void CompareToWebsite(String fname, String target_url) throws IOException {

        System.out.print(fname + ": ");
        String output = FileGrabber.GrabFile(fname);

        // go through content areas until we find the
        int content_area = 0;
        String website = null;
        while ((website = ContentGrabber.GetWebContent(target_url, content_area++)) != "") {

            if (website.contains(ContentGrabber.content_div_tag_open)) {

                String output_stripped = HtmlStripper.StripHtml(output);
                String website_stripped = HtmlStripper.StripHtml(website);

                String[] fname_parts = fname.split("\\.");
                String fname_web = fname_parts[0] + ".web." + fname_parts[1];
                String fname_stripped = fname_parts[0] + ".stripped." + fname_parts[1];
                String fname_stripped_web = fname_parts[0] + ".stripped.web." + fname_parts[1];

                if (!output_stripped.equals(website_stripped)) {
                    System.out.println("differences identified");
                    BufferedWriter f;
                    f= new BufferedWriter(new FileWriter(fname_web));
                    f.write(website);
                    f.close();
                    f = new BufferedWriter(new FileWriter(fname));
                    f.write(output);
                    f.close();
                    f = new BufferedWriter(new FileWriter(fname_stripped));
                    f.write(output_stripped);
                    f.close();
                    f = new BufferedWriter(new FileWriter(fname_stripped_web));
                    f.write(website_stripped);
                    f.close();
                } else {
                    System.out.println("OK");
                    new File(fname).delete();
                    new File(fname_web).delete();
                    new File(fname_stripped).delete();
                    new File(fname_stripped_web).delete();
                }
                return;

            }

        }

        System.out.println(" web content not found (can't find " + ContentGrabber.content_div_tag_open);

    }

}