diff --git a/fixtures/pitchfork.com/1560196240837.html b/fixtures/pitchfork.com/1560196240837.html new file mode 100644 index 000000000..010290b4f --- /dev/null +++ b/fixtures/pitchfork.com/1560196240837.html @@ -0,0 +1,15 @@ +Lust for Youth: Lust for Youth Album Review | Pitchfork + + + + +
Skip to content

Lust for Youth

  • Sacred Bones
• 2019
6.2

Hannes Norrvide's long-running coldwave synth project breaks into the greener pastures of Depeche Mode-style new wave.

+

Coldwave never cared about you. The minimalistic, machine-driven sound that bubbled up twice in the past half-century—once in the midst of post-punk's late-1970s heyday, and again in early-2010s Brooklyn—was largely reliant on keeping its audience at bay, all but ensuring its limited shelf life. With synth lines so brittle that you could snap them over your pinky finger, hissy drum machines, and vocals that frequently bordered on atonality, coldwave was purposefully alienating. A lot of DIY or home-recorded music from this decade gained recognition from its warmth and inviting textures; in stark opposition, coldwave's practitioners rarely seemed interested in whether anyone was listening at all.

+

The subgenre's aesthetic limitations are baked in, and practically a virtue, which makes Lust for Youth's trajectory over the last three years all the more fascinating. When Swedish synth aesthete Hannes Norrvide's project emerged with his 2011 debut Solar Flare, all the marks of coldwave's sub-zero sound were present and accounted for, and it was still mostly business as usual when Loke Rahbek (who also founded the aptly-named Posh Isolation label) joined up for the following year's Sacred Bones debut Growing Seeds.

+

But as Lust for Youth persisted, there emerged signs of life after coldwave. Pomegranate from 2013—billed as a collaboration between Norrvide and Rahbek's Croatian Amor project—explored the opalescent clouds of new age; Perfect View from the same year incorporated conversational vocal samples not unlike something from the Swedish imprint Sincerely Yours. When International arrived in 2014—the fifth Lust for Youth release in the span of four years, evidence of coldwave’s one-take prolificacy—the group had expanded to a trio and tilted towards the explicitly poppier sounds of new wave, a journey they continued on 2016's Compassion.

+

Their latest, a self-titled effort, finds Lust for Youth back to a two-person setup, Rahbek having departed while Norrvide and Malthe Fischer soldier on. The paring back of personnel isn't reflected in the record's sound, though; instead, Norrvide and Fischer pick up where Compassion left off, with gleaming synths and crisp drum patterns lovingly recalling the dour, sweet-and-sour synth-pop of New Order, Depeche Mode, and their thousands of imitators.

+

Norrvide's vocals are front and center, and his voice often possesses a lovely ugliness that's alluring when cast in the right light, as when he scales the jagged pop mountains of “Adrift” or drapes himself over “Great Concerns.” Lust for Youth is at its most engaging when Norrvide and Fischer throw curveballs. They find an able collaborator in Danish musician and philosopher Soho Rezanejad, whose vocals add a glowing and gloomy texture to the slow-dance duskiness of “Fifth Terrace”; with wavering atmospherics lying under a cumulus of spoken-word, “Imola” suggests a sparser take on the starry-eyed synth fantasias of M83.

+

Otherwise, Lust for Youth trades in one kind of over-familiarity for another. The gloriously mopey sound of new wave might be novel to Norrvide and Fischer, but there's not much here that stands out in synth-pop's always-crowded field. In a sense, that's fine; Lust for Youth wear this sound well. But Lust for Youth shows they might have escaped coldwave’s dead end only to settle into a rut.

+
Back to home
+ + \ No newline at end of file diff --git a/src/extractors/custom/index.js b/src/extractors/custom/index.js index 036d263e3..8a81748d5 100644 --- a/src/extractors/custom/index.js +++ b/src/extractors/custom/index.js @@ -128,3 +128,4 @@ export * from './wired.jp'; export * from './japan.zdnet.com'; export * from './www.rbbtoday.com'; export * from './www.lemonde.fr'; +export * from './pitchfork.com'; diff --git a/src/extractors/custom/pitchfork.com/index.js b/src/extractors/custom/pitchfork.com/index.js new file mode 100644 index 000000000..6f2d60404 --- /dev/null +++ b/src/extractors/custom/pitchfork.com/index.js @@ -0,0 +1,33 @@ +export const PitchforkComExtractor = { + domain: 'pitchfork.com', + + title: { + selectors: ['title'], + }, + + author: { + selectors: ['.authors-detail__display-name'], + }, + + date_published: { + selectors: [['.pub-date', 'datetime']], + }, + + dek: { + selectors: ['.review-detail__abstract'], + }, + + lead_image_url: { + selectors: [['.single-album-tombstone__art img', 'src']], + }, + + content: { + selectors: ['.review-detail__text'], + }, + + extend: { + score: { + selectors: ['.score'], + }, + }, +}; diff --git a/src/extractors/custom/pitchfork.com/index.test.js b/src/extractors/custom/pitchfork.com/index.test.js new file mode 100644 index 000000000..ce01c3112 --- /dev/null +++ b/src/extractors/custom/pitchfork.com/index.test.js @@ -0,0 +1,91 @@ +import assert from 'assert'; +import URL from 'url'; +import cheerio from 'cheerio'; + +import Mercury from 'mercury'; +import getExtractor from 'extractors/get-extractor'; +import { excerptContent } from 'utils/text'; + +const fs = require('fs'); + +describe('PitchforkComExtractor', () => { + describe('initial test case', () => { + let result; + let url; + beforeAll(() => { + url = + 'https://pitchfork.com/reviews/albums/lust-for-youth-lust-for-youth/'; + const html = fs.readFileSync( + './fixtures/pitchfork.com/1560196240837.html' + ); + result = Mercury.parse(url, { html, fallback: false }); + }); + + it('is selected properly', () => { + const extractor = getExtractor(url); + assert.equal(extractor.domain, URL.parse(url).hostname); + }); + + it('returns the title', async () => { + const { title } = await result; + + // Update these values with the expected values from + // the article. + assert.equal(title, `Lust for Youth: Lust for Youth Album Review`); + }); + + it('returns the author', async () => { + const { author } = await result; + + assert.equal(author, 'Larry Fitzmaurice'); + }); + + it('returns the date_published', async () => { + const { date_published } = await result; + + assert.equal(date_published.split('T')[0], '2019-06-07'); + }); + + it('returns the dek', async () => { + const { dek } = await result; + + assert.equal( + dek, + "Hannes Norrvide's long-running coldwave synth project breaks into the greener pastures of Depeche Mode-style new wave." + ); + }); + + it('returns the lead_image_url', async () => { + const { lead_image_url } = await result; + + assert.equal( + lead_image_url, + `https://media.pitchfork.com/photos/5cefef2693a53659ed1ee6b8/1:1/w_320/LustForYouth_LustForYouth.jpg` + ); + }); + + it('returns the content', async () => { + const { content } = await result; + + const $ = cheerio.load(content || ''); + + const first13 = excerptContent( + $('*') + .first() + .text(), + 13 + ); + + assert.equal( + first13, + 'Coldwave never cared about you. The minimalistic, machine-driven sound that bubbled up twice' + ); + }); + + it('returns the score', async () => { + const { score } = await result; + + assert.equal(score, '6.2'); + }); + }); +});