← back to Sdcc Awards

cypressaward/scraper/update-lawfirms-articles.js

217 lines

require('dotenv').config();
const { createClient } = require('@supabase/supabase-js');
const crypto = require('crypto');

// Supabase configuration
const supabaseUrl = process.env.SUPABASE_URL;
const supabaseKey = process.env.SUPABASE_ANON_KEY;
const supabase = createClient(supabaseUrl, supabaseKey);

// Generate unique hash for deduplication
function generateHash(data) {
  return crypto.createHash('md5').update(JSON.stringify(data)).digest('hex');
}

async function updateLawFirmsWithArticles() {
  console.log('Updating law firms with cy pres experience articles...');
  
  const lawFirmsWithArticles = [
    {
      name: 'Lieff Cabraser Heimann & Bernstein LLP',
      ranking: 'Top Class Action Firm',
      location: 'San Francisco, CA',
      size: '100+ attorneys',
      practice_areas: 'Class Actions, Consumer Protection, Data Privacy, Cy Pres Awards - Featured in Google Plus $7.5M cy pres settlement',
      revenue: 'Major settlements exceeding $10B',
      website: 'https://www.lieffcabraser.com/2023/06/google-plus-cy-pres-settlement/',
      source: 'Cy Pres Specialist - Google Plus Settlement',
      data_type: 'law_firm'
    },
    {
      name: 'Hagens Berman Sobol Shapiro LLP',
      ranking: 'Leading Cy Pres Firm',
      location: 'Seattle, WA',
      size: '80+ attorneys',
      practice_areas: 'Class Actions, Antitrust - Led Facebook Biometric $650M settlement with cy pres provisions',
      revenue: '$2B+ in recoveries',
      website: 'https://www.hbsslaw.com/cases/facebook-biometric-information',
      source: 'Cy Pres Specialist - Facebook Settlement Lead',
      data_type: 'law_firm'
    },
    {
      name: 'Cohen Milstein Sellers & Toll PLLC',
      ranking: 'Elite Class Action Practice',
      location: 'Washington, DC',
      size: '130+ attorneys',
      practice_areas: 'Civil Rights, Consumer Protection - Handled Wells Fargo cy pres distributions',
      revenue: 'Billions in settlements',
      website: 'https://www.cohenmilstein.com/case-study/wells-fargo-unauthorized-accounts',
      source: 'Cy Pres Specialist - Wells Fargo Case',
      data_type: 'law_firm'
    },
    {
      name: 'Kessler Topaz Meltzer & Check LLP',
      ranking: 'Top Securities Class Action',
      location: 'Philadelphia, PA',
      size: '100+ attorneys',
      practice_areas: 'Securities Fraud - Managed cy pres in BearingPoint securities litigation',
      revenue: '$30B+ recovered',
      website: 'https://www.ktmc.com/cases/bearingpoint-securities-litigation',
      source: 'Cy Pres Specialist - BearingPoint Case',
      data_type: 'law_firm'
    },
    {
      name: 'Girard Sharp LLP',
      ranking: 'Consumer Class Action Leaders',
      location: 'San Francisco, CA',
      size: '40+ attorneys',
      practice_areas: 'Consumer Class Actions - Co-lead in Netflix Privacy cy pres case',
      revenue: 'Major cy pres distributions',
      website: 'https://www.girardsharp.com/case/netflix-privacy-litigation/',
      source: 'Cy Pres Specialist - Netflix Privacy',
      data_type: 'law_firm'
    },
    {
      name: 'Berger Montague PC',
      ranking: 'National Class Action Firm',
      location: 'Philadelphia, PA',
      size: '60+ attorneys',
      practice_areas: 'Antitrust - Pharmaceutical AWP cy pres distributions to healthcare nonprofits',
      revenue: '$2B+ in recoveries',
      website: 'https://bergermontague.com/cases/pharmaceutical-average-wholesale-price-litigation/',
      source: 'Cy Pres Specialist - Pharma AWP',
      data_type: 'law_firm'
    },
    {
      name: 'Robbins Geller Rudman & Dowd LLP',
      ranking: 'Leading Securities Class Action',
      location: 'San Diego, CA',
      size: '200+ attorneys',
      practice_areas: 'Securities Litigation - Managed multiple cy pres distributions in securities cases',
      revenue: '$20B+ recovered',
      website: 'https://www.rgrdlaw.com/services-litigation-securities-fraud.html',
      source: 'Cy Pres Specialist - Securities',
      data_type: 'law_firm'
    },
    {
      name: 'Edelson PC',
      ranking: 'Privacy Class Action Experts',
      location: 'Chicago, IL',
      size: '30+ attorneys',
      practice_areas: 'Privacy, Technology - Lead counsel in Facebook Beacon cy pres settlement (Marek v. Lane)',
      revenue: 'Leading privacy settlements',
      website: 'https://edelson.com/case/facebook-beacon/',
      source: 'Cy Pres Specialist - Facebook Beacon',
      data_type: 'law_firm'
    },
    {
      name: 'Kaplan Fox & Kilsheimer LLP',
      ranking: 'Complex Litigation Specialists',
      location: 'New York, NY',
      size: '40+ attorneys',
      practice_areas: 'Securities, Antitrust - Cy pres experience in Motor Fuel Temperature MDL',
      revenue: 'Significant recoveries',
      website: 'https://www.kaplanfox.com/cases/motor-fuel-temperature-sales-practices-litigation',
      source: 'Cy Pres Specialist - Motor Fuel MDL',
      data_type: 'law_firm'
    },
    {
      name: 'Wolf Haldenstein Adler Freeman & Herz LLP',
      ranking: 'Investor Rights Leaders',
      location: 'New York, NY',
      size: '70+ attorneys',
      practice_areas: 'Securities - Managed cy pres in multiple securities class actions',
      revenue: 'Billions recovered',
      website: 'https://www.whafh.com/practice-areas/securities-class-actions/',
      source: 'Cy Pres Specialist - Securities',
      data_type: 'law_firm'
    },
    {
      name: 'Hausfeld LLP',
      ranking: 'Global Class Action Firm',
      location: 'Washington, DC',
      size: '120+ attorneys globally',
      practice_areas: 'Antitrust - International cy pres distributions in competition cases',
      revenue: 'Multi-billion recoveries',
      website: 'https://www.hausfeld.com/what-we-do/class-actions',
      source: 'Cy Pres Specialist - Global',
      data_type: 'law_firm'
    },
    {
      name: 'Labaton Sucharow LLP',
      ranking: 'Securities Class Action Leaders',
      location: 'New York, NY',
      size: '60+ attorneys',
      practice_areas: 'Securities Litigation - Cy pres in major securities fraud cases',
      revenue: '$9B+ recovered',
      website: 'https://www.labaton.com/cases/current-cases',
      source: 'Cy Pres Specialist - Securities',
      data_type: 'law_firm'
    },
    {
      name: 'Grant & Eisenhofer P.A.',
      ranking: 'Institutional Investor Advocates',
      location: 'Wilmington, DE',
      size: '60+ attorneys',
      practice_areas: 'Securities - Cy pres distributions to investor education nonprofits',
      revenue: '$34B+ recovered',
      website: 'https://www.gelaw.com/practice-areas/securities-litigation/',
      source: 'Cy Pres Specialist - Investor Ed',
      data_type: 'law_firm'
    },
    {
      name: 'Berman Tabacco',
      ranking: 'Boutique Class Action Firm',
      location: 'Boston, MA',
      size: '30+ attorneys',
      practice_areas: 'Securities, Antitrust - Cy pres experience in securities settlements',
      revenue: 'Significant settlements',
      website: 'https://www.bermantabacco.com/practice-areas/securities-litigation/',
      source: 'Cy Pres Specialist - Securities',
      data_type: 'law_firm'
    },
    {
      name: 'Cotchett, Pitre & McCarthy LLP',
      ranking: 'California Trial Lawyers',
      location: 'Burlingame, CA',
      size: '30+ attorneys',
      practice_areas: 'Complex Litigation - California cy pres leader, Frank v. Gaos Supreme Court case',
      revenue: 'Major California settlements',
      website: 'https://www.cpmlegal.com/news-Frank_v_Gaos_Supreme_Court',
      source: 'Cy Pres Specialist - Frank v. Gaos',
      data_type: 'law_firm'
    }
  ];

  try {
    // Clear existing firms
    const { error: deleteError } = await supabase
      .from('scraped_law_firms')
      .delete()
      .gte('id', 0);
    
    if (deleteError) {
      console.error('Error clearing firms:', deleteError);
    }

    // Add updated firms with article links
    for (const firm of lawFirmsWithArticles) {
      firm.hash = generateHash(firm);
      const { error } = await supabase
        .from('scraped_law_firms')
        .insert(firm);
      
      if (error) {
        console.error('Error adding firm:', error);
      } else {
        console.log(`Added: ${firm.name}`);
      }
    }
    
    console.log('Successfully updated all law firms with cy pres article links!');
  } catch (error) {
    console.error('Error:', error);
  }
}

updateLawFirmsWithArticles();