Ignore:
Timestamp:
01/13/25 14:18:51 (2 days ago)
Author:
Kristijan <kristijanzafirovski26@…>
Branches:
master
Parents:
0a7426e
Message:

Added frontend functionality for changes and refactored code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • backend/GlobeGuru-backend/src/main/java/ScraperThread.java

    r0a7426e rdf7f390  
    2929public class ScraperThread extends Thread {
    3030    private String url;
    31     private ConcurrentLinkedQueue<Option> uniqueOptions;
    3231    private CountDownLatch latch;
    33     private Set<Option> optionSet;
    34 
    35     public ScraperThread(String url, ConcurrentLinkedQueue<Option> optionsQueue, CountDownLatch latch) {
     32
     33    public ScraperThread(String url, CountDownLatch latch) {
    3634        this.url = url;
    37         this.uniqueOptions = optionsQueue;
    3835        this.latch = latch;
    39         this.optionSet = new HashSet<>();
    4036    }
    4137
     
    8682                    for (Element div : childDivs) {
    8783                        String data = div.outerHtml();
    88                         Option option = optionParser(data,numPeople);
     84                        Option option = optionParser(data, numPeople);
    8985                        if (option != null) {
    90                             Option existingOption = DatabaseUtil.findOption(option);
    91                             if (existingOption != null) {
    92                                 if (existingOption.equals(option)) {
    93                                     option.setPriceChanged(true);
    94                                     option.setNewPrice(option.getPrice());
    95                                 }
    96                                 DatabaseUtil.updateOptionInDatabase(option);
    97                             } else if (optionSet.add(option)) {
    98                                 uniqueOptions.add(option);
    99                                 option.setId(DatabaseUtil.saveOptionToDatabase(option));
    100                                 scrapeOptionInfo(option);
    101                                 System.out.println("Parsed " + option);
    102                             }
     86                            option.setId(DatabaseUtil.saveOptionToDatabase(option));
     87                            scrapeOptionInfo(option);
     88                            System.out.println("Parsed " + option);
    10389                        }
    10490                    }
     
    115101                    for (Element div : childDivs) {
    116102                        String data = div.outerHtml();
    117                         Option newOption = optionParser(data,numPeople);
     103                        Option newOption = optionParser(data, numPeople);
    118104                        if (newOption != null) {
    119                             if (optionSet.add(newOption)) {
    120                                 uniqueOptions.add(newOption);
    121 
    122                                 newOption.setId(DatabaseUtil.saveOptionToDatabase(newOption));
    123                                 scrapeOptionInfo(newOption);
    124                                 System.out.println("Parsed " + newOption);
    125                             }
    126                         }
    127                     }
    128 
    129         } else {
     105                            newOption.setId(DatabaseUtil.saveOptionToDatabase(newOption));
     106                            scrapeOptionInfo(newOption);
     107                            System.out.println("Parsed " + newOption);
     108                        }
     109                    }
     110                } else {
    130111                    System.out.println("Parent div not found");
    131112                }
     
    134115                System.out.println("URL not recognized for parsing.");
    135116        }
     117
    136118    }
    137119    private void scrapeOptionInfo(Option option) {
Note: See TracChangeset for help on using the changeset viewer.