+++ /dev/null
-'use strict';
-
-
-var Promise = require('bluebird');
-var cheerio = require('cheerio');
-require('neon');
-var request = require('request');
-
-
-var Conjugator = Class({}, "Conjugator")({
- prototype : {
- _baseUrl: "http://www.spanishdict.com/conjugate/",
- _selector: ".aa .neoConj tr td",
-
- init : function init(config) {
- config = config || {};
-
- Object.keys(config).forEach(function (property) {
- this[property] = config[property];
- }, this);
- },
-
- conjugate : function conjugate(verb) {
- return new Promise(function (resolve, reject) {
- request(this._baseUrl + verb, function (err, res, body) {
- var $, result, finalVerb ;
- if (err) {
- return reject(err);
- }
- $ = cheerio.load(body);
- result = $('.vtable-word')[10];
-
- if (!result) {
- console.log("Verb not found: ", verb);
- return reject(new Error("Not a valid verb"));
- }
-
- finalVerb = this._extractWord(result);
-
- console.log(verb, finalVerb);
- resolve(finalVerb);
- }.bind(this));
- }.bind(this));
- },
-
- _extractWord : function _extractWord(node) {
- var word = "", components;
-
- node.children.forEach(function (child) {
- if (child.type === "text") {
- word += child.data;
- } else {
- word += this._extractWord(child);
- }
- }, this);
-
- word = word.split(",")[0]; // multiple conjugations, take 1
- components = word.split(" "); // some special cases have two words
- // use the last, why not
-
- return components[components.length - 1];
- }
- }
-});
-
-module.exports = Conjugator;