diff --git a/fixtures/www.gizmodo.jp/1555839535234.html b/fixtures/www.gizmodo.jp/1555839535234.html new file mode 100644 index 000000000..f2c71a383 --- /dev/null +++ b/fixtures/www.gizmodo.jp/1555839535234.html @@ -0,0 +1 @@ +Suicaでガシャれる。電子マネー対応ガシャポンが稼働開始 | ギズモード・ジャパン

Suicaでガシャれる。電子マネー対応ガシャポンが稼働開始

  • author 小暮ひさのり
Suicaでガシャれる。電子マネー対応ガシャポンが稼働開始
Image: バンダイ

罪悪感薄めでグリグリ回せるやつ。

最近、ゲーセンも電子マネー対応筐体増えてきましたが、その流れはガシャポンにも。バンダイはこの4月から、現代風なカプセルトイ自販機「スマートガシャポン」を本格稼働することを発表しました。どのへんが現代風? というと、Suicaなどの交通系電子マネーへの対応です。

大事なことなのでもう一度居ますが、小銭の数に制限されず、Suicaで好きなだけガシャ回せます

190419gak01
Image: バンダイ

や、やめ時が見つからない…!

と想像も容易なその威力にざわざわ…と体が震えます。一方で、「俺は! 推しが出るまで! 回すのを止めないッ!」と心に誓った時には小銭足りなさにもどかしい思いをすることもあるので、この進化はどちらかといえばウェルカムかな! そもそも日常的に小銭持ち歩かなくなったしー。

ちなみに、ネットワーク連動していてガシャポン公式サイト「ガシャどこ?PLUS」で自販機の設置場所と商品情報が調べられるようですよ。狙ったガシャ、狙ったアイテムを求めに行けるって超便利じゃない?

スマートガシャポン」はまずJR池袋駅に導入され、設置場所は順次拡大。2019年5月末までに50セットを全国に導入する予定とのこと。見かけたら回してみよっと。SuicaがOKってことは、iPhoneで回せるよね?


Source: バンダイ

    あわせて読みたい

    powered by
    \ No newline at end of file diff --git a/src/extractors/custom/index.js b/src/extractors/custom/index.js index eff05e806..66cc76ba0 100644 --- a/src/extractors/custom/index.js +++ b/src/extractors/custom/index.js @@ -115,3 +115,4 @@ export * from './bookwalker.jp'; export * from './www.yomiuri.co.jp'; export * from './japan.cnet.com'; export * from './deadline.com'; +export * from './www.gizmodo.jp'; diff --git a/src/extractors/custom/www.gizmodo.jp/index.js b/src/extractors/custom/www.gizmodo.jp/index.js new file mode 100644 index 000000000..30e610a7a --- /dev/null +++ b/src/extractors/custom/www.gizmodo.jp/index.js @@ -0,0 +1,34 @@ +export const WwwGizmodoJpExtractor = { + domain: 'www.gizmodo.jp', + + title: { + selectors: ['h1.p-post-title'], + }, + + author: { + selectors: ['li.p-post-AssistAuthor'], + }, + + date_published: { + selectors: [['li.p-post-AssistTime time', 'datetime']], + }, + + dek: null, + + lead_image_url: { + selectors: [['meta[name="og:image"]', 'value']], + }, + + content: { + selectors: ['article.p-post'], + + transforms: { + 'img.p-post-thumbnailImage': $node => { + const src = $node.attr('src'); + $node.attr('src', src.replace(/^.*=%27/, '').replace(/%27;$/, '')); + }, + }, + + clean: ['h1.p-post-title', 'ul.p-post-Assist'], + }, +}; diff --git a/src/extractors/custom/www.gizmodo.jp/index.test.js b/src/extractors/custom/www.gizmodo.jp/index.test.js new file mode 100644 index 000000000..6a32bef63 --- /dev/null +++ b/src/extractors/custom/www.gizmodo.jp/index.test.js @@ -0,0 +1,111 @@ +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('WwwGizmodoJpExtractor', () => { + describe('initial test case', () => { + let result; + let url; + beforeAll(() => { + url = 'https://www.gizmodo.jp/2019/04/suica-gashapon-bandai.html'; + const html = fs.readFileSync( + './fixtures/www.gizmodo.jp/1555839535234.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.gizmodo.jp/index.js. + const { title } = await result; + + // Update these values with the expected values from + // the article. + assert.equal( + title, + `Suicaでガシャれる。電子マネー対応ガシャポンが稼働開始` + ); + }); + + it('returns the author', async () => { + // To pass this test, fill out the author selector + // in ./src/extractors/custom/www.gizmodo.jp/index.js. + const { author } = await result; + + // Update these values with the expected values from + // the article. + assert.equal(author, '小暮ひさのり'); + }); + + it('returns the date_published', async () => { + // To pass this test, fill out the date_published selector + // in ./src/extractors/custom/www.gizmodo.jp/index.js. + const { date_published } = await result; + + // Update these values with the expected values from + // the article. + assert.equal(date_published, `2019-04-19T11:00:00.000Z`); + }); + + it('returns the dek', async () => { + // To pass this test, fill out the dek selector + // in ./src/extractors/custom/www.gizmodo.jp/index.js. + const { dek } = await result; + + // Update these values with the expected values from + // the article. + assert.equal(dek, null); + }); + + it('returns the lead_image_url', async () => { + // To pass this test, fill out the lead_image_url selector + // in ./src/extractors/custom/www.gizmodo.jp/index.js. + const { lead_image_url } = await result; + + // Update these values with the expected values from + // the article. + assert.equal( + lead_image_url, + `https://assets.media-platform.com/gizmodo/dist/images/2019/04/18/190418gak00-w960.jpg` + ); + }); + + it('returns the content', async () => { + // To pass this test, fill out the content selector + // in ./src/extractors/custom/www.gizmodo.jp/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(), + 1 + ); + + // Update these values with the expected values from + // the article. + assert.equal(first13, 'Image:'); + }); + }); +});