Package net.sf.jmp3renamer.plugins.DoubleFinder

Examples of net.sf.jmp3renamer.plugins.DoubleFinder.Dataset


  }

  private void findDuplicates() {
    status.setText(I18N.translate("searching"));
    for (int i = 0; i < datasets.size() && running; i++) {
      Dataset dataset = (Dataset) datasets.get(i);
     
      int percent = (int) ((double) i / (double) datasets.size() * 100);
      progress.setValue(percent);

      for (int j = 0; j < datasets.size() && running; j++) {
        Dataset dataset2 = (Dataset) datasets.get(j);
        if (i == j) {
          continue;
        }

        // find duplicates via md5
        if (DoubleFinder.getProperty("use_md5").equals("true")) {
          if (dataset.getMd5sum().equals(dataset2.getMd5sum())) {
            Duplicate d;
            if (dataset.getDuplicate() != null) {
              d = dataset.getDuplicate();
            } else if (dataset2.getDuplicate() != null) {
              d = dataset2.getDuplicate();
            } else {
              d = new Duplicate();
              d.setPercentageOfReliability(100);
              dataset2.setDuplicate(d);
              d.addDuplicate(dataset2);
            }
            dataset.setDuplicate(d);
            d.addDuplicate(dataset);
            duplicates.add(d);
          }
        }

        // find duplicates via tag
        if (DoubleFinder.getProperty("use_tag").equals("true")) {
            if( !dataset.getArtist().equals("") ) {
              String artist1 = dataset.getArtist().toLowerCase();
              String artist2 = dataset2.getArtist().toLowerCase();
              int eqArtist = Utilities.percentageOfEquality(artist1, artist2);
             
              String title1 = dataset.getTitle().toLowerCase();
              String title2 = dataset2.getTitle().toLowerCase();
              int eqTitle = Utilities.percentageOfEquality(title1, title2);
             
            if( eqArtist > 80 && eqTitle > 80) {
              // soundex analysis
              int difference = -1;
              int length = 0;
              RefinedSoundex soundex = new RefinedSoundex();
              try {
                difference = soundex.difference(title1, title2);
                length = Math.max(soundex.encode(title1).length(), soundex.encode(title2).length());
              } catch (Exception e) {}
           
              double diff = (double)difference / (double)length;
              if(diff >= 0.75) {
                Duplicate d;
                if (dataset.getDuplicate() != null) {
                  d = dataset.getDuplicate();
                } else if (dataset2.getDuplicate() != null) {
                  d = dataset2.getDuplicate();
                } else {
                  d = new Duplicate();
                  d.setPercentageOfReliability( (int)(diff * 100) );
                  dataset2.setDuplicate(d);
                  d.addDuplicate(dataset2);
                }
                dataset.setDuplicate(d);
                d.addDuplicate(dataset);
                duplicates.add(d);
              }
            }
            }
        }
       
        // find duplicates via filename (levenshteindistanz)
        if (DoubleFinder.getProperty("use_filename").equals("true")) {
          String filename1 = dataset.getFilename().toLowerCase();
          String filename2 = dataset2.getFilename().toLowerCase();
          int equality = Utilities.percentageOfEquality(filename1, filename2);
          if(equality >= 80) {
            Duplicate d;
            if (dataset.getDuplicate() != null) {
              d = dataset.getDuplicate();
            } else if (dataset2.getDuplicate() != null) {
              d = dataset2.getDuplicate();
            } else {
              d = new Duplicate();
              d.setPercentageOfReliability(equality);
              dataset2.setDuplicate(d);
              d.addDuplicate(dataset2);
            }
            dataset.setDuplicate(d);
            d.addDuplicate(dataset);
            duplicates.add(d);
View Full Code Here


  private void analyzeFiles() {
    List<MyFile> files = FileManager.getInstance().getFiles();

    for (int i = 0; i < files.size() && running; i++) {
      Dataset dataset = new Dataset();
      MyFile element = (MyFile) files.get(i);
      status.setText(I18N.translate("analyzing") + element);
      int percent = (int) ((double) i / (double) files.size() * 100);
      progress.setValue(percent);

      if (DoubleFinder.getProperty("use_md5").equals("true")) {
        String md5 = MD5.calculate(element);
        dataset.setMd5sum(md5);
      }
      if (DoubleFinder.getProperty("use_tag").equals("true")) {
        DataSet tag = FileManager.getInstance().getMetaData(element);
        if(tag != null) {
            dataset.setTag(tag);
        }
      }
     
      dataset.setFile(element);
      datasets.add(dataset);
    }
    progress.setValue(100);
  }
View Full Code Here

    delete.addActionListener(this);
    popup.add(delete);
    fileList.addMouseListener(this);
    Set<Dataset> f = ((Duplicate) resultListModel.getElementAt(0)).getDatasets();
    for (Iterator<Dataset> iter = f.iterator(); iter.hasNext();) {
      Dataset element = iter.next();
      fileListModel.addElement(element);
    }
    getContentPane().add(files, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,
        GridBagConstraints.NORTHWEST, GridBagConstraints.NONE,
        new Insets(10, 10, 0, 0), 0, 0));
View Full Code Here

          Duplicate d = (Duplicate) resultListModel
              .getElementAt(index);
          Set<Dataset> f = d.getDatasets();
          fileListModel.removeAllElements();
          for (Iterator<Dataset> iter = f.iterator(); iter.hasNext();) {
            Dataset element = iter.next();
            fileListModel.addElement(element);
          }
        }
      } else {
        int index = fileList.getSelectedIndex();
        if (index >= 0) {
          Dataset d = (Dataset) fileListModel.getElementAt(index);
          infoTable.showDataset(d);
        }
      }
    }
  }
View Full Code Here

  public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand().equals("DELETE")) {
      int index = fileList.getSelectedIndex();
      if (index >= 0) {
        Dataset dataset = (Dataset) fileListModel.getElementAt(index);
        MyFile file = dataset.getFile();
        boolean deleted = file.delete();
        if (deleted) {
          fileListModel.removeElement(dataset);
          int fileIndex = FileManager.getInstance().getFiles().indexOf(
              file);
          FileManager.getInstance().removeRow(fileIndex);
          dataset.getDuplicate().removeDuplicate(dataset);
        } else {
          logger.error(I18N.translate("not_deleted"));
        }
      }
    }
View Full Code Here

TOP

Related Classes of net.sf.jmp3renamer.plugins.DoubleFinder.Dataset

Copyright © 2018 www.massapicom. 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.