From c409828ec47e7e7c137371d8a4cbea9fa3316cbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Thu, 16 Aug 2018 19:12:28 +0900 Subject: [PATCH 01/16] Update summary.ts --- src/summary.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/summary.ts b/src/summary.ts index 2a2cb87..4209778 100644 --- a/src/summary.ts +++ b/src/summary.ts @@ -24,6 +24,16 @@ type Summary = { */ player: string; + /** + * The width of the player of that web page + */ + playerWidth: number; + + /** + * The height of the player of that web page + */ + playerHeight: number; + /** * The title of that web page */ From eb97e0c67d3fa87476b41e9ab05d391a2b0ffffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:07:03 +0900 Subject: [PATCH 02/16] Update general.ts --- src/general.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/general.ts b/src/general.ts index caa1de3..ea302fd 100644 --- a/src/general.ts +++ b/src/general.ts @@ -54,6 +54,14 @@ export default async (url: URL.Url): Promise => { $('meta[property="twitter:player"]').attr('content') || $('meta[name="twitter:player"]').attr('content'); + const playerWidth = parseInt( + $('meta[property="twitter:player:width"]').attr('content') || + $('meta[name="twitter:player:width"]').attr('content')); + + const playerHeight = parseInt( + $('meta[property="twitter:player:height"]').attr('content') || + $('meta[name="twitter:player:height"]').attr('content')); + let description = $('meta[property="og:description"]').attr('content') || $('meta[property="twitter:description"]').attr('content') || From b1a091a4a6fb580967f2197aa7b242071b4b6204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:15:37 +0900 Subject: [PATCH 03/16] Update summary.ts --- src/summary.ts | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/summary.ts b/src/summary.ts index 4209778..1189658 100644 --- a/src/summary.ts +++ b/src/summary.ts @@ -20,19 +20,9 @@ type Summary = { thumbnail: string; /** - * The url of the player of that web page + * The player of that web page */ - player: string; - - /** - * The width of the player of that web page - */ - playerWidth: number; - - /** - * The height of the player of that web page - */ - playerHeight: number; + player: Player; /** * The title of that web page @@ -41,3 +31,22 @@ type Summary = { }; export default Summary; + +type Player = { + /** + * The url of the player + */ + player: string; + + /** + * The width of the player + */ + playerWidth: number; + + /** + * The height of the player + */ + playerHeight: number; +}; + +export default Player; From 0c411d9a40b8c3591160e2d6d5923788014bed4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:16:49 +0900 Subject: [PATCH 04/16] Update summary.ts --- src/summary.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/summary.ts b/src/summary.ts index 1189658..e51d410 100644 --- a/src/summary.ts +++ b/src/summary.ts @@ -36,17 +36,17 @@ type Player = { /** * The url of the player */ - player: string; + url: string; /** * The width of the player */ - playerWidth: number; + width: number; /** * The height of the player */ - playerHeight: number; + height: number; }; export default Player; From a72af04005d22d5ded999355dc0f1440e85f6e70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:23:44 +0900 Subject: [PATCH 05/16] Update general.ts --- src/general.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/general.ts b/src/general.ts index ea302fd..ec2c2ad 100644 --- a/src/general.ts +++ b/src/general.ts @@ -1,3 +1,4 @@ +import { name, version } from '../package.json'; import * as URL from 'url'; import * as request from 'request'; import nullOrEmpty from './utils/null-or-empty'; @@ -8,6 +9,9 @@ import { AllHtmlEntities } from 'html-entities'; const entities = new AllHtmlEntities(); import * as client from 'cheerio-httpcli'; +client.set('headers', { + 'User-Agent': `${name}/${version}` +}); client.set('referer', false); client.set('timeout', 10000); client.set('maxDataSize', 1024 * 1024); @@ -50,7 +54,7 @@ export default async (url: URL.Url): Promise => { image = image ? URL.resolve(url.href, image) : null; - const player = + const playerUrl = $('meta[property="twitter:player"]').attr('content') || $('meta[name="twitter:player"]').attr('content'); @@ -131,7 +135,11 @@ export default async (url: URL.Url): Promise => { icon: icon || null, description: description || null, thumbnail: image || null, - player: player || null, + player: { + url: playerUrl || null, + width: playerWidth || null, + height: playerHeight || null + }, sitename: siteName || null }; }; From 871a6f151c58293f51bcf51ac4e4a9b07bfb8942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:26:22 +0900 Subject: [PATCH 06/16] Update amazon.ts --- src/plugins/amazon.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/plugins/amazon.ts b/src/plugins/amazon.ts index 39d8db8..dcd2caa 100644 --- a/src/plugins/amazon.ts +++ b/src/plugins/amazon.ts @@ -34,12 +34,28 @@ export async function summarize(url: URL.Url): Promise { const thumbnail: string = $('#landingImage').attr('src'); + const playerUrl = + $('meta[property="twitter:player"]').attr('content') || + $('meta[name="twitter:player"]').attr('content'); + + const playerWidth = parseInt( + $('meta[property="twitter:player:width"]').attr('content') || + $('meta[name="twitter:player:width"]').attr('content')); + + const playerHeight = parseInt( + $('meta[property="twitter:player:height"]').attr('content') || + $('meta[name="twitter:player:height"]').attr('content')); + return { title: title || null, icon: 'https://www.amazon.com/favicon.ico', description: description || null, thumbnail: thumbnail || null, - player: null, + player: { + url: playerUrl || null, + width: playerWidth || null, + height: playerHeight || null + }, sitename: 'Amazon' }; } From f85135af4bae4424b1e1040633801c04b78ed9e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:27:38 +0900 Subject: [PATCH 07/16] Update amazon.ts --- src/plugins/amazon.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/amazon.ts b/src/plugins/amazon.ts index dcd2caa..cdaf894 100644 --- a/src/plugins/amazon.ts +++ b/src/plugins/amazon.ts @@ -1,7 +1,11 @@ +import { name, version } from '../../package.json'; import * as URL from 'url'; import * as client from 'cheerio-httpcli'; import summary from '../summary'; +client.set('headers', { + 'User-Agent': `${name}/${version}` +}); client.set('referer', false); client.set('timeout', 10000); From 1ac5415ac06a8178df670ecee3ffba8b1da27f74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:28:52 +0900 Subject: [PATCH 08/16] Update wikipedia.ts --- src/plugins/wikipedia.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/wikipedia.ts b/src/plugins/wikipedia.ts index 7ccd56e..c24a5e4 100644 --- a/src/plugins/wikipedia.ts +++ b/src/plugins/wikipedia.ts @@ -34,7 +34,11 @@ export async function summarize(url: URL.Url): Promise { icon: 'https://wikipedia.org/static/favicon/wikipedia.ico', description: clip(info.extract, 300), thumbnail: `https://wikipedia.org/static/images/project-logos/${lang}wiki.png`, - player: null, + player: { + url: null, + width: null, + height: null + }, sitename: 'Wikipedia' }; } From 500b8cb6a081a85c9fb3790a3e231cf3d79a6918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:42:57 +0900 Subject: [PATCH 09/16] Update README.md --- README.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6428d4b..f9f476a 100644 --- a/README.md +++ b/README.md @@ -24,12 +24,14 @@ summaly(url[, opts]) ``` ### Options + | Property | Type | Description | Default | | :------------------ | :--------------------- | :----------------------- | :------ | | **followRedirects** | *boolean* | Whether follow redirects | `true` | | **plugins** | *plugin[]* (see below) | Custom plugins | `null` | #### Plugin + ``` typescript interface IPlugin { test: (url: URL.Url) => boolean; @@ -38,19 +40,31 @@ interface IPlugin { ``` ### Returns + A Promise of an Object that contains properties below: +#### Root + | Property | Type | Description | | :-------------- | :------- | :--------------------------------------- | | **description** | *string* | The description of the web page | | **icon** | *string* | The url of the icon of the web page | | **sitename** | *string* | The name of the web site | | **thumbnail** | *string* | The url of the thumbnail of the web page | -| **player** | *string* | The url of the player of the web page | +| **player** | *Player* | The player of the web page | | **title** | *string* | The title of the web page | | **url** | *string* | The url of the web page | +#### Player + +| Property | Type | Description | +| :-------------- | :------- | :--------------------------------------- | +| **url** | *string* | The url of the player | +| **width** | *number* | The width of the player | +| **height** | *number* | The height of the player | + ### Example + ``` javascript import summaly from 'summaly'; @@ -63,7 +77,11 @@ console.log(summary); // will be ... ↓ icon: 'http://livedoor.blogimg.jp/tmg24news/imgs/9/5/favicon.ico', description: '1:以下、名無しにかわりましてVIPがお送りします:2013/03/30(土) 14:57:29.09 ID:An34eOmY0モバP「反論が あるやつもいるかもしれない」 モバP「だが俺の主張も聞いてほしい! お漏らしさせるならありすが一番だ!」 日菜子「むふふ……いきなりそんなことを大声で', thumbnail: 'http://livedoor.blogimg.jp/tmg24news/imgs/8/d/8df6e1a0-s.jpg', - player: null + player: { + url: null, + width: null, + height: null + } sitename: 'エレファント速報:SSまとめブログ', url: 'http://elephant.2chblog.jp/archives/52025138.html' } From c32721d8104bc184eb63b4ceea204a5832c5a13e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:45:45 +0900 Subject: [PATCH 10/16] Update summary.ts --- src/summary.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/summary.ts b/src/summary.ts index e51d410..d0ce180 100644 --- a/src/summary.ts +++ b/src/summary.ts @@ -49,4 +49,4 @@ type Player = { height: number; }; -export default Player; +export Player; From 0fa37901d973f57a6df970fddcc0be97a7231c8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 01:50:45 +0900 Subject: [PATCH 11/16] Update summary.ts --- src/summary.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/summary.ts b/src/summary.ts index d0ce180..0eec20e 100644 --- a/src/summary.ts +++ b/src/summary.ts @@ -32,7 +32,7 @@ type Summary = { export default Summary; -type Player = { +export type Player = { /** * The url of the player */ @@ -48,5 +48,3 @@ type Player = { */ height: number; }; - -export Player; From 0cad7f86c37626ced853454694098a7a97bfc982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 02:05:14 +0900 Subject: [PATCH 12/16] Create package.json.d.ts --- src/package.json.d.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/package.json.d.ts diff --git a/src/package.json.d.ts b/src/package.json.d.ts new file mode 100644 index 0000000..26baabf --- /dev/null +++ b/src/package.json.d.ts @@ -0,0 +1,4 @@ +declare module 'package.json' { + export name: string; + export version: string; +} From 0ba8f4c177dbc2df284dc18c515e319f123f9df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 02:06:36 +0900 Subject: [PATCH 13/16] Create symbolic link of package.json.d.ts --- src/plugins/package.json.d.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/plugins/package.json.d.ts diff --git a/src/plugins/package.json.d.ts b/src/plugins/package.json.d.ts new file mode 100644 index 0000000..26baabf --- /dev/null +++ b/src/plugins/package.json.d.ts @@ -0,0 +1,4 @@ +declare module 'package.json' { + export name: string; + export version: string; +} From d3da1397886e72d90eaa30b53b51b584a83fcead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 02:18:04 +0900 Subject: [PATCH 14/16] Delete package.json.d.ts --- src/plugins/package.json.d.ts | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 src/plugins/package.json.d.ts diff --git a/src/plugins/package.json.d.ts b/src/plugins/package.json.d.ts deleted file mode 100644 index 26baabf..0000000 --- a/src/plugins/package.json.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module 'package.json' { - export name: string; - export version: string; -} From 2a75fa5ef56022e8d747bdcaf616cdfb6105b2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 02:18:23 +0900 Subject: [PATCH 15/16] Update package.json.d.ts --- src/package.json.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/package.json.d.ts b/src/package.json.d.ts index 26baabf..398e712 100644 --- a/src/package.json.d.ts +++ b/src/package.json.d.ts @@ -1,4 +1,4 @@ declare module 'package.json' { - export name: string; - export version: string; + export const name: string; + export const version: string; } From 785d4851a21ba783ee768e495b9385294f599a7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 17 Aug 2018 02:26:00 +0900 Subject: [PATCH 16/16] Update package.json.d.ts --- src/package.json.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package.json.d.ts b/src/package.json.d.ts index 398e712..7a3ac8e 100644 --- a/src/package.json.d.ts +++ b/src/package.json.d.ts @@ -1,4 +1,4 @@ -declare module 'package.json' { +declare module '*/package.json' { export const name: string; export const version: string; }