From d292d8ef3a705415105fe05574d0ab4c438b5e5b Mon Sep 17 00:00:00 2001 From: Janet Date: Thu, 2 Feb 2017 12:30:16 -0500 Subject: [PATCH] feat: ny daily news parser (#87) * feat: ny daily news parser --- .../www.nydailynews.com/1481917212613.html | 1 + src/extractors/custom/index.js | 1 + .../custom/www.nydailynews.com/index.js | 48 ++++++++++ .../custom/www.nydailynews.com/index.test.js | 88 +++++++++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 fixtures/www.nydailynews.com/1481917212613.html create mode 100644 src/extractors/custom/www.nydailynews.com/index.js create mode 100644 src/extractors/custom/www.nydailynews.com/index.test.js diff --git a/fixtures/www.nydailynews.com/1481917212613.html b/fixtures/www.nydailynews.com/1481917212613.html new file mode 100644 index 00000000..f708afcb --- /dev/null +++ b/fixtures/www.nydailynews.com/1481917212613.html @@ -0,0 +1 @@ + Michelle Obama: ‘We are feeling what not having hope feels like’ - NY Daily News

Michelle Obama suggests America has lost hope since Donald Trump’s election: ‘We are feeling what not having hope feels like’

Michelle Obama: ‘We are feeling what not having hope feels like’
NEW YORK DAILY NEWS
Friday, December 16, 2016, 1:38 PM

Michelle Obama understands your despair, America.

The first lady suggested that the election of Donald Trump has drained the country of the hope her husband’s 2008 campaign ran on.

In an interview with Oprah Winfrey, Michelle Obama said he believes President Obama’s administration achieved the platform he promised — hope — because Americans “feel the difference now.”

“Now we are feeling what not having hope feels like," she said in a Friday clip previewing the interview, which is set to air on CBS Monday.

Michelle Obama hosts private screening of 'Hidden Figures'

Michelle Obama insisted she and her husband — whose first presidential campaign in 2008 featured an iconic poster of his likeness with the word “hope” — believe hope is “a necessary concept.”

U.S. President-elect Donald Trump arrives to speak during a USA Thank You Tour event at Giant Center in Hershey, Penn. Thursday.

U.S. President-elect Donald Trump arrives to speak during a USA Thank You Tour event at Giant Center in Hershey, Penn. Thursday.

(LUCAS JACKSON/REUTERS)

“Barack didn't just talk about hope because he thought it was just a nice slogan to get votes,” she said. “He and I and so many believe that — what else do you have, if you don’t have hope? What do you give your kids if you can’t give them hope?”

Without mentioning Trump by name, the first lady quietly tore into the Republican businessman, insinuating that the nation will lose a “grownup in the White House” when President Obama’s term ends in January.

She said her husband has been a steady leader able to comfort the nation even during tremulous times and compared him to the father of “a toddler that bumps his head on the table.”

W. Va. nonprofit director will return after racist Obama post

“They look up at you to figure out whether it hurts,” she said. “If you’re like, ‘Oh, my God!’ they’re crying.”

IMAGE USE RESTRICTED TO PROMOTION OF THIS SPECIAL ONLY; MANDATORY CREDIT; NO ARCHIVE; NO SALES; FOR NORTH AMERICAN USE ONLY

First Lady Michelle Obama speaks to Oprah Winfrey in a new CBS interview, set to air Monday.

(Michele Crowe/The White House)

She said President Obama is the calm dad who tells his injured child, “You know what, babe? It’s OK.”

“I feel that way about the nation,” she said. “I feel that Barack has been that for the nation in ways that people will come to appreciate.”

She continued: “Having a grownup in the White House who can say to you in times of crisis and turmoil, ‘Hey, it’s gonna be OK. Let’s remember the good things that we have. Let’s look at the future. Let’s look at all the things that we’re building.’ All of this is important for our kids to stay focused and to feel like their work isn’t in vain — like their lives aren’t in vain.”

Colorado doctor who called Michelle Obama ‘monkey face’ resigns

“What do we do if we don’t have hope, Oprah?”

Tags:
michelle obama
donald trump
barack obama
oprah winfrey
Send a Letter to the Editor
Join the Conversation:
facebook
Tweet
\ No newline at end of file diff --git a/src/extractors/custom/index.js b/src/extractors/custom/index.js index 66ac8e34..dcac15b4 100644 --- a/src/extractors/custom/index.js +++ b/src/extractors/custom/index.js @@ -37,6 +37,7 @@ export * from './www.reuters.com'; export * from './mashable.com'; export * from './www.chicagotribune.com'; export * from './www.vox.com'; +export * from './www.nydailynews.com'; export * from './www.cnbc.com'; export * from './www.popsugar.com'; export * from './observer.com'; diff --git a/src/extractors/custom/www.nydailynews.com/index.js b/src/extractors/custom/www.nydailynews.com/index.js new file mode 100644 index 00000000..c2306305 --- /dev/null +++ b/src/extractors/custom/www.nydailynews.com/index.js @@ -0,0 +1,48 @@ +export const WwwNydailynewsComExtractor = { + domain: 'www.nydailynews.com', + + title: { + selectors: [ + 'h1#ra-headline', + ], + }, + + author: { + selectors: [ + ['meta[name="parsely-author"]', 'value'], + ], + }, + + date_published: { + selectors: [ + ['meta[name="sailthru.date"]', 'value'], + ], + }, + + lead_image_url: { + selectors: [ + ['meta[name="og:image"]', 'value'], + ], + }, + + content: { + selectors: [ + 'article#ra-body', + ], + + // Is there anything in the content you selected that needs transformed + // before it's consumable content? E.g., unusual lazy loaded images + transforms: { + }, + + // Is there anything that is in the result that shouldn't be? + // The clean selectors will remove anything that matches from + // the result + clean: [ + 'dl#ra-tags', + '.ra-related', + 'a.ra-editor', + 'dl#ra-share-bottom', + ], + }, +}; diff --git a/src/extractors/custom/www.nydailynews.com/index.test.js b/src/extractors/custom/www.nydailynews.com/index.test.js new file mode 100644 index 00000000..d769615a --- /dev/null +++ b/src/extractors/custom/www.nydailynews.com/index.test.js @@ -0,0 +1,88 @@ +import assert from 'assert'; +import fs from 'fs'; +import URL from 'url'; +import cheerio from 'cheerio'; + +import Mercury from 'mercury'; +import getExtractor from 'extractors/get-extractor'; +import { excerptContent } from 'utils/text'; + +describe('WwwNydailynewsComExtractor', () => { + describe('initial test case', () => { + let result; + let url; + beforeAll(() => { + url = + 'http://www.nydailynews.com/news/politics/michelle-obama-feeling-not-hope-feels-article-1.2913255'; + const html = + fs.readFileSync('./fixtures/www.nydailynews.com/1481917212613.html'); + result = + Mercury.parse(url, html, { fallback: false }); + }); + + it('is selected properly', () => { + // This test should be passing by default. + // It sanity checks that the correct parser + // is being selected for URLs from this domain + const extractor = getExtractor(url); + assert.equal(extractor.domain, URL.parse(url).hostname); + }); + + it('returns the title', async () => { + // To pass this test, fill out the title selector + // in ./src/extractors/custom/www.nydailynews.com/index.js. + const { title } = await result; + + // Update these values with the expected values from + // the article. + assert.equal(title, 'Michelle Obama suggests America has lost hope since Donald Trump’s election: ‘We are feeling what not having hope feels like’'); + }); + + it('returns the author', async () => { + // To pass this test, fill out the author selector + // in ./src/extractors/custom/www.nydailynews.com/index.js. + const { author } = await result; + + // Update these values with the expected values from + // the article. + assert.equal(author, 'Meg Wagner'); + }); + + it('returns the date_published', async () => { + // To pass this test, fill out the date_published selector + // in ./src/extractors/custom/www.nydailynews.com/index.js. + const { date_published } = await result; + + // Update these values with the expected values from + // the article. + + assert.equal(date_published, '2016-12-16T18:38:14.000Z'); + }); + + it('returns the lead_image_url', async () => { + // To pass this test, fill out the lead_image_url selector + // in ./src/extractors/custom/www.nydailynews.com/index.js. + const { lead_image_url } = await result; + + // Update these values with the expected values from + // the article. + assert.equal(lead_image_url, 'http://assets.nydailynews.com/polopoly_fs/1.2913253.1481912929!/img/httpImage/image.jpg_gen/derivatives/landscape_1200/usa-trump.jpg'); + }); + + it('returns the content', async () => { + // To pass this test, fill out the content selector + // in ./src/extractors/custom/www.nydailynews.com/index.js. + // You may also want to make use of the clean and transform + // options. + const { content } = await result; + + const $ = cheerio.load(content || ''); + + const first13 = excerptContent($('*').first().text(), 13); + + // Update these values with the expected values from + // the article. + assert.equal(first13, 'Michelle Obama understands your despair, America. The first lady suggested that the election'); + }); + }); +});