1+ var Nightmare = require ( 'nightmare' ) ;
2+ var nightmare = new Nightmare ( ) ;
3+
4+ var getPets = exports . getPets = function ( url ) {
5+ return new Promise ( function ( resolve , reject ) {
6+ nightmare
7+ . goto ( url )
8+ . inject ( 'js' , 'node_modules/jquery/dist/jquery.min.js' )
9+ . evaluate ( function ( ) {
10+ try {
11+ var itemId = document . URL . replace ( / \D / g, '' ) ;
12+ var type = $ ( 'div.ak-encyclo-detail-right.ak-nocontentpadding' ) . find ( 'div.ak-encyclo-detail-type.col-xs-6' ) . find ( 'span' ) . text ( ) . trim ( ) ;
13+ var name = $ ( 'h1.ak-return-link' ) . text ( ) . trim ( ) ;
14+ var description = $ ( 'div.ak-encyclo-detail-right.ak-nocontentpadding' ) . find ( 'div.ak-container.ak-panel:first' ) . find ( 'div.ak-panel-content' ) . text ( ) . trim ( ) ;
15+ var lvl = $ ( 'div.ak-encyclo-detail-right.ak-nocontentpadding' ) . find ( 'div.ak-encyclo-detail-level.col-xs-6.text-right' ) . text ( ) . trim ( ) . replace ( / \D / g, '' ) ;
16+ var imgUrl = $ ( 'div.ak-encyclo-detail-illu' ) . find ( 'img' ) . attr ( 'src' ) . replace ( 'dofus/ng/img/../../../' , '' ) ;
17+
18+ var item = {
19+ id : itemId ,
20+ name : name ,
21+ description : description ,
22+ lvl : lvl ,
23+ type : type ,
24+ imgUrl : imgUrl ,
25+ url : document . URL
26+ }
27+
28+ item [ "stats" ] = [ ] ;
29+ item [ "condition" ] = [ ] ;
30+ item [ "maxstats" ] = [ ] ;
31+
32+ if ( $ ( 'div.ak-encyclo-detail-right.ak-nocontentpadding' ) . find ( 'div.col-sm-6' ) . eq ( 1 ) . find ( 'div.ak-container.ak-panel.no-padding' ) . eq ( 1 ) . text ( ) !== '' ) {
33+ $ ( 'div.ak-encyclo-detail-right.ak-nocontentpadding' ) . find ( 'div.col-sm-6' ) . eq ( 1 ) . find ( 'div.ak-container.ak-panel.no-padding' ) . eq ( 0 ) . find ( 'div.ak-list-element' ) . each ( function ( i , element ) {
34+ var condition = $ ( this ) . find ( "div.ak-title" ) . remove ( "br" ) . text ( ) . trim ( ) ;
35+ item [ "condition" ] . push ( condition ) ;
36+ } ) ;
37+ $ ( 'div.ak-encyclo-detail-right.ak-nocontentpadding' ) . find ( 'div.col-sm-6' ) . eq ( 1 ) . find ( 'div.ak-container.ak-panel.no-padding' ) . eq ( 1 ) . find ( 'div.ak-list-element' ) . each ( function ( i , element ) {
38+ var maxstats = $ ( this ) . find ( "div.ak-title" ) . text ( ) . trim ( ) ;
39+ item [ "maxstats" ] . push ( maxstats ) ;
40+ } ) ;
41+ } else {
42+ $ ( 'div.ak-encyclo-detail-right.ak-nocontentpadding' ) . find ( 'div.col-sm-6' ) . eq ( 1 ) . find ( 'div.ak-container.ak-panel.no-padding' ) . eq ( 0 ) . find ( 'div.ak-list-element' ) . each ( function ( i , element ) {
43+ var maxstats = $ ( this ) . find ( "div.ak-title" ) . text ( ) . trim ( ) ;
44+ item [ "maxstats" ] . push ( maxstats ) ;
45+ } ) ;
46+ }
47+
48+
49+ $ ( 'div.ak-encyclo-detail-right.ak-nocontentpadding' ) . find ( 'div.col-sm-6' ) . eq ( 0 ) . find ( 'div.ak-list-element' ) . each ( function ( i , element ) {
50+ var stat = $ ( this ) . find ( "div.ak-title" ) . text ( ) . trim ( ) ;
51+ item [ "stats" ] . push ( stat ) ;
52+ } ) ;
53+
54+ return item ;
55+ } catch ( err ) {
56+ return [ err ] ;
57+ }
58+ } )
59+ . then ( ( htmlRes ) => {
60+ console . log ( htmlRes ) ;
61+ resolve ( htmlRes ) ;
62+ } ) ;
63+ } ) ;
64+ }
0 commit comments