2
2
"translatorID" : "53f8d182-4edc-4eab-b5a1-141698a1303b" ,
3
3
"label" : "Wall Street Journal" ,
4
4
"creator" : "Sebastian Karcher" ,
5
- "target" : "^https?://(online|blogs)?\\.wsj\\.com/" ,
5
+ "target" : "^https?://(online|blogs|www )?\\.wsj\\.com/" ,
6
6
"minVersion" : "2.1" ,
7
7
"maxVersion" : "" ,
8
8
"priority" : 100 ,
9
9
"inRepository" : true ,
10
10
"translatorType" : 4 ,
11
11
"browserSupport" : "gcsbv" ,
12
- "lastUpdated" : "2014-09-08 00:39:44 "
12
+ "lastUpdated" : "2014-12-14 16:21:10 "
13
13
}
14
14
15
15
/* FW LINE 57:6869c32952b1 */ function flatten ( c ) { var b = new Array ( ) ; for ( var d in c ) { var e = c [ d ] ; if ( e instanceof Array ) { b = b . concat ( flatten ( e ) ) } else { b . push ( e ) } } return b } var FW = { _scrapers :new Array ( ) } ; FW . _Base = function ( ) { this . callHook = function ( b , c , e , a ) { if ( typeof this [ "hooks" ] === "object" ) { var d = this [ "hooks" ] [ b ] ; if ( typeof d === "function" ) { d ( c , e , a ) } } } ; this . evaluateThing = function ( f , e , c ) { var b = typeof f ; if ( b === "object" ) { if ( f instanceof Array ) { var d = this . evaluateThing ; var a = f . map ( function ( g ) { return d ( g , e , c ) } ) ; return flatten ( a ) } else { return f . evaluate ( e , c ) } } else { if ( b === "function" ) { return f ( e , c ) } else { return f } } } } ; FW . Scraper = function ( a ) { FW . _scrapers . push ( new FW . _Scraper ( a ) ) } ; FW . _Scraper = function ( a ) { for ( x in a ) { this [ x ] = a [ x ] } this . _singleFieldNames = [ "abstractNote" , "applicationNumber" , "archive" , "archiveLocation" , "artworkMedium" , "artworkSize" , "assignee" , "audioFileType" , "audioRecordingType" , "billNumber" , "blogTitle" , "bookTitle" , "callNumber" , "caseName" , "code" , "codeNumber" , "codePages" , "codeVolume" , "committee" , "company" , "conferenceName" , "country" , "court" , "date" , "dateDecided" , "dateEnacted" , "dictionaryTitle" , "distributor" , "docketNumber" , "documentNumber" , "DOI" , "edition" , "encyclopediaTitle" , "episodeNumber" , "extra" , "filingDate" , "firstPage" , "forumTitle" , "genre" , "history" , "institution" , "interviewMedium" , "ISBN" , "ISSN" , "issue" , "issueDate" , "issuingAuthority" , "journalAbbreviation" , "label" , "language" , "legalStatus" , "legislativeBody" , "letterType" , "libraryCatalog" , "manuscriptType" , "mapType" , "medium" , "meetingName" , "nameOfAct" , "network" , "number" , "numberOfVolumes" , "numPages" , "pages" , "patentNumber" , "place" , "postType" , "presentationType" , "priorityNumbers" , "proceedingsTitle" , "programTitle" , "programmingLanguage" , "publicLawNumber" , "publicationTitle" , "publisher" , "references" , "reportNumber" , "reportType" , "reporter" , "reporterVolume" , "rights" , "runningTime" , "scale" , "section" , "series" , "seriesNumber" , "seriesText" , "seriesTitle" , "session" , "shortTitle" , "studio" , "subject" , "system" , "thesisType" , "title" , "type" , "university" , "url" , "version" , "videoRecordingType" , "volume" , "websiteTitle" , "websiteType" ] ; this . _makeAttachments = function ( p , b , g , t ) { if ( g instanceof Array ) { g . forEach ( function ( k ) { this . _makeAttachments ( p , b , k , t ) } , this ) } else { if ( typeof g === "object" ) { var o = g . urls || g . url ; var m = g . types || g . type ; var f = g . titles || g . title ; var q = g . snapshots || g . snapshot ; var j = this . evaluateThing ( o , p , b ) ; var n = this . evaluateThing ( f , p , b ) ; var s = this . evaluateThing ( m , p , b ) ; var d = this . evaluateThing ( q , p , b ) ; if ( ! ( j instanceof Array ) ) { j = [ j ] } for ( var l in j ) { var c = j [ l ] ; var h ; var e ; var r ; if ( s instanceof Array ) { h = s [ l ] } else { h = s } if ( n instanceof Array ) { e = n [ l ] } else { e = n } if ( d instanceof Array ) { r = d [ l ] } else { r = d } t . attachments . push ( { url :c , title :e , type :h , snapshot :r } ) } } } } ; if ( this . itemTrans !== undefined ) { this . makeItems = this . itemTrans . makeItems } else { this . makeItems = function ( o , b , m , c , l ) { var q = new Zotero . Item ( this . itemType ) ; q . url = b ; for ( var h in this . _singleFieldNames ) { var n = this . _singleFieldNames [ h ] ; if ( this [ n ] ) { var g = this . evaluateThing ( this [ n ] , o , b ) ; if ( g instanceof Array ) { q [ n ] = g [ 0 ] } else { q [ n ] = g } } } var r = [ "creators" , "tags" ] ; for ( var f in r ) { var p = r [ f ] ; var d = this . evaluateThing ( this [ p ] , o , b ) ; if ( d ) { for ( var e in d ) { q [ p ] . push ( d [ e ] ) } } } this . _makeAttachments ( o , b , this [ "attachments" ] , q ) ; c ( q , this , o , b ) ; l ( [ q ] ) } } } ; FW . _Scraper . prototype = new FW . _Base ; FW . MultiScraper = function ( a ) { FW . _scrapers . push ( new FW . _MultiScraper ( a ) ) } ; FW . _MultiScraper = function ( a ) { for ( x in a ) { this [ x ] = a [ x ] } this . _mkSelectItems = function ( e , d ) { var b = new Object ; for ( var c in e ) { b [ d [ c ] ] = e [ c ] } return b } ; this . _selectItems = function ( d , c , e ) { var b = new Array ( ) ; Zotero . selectItems ( this . _mkSelectItems ( d , c ) , function ( f ) { for ( var g in f ) { b . push ( g ) } e ( b ) } ) } ; this . _mkAttachments = function ( g , d , f ) { var b = this . evaluateThing ( this [ "attachments" ] , g , d ) ; var c = new Object ( ) ; if ( b ) { for ( var e in f ) { c [ f [ e ] ] = b [ e ] } } return c } ; this . _makeChoices = function ( f , p , c , d , h ) { if ( f instanceof Array ) { f . forEach ( function ( k ) { this . _makeTitlesUrls ( k , p , c , d , h ) } , this ) } else { if ( typeof f === "object" ) { var m = f . urls || f . url ; var e = f . titles || f . title ; var n = this . evaluateThing ( m , p , c ) ; var j = this . evaluateThing ( e , p , c ) ; var l = ( j instanceof Array ) ; if ( ! ( n instanceof Array ) ) { n = [ n ] } for ( var g in n ) { var b = n [ g ] ; var o ; if ( l ) { o = j [ g ] } else { o = j } h . push ( b ) ; d . push ( o ) } } } } ; this . makeItems = function ( j , b , g , c , f ) { if ( this . beforeFilter ) { var k = this . beforeFilter ( j , b ) ; if ( k != b ) { this . makeItems ( j , k , g , c , f ) ; return } } var e = [ ] ; var h = [ ] ; this . _makeChoices ( this [ "choices" ] , j , b , e , h ) ; var d = this . _mkAttachments ( j , b , h ) ; this . _selectItems ( e , h , function ( m ) { if ( ! m ) { f ( [ ] ) } else { var l = [ ] ; var n = this . itemTrans ; Zotero . Utilities . processDocuments ( m , function ( q ) { var p = q . documentURI ; var o = n ; if ( o === undefined ) { o = FW . getScraper ( q , p ) } if ( o === undefined ) { } else { o . makeItems ( q , p , d [ p ] , function ( r ) { l . push ( r ) ; c ( r , o , q , p ) } , function ( ) { } ) } } , function ( ) { f ( l ) } ) } } ) } } ; FW . _MultiScraper . prototype = new FW . _Base ; FW . DelegateTranslator = function ( a ) { return new FW . _DelegateTranslator ( a ) } ; FW . _DelegateTranslator = function ( a ) { for ( x in a ) { this [ x ] = a [ x ] } this . _translator = Zotero . loadTranslator ( this . translatorType ) ; this . _translator . setTranslator ( this . translatorId ) ; this . makeItems = function ( g , d , b , f , c ) { var e ; Zotero . Utilities . HTTP . doGet ( d , function ( h ) { this . _translator . setHandler ( "itemDone" , function ( k , j ) { e = j ; if ( b ) { j . attachments = b } } ) ; if ( this . preProcess ) { h = this . preProcess ( h ) } this . _translator . setString ( h ) ; this . _translator . translate ( ) ; f ( e ) } , function ( ) { c ( [ e ] ) } ) } } ; FW . DelegateTranslator . prototype = new FW . _Scraper ; FW . _StringMagic = function ( ) { this . _filters = new Array ( ) ; this . addFilter = function ( a ) { this . _filters . push ( a ) ; return this } ; this . split = function ( a ) { return this . addFilter ( function ( b ) { return b . split ( a ) . filter ( function ( c ) { return ( c != "" ) } ) } ) } ; this . replace = function ( c , b , a ) { return this . addFilter ( function ( d ) { if ( d . match ( c ) ) { return d . replace ( c , b , a ) } else { return d } } ) } ; this . prepend = function ( a ) { return this . replace ( / ^ / , a ) } ; this . append = function ( a ) { return this . replace ( / $ / , a ) } ; this . remove = function ( b , a ) { return this . replace ( b , "" , a ) } ; this . trim = function ( ) { return this . addFilter ( function ( a ) { return Zotero . Utilities . trim ( a ) } ) } ; this . trimInternal = function ( ) { return this . addFilter ( function ( a ) { return Zotero . Utilities . trimInternal ( a ) } ) } ; this . match = function ( a , b ) { if ( ! b ) { b = 0 } return this . addFilter ( function ( d ) { var c = d . match ( a ) ; if ( c === undefined || c === null ) { return undefined } else { return c [ b ] } } ) } ; this . cleanAuthor = function ( b , a ) { return this . addFilter ( function ( c ) { return Zotero . Utilities . cleanAuthor ( c , b , a ) } ) } ; this . key = function ( a ) { return this . addFilter ( function ( b ) { return b [ a ] } ) } ; this . capitalizeTitle = function ( ) { if ( arguments . length > 0 && arguments [ 0 ] == true ) { return this . addFilter ( function ( a ) { return Zotero . Utilities . capitalizeTitle ( a , true ) } ) } else { return this . addFilter ( function ( a ) { return Zotero . Utilities . capitalizeTitle ( a ) } ) } } ; this . unescapeHTML = function ( ) { return this . addFilter ( function ( a ) { return Zotero . Utilities . unescapeHTML ( a ) } ) } ; this . unescape = function ( ) { return this . addFilter ( function ( a ) { return unescape ( a ) } ) } ; this . _applyFilters = function ( c , e ) { for ( i in this . _filters ) { c = flatten ( c ) ; c = c . filter ( function ( a ) { return ( ( a !== undefined ) && ( a !== null ) ) } ) ; for ( var d = 0 ; d < c . length ; d ++ ) { try { if ( ( c [ d ] === undefined ) || ( c [ d ] === null ) ) { continue } else { c [ d ] = this . _filters [ i ] ( c [ d ] , e ) } } catch ( b ) { c [ d ] = undefined ; Zotero . debug ( "Caught exception " + b + "on filter: " + this . _filters [ i ] ) } } c = c . filter ( function ( a ) { return ( ( a !== undefined ) && ( a !== null ) ) } ) } return flatten ( c ) } } ; FW . PageText = function ( ) { return new FW . _PageText ( ) } ; FW . _PageText = function ( ) { this . _filters = new Array ( ) ; this . evaluate = function ( c ) { var b = [ c . documentElement . innerHTML ] ; b = this . _applyFilters ( b , c ) ; if ( b . length == 0 ) { return false } else { return b } } } ; FW . _PageText . prototype = new FW . _StringMagic ( ) ; FW . Url = function ( ) { return new FW . _Url ( ) } ; FW . _Url = function ( ) { this . _filters = new Array ( ) ; this . evaluate = function ( d , c ) { var b = [ c ] ; b = this . _applyFilters ( b , d ) ; if ( b . length == 0 ) { return false } else { return b } } } ; FW . _Url . prototype = new FW . _StringMagic ( ) ; FW . Xpath = function ( a ) { return new FW . _Xpath ( a ) } ; FW . _Xpath = function ( a ) { this . _xpath = a ; this . _filters = new Array ( ) ; this . text = function ( ) { var b = function ( c ) { if ( typeof c === "object" && c . textContent ) { return c . textContent } else { return c } } ; this . addFilter ( b ) ; return this } ; this . sub = function ( b ) { var c = function ( f , e ) { var d = e . evaluate ( b , f , null , XPathResult . ANY_TYPE , null ) ; if ( d ) { return d . iterateNext ( ) } else { return undefined } } ; this . addFilter ( c ) ; return this } ; this . evaluate = function ( f ) { var e = f . evaluate ( this . _xpath , f , null , XPathResult . ANY_TYPE , null ) ; var d = e . resultType ; var c = new Array ( ) ; if ( d == XPathResult . STRING_TYPE ) { c . push ( e . stringValue ) } else { if ( d == XPathResult . ORDERED_NODE_ITERATOR_TYPE || d == XPathResult . UNORDERED_NODE_ITERATOR_TYPE ) { var b ; while ( ( b = e . iterateNext ( ) ) ) { c . push ( b ) } } } c = this . _applyFilters ( c , f ) ; if ( c . length == 0 ) { return false } else { return c } } } ; FW . _Xpath . prototype = new FW . _StringMagic ( ) ; FW . detectWeb = function ( e , b ) { for ( var c in FW . _scrapers ) { var d = FW . _scrapers [ c ] ; var f = d . evaluateThing ( d . itemType , e , b ) ; var a = d . evaluateThing ( d . detect , e , b ) ; if ( a . length > 0 && a [ 0 ] ) { return f } } return undefined } ; FW . getScraper = function ( b , a ) { var c = FW . detectWeb ( b , a ) ; return FW . _scrapers . filter ( function ( d ) { return ( d . evaluateThing ( d . itemType , b , a ) == c ) && ( d . evaluateThing ( d . detect , b , a ) ) } ) [ 0 ] } ; FW . doWeb = function ( c , a ) { var b = FW . getScraper ( c , a ) ; b . makeItems ( c , a , [ ] , function ( f , e , g , d ) { e . callHook ( "scraperDone" , f , g , d ) ; if ( ! f . title ) { f . title = "" } f . complete ( ) } , function ( ) { Zotero . done ( ) } ) ; Zotero . wait ( ) } ;
@@ -53,7 +53,7 @@ attachments : [
53
53
creators : FW . Xpath ( '//ul[contains(@class, "yline")]/li[contains(@class, "byName")]/a' ) . text ( ) . replace ( / ^ \s * B y \s * / , "" ) . cleanAuthor ( "author" ) ,
54
54
date : FW . Xpath ( '//li[@class="dateStamp first"]/small|//header/small[@class="post-time"]' ) . text ( ) . remove ( / ( , ) ? \d { 1 , 2 } : \d { 2 } [ A P ] M \s * ( E T ) ? / i) ,
55
55
ISSN : "0099-9660" ,
56
- publicationTitle : FW . Xpath ( '//span[@class="logo"]/a/img/@title|//h5[@class="blogtitle"]' ) . text ( ) . prepend ( "WSJ Blogs - " )
56
+ publicationTitle : FW . Xpath ( '//span[@class="logo"]// a/img/@title|//h5[@class="blogtitle"]' ) . text ( ) . prepend ( "WSJ Blogs - " )
57
57
} ) ;
58
58
59
59
@@ -91,44 +91,44 @@ choices : {
91
91
var testCases = [
92
92
{
93
93
"type" : "web" ,
94
- "url" : "http://online .wsj.com/news/articles/SB10001424052970204517204577046222233016362" ,
94
+ "url" : "http://www .wsj.com/news/articles/SB10001424052970204517204577046222233016362" ,
95
95
"items" : [
96
96
{
97
97
"itemType" : "newspaperArticle" ,
98
+ "title" : "America's Jobless, Yearning for Oz" ,
98
99
"creators" : [
99
100
{
100
101
"firstName" : "John W." ,
101
102
"lastName" : "Miller" ,
102
103
"creatorType" : "author"
103
104
}
104
105
] ,
105
- "notes" : [ ] ,
106
- "tags" : [ ] ,
107
- "seeAlso" : [ ] ,
106
+ "date" : "2011-11-19T05:01:00.000Z" ,
107
+ "ISSN" : "0099-9660" ,
108
+ "abstractNote" : "A profile of an Australian miner making $200,000 a year, published in The Wall Street Journal, led hundreds of people to ask how they could apply for such a job." ,
109
+ "libraryCatalog" : "Wall Street Journal" ,
110
+ "publicationTitle" : "Wall Street Journal" ,
111
+ "section" : "Careers" ,
112
+ "url" : "http://www.wsj.com/news/articles/SB10001424052970204517204577046222233016362" ,
108
113
"attachments" : [
109
114
{
110
115
"title" : "Wall Street Journal Snapshot" ,
111
116
"type" : "text/html"
112
117
}
113
118
] ,
114
- "url" : "http://online.wsj.com/news/articles/SB10001424052970204517204577046222233016362" ,
115
- "abstractNote" : "A profile of an Australian miner making $200,000 a year, published in The Wall Street Journal, led hundreds of people to ask how they could apply for such a job." ,
116
- "date" : "2011-11-19T05:01:00.000Z" ,
117
- "ISSN" : "0099-9660" ,
118
- "publicationTitle" : "Wall Street Journal" ,
119
- "section" : "Careers" ,
120
- "title" : "America's Jobless, Yearning for Oz" ,
121
- "libraryCatalog" : "Wall Street Journal" ,
122
- "accessDate" : "CURRENT_TIMESTAMP"
119
+ "tags" : [ ] ,
120
+ "notes" : [ ] ,
121
+ "seeAlso" : [ ]
123
122
}
124
123
]
125
124
} ,
126
125
{
127
126
"type" : "web" ,
128
- "url" : "http://online .wsj.com/news/articles/SB10001424052970203471004577144672783559392" ,
127
+ "url" : "http://www .wsj.com/news/articles/SB10001424052970203471004577144672783559392" ,
129
128
"items" : [
130
129
{
131
130
"itemType" : "newspaperArticle" ,
131
+ "title" : "An Odd Turn in Insider Case" ,
132
132
"creators" : [
133
133
{
134
134
"firstName" : "Jenny" ,
@@ -141,24 +141,22 @@ var testCases = [
141
141
"creatorType" : "author"
142
142
}
143
143
] ,
144
- "notes" : [ ] ,
145
- "tags" : [ ] ,
146
- "seeAlso" : [ ] ,
144
+ "date" : "2012-01-07T05:01:00.000Z" ,
145
+ "ISSN" : "0099-9660" ,
146
+ "abstractNote" : "An outspoken analyst who is embroiled in the Wall Street insider-trading investigation allegedly left threatening messages for two FBI agents." ,
147
+ "libraryCatalog" : "Wall Street Journal" ,
148
+ "publicationTitle" : "Wall Street Journal" ,
149
+ "section" : "Markets" ,
150
+ "url" : "http://www.wsj.com/news/articles/SB10001424052970203471004577144672783559392" ,
147
151
"attachments" : [
148
152
{
149
153
"title" : "Wall Street Journal Snapshot" ,
150
154
"type" : "text/html"
151
155
}
152
156
] ,
153
- "url" : "http://online.wsj.com/news/articles/SB10001424052970203471004577144672783559392" ,
154
- "abstractNote" : "An outspoken analyst who is embroiled in the Wall Street insider-trading investigation allegedly left threatening messages for two FBI agents." ,
155
- "date" : "2012-01-07T05:01:00.000Z" ,
156
- "ISSN" : "0099-9660" ,
157
- "publicationTitle" : "Wall Street Journal" ,
158
- "section" : "Markets" ,
159
- "title" : "An Odd Turn in Insider Case" ,
160
- "libraryCatalog" : "Wall Street Journal" ,
161
- "accessDate" : "CURRENT_TIMESTAMP"
157
+ "tags" : [ ] ,
158
+ "notes" : [ ] ,
159
+ "seeAlso" : [ ]
162
160
}
163
161
]
164
162
} ,
@@ -168,23 +166,23 @@ var testCases = [
168
166
"items" : [
169
167
{
170
168
"itemType" : "blogPost" ,
169
+ "title" : "The Ego Has Landed" ,
171
170
"creators" : [ ] ,
172
- "notes" : [ ] ,
173
- "tags" : [ ] ,
174
- "seeAlso" : [ ] ,
171
+ "date" : "January 6, 2012" ,
172
+ "ISSN" : "0099-9660" ,
173
+ "accessDate" : "CURRENT_TIMESTAMP" ,
174
+ "libraryCatalog" : "Wall Street Journal" ,
175
+ "publicationTitle" : "WSJ Blogs - Overheard" ,
176
+ "url" : "http://blogs.wsj.com/overheard/2012/01/06/the-ego-has-landed/" ,
175
177
"attachments" : [
176
178
{
177
179
"title" : "WSJ-Blogs Snapshot" ,
178
180
"type" : "text/html"
179
181
}
180
182
] ,
181
- "url" : "http://blogs.wsj.com/overheard/2012/01/06/the-ego-has-landed/" ,
182
- "date" : "January 6, 2012" ,
183
- "ISSN" : "0099-9660" ,
184
- "publicationTitle" : "WSJ Blogs - Overheard" ,
185
- "title" : "The Ego Has Landed" ,
186
- "libraryCatalog" : "Wall Street Journal" ,
187
- "accessDate" : "CURRENT_TIMESTAMP"
183
+ "tags" : [ ] ,
184
+ "notes" : [ ] ,
185
+ "seeAlso" : [ ]
188
186
}
189
187
]
190
188
} ,
@@ -199,64 +197,63 @@ var testCases = [
199
197
"items" : [
200
198
{
201
199
"itemType" : "blogPost" ,
200
+ "title" : "Number of the Week: Americans’ Cheaper Restaurant Bills" ,
202
201
"creators" : [
203
202
{
204
203
"firstName" : "Phil" ,
205
204
"lastName" : "Izzo" ,
206
205
"creatorType" : "author"
207
206
}
208
207
] ,
209
- "notes" : [ ] ,
210
- "tags" : [ ] ,
211
- "seeAlso" : [ ] ,
208
+ "date" : "Jan 7, 2012" ,
209
+ "ISSN" : "0099-9660" ,
210
+ "accessDate" : "CURRENT_TIMESTAMP" ,
211
+ "libraryCatalog" : "Wall Street Journal" ,
212
+ "publicationTitle" : "WSJ Blogs - Real Time Economics" ,
213
+ "shortTitle" : "Number of the Week" ,
214
+ "url" : "http://blogs.wsj.com/economics/2012/01/07/number-of-the-week-americans-cheaper-restaurant-bills/" ,
212
215
"attachments" : [
213
216
{
214
217
"title" : "WSJ-Blogs Snapshot" ,
215
218
"type" : "text/html"
216
219
}
217
220
] ,
218
- "url" : "http://blogs.wsj.com/economics/2012/01/07/number-of-the-week-americans-cheaper-restaurant-bills/" ,
219
- "date" : "Jan 7, 2012" ,
220
- "ISSN" : "0099-9660" ,
221
- "publicationTitle" : "WSJ Blogs - Real Time Economics" ,
222
- "title" : "Number of the Week: Americans’ Cheaper Restaurant Bills" ,
223
- "libraryCatalog" : "Wall Street Journal" ,
224
- "accessDate" : "CURRENT_TIMESTAMP" ,
225
- "shortTitle" : "Number of the Week"
221
+ "tags" : [ ] ,
222
+ "notes" : [ ] ,
223
+ "seeAlso" : [ ]
226
224
}
227
225
]
228
226
} ,
229
227
{
230
228
"type" : "web" ,
231
- "url" : "http://online .wsj.com/articles/american-detained-in-north-korea-to-face-trial-next-sunday-1410053845" ,
229
+ "url" : "http://www .wsj.com/articles/american-detained-in-north-korea-to-face-trial-next-sunday-1410053845" ,
232
230
"items" : [
233
231
{
234
232
"itemType" : "newspaperArticle" ,
233
+ "title" : "American Detained in North Korea to Face Trial Next Sunday" ,
235
234
"creators" : [
236
235
{
237
236
"firstName" : "Jeyup S." ,
238
237
"lastName" : "Kwaak" ,
239
238
"creatorType" : "author"
240
239
}
241
240
] ,
242
- "notes" : [ ] ,
243
- "tags" : [ ] ,
244
- "seeAlso" : [ ] ,
241
+ "date" : "2014-09-07T01:37:00.000Z" ,
242
+ "ISSN" : "0099-9660" ,
243
+ "abstractNote" : "Matthew Miller, one of three Americans detained by North Korea, will face trial next Sunday, the country's state media said." ,
244
+ "libraryCatalog" : "Wall Street Journal" ,
245
+ "publicationTitle" : "Wall Street Journal" ,
246
+ "section" : "World" ,
247
+ "url" : "http://www.wsj.com/articles/american-detained-in-north-korea-to-face-trial-next-sunday-1410053845" ,
245
248
"attachments" : [
246
249
{
247
250
"title" : "Wall Street Journal Snapshot" ,
248
251
"type" : "text/html"
249
252
}
250
253
] ,
251
- "url" : "http://online.wsj.com/articles/american-detained-in-north-korea-to-face-trial-next-sunday-1410053845" ,
252
- "abstractNote" : "Matthew Miller, one of three Americans detained by North Korea, will face trial next Sunday, the country's state media said." ,
253
- "date" : "2014-09-07T01:37:00.000Z" ,
254
- "ISSN" : "0099-9660" ,
255
- "publicationTitle" : "Wall Street Journal" ,
256
- "section" : "World" ,
257
- "title" : "American Detained in North Korea to Face Trial Next Sunday" ,
258
- "libraryCatalog" : "Wall Street Journal" ,
259
- "accessDate" : "CURRENT_TIMESTAMP"
254
+ "tags" : [ ] ,
255
+ "notes" : [ ] ,
256
+ "seeAlso" : [ ]
260
257
}
261
258
]
262
259
}
0 commit comments