<commit_before>var request = require("request");
var $ = require('jquery')(require("jsdom").jsdom().parentWindow);

exports.getLuckyKeyword = getLuckyKeyword;

/**
 * Wikipediaからランダムにタイトル、画像等を取得する
 *
 * callbackには、Wikipediaから取得したデータをオブジェクトで渡す。
 *
 * オブジェクトのキーは title, text, img
 *
 * ex: getLuckyKeyword(function(result){
 *  console.log(result.title, result.text, result.img);
 * });
 */
var getLuckyKeyword = function(callback) {
  request("http://ja.wikipedia.org/wiki/Special:Randompage", function (error, response, body) {
      if (!error) {
          var result = parseHtml(body);

          if(result) {
            callback(result);
          } else {
            getLuckyKeyword(callback);
          }
      } else {
          console.log(error);
          callback(null);
      }
  });
}

var parseHtml = function(html, callback) {
    // タイトル取得
    var re = new RegExp("<title>(.*?) - Wikipedia</title>", "i");
    var title = html.match(re)[1];

    var doc = $(html);

    // 一文取得
    var text = $('#mw-content-text > p', doc).first().text().split('。')[0];
    // console.log(text);

    // 画像URL
    var img = $('#mw-content-text img', doc).first().attr('src');
    // console.log(img);

    if (!img || img.length == 0) {
      return false;
    }

    return {
      title: title,
      text: text,
      img: img
    };
};

var main = function(){
  getLuckyKeyword(function(result) {
    console.log(result);
  });
}

if (require.main === module) {
    main();<commit_msg>画像のURL取得 CSSパス変更<commit_after>var request = require("request");
var $ = require('jquery')(require("jsdom").jsdom().parentWindow);

exports.getLuckyKeyword = getLuckyKeyword;

/**
 * Wikipediaからランダムにタイトル、画像等を取得する
 *
 * callbackには、Wikipediaから取得したデータをオブジェクトで渡す。
 *
 * オブジェクトのキーは title, text, img
 *
 * ex: getLuckyKeyword(function(result){
 *  console.log(result.title, result.text, result.img);
 * });
 */
var getLuckyKeyword = function(callback) {
  request("http://ja.wikipedia.org/wiki/Special:Randompage", function (error, response, body) {
      if (!error) {
          var result = parseHtml(body);

          if(result) {
            callback(result);
          } else {
            getLuckyKeyword(callback);
          }
      } else {
          console.log(error);
          callback(null);
      }
  });
}

var parseHtml = function(html, callback) {
    // タイトル取得
    var re = new RegExp("<title>(.*?) - Wikipedia</title>", "i");
    var title = html.match(re)[1];

    var doc = $(html);

    // 一文取得
    var text = $('#mw-content-text > p', doc).first().text().split('。')[0];
    // console.log(text);

    // 画像URL
    var img = $('#mw-content-text .thumbinner img', doc).first().attr('src');
    // console.log(img);

    if (!img || img.length == 0) {
      return false;
    }

    return {
      title: title,
      text: text,
      img: img
    };
};

var main = function(){
  getLuckyKeyword(function(result) {
    console.log(result);
  });
}

if (require.main === module) {
    main();
{'fraction_non_alphanumeric': 0.17863105175292154, 'fraction_numerical': 0.002003338898163606, 'mean_word_length': 2.6271186440677967, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5924984', 'n_tokens_mistral': 1070, 'n_tokens_neox': 1053, 'n_words': 183}